OSDN Git Service

* tree-ssa-threadupdate.c (determine_bb_domination_status): Always
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-05  Jeff Law  <law@redhat.com>
2
3         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4         check if BB is a successor of LOOP->header and return
5         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
6
7 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
8
9         * cprop.c (struct reg_use): Remove.
10         (reg_use_table): Make an array of RTX.
11         (find_used_regs, constprop_register, local_cprop_pass,
12         bypass_block): Simplify users of reg_use_table.
13         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
14         on one of the uses found by find_used_regs.
15
16 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17
18         PR bootstrap/48469
19         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
20         declaration.
21
22 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
23
24         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
25         as an rtx.
26         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
27
28 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
29
30         PR middle-end/48441
31         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
32
33 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
34
35         * combine.c: Include obstack.h.
36         (struct insn_link): Define.
37         (uid_log_links): Adjust type.
38         (FOR_EACH_LOG_LINK): New macro.
39         (insn_link_obstack): Declare.
40         (alloc_insn_link): Define.
41         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
42         type of link variables.
43         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
44         (try_combine, record_promoted_values, distribute_notes): Likewise.
45         (distribute_links): Likewise.  Tweak prototype.
46         (clear_log_links): Delete.
47         (adjust_for_new_dest): Call alloc_insn_link.
48         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
49
50 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
51
52         * gcse.c (modify_mem_list): Convert to an array of VECs.
53         (canon_modify_mem_list, compute_transp): Tweak formatting.
54         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
55         (load_killed_in_block_p): Likewise.
56         (record_last_mem_set_info): Likewise.
57         (clear_modify_mem_tables): Likewise.
58
59 2011-04-05  Tom de Vries  <tom@codesourcery.com>
60
61         PR middle-end/48461
62         * function.c (emit_use_return_register_into_block): Only define if
63         HAVE_return.
64
65 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
66
67         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
68
69 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
70
71         * config/rx/rx-opts.h: New.
72         * config/rx/rx.c (rx_cpu_type): Remove.
73         (rx_handle_option): Don't assert that global structures are in
74         use.  Access variables via opts pointer.  Defer most handling of
75         OPT_mint_register_.  Use error_at.
76         (rx_option_override): Handle deferred OPT_mint_register_ here.
77         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
78         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
79         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
80         (rx_cpu_types): New Enum and EnumValue entries.
81         (mint-register=): Use Defer and use Var accordingly.
82
83 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
84
85         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
86         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
87         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
88         Move these...
89         (debug_free_queue, debug_nesting, symbol_queue_index):
90         ...and these...
91         * dbxout.c: ...to here.  Make static.
92
93 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
94
95         * gcse.c (modify_pair): Define.  Define a VEC of it.
96         (canon_modify_mem_list): Convert to an array of VECs.
97         (free_insn_expr_list_list): Delete.
98         (clear_modify_mem_tables): Call VEC_free instead.
99         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
100         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
101         (canon_list_insert, compute_transp): Likewise.
102
103 2011-04-05  Tom de Vries  <tom@codesourcery.com>
104
105         PR target/43920
106         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
107         for size.
108
109 2011-04-05  Tom de Vries  <tom@codesourcery.com>
110
111         PR target/43920
112         * function.c (emit_use_return_register_into_block): New function.
113         (thread_prologue_and_epilogue_insns): Use
114         emit_use_return_register_into_block.
115
116 2011-04-05  Tom de Vries  <tom@codesourcery.com>
117
118         PR target/43920
119         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
120         insn.
121
122 2011-04-05  Tom de Vries  <tom@codesourcery.com>
123
124         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
125
126 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
127
128         * config/arm/arm.md (define_constants for unspec): Replace with
129         define_c_enum.
130         (define_constants for unspecv): Replace with define_c_enum.
131         * config/arm/neon.md (define_constants for unspec): Replace with
132         define_c_enum.
133
134 2011-04-04  Richard Henderson  <rth@redhat.com>
135
136         PR bootstrap/48400
137         * dwarf2out.c (output_line_info): Always emit line info from
138         at least one section.
139         (dwarf2out_init): Create text_section_line_info here ...
140         (set_cur_line_info_table): ... not here.
141
142 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
143
144         PR target/48380
145         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
146         not called.
147
148         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
149
150 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
151
152         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
153         (expr_equiv_p): Remove.
154         (insert_set_in_table): Look at <dest, src> pair instead of expr.
155         (hash_scan_set): Update call to insert_set_in_table.
156         (dump_hash_table): Dump <dest, src> pair.
157         (lookup_set): Simplify.  Lookup <dest, src> pair.
158         (compute_transp): Remove, fold heavily simplified code into...
159         (compute_local_properties): ...here.  Expect COMP and TRANSP
160         unconditionally.
161         (find_avail_set): Take set directly from struct expr.
162         (find_bypass-set): Likewise.
163         (bypass_block): Likewise.
164         (cprop_insn): Likewise.  Remove redundant INSN_P test.
165
166         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
167         checks on form of COND from find_implicit_sets to here.
168         (find_implicit_sets): Cleanup control flow. Split critical edges
169         if it exposes implicit sets.  Allocate/resize implicit_sets as
170         necessary.
171         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
172         changed something.  Run df_analyze after find_implicit_sets if any
173         edges were split.  Do not allocate implicit_sets here.
174
175         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
176         (gcse_obstack): Renamed to cprop_obstack.
177         (GNEW, GNEWVEC, GNEWVAR): Remove.
178         (gmalloc): Remove.
179         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
180         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
181         (gcse_alloc): Likewise, and rename to cprop_alloc.
182         (alloc_gcse_men, free_gcse_mem): Remove.
183         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
184         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
185         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
186
187         * cprop.c (oprs_not_set_p): Remove.
188         (mark_set, mark_clobber): Remove.
189         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
190         (reg_not_set_p): New function.
191         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
192         (cprop_insn): Likewise.
193         (cprop_jump): Use FOR_EACH_EDGE.
194
195 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
196
197         PR bootstrap/48403
198         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
199         (rank_for_schedule): Use scheduled_insns vector instead of
200         last_scheduled_insn.
201         (ok_for_early_queue_removal): Likewise.
202         (queue_to_ready): Search forward in nonscheduled_insns_begin if
203         we have a dbg_cnt.
204         (choose_ready): Likewise.
205         (commit_schedule): Use VEC_iterate.
206         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
207         a dbg_cnt, use it and ensure the first insn is in the ready list.
208         (haifa_sched_init): Allocate scheduled_insns.
209         (sched_extend_ready_list): Don't allocate it; reserve space.
210         (haifa_sched_finish): Free it.
211
212 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
213
214         * optc-gen.awk: Always remove type from Variable entry before
215         recording in var_seen.
216
217 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
218
219         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
220         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
221         call to tidy_fallthru_edges.
222
223 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
224
225         * doc/options.texi (ToLower): Document.
226         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower
227         field.
228         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
229         * opts.h (cl_option): Add cl_tolower field.
230         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
231         arguments with lowercase strings.
232         * config/rx/rx.opt (mcpu=): Add ToLower.
233         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
234         argument.
235
236 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
237
238         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
239
240 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
241
242         * config/vax/vax.c: Include reload.h.
243
244 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
245
246         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
247         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
248         (sparc_preferred_reload_class): New function.
249
250 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
251
252         PR debug/48401
253         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
254         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
255
256 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
257
258         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
259         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
260
261 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
262
263         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
264         (ASM_OUTPUT_ALIGNED_BSS): Define.
265
266 2011-04-03  Michael Matz  <matz@suse.de>
267
268         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
269         and next_slot members.
270         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
271         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
272         (lto_streamer_cache_append): Declare.
273         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
274         unsigned index, remove offset parameter, ensure that we append
275         or update existing entries.
276         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
277         parameter, update next_slot for append.
278         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
279         parameter.
280         (lto_streamer_cache_insert_at): Likewise.
281         (lto_streamer_cache_append): New function.
282         (lto_streamer_cache_lookup): Use unsigned index.
283         (lto_streamer_cache_get): Likewise.
284         (lto_record_common_node): Don't test tree_node_can_be_shared.
285         (preload_common_node): Adjust call to lto_streamer_cache_insert.
286         (lto_streamer_cache_delete): Don't free offsets member.
287         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
288         (lto_output_string_with_length): Use lto_output_data_stream.
289         (lto_output_tree_header): Remove ix parameter, don't write it.
290         (lto_output_builtin_tree): Likewise.
291         (lto_write_tree): Adjust callers to above, don't track and write
292         offset, write unsigned index.
293         (output_unreferenced_globals): Don't emit all global vars.
294         (write_global_references): Use unsigned indices.
295         (lto_output_decl_state_refs): Likewise.
296         (write_symbol): Likewise.
297         * lto-streamer-in.c (lto_input_chain): Move earlier.
298         (input_function): Use unsigned index.
299         (input_alias_pairs): Don't read and then ignore all global vars.
300         (lto_materialize_tree): Remove ix_p parameter, don't read index,
301         don't pass it back, use lto_streamer_cache_append.
302         (lto_register_var_decl_in_symtab): Use unsigned index.
303         (lto_register_function_decl_in_symtab): Likewise.
304         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
305         index.
306         (lto_get_builtin_tree): Don't read index, use
307         lto_streamer_cache_append.
308         (lto_read_tree): Adjust call to lto_materialize_tree.
309
310         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
311         don't use function calls in arguments to MIN.
312
313         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
314         twice.
315
316         * gimple.c (gimple_type_leader_entry): Mark deletable.
317
318 2011-04-03  Alan Modra  <amodra@gmail.com>
319
320         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
321
322 2011-04-03  Michael Matz  <matz@suse.de>
323
324         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
325         an integer.
326         * tree.h (tree_decl_non_common.vindex): Adjust comment.
327
328 2011-04-03  Michael Matz  <matz@suse.de>
329
330         * cgraphbuild.c (record_reference): Canonicalize constructor values.
331         * gimple-fold.c (canonicalize_constructor_val): Accept being called
332         without function context.
333         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
334         current_function_decl and cfun.
335
336 2011-04-03  Michael Matz  <matz@suse.de>
337
338         * tree.c (decl_init_priority_insert): Don't create entry for
339         default priority.
340         (decl_fini_priority_insert): Ditto.
341         (fields_compatible_p, find_compatible_field): Remove.
342         * tree.h (fields_compatible_p, find_compatible_field): Remove.
343         * gimple.c (gimple_compare_field_offset): Adjust block comment.
344
345 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
346
347         * combine.c (try_combine): Remove useless local variable.
348
349 2011-04-03  Richard Guenther  <rguenther@suse.de>
350             Ira Rosen  <ira.rosen@linaro.org>
351
352         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
353         non-variable offsets and compare the remaining bases of the two
354         accesses instead of looking for exact same data-ref.
355
356 2011-04-02  Kai Tietz  <ktietz@redhat.com>
357
358         PR target/48416
359         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
360
361         * i386.c (ix86_is_msabi_thiscall): New helper function.
362         (ix86_is_type_thiscall): New helper function.
363         (ix86_comp_type_attributes): Handle thiscall for method-functions
364         special.
365         (init_cumulative_args): Likewise.
366         (find_drap_reg): Likewise.
367         (ix86_static_chain): Likewise.
368         (x86_this_parameter): Likewise.
369         (x86_output_mi_thunk): Likewise.
370
371 2011-04-01  Olivier Hainque  <hainque@adacore.com>
372             Nicolas Setton  <setton@adacore.com>
373             Eric Botcazou  <ebotcazou@adacore.com>
374
375         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
376         (add_gnat_descriptive_type_attribute): New function.
377         (gen_array_type_die): Call it.
378         (gen_enumeration_type_die): Likewise.
379         (gen_struct_or_union_type_die): Likewise.
380         (modified_type_die): Likewise.
381         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
382         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
383         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
384
385 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
386
387         PR bootstrap/48148
388         * dwarf2out.c (resolve_addr): Don't call force_decl_die
389         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
390
391         Revert:
392         2011-03-17  Richard Guenther  <rguenther@suse.de>
393
394         PR bootstrap/48148
395         * lto-cgraph.c (input_overwrite_node): Clear the abstract
396         origin for decls in other ltrans units.
397         (input_varpool_node): Likewise.
398
399 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
400
401         PR middle-end/48335
402         * expr.c (expand_assignment): Handle all possibilities
403         if TO_RTX is CONCAT.
404         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
405         (store_split_bit_field): If SUBREG_REG (op0) or
406         op0 itself has smaller mode than word, return it
407         for offset 0 and const0_rtx for out-of-bounds stores.
408         If word is const0_rtx, skip it.
409
410 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
411
412         * config/h8300/h8300.c (print_operand_address): Rename to...
413         (h8300_print_operand_address): ...this. Make static. Adjust comments.
414         Call h8300_print_operand and h8300_print_operand_address instead of
415         print_operand and print_operand_address. Declare.
416         (print_operand): Renake to...
417         (h8300_print_operand): ...this. Make static. Adjust comments.
418         Call h8300_print_operand instead of print_operand. Declare.
419         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
420         (h8300_register_move_cost): Likewise.
421         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
422         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
423         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
424         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
425         * config/h8300/h8300-protos.h (print_operand): Delete.
426         (print_operand_address): Delete.
427
428 2011-04-01  Richard Henderson  <rth@redhat.com>
429
430         PR 48400
431         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
432         in strict mode before dwarf4.  Re-order tests to early out
433         before switching sections.
434
435 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
436
437         * config/h8300/constraints.md: New file.
438         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
439         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
440         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
441         * config/h8300/predicates.md (bit_operand): Likewise.
442         (incdec_operand): Use satisfies_constraint_M and
443         satisfies_constraint_O.  Don't use C code block.
444         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
445         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
446         (compute_mov_length): Use satisfies_constraint_G.
447         (fix_bit_operand): Use satisfies_constraint_U.
448         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
449         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
450         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
451         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
452         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
453         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
454         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
455         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
456         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
457         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
458         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
459         (EXTRA_MEMORY_CONSTRAINT): Delete.
460
461 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
462             Michael Meissner  <meissner@linux.vnet.ibm.com>
463
464         PR target/48262
465         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
466         operands, as per the specifications.
467
468         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
469         (vec_extract_evenv4sf): Ditto.
470         (vec_extract_evenv8hi): Ditto.
471         (vec_extract_evenv16qi): Ditto.
472         (vec_extract_oddv4si): Ditto.
473
474 2011-03-31  Mark Wielaard  <mjw@redhat.com>
475
476         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
477         high_pc attribute if the CU has no associated code. Only output
478         DW_AT_entry_pc for CU if not generating strict dwarf and
479         dwarf_version < 4.
480
481 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
482
483         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
484         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
485         out of ...
486         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
487         * final.c (final_start_function): Call the new function rather
488         than using a NULL argument for dwarf2out_frame_debug.
489
490         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
491         that contains the prologue.
492
493         * haifa-sched.c (queue_insn): New arg REASON.  All callers
494         changed.  Print it in debugging output.
495
496         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
497
498         * sched-ebb.c (begin_schedule_ready): Remove second argument.
499         Split most of the code into...
500         (begin_move_insn): ... here.  New function.
501         (ebb_sched_info): Add a pointer to it.
502         * haifa-sched.c (scheduled_insns): New static variable.
503         (sched_extend_ready_list): Allocate it.
504         (schedule_block): Use it to record the order of scheduled insns.
505         Perform RTL changes to move insns only after all scheduling
506         decisions have been made.
507         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
508         begin_move_insn field.
509         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
510         * sched-int.h (struct haifa_sched_info): Remove second argument
511         from begin_schedule_ready hook.  Add new member begin_move_insn.
512         * sched-rgn.c (begin_schedule_ready): Remove second argument.
513         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
514
515         * haifa-sched.c (prune_ready_list): New function, broken out of
516         schedule_block.
517         (schedule_block): Use it.
518
519 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
520
521         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
522
523 2011-04-01  Kai Tietz  <ktietz@redhat.com>
524
525         * config.gcc (*-*-mingw*): Allow as option the
526         posix threading model.
527         * config/i386/mingw32.h ( SPEC_PTHREAD1,  SPEC_PTHREAD2):
528         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
529         definition.
530         (CPP_SPEC): Add pthread/no-pthread handling.
531         (LIB_SPEC): Likewise.
532         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
533         (LIB_SPEC): Likewise.
534         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
535         flag to pass -pthread option for shared libgcc build.
536         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
537         for shared libgcc build.
538         * config/i386/t-mingw-pthread: New file.
539         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
540         New define to enable use of library pthread by default.
541         * config/i386/mingw.opt (pthread): New driver option.
542         (no-pthread): New driver option.
543         * config/i386/cygming.opt: Make sure trailing empty line is retained.
544         * config/i386/mingw-w64.opt: Likewise.
545
546 2011-04-01  Gary Funck <gary@intrepid.com>
547
548         * c-decl.c (grokdeclarator): Fix formatting.
549
550 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
551
552         * expr.c (emit_block_move_via_movmem): Use n_generator_args
553         instead of n_operands.
554         (set_storage_via_setmem): Likewise.
555         * optabs.c (maybe_gen_insn): Likewise.
556         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
557         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
558         (mips_expand_builtin_direct): Likewise.
559         * config/spu/spu.c (expand_builtin_args): Likewise.
560
561 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
562
563         * recog.h (insn_data_d): Add n_generator_args.
564         * genoutput.c (data): Likewise.
565         (output_insn_data): Print it.
566         (max_opno, num_dups): Delete.
567         (scan_operands): Just fill in "d->operand[...]".
568         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
569
570 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
571
572         * gensupport.h (pattern_stats): New structure.
573         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
574         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
575         (max_operand_1, max_operand_vec): Delete.
576         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
577
578 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
579
580         * emit-rtl.c (emit_pattern_after_setloc): New function.
581         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
582         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
583         (emit_pattern_after): New function.
584         (emit_insn_after, emit_jump_insn_after): Call it.
585         (emit_call_insn_after, emit_debug_insn_after): Likewise.
586         (emit_pattern_before_setloc): New function.
587         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
588         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
589         Likewise.
590         (emit_pattern_before): New function.
591         (emit_insn_before, emit_jump_insn_before): Call it.
592         (emit_call_insn_before, emit_debug_insn_before): Likewise.
593
594 2011-03-31  Richard Henderson  <rth@redhat.com>
595
596         * dwarf2out.c (dw_separate_line_info_ref): Remove.
597         (dw_separate_line_info_entry): Remove.
598         (enum dw_line_info_opcode): New.
599         (dw_line_info_entry): Use it.
600         (dw_line_info_table, dw_line_info_table_p): New.
601         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
602         (line_info_table, line_info_label_num): Remove.
603         (line_info_table_in_use): Remove.
604         (separate_line_info_table): Remove.
605         (separate_line_info_table_allocated): Remove.
606         (separate_line_info_table_in_use): Remove.
607         (LINE_INFO_TABLE_INCREMENT): Remove.
608         (line_info_label_num): New.
609         (cur_line_info_table): New.
610         (text_section_line_info, cold_text_section_line_info): New.
611         (separate_line_info): New.
612         (SEPARATE_LINE_CODE_LABEL): Remove.
613         (print_dwarf_line_table): Remove.
614         (debug_dwarf): Don't dump it.
615         (output_one_line_info_table): New.
616         (output_line_info): Use it.
617         (new_line_info_table): New.
618         (set_cur_line_info_table): New.
619         (dwarf2out_switch_text_section): Use it.
620         (dwarf2out_begin_function): Likewise.
621         (push_dw_line_info_entry): New.
622         (dwarf2out_source_line): Rewrite for new line info tables.
623         (dwarf2out_init): Remove dead initailizations.
624
625 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
626
627         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
628         various flags.
629         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
630         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
631         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
632         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
633         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
634         * opt-functions.awk (flag_init, switch_bit_fields): New.
635         (switch_flags): Don't handle flags moved to bit-fields.  Don't
636         generate CL_MISSING_OK or CL_SAVE.
637         * optc-gen.awk: Update to generate bit-field output as well as
638         flags field.
639         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
640         bit-field instead of CL_REJECT_DRIVER flag.
641         * opts-common.c (generate_canonical_option,
642         decode_cmdline_option): Use bit-fields instead of CL_* flags.
643         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
644         instead of CL_REJECT_NEGATIVE flag.
645         * toplev.c (print_switch_values): Use cl_report bit-field instead
646         of CL_REPORT flag.
647
648 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
649
650         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
651         a zero minimum index only if it is redundant.
652
653 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
654
655         PR rtl-optimization/48381
656         * ira-color.c (assign_hard_reg): Use hard reg set intersection
657         instead of ira_class_hard_reg_index for calculating conflicting
658         hard registers.
659
660 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
661
662         * cprop.c: Clean up hash table building.
663         (reg_avail_info): Remove.
664         (oprs_available_p): Remove.
665         (record_last_reg_set_info): Remove.
666         (record_last_set_info): Remove.
667         (reg_available_p): New function.
668         (gcse_constant_p): Do not treat unfolded conditions as constants.
669         (make_set_regs_unavailable): New function.
670         (hash_scan_set): Simplify with new reg_available_p.
671         (compute_hash_table_work): Traverse insns stream only once.
672         Do not compute reg_avail_info. Traverse insns in reverse order.
673         Record implicit sets after recording explicit sets from the block.
674
675 2011-03-31  Michael Matz  <matz@suse.de>
676
677         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
678
679 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
680
681         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
682         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
683         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
684         (h8300_mode_dependent_address_p): New function.
685         (h8300_get_index): Make static.
686
687 2011-03-31  Jeff Law  <law@redhat.com>
688
689         * reload1.c (elimination_effects): Fix typo in recent change.
690
691         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
692         typo potentially leading to null pointer dereference.
693
694         * caller-save.c (new_saved_hard_reg): Eliminate return value.
695         (setup_save_areas): Corresponding changes to avoid useless
696         assignments.
697
698         * jump.c (reversed_comparison_code_parts): Avoid successive return
699         statements when REVERSE_CONDITION is defined.
700
701         * expr.c (expand_assignment): Avoid useless assignments.
702         (expand_expr_real_1): Likewise.
703         (expand_expr_real_2): Avoid useless statements.
704
705         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
706
707         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
708
709         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
710         statements.
711
712         * stmt.c (expand_expr_stmt): Avoid useless assignment.
713
714 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
715
716         PR target/47109
717         * doc/tm.texi.in (TARGET_VERSION): Remove.
718         * doc/tm.texi: Regenerate.
719         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
720         * collect2.c (main): Don't use TARGET_VERSION.
721         * mips-tdump.c (main): Don't use TARGET_VERSION.
722         * mips-tfile.c (main): Don't use TARGET_VERSION.
723         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
724         * config/rs6000/vxworksae.h: Remove.
725         * config/alpha/alpha.h (TARGET_VERSION): Remove.
726         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
727         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
728         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
729         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
730         * config/arm/arm.h (TARGET_VERSION): Remove.
731         * config/arm/coff.h (TARGET_VERSION): Remove.
732         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
733         * config/arm/elf.h (TARGET_VERSION): Remove.
734         * config/arm/freebsd.h (TARGET_VERSION): Remove.
735         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
736         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
737         * config/arm/pe.h (TARGET_VERSION): Remove.
738         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
739         * config/arm/semi.h (TARGET_VERSION): Remove.
740         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
741         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
742         * config/arm/vxworks.h (TARGET_VERSION): Remove.
743         * config/avr/avr.h (TARGET_VERSION): Remove.
744         * config/bfin/bfin.h (TARGET_VERSION): Remove.
745         * config/fr30/fr30.h (TARGET_VERSION): Remove.
746         * config/frv/frv.h (TARGET_VERSION): Remove.
747         * config/h8300/h8300.h (TARGET_VERSION): Remove.
748         * config/i386/cygwin.h (TARGET_VERSION): Remove.
749         * config/i386/darwin.h (TARGET_VERSION): Remove.
750         * config/i386/darwin64.h (TARGET_VERSION): Remove.
751         * config/i386/djgpp.h (TARGET_VERSION): Remove.
752         * config/i386/freebsd.h (TARGET_VERSION): Remove.
753         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
754         * config/i386/gnu.h (TARGET_VERSION): Remove.
755         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
756         * config/i386/i386elf.h (TARGET_VERSION): Remove.
757         * config/i386/linux.h (TARGET_VERSION): Remove.
758         * config/i386/linux64.h (TARGET_VERSION): Remove.
759         * config/i386/lynx.h (TARGET_VERSION): Remove.
760         * config/i386/mingw32.h (TARGET_VERSION): Remove.
761         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
762         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
763         * config/i386/netware.h (TARGET_VERSION): Remove.
764         * config/i386/nto.h (TARGET_VERSION): Remove.
765         * config/i386/openbsd.h (TARGET_VERSION): Remove.
766         * config/i386/vxworks.h (TARGET_VERSION): Remove.
767         * config/ia64/elf.h (TARGET_VERSION): Remove.
768         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
769         * config/ia64/hpux.h (TARGET_VERSION): Remove.
770         * config/ia64/linux.h (TARGET_VERSION): Remove.
771         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
772         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
773         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
774         * config/lm32/lm32.h (TARGET_VERSION): Remove.
775         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
776         * config/m32c/m32c.h (TARGET_VERSION): Remove.
777         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
778         * config/m32r/m32r.h (TARGET_VERSION): Remove.
779         * config/m68k/linux.h (TARGET_VERSION): Remove.
780         * config/m68k/m68k.h (TARGET_VERSION): Remove.
781         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
782         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
783         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
784         * config/mep/mep.h (TARGET_VERSION): Remove.
785         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
786         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
787         * config/mips/iris6.h (MACHINE_TYPE): Remove.
788         * config/mips/linux.h (TARGET_VERSION): Remove.
789         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
790         * config/mips/vxworks.h (TARGET_VERSION): Remove.
791         * config/mmix/mmix.h (TARGET_VERSION): Remove.
792         * config/mn10300/linux.h (TARGET_VERSION): Remove.
793         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
794         * config/pa/pa.h (TARGET_VERSION): Remove.
795         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
796         * config/picochip/picochip.h (TARGET_VERSION): Remove.
797         * config/rs6000/aix.h (TARGET_VERSION): Remove.
798         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
799         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
800         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
801         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
802         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
803         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
804         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
805         * config/rs6000/linux.h (TARGET_VERSION): Remove.
806         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
807         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
808         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
809         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
810         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
811         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
812         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
813         * config/s390/linux.h (TARGET_VERSION): Remove.
814         * config/s390/s390.h (TARGET_VERSION): Remove.
815         * config/s390/tpf.h (TARGET_VERSION): Remove.
816         * config/score/score.h (TARGET_VERSION): Remove.
817         * config/sh/linux.h (TARGET_VERSION): Remove.
818         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
819         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
820         * config/sh/sh.h (TARGET_VERSION): Remove.
821         * config/sh/sh64.h (TARGET_VERSION): Remove.
822         * config/sh/superh.h (TARGET_VERSION): Remove.
823         * config/sh/vxworks.h (TARGET_VERSION): Remove.
824         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
825         * config/sparc/linux.h (TARGET_VERSION): Remove.
826         * config/sparc/linux64.h (TARGET_VERSION): Remove.
827         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
828         TARGET_NAME32, TARGET_NAME): Remove.
829         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
830         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
831         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
832         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
833         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
834         * config/spu/spu.h (TARGET_VERSION): Remove.
835         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
836         * config/v850/v850.h (TARGET_VERSION): Remove.
837         * config/vax/linux.h (TARGET_VERSION): Remove.
838         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
839         * config/xtensa/elf.h (TARGET_VERSION): Remove.
840         * config/xtensa/linux.h (TARGET_VERSION): Remove.
841
842 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
843
844         PR target/48142
845         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
846         frame-related from frame-unrelated adjustments to the stack pointer.
847
848 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
849
850         * common.opt (fdebug-types-section): Move earlier.
851         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
852
853 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
854
855         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
856         var.
857
858 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
859
860         * tree.h (CASE_CHAIN): Define.
861         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
862         (gimple_redirect_edge_and_branch): Likewise.
863
864 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
865
866         PR middle-end/48367
867         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
868         calculation.
869
870 2011-03-30  Jeff Law  <law@redhat.com>
871
872         * PR bootstrap/48371
873         * reload1.c (reload): Fix botch in last change.
874
875         * reload.h (struct reload): Fix typo introduced in last change.
876
877 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
878
879         * config/arm/arm.opt (mhard-float, msoft-float): Mark
880         Undocumented.  Remove help text.
881         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
882         -mhard-float.
883
884 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
885
886         * doc/options.texi (NegativeAlias): Document.
887         (Alias): Mention NegativeAlias.
888         * opt-functions.awk: Handle NegativeAlias.
889         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
890         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
891         * opts.h (CL_NEGATIVE_ALIAS): Define.
892         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
893         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
894         OPT_mspe_.
895         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
896         Alias entries.
897         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
898         mno-spe and mno-isel instead of mspe=no and -misel=no.
899
900 2011-03-29  Mark Wielaard  <mjw@redhat.com>
901
902         * common.opt (fdebug-types-section): New flag.
903         * doc/invoke.texi: Document new -fno-debug-types-section flag.
904         * dwarf2out.c (use_debug_types): New define.
905         (struct die_struct): Mark die_id with GTY desc use_debug_types.
906         (print_die): Guard output of type unit signatures using
907         use_debug_types.
908         (build_abbrev_table): Replace assert of dwarf_version >= 4
909         with assert on use_debug_types.
910         (size_of_die): Likewise.
911         (unmark_dies): Likewise.
912         (value_format): Decide AT_ref_external form on use_debug_types.
913         (output_die): Replace dwarf_version version check guard with
914         use_debug_types where appropriate.
915         (modified_type_die): Likewise.
916         (gen_reference_type_die): Likewise.
917         (dwarf2out_start_source_file): Likewise.
918         (dwarf2out_end_source_file): Likewise.
919         (prune_unused_types_walk_attribs): Likewise.
920         (dwarf2out_finish): Likewise.
921
922 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
923
924         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
925
926 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
927
928         PR rtl-optimization/48332
929         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
930         mode of input operand N and modeN to its actual mode.
931
932 2011-03-30  Jeff Law  <law@redhat.com>
933
934         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
935         define accessor macro.
936         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
937         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
938         (reg_equiv_init): Likewise.
939         (reg_equivs_size): New variable.
940         (reg_equiv_init_size): Remove.
941         (allocate_initial_values): Move prototype to here from....
942         * integrate.h (allocate_initial_values): Remove prototype.
943         * integrate.c: Include reload.h.
944         (allocate_initial_values): Corresponding changes.
945         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
946         (fix_reg_equiv_init, no_equiv): Corresponding changes.
947         (update_equiv_regs): Corresponding changes.
948         (ira): Corresponding changes.
949         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
950         (push_secondary_reload): Corresponding changes.
951         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
952         (make_memloc, find_reloads_address): Corresponding changes.
953         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
954         (find_reloads_address_1): Corresponding changes.
955         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
956         (refers_to_regno_for_reload_p): Corresponding changes.
957         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
958         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
959         * reload1.c: Include ggc.h.
960         (grow_reg_equivs): New function.
961         (replace_pseudos_in, reload): Corresponding changes.
962         (calculate_needs_all_insns, alter_regs): Corresponding changes.
963         (eliminate_regs_1, elimination_effects): Corresponding changes.
964         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
965         (delete_output_reload): Likewise.
966         * caller-save.c (mark_referenced_regs): Corresponding changes.
967         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
968         * frv/predicates.md (frv_load_operand): Corresponding changes.
969         * microblaze/microblaze.c (double_memory_operand): Corresponding
970         changes.
971         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
972         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
973         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
974         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
975         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
976         changes.
977         * pa/pa.c (emit_move_sequence): Corresponding changes.
978         * vax/vax.c (nonindexed_address_p): Corresponding changes.
979
980 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
981
982         PR target/47551
983         * config/arm/arm.c (coproc_secondary_reload_class): Handle
984         structure modes.  Don't check neon_vector_mem_operand for
985         vector or structure modes.
986
987 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
988             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
989
990         PR target/43590
991         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
992         operand 1 and reshuffle the operands to match.
993         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
994
995 2011-03-30  Christian Schüler  <cschueler@gmx.de>
996
997         PR driver/48208
998         * config/c.opt (F): Added 'Driver' to -F option.
999
1000         PR driver/48260
1001         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
1002           handler function.
1003         * config/darwin.opt: Added '-arch' option.
1004
1005 2011-03-30  Nick Clifton  <nickc@redhat.com>
1006
1007         * config/rx/rx.md: Add peepholes and patterns to combine
1008         extending loads and simple arithmetic instructions.
1009         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
1010         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
1011         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
1012         modes to use pre-decrement and post-increment addressing.
1013         (rx_is_restricted_memory_address): Add range checking of REG+INT
1014         addresses.
1015         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
1016         (rx_memory_move_cost): Adjust cost of stores.
1017         (rx_adjust_insn_length): New function.
1018
1019 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
1020
1021         PR c/48305
1022         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
1023         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
1024         matching arg00/arg01 types.
1025
1026 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1027
1028         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
1029         last_location to UNKNOWN_LOCATION.
1030
1031 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1032
1033         PR target/48349
1034         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
1035         FLOAT_SSE_REGS.
1036
1037 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
1038             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1039
1040         PR bootstrap/48337
1041         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
1042         Init(PROCESSOR_V7).
1043         (sparc_cpu): Likewise.
1044         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
1045         PROCESSOR_V7.
1046
1047 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1048
1049         PR target/48336
1050         PR middle-end/48342
1051         PR rtl-optimization/48345
1052         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
1053         hard regs for given mode from profitable regs when doing secondary
1054         allocation.
1055
1056 2011-03-29  Jeff Law  <law@redhat.com>
1057
1058         PR bootstrap/48327
1059         * tree-ssa-threadupdate.c (struct redirection_data): Remove
1060         do_not_duplicate field.
1061         (lookup_redirection_data): Corresponding changes.
1062         (create_duplicates): Always create a template block.
1063         (redirect_edges): Remove code which reused the original block
1064         when it was going to become unreachable code.
1065         (thread_block): Don't set do_not_duplicate field.
1066
1067 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
1068
1069         * lto-opts.c (register_user_option_p, lto_register_user_option):
1070         Make type argument unsigned.
1071         * lto-streamer.h (lto_register_user_option): Make type argument
1072         unsigned.
1073         * opth-gen.awk: Make CL_* macros unsigned.
1074         * opts-common.c (find_opt): Make lang_mask argument unsigned.
1075         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
1076         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
1077         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
1078         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
1079         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
1080         (find_opt): Make lang_mask argument unsigned.
1081
1082 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1083
1084         PR rtl-optimization/48331
1085         PR rtl-optimization/48334
1086         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
1087         for any used algorithm.
1088
1089 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
1090
1091         * ira-conflicts.c (build_object_conflicts): Add unused attribute
1092         to parent_max.
1093
1094 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
1097         (alpha_option_override): Don't set alpha_sr_alias_set.
1098         (emit_frame_store_1): Use gen_frame_mem rather than calling
1099         set_mem_alias_set.
1100         (alpha_expand_epilogue): Ditto.
1101
1102 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
1103
1104         PR tree-optimization/48290
1105         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
1106         vectorization, check that relevant phis in the basic block after
1107         the inner loop are really inner loop's exit phis.
1108
1109 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
1110
1111         PR debug/48190
1112         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
1113         (cached_dw_loc_list_def): New structure.
1114         (cached_dw_loc_list): New typedef.
1115         (cached_dw_loc_list_table): New variable.
1116         (cached_dw_loc_list_table_hash): New function.
1117         (cached_dw_loc_list_table_eq): Likewise.
1118         (add_location_or_const_value_attribute): Take a bool cache_p.
1119         Cache the list when the parameter is true.
1120         (gen_formal_parameter_die): Update caller.
1121         (gen_variable_die): Likewise.
1122         (dwarf2out_finish): Likewise.
1123         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
1124         while generating debug info for the decl.
1125         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
1126         (dwarf2out_init): Initialize cached_dw_loc_list_table.
1127         (resolve_addr): Cache the result of resolving a chain of
1128         location lists.
1129
1130 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
1131
1132         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
1133         conflict object hard regset nodes have intersecting hard reg sets.
1134
1135         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
1136         after regstat_init_n_sets_and_refs.
1137
1138         * ira.c: Add more comments at the top.
1139         (setup_stack_reg_pressure_class, setup_pressure_classes):
1140         Add comments how we compute the register pressure classes.
1141         (setup_allocno_and_important_classes): Add more comments.
1142         (setup_class_translate_array, reorder_important_classes)
1143         (setup_reg_class_relations): Add comments.
1144
1145         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
1146         start of the file.
1147
1148         * ira-color.c: Add 2011 to the Copyright line.
1149         (assign_hard_reg):  Add more comments.
1150         (improve_allocation): Ditto.
1151
1152         * ira-costs.c: Add 2011 to the Copyright line.
1153         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
1154         comments.
1155         (setup_regno_cost_classes_by_mode): Ditto.
1156
1157         Initial patches from ira-improv branch:
1158
1159         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
1160
1161         * ira-build.c: (ira_create_object): Remove initialization of
1162         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
1163         (ira_create_allocno): Remove initialization of
1164         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
1165         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
1166         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1167         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
1168         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
1169         Initialize ALLOCNO_ADD_DATA.
1170         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
1171         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
1172         ALLOCNO_REG.
1173         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
1174         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
1175
1176         * ira.c (ira_reallocate): Remove.
1177         (setup_pressure_classes): Call
1178         ira_init_register_move_cost_if_necessary.  Use
1179         ira_register_move_cost instead of ira_get_register_move_cost.
1180         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
1181         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
1182
1183         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
1184         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
1185         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
1186         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
1187         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
1188         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
1189         Fix formatting.
1190         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1191         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1192         (struct allocno_color_data): New.
1193         (allocno_color_data_t): New typedef.
1194         (allocno_color_data): New definition.
1195         (ALLOCNO_COLOR_DATA): New macro.
1196         (struct object_color_data): New.
1197         (object_color_data_t): New typedef.
1198         (object_color_data): New definition.
1199         (OBJECT_COLOR_DATA): New macro.
1200         (update_copy_costs, calculate_allocno_spill_cost): Call
1201         ira_init_register_move_cost_if_necessary.  Use
1202         ira_register_move_cost instead of ira_get_register_move_cost.
1203         (move_spill_restore, update_curr_costs): Ditto.
1204         (allocno_spill_priority): Make it inline.
1205         (color_pass): Allocate and free allocno_color_dat and object_color_data.
1206         (struct coalesce_data, coalesce_data_t): New.
1207         (allocno_coalesce_data): New definition.
1208         (ALLOCNO_COALESCE_DATA): New macro.
1209         (merge_allocnos, coalesced_allocno_conflict_p): Use
1210         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
1211         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
1212         (coalesce_allocnos): Ditto.
1213         (setup_coalesced_allocno_costs_and_nums): Ditto.
1214         (collect_spilled_coalesced_allocnos): Ditto.
1215         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
1216         (setup_slot_coalesced_allocno_live_ranges): Ditto.
1217         (coalesce_spill_slots): Ditto.
1218         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
1219         free allocno_coalesce_data.
1220
1221         * ira-conflicts.c: Fix formatting.
1222         (process_regs_for_copy): Call
1223         ira_init_register_move_cost_if_necessary.  Use
1224         ira_register_move_cost instead of ira_get_register_move_cost.
1225         (build_object_conflicts): Optimize.
1226
1227         * ira-costs.c (record_reg_classes): Optimize.  Call
1228         ira_init_register_move_cost_if_necessary.  Use
1229         ira_register_move_cost, ira_may_move_in_cost, and
1230         ira_may_move_out_cost instead of ira_get_register_move_cost and
1231         ira_get_may_move_cost.
1232         (record_address_regs): Ditto.
1233         (scan_one_insn): Optimize.
1234         (find_costs_and_classes): Optimize.
1235         (process_bb_node_for_hard_reg_moves): Call
1236         ira_init_register_move_cost_if_necessary.  Use
1237         ira_register_move_cost instead of ira_get_register_move_cost.
1238
1239         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
1240         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
1241         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
1242         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
1243         definitions.
1244         (ira_initiate_emit_data, ira_finish_emit_data)
1245         (create_new_allocno): New functions.
1246         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1247         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
1248         Use ira_register_move_cost instead of ira_get_register_move_cost.
1249
1250         * ira-int.h: Fix some comments.
1251         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
1252         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1253         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
1254         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
1255         add_data.
1256         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
1257         bitfield after mode.  Make hard_regno a short int.  Make
1258         hard_regno short.  Remove first_coalesced_allocno and
1259         next_coalesced_allocno.  Move mem_optimized_dest_p,
1260         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
1261         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
1262         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
1263         temp, colorable_p.  Add new member add_data.
1264         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
1265         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
1266         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
1267         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
1268         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
1269         (ALLOCNO_ADD_DATA): New macro.
1270         (ira_emit_data_t): New typedef.
1271         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
1272         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
1273         from struct ira_allocno.
1274         (ALLOCNO_EMIT_DATA): New macro.
1275         (ira_allocno_emit_data, allocno_emit_reg): New.
1276         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
1277         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1278         (OBJECT_ADD_DATA): New macro.
1279         (ira_reallocate): Remove.
1280         (ira_initiate_emit_data, ira_finish_emit_data): New.
1281         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
1282         (ira_init_register_move_cost_if_necessary): New.
1283         (ira_object_conflict_iter_next): Merge into
1284         ira_object_conflict_iter_cond.
1285         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1286
1287         * ira-live.c: (process_single_reg_class_operands): Call
1288         ira_init_register_move_cost_if_necessary.  Use
1289         ira_register_move_cost instead of ira_get_register_move_cost.
1290
1291         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
1292
1293         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
1294
1295         * ira-costs.c: Fix formatting.
1296         (cost_classes, cost_classes_num): Remove.
1297         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
1298         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
1299         (cost_classes_del, cost_classes_htab): New.
1300         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
1301         (initiate_regno_cost_classes, setup_cost_classes): New.
1302         (setup_regno_cost_classes_by_aclass): New.
1303         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1304         (record_reg_classes): Use regno_cost_classes instead of
1305         cost_classes.  Move checking opposite operand up.
1306         (record_address_regs): Use regno_cost_classes
1307         instead of cost_classes.
1308         (scan_one_insn): Ditto.  Use always general register.
1309         (print_allocno_costs): Use regno_cost_classes instead of
1310         cost_classes.
1311         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
1312         (find_costs_and_classes): Set up cost classes for each registers.
1313         Use also their mode for this.  Use regno_cost_classes instead of
1314         cost_classes.
1315         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
1316         cost_classes.
1317         (free_ira_costs, ira_init_costs): Don't use cost_classes.
1318         (ira_costs, ira_set_pseudo_classes): Call
1319         initiate_regno_cost_classes and finish_regno_cost_classes.
1320
1321         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
1322
1323         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
1324
1325         * target.def (ira_cover_classes): Remove.
1326
1327         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1328
1329         * doc/tm.texi.in: Ditto.
1330
1331         * ira-conflicts.c: Remove mentioning cover classes from the file.
1332         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
1333         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
1334
1335         * targhooks.c (default_ira_cover_classes): Remove.
1336
1337         * targhooks.h (default_ira_cover_classes): Ditto.
1338
1339         * haifa-sched.c: Remove mentioning cover classes from the file.
1340         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
1341         ira_pressure_classes and ira_pressure_classes_num instead of
1342         ira_reg_class_cover_size and ira_reg_class_cover.  Use
1343         sched_regno_pressure_class instead of sched_regno_cover_class.
1344         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
1345         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1346
1347         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
1348         classes from the file.
1349         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
1350         (struct object_hard_regs, struct object_hard_regs_node): New.
1351         (struct ira_object): New members profitable_hard_regs,
1352         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
1353         (struct ira_allocno): Rename cover_class to aclass.  Rename
1354         cover_class_cost and updated_cover_class_cost to class_cost and
1355         updated_class_cost.  Remove splay_removed_p and
1356         left_conflict_size.  Add new members colorable_p.
1357         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
1358         (ALLOCNO_COLORABLE_P): New macro.
1359         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
1360         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
1361         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
1362         (OBJECT_...): Rename parameter C to O.
1363         (OBJECT_PROFITABLE_HARD_REGS): New macro.
1364         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
1365         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
1366         (struct target_ira_int): New members x_ira_max_memory_move_cost,
1367         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
1368         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
1369         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
1370         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
1371         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
1372         x_ira_reg_class_subunion.
1373         (ira_max_memory_move_cost, ira_max_register_move_cost)
1374         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
1375         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
1376         (ira_important_class_nums, ira_reg_class_superunion): New macros.
1377         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1378         (ira_reg_class_union): Rename to ira_reg_class_subunion.
1379         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
1380         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
1381         (ira_tune_allocno_costs_and_cover_classes): Rename to
1382         ira_tune_allocno_costs.
1383         (ira_debug_hard_regs_forest): New.
1384         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
1385         (ira_object_conflict_iter_next): Fix comments.
1386         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1387         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
1388         cover_class to aclass.
1389         (ira_allocate_and_accumulate_costs): Ditto.
1390         (ira_allocate_and_set_or_copy_costs): Ditto.
1391
1392         * opts.c (decode_options): Remove ira_cover_class check.
1393
1394         * ira-color.c: Remove mentioning cover classes from the file.  Use
1395         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
1396         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
1397         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
1398         (splay-tree.h): Remove include.
1399         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
1400         before copy_freq_compare_func.
1401         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
1402         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
1403         New definitions.
1404         (hard_regs_roots, hard_regs_node_vec): Ditto.
1405         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
1406         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
1407         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
1408         (create_new_object_hard_regs_node): Ditto.
1409         (add_new_object_hard_regs_node_to_forest): Ditto.
1410         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1411         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
1412         Ditto.
1413         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
1414         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
1415         (remove_unused_object_hard_regs_nodes): Ditto.
1416         (enumerate_object_hard_regs_nodes): Ditto.
1417         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
1418         (object_hard_regs_subnode_t): Ditto.
1419         (struct object_hard_regs_subnode): Ditto.
1420         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
1421         (setup_object_hard_regs_subnode_index): Ditto.
1422         (get_object_hard_regs_subnodes_num): Ditto.
1423         (form_object_hard_regs_nodes_forest): Ditto.
1424         (finish_object_hard_regs_nodes_tree): Ditto.
1425         (finish_object_hard_regs_nodes_forest): Ditto.
1426         (allocnos_have_intersected_live_ranges_p): Rename to
1427         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
1428         (pseudos_have_intersected_live_ranges_p): Rename to
1429         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
1430         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
1431         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
1432         (update_copy_costs): Remove assert.  Skip cost update if the hard
1433         reg does not belong the class.
1434         (assign_hard_reg): Process only profitable hard regs.
1435         (uncolorable_allocnos_num): Make it scalar.
1436         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
1437         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
1438         and ira_reg_class_max_nregs.
1439         (bucket_allocno_compare_func): Check frequency first.
1440         (sort_bucket): Add compare function as a parameter.
1441         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
1442         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
1443         (push_allocno_to_stack): Rewrite for checking new allocno
1444         colorability.
1445         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
1446         (push_only_colorable): Pass new parameter to sort_bucket.
1447         (push_allocno_to_spill): Remove.
1448         (allocno_spill_priority_compare): Make it inline and rewrite.
1449         (splay_tree_allocate, splay_tree_free): Remove.
1450         (allocno_spill_sort_compare): New function.
1451         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
1452         build and use splay tree.  Choose first allocno in uncolorable
1453         allocno bucket to spill.  Remove setting spill cost.
1454         (all_conflicting_hard_regs): Remove.
1455         (setup_allocno_available_regs_num): Check only profitable hard
1456         regs.  Print info about hard regs nodes.
1457         (setup_allocno_left_conflicts_size): Remove.
1458         (put_allocno_into_bucket): Don't call
1459         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
1460         (improve_allocation): New.
1461         (color_allocnos): Call setup_profitable_hard_regs,
1462         form_object_hard_regs_nodes_forest, improve_allocation,
1463         finish_object_hard_regs_nodes_forest.  Setup spill cost.
1464         (print_loop_title): Use pressure classes.
1465         (color_allocnso): Ditto.
1466         (do_coloring): Remove allocation and freeing splay_tree_node_pool
1467         and allocnos_for_spilling.
1468         (ira_sort_regnos_for_alter_reg): Don't setup members
1469         {first,next}_coalesced_allocno.
1470         (color): Remove allocating and freeing removed_splay_allocno_vec.
1471         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
1472         prohibited_class_mode_regs.
1473
1474         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
1475         formatting.
1476         (update_allocno_pressure_excess_length): Use pressure classes.
1477         (inc_register_pressure, dec_register_pressure): Check for pressure
1478         class.
1479         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
1480         pressure class.  Use ira_reg_class_nregs instead of
1481         ira_reg_class_max_nregs.
1482         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
1483         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
1484         (single_reg_class): Use ira_reg_class_nregs instead of
1485         ira_reg_class_max_nregs.
1486         (process_bb_node_lives): Use pressure classes.
1487
1488         * ira-emit.c: Remove mentioning cover classes from the file.  Use
1489         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
1490         (change_loop): Use pressure classes.
1491         (modify_move_list): Call ira_set_allocno_class instead of
1492         ira_set_allocno_cover_class.
1493
1494         * ira-build.c: Remove mentioning cover classes from the file.  Use
1495         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
1496         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
1497         ALLOCNO_UPDATED_CLASS_COST instead of
1498         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
1499         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
1500         (ira_create_allocno): Remove initialization of
1501         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
1502         ALLOCNO_COLORABLE_P.
1503         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
1504         Update conflict regs for the objects.
1505         (create_cap_allocno): Remove assert.  Don't propagate
1506         ALLOCNO_AVAILABLE_REGS_NUM.
1507         (ira_free_allocno_costs): New function.
1508         (finish_allocno): Change a part of code into call of
1509         ira_free_allocno_costs.
1510         (low_pressure_loop_node_p): Use pressure classes.
1511         (object_range_compare_func): Don't compare classes.
1512         (setup_min_max_conflict_allocno_ids): Ditto.
1513
1514         * loop-invariant.c: Remove mentioning cover classes from the file.
1515         Use ira_pressure_classes and ira_pressure_classes_num instead of
1516         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
1517         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
1518         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1519         Use reg_allocno_class instead of reg_cover_class.
1520         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
1521         STACK_REG_COVER_CLASS.
1522         (get_regno_cover_class): Rename to get_regno_pressure_class.
1523         (move_loop_invariants): Initialize and finalize regstat.
1524
1525         * ira.c: Remove mentioning cover classes from the file.  Add
1526         comments about coloring without cover classes.  Use ALLOCNO_CLASS
1527         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
1528         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
1529         setup_class_subset_and_memory_move_costs.
1530         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
1531         (setup_cover_and_important_classes): Rename to
1532         setup_allocno_and_important_classes.
1533         (setup_class_translate_array): New.
1534         (setup_class_translate): Call it for allocno and pressure classes.
1535         (cover_class_order): Rename to allocno_class_order.
1536         (comp_reg_classes_func): Use ira_allocno_class_translate instead
1537         of ira_class_translate.
1538         (reorder_important_classes): Set up ira_important_class_nums.
1539         (setup_reg_class_relations): Set up ira_reg_class_superunion.
1540         (print_class_cover): Rename to print_classes.  Add parameter.
1541         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
1542         Print pressure classes too.
1543         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
1544         setup_reg_subclasses.
1545         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1546         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
1547         (setup_prohibited_class_mode_regs): Use
1548         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1549         (clarify_prohibited_class_mode_regs): New function.
1550         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
1551         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
1552         (ira_init_once): Initialize them.
1553         (free_register_move_costs): Process them.
1554         (ira_init): Move calls of find_reg_classes and
1555         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
1556         Call clarify_prohibited_class_mode_regs.
1557         (ira_no_alloc_reg): Remove.
1558         (too_high_register_pressure_p): Use pressure classes.
1559
1560         * sched-deps.c: Remove mentioning cover classes from the file.
1561         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
1562         ira_pressure_classes and ira_pressure_classes_num instead of
1563         ira_reg_class_cover_size and ira_reg_class_cover.
1564         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
1565         sched_regno_pressure_class instead of sched_regno_cover_class.
1566         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
1567         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
1568
1569         * ira.h: Add 2010 to Copyright.
1570         (ira_no_alloc_reg): Remove external.
1571         (struct target_ira): Rename x_ira_hard_regno_cover_class,
1572         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
1573         x_ira_class_translate to x_ira_hard_regno_allocno_class,
1574         x_ira_allocno_classes_num, x_ira_allocno_classes, and
1575         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
1576         x_ira_pressure_classes, x_ira_pressure_class_translate, and
1577         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
1578         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
1579         x_ira_no_alloc_regs.
1580         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1581         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
1582         ira_allocno_classes_num and ira_allocno_classes.
1583         (ira_class_translate): Rename to ira_allocno_class_translate.
1584         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
1585         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
1586         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
1587         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
1588         (ira_no_alloc_regs): New.
1589
1590         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
1591         classes from the file.  Use ALLOCNO_CLASS instead of
1592         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
1593         ALLOCNO_COVER_CLASS_COST.
1594         (regno_cover_class): Rename to regno_aclass.
1595         (record_reg_classes): Use ira_reg_class_subunion instead of
1596         ira_reg_class_union.
1597         (record_address_regs): Check overflow.
1598         (scan_one_insn): Ditto.
1599         (print_allocno_costs): Print total mem cost fore regional allocation.
1600         (print_pseudo_costs): Use REG_N_REFS.
1601         (find_costs_and_classes): Use classes intersected with them on the
1602         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
1603         ira_reg_class_union.  Use ira_allocno_class_translate and
1604         regno_aclass instead of ira_class_translate and regno_cover_class.
1605         Modify code for finding regno_aclass.  Setup preferred classes for
1606         the next pass.
1607         (setup_allocno_cover_class_and_costs): Rename to
1608         setup_allocno_class_and_costs.  Use regno_aclass instead of
1609         regno_cover_class.  Use ira_set_allocno_class instead of
1610         ira_set_allocno_cover_class.
1611         (init_costs, finish_costs): Use regno_aclass instead of
1612         regno_cover_class.
1613         (ira_costs): Use setup_allocno_class_and_costs instead of
1614         setup_allocno_cover_class_and_costs.
1615         (ira_tune_allocno_costs_and_cover_classes): Rename to
1616         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
1617         by processing objects.  Use ira_reg_class_max_nregs instead of
1618         ira_reg_class_nregs.
1619
1620         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
1621
1622         * sched-int.h: Remove mentioning cover classes from the file.
1623         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
1624
1625         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
1626         classes from the file.
1627         (struct reg_pref): Rename coverclass into allocnoclass.
1628         (reg_cover_class): Rename to reg_allocno_class.
1629
1630         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1631
1632         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
1633
1634         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1635
1636         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
1637
1638         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
1639
1640         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
1641
1642         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
1643
1644         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
1645
1646         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
1647
1648         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
1649
1650         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
1651         (i386_ira_cover_classes): Ditto.
1652
1653         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1654
1655         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
1656
1657         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
1658
1659         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
1660
1661         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
1662
1663         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
1664
1665         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
1666         (mips_ira_cover_classes): Ditto.
1667
1668         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
1669
1670         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
1671
1672         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
1673
1674         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
1675
1676         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
1677
1678         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
1679         (IRA_COVER_CLASSES_VSX): Ditto.
1680
1681         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
1682         (rs6000_ira_cover_classes): Ditto.
1683
1684         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
1685
1686         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
1687
1688         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
1689
1690         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
1691
1692         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
1693
1694         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
1695
1696         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
1697
1698         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
1699
1700         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
1701
1702         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
1703
1704 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
1705
1706         PR debug/48253
1707         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
1708         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
1709         dw_fde_unlikely_section_end_label, cold_in_std_section,
1710         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
1711         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
1712         fields.
1713         (output_fde): Use dw_fde_second_{begin,end} if second is
1714         true, otherwise dw_fde_{begin,end}.
1715         (output_call_frame_info): Test dw_fde_second_begin != NULL
1716         instead of dw_fde_switched_sections.
1717         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
1718         fields, initialize new fields.  Initialize in_std_section
1719         unconditionally from the first partition.
1720         (dwarf2out_end_epilogue): Don't override dw_fde_end when
1721         dw_fde_second_begin is non-NULL.
1722         (dwarf2out_switch_text_section): Stop initializing removed
1723         dw_fde_struct fields, initialize new fields, initialize
1724         also dw_fde_end here.  Set dw_fde_switch_cfi even when
1725         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
1726         (struct var_loc_list_def): Add last_before_switch field.
1727         (arange_table, arange_table_allocated, arange_table_in_use,
1728         ARANGE_TABLE_INCREMENT, add_arange): Removed.
1729         (size_of_aranges): Count !in_std_section and !second_in_std_section
1730         hunks in fdes, instead of looking at arange_table_in_use.
1731         (output_aranges): Add aranges_length argument, don't call
1732         size_of_aranges here.  Instead of using aranges_table*
1733         emit ranges for fdes when !in_std_section resp.
1734         !second_in_std_section.
1735         (dw_loc_list): Break ranges crossing section switch.
1736         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
1737         use dw_fde_second_end instead of dw_fde_end as end of last range.
1738         (gen_subprogram_die): Don't call add_arange.  Use
1739         dw_fde_{begin,end} for first partition and if switched
1740         section dw_fde_second_{begin,end} for the second.
1741         (var_location_switch_text_section_1,
1742         var_location_switch_text_section): New functions.
1743         (dwarf2out_begin_function): Initialize cold_text_section even
1744         when function_section () isn't text_section.
1745         (prune_unused_types): Don't walk arange_table.
1746         (dwarf2out_finish): Don't needlessly test
1747         flag_reorder_blocks_and_partition when testing cold_text_section_used.
1748         If info_section_emitted, call size_of_aranges and if it indicates
1749         non-empty .debug_aranges, call output_aranges with the computed
1750         size.  Stop using removed dw_fde_struct fields, use
1751         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
1752         for second.
1753
1754         PR debug/48203
1755         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
1756         create ENTRY_VALUE if incoming or address of incoming's MEM
1757         is a hard REG.
1758         * dwarf2out.c (mem_loc_descriptor): Don't emit
1759         DW_OP_GNU_entry_value of DW_OP_fbreg.
1760         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
1761         on ENTRY_VALUE is able to find the canonical parameter VALUE.
1762         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
1763         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
1764         ENTRY_VALUE_EXPs.
1765         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
1766         is a REG_P or MEM_P with REG_P address, compute hash directly
1767         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
1768         (preserve_only_constants): Don't clear VALUES forwaring
1769         ENTRY_VALUE to some other VALUE.
1770
1771 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
1772
1773         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
1774         instead of GEN_INT.
1775
1776 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1777
1778         * cfgexpand.c (expand_gimple_cond): Always set the source location and
1779         block before expanding the statement.
1780         (expand_gimple_stmt_1): Likewise.  Set them here...
1781         (expand_gimple_stmt): ...and not here.  Tidy.
1782         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
1783         unknown.
1784
1785 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1786
1787         * Makefile.in: New rule for cprop.o.
1788         * gcse.c: Move constant/copy propagation to cprop.c.
1789         (compute_local_properties): Only handle expression tables.
1790         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
1791         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
1792         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
1793         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
1794         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
1795         compute_cprop_data, find_used_regs, try_replace_reg,
1796         find_avail_set, cprop_jump, constprop_register, cprop_insn,
1797         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
1798         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
1799         find_bypass_set, reg_killed_on_edge, bypass_block,
1800         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
1801         execute_rtl_cprop, pass_rtl_cprop): Move to...
1802         * cprop.c: ...here.  New file, constant/copy propagation for RTL
1803         moved from gcse.c to here with minor cleanups in duplicated code.
1804
1805 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1806
1807         * config/i386/i386.c (flag_opts): Fix a typo in
1808         -mavx256-split-unaligned-store.
1809
1810 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1811
1812         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1813         LIBCALL_VALUE): Remove macros.
1814         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1815         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1816         (h8300_function_value, h8300_libcall_value,
1817         h8300_function_value_regno_p): New functions.
1818
1819 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1820
1821         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
1822
1823 2011-03-28  Jeff Law  <law@redhat.com>
1824
1825         * tree-ssa-threadupdate.c (redirect_edges): Call
1826         create_edge_and_update_destination_phis as needed.
1827         (create_edge_and_update_destination_phis): Accept new BB argument.
1828         All callers updated.
1829         (thread_block): Do not update the profile when threading around
1830         intermediate blocks.
1831         (thread_single_edge): Likewise.
1832         (determine_bb_domination_status): If BB is not a successor of the
1833         loop header, return NONDOMINATING.
1834         (register_jump_thread): Note when we register a jump thread around
1835         an intermediate block.
1836         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
1837         (thread_across_edge): Use it.
1838
1839 2011-03-28  Tristan Gingold  <gingold@adacore.com>
1840
1841         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
1842         when for_return is 2.
1843
1844 2011-03-28  Jeff Law  <law@redhat.com>
1845
1846         * var-tracking.c (canonicalize_values_mark): Delete unused
1847         lhs assignment.
1848         (canonicalize_values_star, set_variable_part): Likewise.
1849         (clobber_variable_part, delete_variable_part): Likewise.
1850
1851 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1852
1853         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
1854
1855 2011-03-28  Martin Jambor  <mjambor@suse.cz>
1856
1857         * tree-inline.c (expand_call_inline): Do not check that destination
1858         node is analyzed.
1859         (optimize_inline_calls): Assert that destination node is analyzed.
1860         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
1861         not call tree_lowering_passes.
1862         * cgraph.h (cgraph_analyze_function): Declare.
1863         * cgraphunit.c (cgraph_analyze_function): Make public.
1864
1865 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
1866
1867         * config/sparc/sparc-opts.h: New.
1868         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
1869         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
1870         (sparc_option_override): Store processor_type enumeration rather
1871         than string in cpu_default.  Remove name and enumeration from
1872         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
1873         without using sparc_select.  Use target_flags_explicit instead of
1874         fpu_option_set.
1875         * config/sparc/sparc.h (enum processor_type): Move to
1876         sparc-opts.h.
1877         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
1878         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
1879         HeaderInclude entry.
1880         (mcpu=, mtune=): Use Var and Enum.
1881         (sparc_processor_type): New Enum and EnumValue entries.
1882
1883 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1884             Iain Sandoe  <iains@gcc.gnu.org>
1885
1886         PR target/48245
1887         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
1888
1889 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1890
1891         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
1892         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
1893         Insert new statements at it in lieu of STMT.
1894         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
1895         * tree-vect-stmts.c (vectorizable_store): Likewise.
1896         (vectorizable_load): Likewise.
1897
1898 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
1899
1900         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
1901         (divtf3): Ditto.
1902         (multf3): Ditto.
1903         (subtf3): Ditto.
1904
1905 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1906
1907         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
1908         unaligned 256bit load/store.
1909         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
1910         (*avx_movdqu<avxmodesuffix>): Likewise.
1911
1912 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1913
1914         PR target/48288
1915         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
1916         * config/pa/pa.md (iordi3): Use new predicate in expander.
1917         (iorsi3): Likewise.
1918
1919 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
1920
1921         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
1922         FUNCTION_VALUE_REGNO_P): Remove macros.
1923         * config/mips/mips-protos.h (mips_function_value): Remove.
1924         * config/mips/mips.c (mips_function_value): Rename to...
1925         (mips_function_value_1): ... this. Make static.  Handle receiving
1926         the function type in 'fn_decl_or_type' argument.
1927         (mips_function_value, mips_libcall_value,
1928         mips_function_value_regno_p): New function.
1929         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1930         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1931
1932 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1933
1934         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
1935         and -mavx256-split-unaligned-store.
1936         (ix86_option_override_internal): Split 32-byte AVX unaligned
1937         load/store by default.
1938         (ix86_avx256_split_vector_move_misalign): New.
1939         (ix86_expand_vector_move_misalign): Use it.
1940
1941         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
1942         -mavx256-split-unaligned-store.
1943
1944         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
1945         256bit load/store.  Generate unaligned store on misaligned memory
1946         operand.
1947         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
1948         256bit load/store.
1949         (*avx_movdqu<avxmodesuffix>): Likewise.
1950
1951         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
1952         -mavx256-split-unaligned-store.
1953
1954 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1955
1956         PR target/38598
1957         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
1958         Update commentary.
1959
1960 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1961
1962         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
1963         opno arguments with an expand_operand.  Use create_input_operand.
1964         (mips_prepare_builtin_target): Delete.
1965         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
1966         functions.
1967         (mips_expand_builtin_direct): Use create_output_operand and
1968         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
1969         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
1970         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
1971
1972 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
1973
1974         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
1975         function.
1976         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1977
1978 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
1979
1980         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
1981         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
1982         basic blocks and call commit_edge_insertions directly.
1983         (fixup_abnormal_edges): Move from here to...
1984         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
1985         on the edges and return whether some have actually been inserted.
1986         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
1987         compensation code.
1988
1989 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
1990
1991         PR rtl-optimization/48144
1992         * sel-sched-ir.c (merge_history_vect): Factor out from ...
1993         (merge_expr_data): ... here.
1994         (av_set_intersect): Rename to av_set_code_motion_filter.
1995         Update all callers.  Call merge_history_vect when an expression
1996         is found in both sets.
1997         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
1998
1999 2011-03-26  Alan Modra  <amodra@gmail.com>
2000
2001         * config/rs6000/predicates.md (word_offset_memref_op): Handle
2002         cmodel medium addresses.
2003         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
2004         64-bit gpr loads and stores.
2005         (rs6000_secondary_reload_ppc64): New function.
2006         * config/rs6000/rs6000-protos.h: Declare it.
2007         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
2008
2009 2011-03-26  Alan Modra  <amodra@gmail.com>
2010
2011         PR target/47487
2012         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
2013         GNU Go in traceback table.
2014
2015 2011-03-25  Richard Henderson  <rth@redhat.com>
2016
2017         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
2018         if there are exactly 6 operands.
2019         (set_storage_via_setmem): Similarly.
2020
2021 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2022
2023         * collect2.c (write_c_file_stat): Handle backslash
2024         as right-hand directory separator.
2025         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
2026         checking just for slash.
2027         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
2028         instead of checking for trailing slash.
2029         * gcc.c (record_temp_file): Use filename_cmp instead
2030         of strcmp.
2031         (do_spec_1): Likewise.
2032         (replace_outfile_spec_function): Likewise.
2033         (is_directory): Use filename_ncmp instead of strncmp.
2034         (print_multilib_info): Likewise.
2035         * gcov.c (find_source): Use filename_cmp instead
2036         instead of strcmp.
2037         (make_gcov_file_name): Fix order of slash/backslash
2038         checks.
2039         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
2040         (add_standard_paths): Likewise.
2041         * mips-tfile.c (saber_stop): Handle backslash.
2042         * prefix.c (update_path): Use filename_ncmp instead of
2043         strncmp.
2044         * profile.c (output_location): Use filename_cmp instead
2045         of strcmp.
2046         * read-md.c (handle_toplevel_file): Handle backslash.
2047         * tlink.c (frob_extension):  Likewise.
2048         * tree-cfg.c (same_line_p): Use filename_cmp instead of
2049         strcmp.
2050         * tree-dump.c (dequeue_and_dump): Handle backslash.
2051         * tree.c (get_file_function_name): Likewise.
2052         * gengtype.c (read_input_list): Likewise.
2053         (get_file_realbasename): Likewise.
2054         (get_output_file_with_visibility): Use filename_cmp
2055         instead of strcmp.
2056
2057 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
2058
2059         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
2060         case to VFPv1.
2061
2062 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2063
2064         * fold-const.c (expr_location_or): New function.
2065         (fold_truth_not_expr): Call it.
2066
2067 2011-03-25  Jeff Law  <law@redhat.com>
2068
2069         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
2070         va_end.
2071         * c-family/c-common.c (def_fn_type): Likewise.
2072         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
2073         * emit-rtl.c (gen_rtvec): Likewise.
2074         * lto/lto-lang.c (def_fn_type): Likewise.
2075
2076 2011-03-25  Richard Guenther  <rguenther@suse.de>
2077
2078         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
2079         also generate copies.
2080         (fini_copy_prop): Handle constant values properly.
2081
2082 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
2083
2084         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
2085         mode size instead of bitsize with DWARF2_ADDR_SIZE.
2086         (hash_loc_operands, compare_loc_operands): Handle
2087         DW_OP_GNU_entry_value.
2088
2089 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2090
2091         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
2092         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
2093         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
2094         comment and use macro TARGET_64BIT_MS_ABI instead.
2095         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
2096         and change default behavior for 32-bit MS_ABI.
2097         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
2098         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
2099         32-bit, too.
2100         (ix86_cfun_abi): Likewise.
2101         (ix86_maybe_switch_abi): Adjust comment.
2102         (init_cumulative_args): Check for bit-ness in MS_ABI case.
2103         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
2104         instead of checking for SYSV_ABI.
2105         (ix86_nsaved_sseregs): Likewise.
2106         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
2107         to 16 bytes.
2108         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
2109         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
2110         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
2111         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
2112         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
2113
2114 2011-03-25  Richard Guenther  <rguenther@suse.de>
2115
2116         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
2117         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2118         (verify_gimple): Remove.
2119         * tree-cfg.c (verify_gimple_call): Merge verification
2120         from verify_stmts.
2121         (verify_gimple_phi): Merge verification from verify_stmts.
2122         (verify_gimple_label): New function.
2123         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
2124         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
2125         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
2126         (verify_stmts): Rename to verify_gimple_in_cfg.
2127         (verify_gimple_in_cfg): New function.
2128         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
2129         * tree-ssa.c (verify_ssa): Likewise.
2130         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
2131
2132 2011-03-25  Richard Guenther  <rguenther@suse.de>
2133
2134         * passes.c (init_optimization_passes): Add FRE pass after
2135         early SRA.
2136
2137 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
2138             Andrew Stubbs  <ams@codesourcery.com>
2139
2140         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
2141         for Cortex-A8.
2142         (arm_movdi_vfp_cortexa8): New pattern.
2143         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
2144         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
2145         instructions when tuning for Cortex-A8.  Set attribute "arch".
2146         * config/arm/arm.md: Move include arm-tune.md up a bit.
2147         (define_attr "arch"): Add "onlya8" and "nota8" values.
2148         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
2149
2150 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
2151
2152         PR bootstrap/48282
2153         Revert:
2154         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2155
2156         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2157         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2158         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2159         * passes.c (init_optimization_passes): Move
2160         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2161
2162 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2163
2164         * c-typeck.c (comptypes_internal): Replace target
2165         hook call of comp_type_attributes by version in tree.c file.
2166         * gimple.c (gimple_types_compatible_p_1): Likewise.
2167         * tree-ssa.c (useless_type_conversion_p): Likewise.
2168         * tree.c (build_type_attribute_qual_variant): Likewise.
2169         (attribute_value_equal): New static helper function.
2170         (comp_type_attributes): New function.
2171         (merge_attributes): Use attribute_value_equal for comparison.
2172         (attribute_list_contained): Likewise.
2173         * tree.h (comp_type_attributes): New prototype.
2174
2175 2011-03-25  Richard Guenther  <rguenther@suse.de>
2176
2177         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
2178         of complex types at -O0.
2179         (verify_gimple_assign_binary): Likewise.
2180         (verify_gimple_assign_ternary): Likewise.
2181
2182 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2183
2184         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
2185         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
2186
2187 2011-03-24  Mark Wielaard  <mjw@redhat.com>
2188
2189         PR debug/48041
2190         * dwarf2out.c (output_abbrev_section): Only write table when
2191         abbrev_die_table_in_use > 1.
2192
2193 2011-02-24  Richard Henderson  <rth@redhat.com>
2194
2195         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
2196         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
2197         (alpha_expand_unaligned_load_words): Use extql.
2198         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
2199         (emit_insxl): Handle all modes for consistency.
2200
2201 2011-02-24  Richard Henderson  <rth@redhat.com>
2202
2203         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
2204         (alpha_expand_unaligned_load): Likewise.
2205         (alpha_expand_unaligned_store): Likewise.
2206         (alpha_expand_unaligned_load_words): Likewise.
2207         (alpha_expand_unaligned_store_words): Likewise.
2208         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
2209         (alpha_split_lock_test_and_set_12): Likewise.
2210         (print_operand, alpha_fold_builtin_extxx): Likewise.
2211         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
2212         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
2213         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
2214         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
2215         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
2216         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
2217         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
2218         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
2219         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
2220         (extwl, extll, extql): Similarly.
2221         (inswh, inslh, insqh): Similarly.
2222         (mskbl, mskwl, mskll, mskql): Similarly.
2223         (mskwh, msklh, mskqh): Similarly.
2224
2225 2011-02-24  Richard Henderson  <rth@redhat.com>
2226
2227         * config/alpha/alpha.md (attribute isa): Add er, ner.
2228         (attribute enabled): Handle them.
2229         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
2230
2231 2011-02-24  Richard Henderson  <rth@redhat.com>
2232
2233         * config/alpha/alpha.md (attribute isa): Add vms.
2234         (attribute enabled): Handle it.
2235         (*movsf): Merge *movsf_{nofix,fix,nofp}.
2236         (*movdf): Merge *movdf_{nofix,fix,nofp}.
2237         (*movtf): Rename from *movtf_internal for consistency.
2238         (*movsi): Merge with *movsi_nt_vms.
2239         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
2240         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
2241         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
2242         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
2243
2244 2011-02-24  Richard Henderson  <rth@redhat.com>
2245
2246         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
2247         (extendqisi2, extendhisi2): Likewise.
2248         (extendqidi2): Simplify BWX/non-BWX expansions.
2249         (extendhidi2): Similarly.
2250
2251 2011-02-24  Richard Henderson  <rth@redhat.com>
2252
2253         * config/alpha/alpha.md (attribute isa): New.
2254         (attribute enabled): New.
2255         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
2256         (zero_extendqisi2, zero_extendqidi2): Similarly.
2257         (zero_extendhisi2, zero_extendhidi2): Similarly.
2258         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
2259
2260 2011-02-24  Richard Henderson  <rth@redhat.com>
2261
2262         * config/alpha/predicates.md (input_operand): Revert last change;
2263         update comment to mention 32-bit VMS rather than Windows.
2264
2265 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2266
2267         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
2268         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
2269         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
2270         * passes.c (init_optimization_passes): Move
2271         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
2272
2273 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2274
2275         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
2276
2277 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2278
2279         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
2280         correctly.
2281
2282 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
2283
2284         PR debug/48204
2285         * simplify-rtx.c (simplify_const_unary_operation): Call
2286         real_convert when changing mode class with FLOAT_EXTEND.
2287
2288 2011-03-24  Nick Clifton  <nickc@redhat.com>
2289
2290         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
2291         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
2292         * config/rx/rx.c (rx_option_override): Set align_jumps,
2293         align_loops and align_labels if not set by the user.
2294         (rx_align_for_label): New function.
2295         (rx_max_skip_for_label): New function.
2296         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
2297         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
2298         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
2299         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
2300         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
2301
2302 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2303
2304         PR rtl-optimization/48263
2305         * optabs.c (expand_binop_directly): Reinstate convert_modes code
2306         and original commutative_p handling.  Use maybe_gen_insn.
2307
2308 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2309
2310         * reload.c (find_reloads_subreg_address): Add address_reloaded
2311         parameter and return true there if the full address has been
2312         reloaded.
2313         (find_reloads_toplev): Pass address_reloaded flag.
2314         (find_reloads_address_1): Don't use address_reloaded parameter.
2315
2316 2011-03-24  Jeff Law  <law@redhat.com>
2317
2318         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
2319         unused variable "ann".
2320         (remove_unused_locals): Likewise.
2321
2322         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
2323         statement.
2324
2325         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
2326         after it is freed.
2327
2328 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2329
2330         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
2331         for invalid symbolic addresses.
2332         (s390_secondary_reload): Don't use s390_check_symref_alignment for
2333         larl operands.
2334
2335 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2336
2337         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
2338         the argument in calls to fold_truth_not_expr.
2339
2340 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2341
2342         * tree.c (record_node_allocation_statistics): New function.
2343         (make_node_stat, copy_node_stat, build_string): Call it.
2344         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
2345         (build1_stat, build_omp_clause): Likewise.
2346
2347 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2348
2349         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
2350         last commit.
2351
2352 2011-03-24  Richard Guenther  <rguenther@suse.de>
2353
2354         PR tree-optimization/48271
2355         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
2356         blocks that still exist.
2357
2358 2011-03-24  Richard Guenther  <rguenther@suse.de>
2359
2360         PR tree-optimization/48270
2361         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
2362         not free datarefs before ddrs.
2363
2364 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2365
2366         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
2367         from the address built for a reference with variable offset.
2368
2369 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
2370
2371         PR target/48237
2372         * config/i386/i386.md (*movdf_internal_rex64): Do not split
2373         alternatives that can be handled with movq or movabsq insn.
2374         (*movdf_internal): Disable for !TARGET_64BIT.
2375         (*movdf_internal_nointeger): Ditto.
2376         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
2377
2378 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
2379
2380         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2381         (FUNCTION_ARG_ADVANCE): Likewise.
2382         * tm.texi.in: Change references to them to hook references.
2383         * tm.texi: Regenerate.
2384         * targhooks.c (default_function_arg): Eliminate check for target macro.
2385         (default_function_incoming_arg): Likewise.
2386         (default_function_arg_advance): Likewise.
2387         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2388         (function_arg_advance): Likewise.
2389         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2390
2391 2011-03-24  Richard Guenther  <rguenther@suse.de>
2392
2393         PR middle-end/48269
2394         * tree-object-size.c (addr_object_size): Do not double-account
2395         for MEM_REF offsets.
2396
2397 2011-03-24  Diego Novillo  <dnovillo@google.com>
2398
2399         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
2400         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
2401         (lto_input_data_block): Move from lto-opts.c.  Make extern.
2402         Update all users.
2403         (lto_input_string): Rename from input_string.  Make extern.
2404         Update all users.
2405         * lto-streamer-out.c (lto_output_string_with_length): Rename from
2406         output_string_with_length.
2407         Output 0 to indicate a non-NULL string.  Update all callers to
2408         not emit 0.
2409         (lto_output_string): Rename from output_string.  Make extern.
2410         Update all users.
2411         (lto_output_decl_state_streams): Make extern.
2412         (lto_output_decl_state_refs): Make extern.
2413         * lto-streamer.h (lto_input_string): Declare.
2414         (lto_input_data_block): Declare.
2415         (lto_output_string): Declare.
2416         (lto_output_string_with_length): Declare.
2417         (lto_output_decl_state_streams): Declare.
2418         (lto_output_decl_state_refs): Declare.
2419
2420 2011-03-24  Richard Guenther  <rguenther@suse.de>
2421
2422         PR tree-optimization/46562
2423         * tree.c (build_invariant_address): New function.
2424         * tree.h (build_invariant_address): Declare.
2425         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
2426         a renamed function moved ...
2427         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
2428         Take valueization callback parameter.
2429         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
2430         * gimple-fold.h: New file.
2431         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
2432         (ccp_fold, fold_const_aggregate_ref,
2433         fold_ctor_reference, fold_nonarray_ctor_reference,
2434         fold_array_ctor_reference, fold_string_cst_ctor_reference,
2435         get_base_constructor): Move ...
2436         * gimple-fold.c: ... here.
2437         (gimple_fold_stmt_to_constant_1): New function
2438         split out from ccp_fold.  Take a valueization callback parameter.
2439         Valueize all operands.
2440         (gimple_fold_stmt_to_constant): New wrapper function.
2441         (fold_const_aggregate_ref_1): New function split out from
2442         fold_const_aggregate_ref.  Take a valueization callback parameter.
2443         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
2444         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
2445         invariant POINTER_PLUS_EXPRs to invariant form.
2446         (vn_valueize): New function.
2447         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
2448         * tree-vrp.c (vrp_valueize): New function.
2449         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
2450         to fold statements to constants.
2451         * tree-ssa-pre.c (eliminate): Properly guard propagation of
2452         function declarations.
2453         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
2454         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
2455
2456 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
2457
2458         * config/h8300/predicates.md (jump_address_operand): Fix register
2459         mode check.
2460
2461 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
2462
2463         * doc/invoke.texi (max-stores-to-sink): Document.
2464         * params.h (MAX_STORES_TO_SINK): Define.
2465         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
2466         if either vectorization or if-conversion is disabled.
2467         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
2468         tree-vect-data-refs.c vect_equal_offsets.
2469         (dr_equal_offsets_p): New function.
2470         (find_data_references_in_bb): Remove static.
2471         * tree-data-ref.h (find_data_references_in_bb): Declare.
2472         (dr_equal_offsets_p): Likewise.
2473         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
2474         (vect_drs_dependent_in_basic_block): Update calls to
2475         vect_equal_offsets.
2476         (vect_check_interleaving): Likewise.
2477         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
2478         (cond_if_else_store_replacement): Rename to...
2479         (cond_if_else_store_replacement_1): ... this.  Change arguments and
2480         documentation.
2481         (cond_if_else_store_replacement): New function.
2482         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
2483         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
2484
2485 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
2486
2487         PR target/46934
2488         * config/arm/arm.md (casesi): Use the gen_int_mode() function
2489         to subtract lower bound instead of GEN_INT().
2490
2491 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
2492
2493         PR other/48179
2494         PR other/48221
2495         PR other/48234
2496         * doc/extend.texi (Alignment): Move section to match order in TOC.
2497         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
2498         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
2499
2500 2011-03-23  Jeff Law  <law@redhat.com>
2501
2502         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
2503         before removing the edge.
2504
2505         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
2506         it may have been freed by redirect_branch_edge or
2507         redirect_edge_succ_nodup.
2508
2509 2011-03-23  Richard Guenther  <rguenther@suse.de>
2510
2511         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
2512         (check_va_list_escapes): Likewise.
2513         (check_all_va_list_escapes): Likewise.
2514
2515 2011-03-23  Richard Guenther  <rguenther@suse.de>
2516
2517         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
2518         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
2519         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
2520         (alias.o): Likewise.
2521         (ipa-type-escape.o): Remove.
2522         (ipa-struct-reorg.o): Likewise.
2523         (GTFILES): Remove ipa-struct-reorg.c.
2524         * alias.c: Do not include ipa-type-escape.h.
2525         * tree-ssa-alias.c: Likewise.
2526         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
2527         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
2528         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
2529         and ipa-type-escape passes.
2530         * tree-pass.h (pass_ipa_type_escape): Remove.
2531         (pass_ipa_struct_reorg): Likewise.
2532         * ipa-struct-reorg.h: Remove.
2533         * ipa-struct-reorg.c: Likewise.
2534         * ipa-type-escape.h: Likewise.
2535         * ipa-type-escape.c: Likewise.
2536         * doc/invoke.texi (-fipa-struct-reorg): Remove.
2537         (--param struct-reorg-cold-struct-ratio): Likewise.
2538         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
2539         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
2540         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
2541
2542 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2543
2544         * config/s390/2084.md: Enable all insn reservations also for z9_ec
2545         cpu attribute value.
2546         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
2547         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
2548         * config/s390/s390.c (processor_flags_table): New constant array.
2549         (s390_handle_arch_option): Remove.
2550         (s390_handle_option): Remove s390_handle_arch_option invocations
2551         and OPT_mwarn_framesize_ handling.
2552         (s390_option_override): Remove s390_handle_arch_option invocation.
2553         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
2554         warnings.
2555         * config/s390/s390.md (cpu attribute): Add z9_ec value.
2556         * config/s390/s390.opt (s390_tune, s390_arch)
2557         (march=): Replace s390_arch_option enum and values with
2558         processor_type.  Set variable name to s390_arch.  Set
2559         initialization value.
2560         (mtune=): Replace s390_arch_option with processor_type.  Set
2561         variable name to s390_tune.  Set initialization value.
2562
2563 2011-03-23  Julian Brown  <julian@codesourcery.com>
2564
2565         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
2566         accesses which are not naturally aligned.
2567
2568 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
2569
2570         PR target/47553
2571         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
2572
2573 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
2574
2575         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
2576         parameter from "int" to "enum insn_code".
2577         (expand_operand_type): New enum.
2578         (expand_operand): New structure.
2579         (create_expand_operand): New function.
2580         (create_fixed_operand, create_output_operand): Likewise
2581         (create_input_operand, create_convert_operand_to): Likewise.
2582         (create_convert_operand_from, create_address_operand): Likewise.
2583         (create_integer_operand): Likewise.
2584         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
2585         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
2586         (expand_insn, expand_jump_insn): Likewise.
2587         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
2588         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
2589         (expand_movstr, expand_builtin___clear_cache): Likewise.
2590         (expand_builtin_lock_release): Likewise.
2591         * explow.c (allocate_dynamic_stack_space): Likewise.
2592         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
2593         and use the default handling in that case.
2594         * expmed.c (check_predicate_volatile_ok): Delete.
2595         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
2596         (emit_cstore): Likewise.
2597         * expr.c (emit_block_move_via_movmem): Likewise.
2598         (set_storage_via_setmem, expand_assignment): Likewise.
2599         (emit_storent_insn, try_casesi): Likewise.
2600         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
2601         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
2602         (expand_vec_shift_expr, expand_binop_directly): Likewise.
2603         (expand_twoval_unop, expand_twoval_binop): Likewise.
2604         (expand_unop_direct, emit_indirect_jump): Likewise.
2605         (emit_conditional_move, vector_compare_rtx): Likewise.
2606         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
2607         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
2608         (expand_sync_lock_test_and_set): Likewise.
2609         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
2610         (emit_unop_insn): Likewise.
2611         (expand_copysign_absneg): Change icode to an insn_code.
2612         (create_convert_operand_from_type): New function.
2613         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
2614         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
2615         (expand_insn, expand_jump_insn): Likewise.
2616         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
2617         than const_int_operand for operand 2.
2618
2619 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2620
2621         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
2622         if possible.
2623
2624 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2625
2626         * emit-rtl.c (emit_pattern_before_noloc): New function.
2627         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
2628         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
2629         (emit_pattern_after_noloc): New function.
2630         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
2631         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
2632
2633 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2634
2635         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
2636         (__ffsDI2): Likewise.
2637
2638 2011-03-22  Richard Henderson  <rth@redhat.com>
2639
2640         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
2641         of !TARGET_ABI_OPEN_VMS.
2642         (alpha_trampoline_init, alpha_start_function): Likewise.
2643         (alpha_expand_epilogue, alpha_file_start): Likewise.
2644         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
2645         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
2646         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
2647         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
2648         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
2649
2650 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2651
2652         * config/s390/s390-opts.h: New.
2653         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
2654         s390_arch_flags, s390_warn_framesize, s390_stack_size,
2655         s390_stack_guard): Remove.
2656         (s390_handle_arch_option): Return void.  Take enum
2657         s390_arch_option value instead of string and searching array.
2658         (s390_handle_option): Don't assert that global structures are in
2659         use.  Access variables via opts pointer.  Use error_at.  Don't use
2660         sscanf for -mstack-guard= or -mstack-size=.  Update call to
2661         s390_handle_arch_option.
2662         (s390_option_override): Update call to s390_handle_arch_option.
2663         (s390_emit_prologue): Use %d format for s390_stack_size in
2664         diagnostic.  Use %wd for HOST_WIDE_INT.
2665         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
2666         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
2667         * config/s390/s390.opt (config/s390/s390-opts.h): New
2668         HeaderInclude entry.
2669         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
2670         s390_arch_flags, s390_warn_framesize): New Variable entries.
2671         (s390_arch_option): New Enum and EnumValue entries.
2672         (march=): Use Enum instead of Var.
2673         (mstack-guard=, mstack-size=): Use UInteger and Var.
2674         (mtune=): Use Enum.
2675
2676 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2677
2678         * config/score/score.c (score_handle_option): Don't assert that
2679         global structures are in use.  Access target_flags via opts
2680         pointer.  Use value of -march= option to determine target_flags
2681         settings.
2682         * config/score/score.opt (march=): Use Enum.
2683         (score_arch): New Enum and EnumValue entries.
2684
2685 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2686
2687         * config/mep/mep.c (option_mtiny_specified): Remove.
2688         (mep_option_override): Move register handling for -mivc2 from
2689         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
2690         instead of option_mtiny_specified.
2691         (mep_handle_option): Access target_flags via opts pointer.  Don't
2692         assert that global structures are in use.  Defer part of -mivc2
2693         handling and move it to mep_option_override.
2694         * config/mep/mep.opt (IVC2): New Mask entry.
2695         (mivc2): Use Var and Defer instead of Mask.
2696
2697 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2698
2699         * config/v850/v850-opts.h: New.
2700         * config/v850/v850.c (small_memory): Replace with
2701         small_memory_physical_max array.  Make that array static const.
2702         (v850_handle_memory_option): Take integer value of argument.  Take
2703         gcc_options pointer, option text and location.  Return void.
2704         Update for changes to small memory structures.
2705         (v850_handle_option): Access target_flags via opts pointer.  Don't
2706         assert that global structures are in use.  Update calls to
2707         v850_handle_memory_option.
2708         (v850_encode_data_area): Update references to small memory settings.
2709         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
2710         (enum small_memory_type): Move to v850-opts.h.
2711         * config/v850/v850.opt (config/v850/v850-opts.h): New
2712         HeaderInclude entry.
2713         (small_memory_max): New Variable entry.
2714         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
2715         (mtda, mzda): Likewise.
2716
2717 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2718
2719         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
2720         pointer.  Don't assert that global structures are in use.
2721
2722 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2723
2724         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
2725         via opts pointer.  Don't assert that global structures are in use.
2726
2727 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2728
2729         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
2730         (munix=93): Use Var.
2731         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
2732         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
2733         * config/pa/pa-opts.h: New.
2734         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
2735         (pa_handle_option): Don't assert that global structures are in
2736         use.  Access target_flags via opts pointer.  Don't handle
2737         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
2738         OPT_munix_98 here.
2739         (pa_option_override): Handle deferred OPT_mfixed_range_.
2740
2741 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2742
2743         * config/mn10300/mn10300-opts.h: New.
2744         * config/mn10300/mn10300.c (mn10300_processor,
2745         mn10300_tune_string): Remove.
2746         (mn10300_handle_option): Don't assert that global structures are
2747         in use.  Access mn10300_processor via opts pointer.  Don't handle
2748         OPT_mtune_ here.
2749         * config/mn10300/mn10300.h (enum processor_type): Move to
2750         mn10300-opts.h.
2751         (mn10300_processor): Remove.
2752         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
2753         HeaderInclude entry.
2754         (mn10300_processor): New Variable entry.
2755         (mtune=): Use Var.
2756
2757 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2758
2759         * config/microblaze/microblaze.c: Don't include opts.h.
2760         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
2761         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
2762         (mno-clearbss): Use Var and Warn.
2763
2764 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2765
2766         * config/m32r/m32r-opts.h: New.
2767         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
2768         (m32r_handle_option): Don't assert that global structures are in
2769         use.  Access target_flags and m32r_cache_flush_func via opts
2770         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
2771         OPT_mno_flush_trap here.
2772         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
2773         include of m32r-opts.h.
2774         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
2775         HeaderInclude entry.
2776         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
2777         (mmodel=): Use Enum and Var.
2778         (m32r_model): New Enum and EnumValue entries.
2779         (mno-flush-trap): Use Var.
2780         (msdata=): Use Enum and Var.
2781         (m32r_sdata): New Enum and EnumValue entries.
2782
2783 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2784
2785         * config/m32c/m32c.c: Don't include opts.h.
2786         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
2787         m32c_handle_option): Remove.
2788         (m32c_option_override): Check global_options_set.x_target_memregs
2789         instead of target_memregs_set.
2790         * config/m32c/m32c.h (target_memregs): Remove.
2791         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
2792         variable.
2793
2794 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2795
2796         * config/iq2000/iq2000-opts.h: New.
2797         * config/iq2000/iq2000.c: Don't include opts.h.
2798         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
2799         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
2800         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
2801         HeaderInclude entry.
2802         (iq2000_tune): New Variable entry.
2803         (march=): Add comment.  Use Enum.
2804         (iq2000_arch): New Enum and EnumValue entries.
2805         (mcpu=): Use Enum and Var.
2806         (iq2000_tune): New Enum and EnumValue entries.
2807
2808 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2809
2810         * config/ia64/ia64-opts.h: New.
2811         * config/ia64/ia64.c (ia64_tune): Remove.
2812         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
2813         here.  Use error_at.
2814         (ia64_option_override): Handle deferred OPT_mfixed_range_.
2815         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
2816         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
2817         HeaderInclude entry.
2818         (ia64_tune): New Variable entry.
2819         (mfixed-range=): Use Defer and Var.
2820         (mtune=): Use Enum and Var.
2821         (ia64_tune): New Enum and EnumValue entries.
2822
2823 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2824
2825         * config/frv/frv-opts.h: New.
2826         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
2827         frv-opts.h.
2828         (frv_cpu_type): Remove.
2829         * config/frv/frv.c: Don't include opts.h.
2830         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
2831         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
2832         (frv_cpu_type): New Variable entry.
2833         (frv_cpu): New Enum and EnumValue entries.
2834
2835 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2836
2837         * config/cris/cris.c (cris_handle_option): Access target_flags via
2838         opts pointer.  Don't assert that global structures are in use.
2839         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
2840         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
2841
2842 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2843
2844         * config/bfin/bfin-opts.h: New.
2845         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
2846         bfin_si_revision, bfin_workarounds): Remove.
2847         (bfin_cpus): Make static const.
2848         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
2849         not bfin_lib_id_given.
2850         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
2851         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
2852         pointer. Use error_at.  Don't assert that global structures are in use.
2853         * config/bfin/bfin.h: Include bfin-opts.h.
2854         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
2855         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
2856         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
2857         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
2858         entries.
2859
2860 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2861
2862         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
2863         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
2864         or -msoft-float here.
2865         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
2866         -msoft-float and -mhard-float.
2867         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
2868         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2869         msoft-float.
2870         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
2871         -msoft-float.
2872         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
2873         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
2874         not mhard-float.
2875         (LIBGCC_SPEC): Don't handle -msoft-float.
2876         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
2877         -mhard-float.
2878         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2879         msoft-float.
2880         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
2881         -mfloat-abi=*, not -msoft-float and -mhard-float.
2882         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
2883         -msoft-float.
2884         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
2885         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
2886         mhard-float and msoft-float.
2887         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
2888         mfloat-abi=soft in comments, not mhard-float and msoft-float.
2889         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2890         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
2891         mhard-float.
2892         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
2893         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
2894         msoft-float.
2895         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
2896         not mhard-float.
2897         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
2898         not msoft-float.
2899
2900 2011-03-22  Richard Henderson  <rth@redhat.com>
2901
2902         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
2903         TARGET_ABI_WINDOWS_NT.
2904         (alpha_output_function_end_prologue): Likewise.
2905         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
2906         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2907         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
2908         (trap, *movsi_nt_vms): Likewise.
2909         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
2910         (*tablejump_osf_nt_internal): Remove.
2911         * config/alpha/predicates.md (input_operand): Only test Pmode.
2912
2913 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2914
2915         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
2916         via opts pointer.  Use error_at.  Don't assert that global
2917         structures are in use.
2918
2919 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2920
2921         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
2922         (ix86_handle_option): Access ix86_isa_flags and
2923         ix86_isa_flags_explicit via opts pointer.  Don't assert that
2924         global structures are in use.
2925         (ix86_function_specific_save, ix86_function_specific_restore):
2926         Update ix86_isa_flags_explicit field name.
2927         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
2928         (ix86_isa_flags_explicit): Rename TargetSave entry to
2929         x_ix86_isa_flags_explicit.
2930
2931 2011-03-22  Richard Henderson  <rth@redhat.com>
2932
2933         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
2934         (alpha_option_override, direct_return): Likewise.
2935         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
2936         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
2937         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
2938         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
2939         (alpha_expand_epilogue, alpha_end_function): Likewise.
2940         (alpha_init_libfuncs): Likewise.
2941         (struct machine_function): Remove unicosmk members.
2942         (print_operand) ['t']: Remove.
2943         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
2944         unicosmk_output_module_name, unicosmk_output_common,
2945         current_section_align, unicosmk_output_text_section_asm_op,
2946         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
2947         unicosmk_section_type_flags, unicosmk_unique_section,
2948         unicosmk_asm_named_section, unicosmk_insert_attributes,
2949         unicosmk_output_align, unicosmk_defer_case_vector,
2950         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
2951         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
2952         unicosmk_output_ssib, unicosmk_add_call_info_word,
2953         unicosmk_extern_head, unicosmk_output_default_externs,
2954         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
2955         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
2956         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
2957         * config/alpha/alpha-protos.h: Update.
2958         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
2959         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
2960         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
2961         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
2962         (*mulsi_se, mulvsi3): Likewise.
2963         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
2964         (*divmodsi_internal, call, call_value, realign): Likewise.
2965         (moddi3, umoddi3): Likewise; remove duplicate expander.
2966         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
2967         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
2968         (*movdi_nofix): Remove r/U alternative.
2969         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
2970         * config/alpha/constraints.md ("U"): Remove.
2971         * config/alpha/predicates.md (call_operand"): Don't test
2972         TARGET_ABI_UNICOSMK.
2973
2974 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2975
2976         * target.def (handle_option): Take gcc_options and
2977         cl_decoded_option pointers and location_t.
2978         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
2979         * doc/tm.texi: Regenerate.
2980         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
2981         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
2982         * lto-opts.c (lto_reissue_options): Generate option structure for
2983         targetm.handle_option call.
2984         * opts.c (target_handle_option): Update call to
2985         targetm.handle_option.  Remove assertions about values now passed
2986         down to hook.
2987         * targhooks.c (default_target_handle_option): New.
2988         * targhooks.h (default_target_handle_option): Declare.
2989         * config/alpha/alpha.c: Include opts.h.
2990         (alpha_handle_option): Update to new hook interface.
2991         * config/arm/arm.c: Include opts.h.
2992         (arm_handle_option): Update to new hook interface.
2993         * config/arm/t-arm (arm.o): Update dependencies.
2994         * config/bfin/bfin.c: Include opts.h.
2995         (bfin_handle_option): Update to new hook interface.
2996         * config/cris/cris.c: Include opts.h.
2997         (cris_handle_option): Update to new hook interface.
2998         * config/frv/frv.c: Include opts.h.
2999         (frv_handle_option): Update to new hook interface.
3000         * config/i386/i386.c: Include opts.h.
3001         (ix86_handle_option): Update to new hook interface.
3002         (ix86_valid_target_attribute_inner_p): Generate option structure
3003         for call to ix86_handle_option.
3004         * config/i386/t-i386 (i386.o): Update dependencies.
3005         * config/ia64/ia64.c: Include opts.h.
3006         (ia64_handle_option): Update to new hook interface.
3007         * config/ia64/t-ia64 (ia64.o): Update dependencies.
3008         * config/iq2000/iq2000.c: Include opts.h.
3009         (iq2000_handle_option): Update to new hook interface.
3010         * config/m32c/m32c.c: Include opts.h.
3011         (m32c_handle_option): Update to new hook interface.
3012         * config/m32r/m32r.c: Include opts.h.
3013         (m32r_handle_option): Update to new hook interface.
3014         * config/m68k/m68k.c: Include opts.h.
3015         (m68k_handle_option): Update to new hook interface.
3016         * config/mep/mep.c: Include opts.h.
3017         (mep_handle_option): Update to new hook interface.
3018         * config/microblaze/microblaze.c: Include opts.h.
3019         (microblaze_handle_option): Update to new hook interface.
3020         * config/mips/mips.c: Include opts.h.
3021         (mips_handle_option): Update to new hook interface.
3022         * config/mn10300/mn10300.c: Include opts.h.
3023         (mn10300_handle_option): Update to new hook interface.
3024         * config/pa/pa.c: Include opts.h.
3025         (pa_handle_option): Update to new hook interface.
3026         * config/pdp11/pdp11.c: Include opts.h.
3027         (pdp11_handle_option): Update to new hook interface.
3028         * config/rs6000/rs6000.c: Include opts.h.
3029         (rs6000_handle_option): Update to new hook interface.
3030         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3031         * config/rx/rx.c: Include opts.h.
3032         (rx_handle_option): Update to new hook interface.
3033         * config/s390/s390.c: Include opts.h.
3034         (s390_handle_option): Update to new hook interface.
3035         * config/score/score.c: Include opts.h.
3036         (score_handle_option): Update to new hook interface.
3037         * config/sh/sh.c: Include opts.h.
3038         (sh_handle_option): Update to new hook interface.
3039         * config/sparc/sparc.c: Include opts.h.
3040         (sparc_handle_option): Update to new hook interface.
3041         * config/v850/v850.c: Include opts.h.
3042         (v850_handle_option): Update to new hook interface.
3043
3044 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3045
3046         * gcc.c (driver_unknown_option_callback): Only permit and save
3047         unknown -Wno- options.
3048         (driver_wrong_lang_callback): Save options directly instead of via
3049         driver_unknown_option_callback.
3050
3051 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3052
3053         * combine.c (simplify_set): Try harder to find the best CC mode when
3054         simplifying a nested COMPARE on the RHS.
3055
3056 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
3057
3058         * config/alpha/gnu.h: Remove.
3059         * config/arc: Remove directory.
3060         * config/arm/netbsd.h: Remove.
3061         * config/arm/t-pe: Remove.
3062         * config/crx: Remove directory.
3063         * config/i386/netbsd.h: Remove.
3064         * config/m68hc11: Remove directory.
3065         * config/m68k/uclinux-oldabi.h: Remove.
3066         * config/mcore/mcore-pe.h: Remove.
3067         * config/mcore/t-mcore-pe: Remove.
3068         * config/netbsd-aout.h: Remove.
3069         * config/rs6000/gnu.h: Remove.
3070         * config/sh/sh-symbian.h: Remove.
3071         * config/sh/symbian-base.c: Remove.
3072         * config/sh/symbian-c.c: Remove.
3073         * config/sh/symbian-cxx.c: Remove.
3074         * config/sh/symbian-post.h: Remove.
3075         * config/sh/symbian-pre.h: Remove.
3076         * config/sh/t-symbian: Remove.
3077         * config/svr3.h: Remove.
3078         * config/vax/netbsd.h: Remove.
3079         * config.build: Don't handle i[34567]86-*-pe.
3080         * config.gcc: Remove handling of deprecations for most deprecated
3081         targets.
3082         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
3083         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
3084         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
3085         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
3086         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
3087         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
3088         Remove cases.
3089         * config.host: Don't handle i[34567]86-*-pe.
3090         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
3091         (ASM_SPEC32): Don't handle -mcall-gnu.
3092         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
3093         -mcall-gnu.
3094         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
3095         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
3096         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
3097         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
3098         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
3099         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
3100         conditional on SYMBIAN.
3101         * configure.ac: Don't handle powerpc*-*-gnu*.
3102         * configure: Regenerate.
3103         * doc/extend.texi (interrupt attribute): Don't mention CRX.
3104         * doc/install-old.texi (m6811, m6812): Don't mention.
3105         * doc/install.texi (arc-*-elf*): Don't document multilib option.
3106         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
3107         (m68k-uclinuxoldabi): Don't mention.
3108         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
3109         Remove.
3110         (-mcall-gnu): Remove.
3111         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
3112         families): Remove constraint documentation.
3113
3114 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
3115
3116         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
3117         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
3118         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
3119
3120 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
3121
3122         * config/avr/avr-protos.h (expand_epilogue): Change prototype
3123         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
3124         * config/avr/avr.c (init_cumulative_args)
3125         (avr_function_arg_advance): Use it.
3126         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
3127         sibcall epilogues.
3128         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
3129         (avr_function_ok_for_sibcall): ...this new function.
3130         (avr_lookup_function_attribute1): New static Function.
3131         (avr_naked_function_p, interrupt_function_p)
3132         (signal_function_p, avr_OS_task_function_p)
3133         (avr_OS_main_function_p): Use it.
3134         * config/avr/avr.md ("sibcall", "sibcall_value")
3135         ("sibcall_epilogue"): New expander.
3136         ("*call_insn", "*call_value_insn"): New insn.
3137         ("call_insn", "call_value_insn"): Remove
3138         ("call", "call_value", "epilogue"): Change expander to handle
3139         sibling calls.
3140
3141 2011-03-21  Nick Clifton  <nickc@redhat.com>
3142
3143         * doc/invoke.texi (Overall Options): Move closing brace to end of
3144         options list.
3145         (Optimization Options): Add missing @gol.
3146         (Directory Options): Likewise.
3147         (i386 and x86-64 Options): Likewise.
3148         (RS6000 and PowerPC Options): Likewise.
3149         (i386 and x86-64 Windows Options): Likewise.
3150         (V850 Options): Add text missing from descriptions.
3151
3152 2011-03-22  Richard Henderson  <rth@redhat.com>
3153
3154         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
3155         (avr_incoming_return_addr_rtx): New.
3156         (emit_push_byte): New.
3157         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
3158         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
3159         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
3160         (emit_pop_byte): New.
3161         (expand_epilogue): Use it.  Pop frame pointer by bytes.
3162         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
3163         (INCOMING_RETURN_ADDR_RTX): New.
3164         (INCOMING_FRAME_SP_OFFSET): New.
3165         (ARG_POINTER_CFA_OFFSET): New.
3166         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
3167         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
3168         (pophi): Remove.
3169
3170         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
3171
3172 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3173
3174         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
3175         (FUNCTION_ARG_ADVANCE): Likewise.
3176         * tm.texi.in: Change references to them to hook references.
3177         * tm.texi: Regenerate.
3178         * targhooks.c (default_function_arg): Eliminate check for target
3179         macro.
3180         (default_function_incoming_arg): Likewise.
3181         (default_function_arg_advance): Likewise.
3182         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
3183         (function_arg_advance): Likewise.
3184         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
3185
3186 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
3187
3188         * tree.c (build_call_1): New function.
3189         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
3190
3191 2011-03-22  Richard Guenther  <rguenther@suse.de>
3192
3193         PR tree-optimization/48228
3194         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
3195         for single-arg PHIs.
3196
3197 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
3198
3199         PR rtl-optimization/48143
3200         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
3201         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
3202         sse2_cvtps2pd): Likewise.
3203
3204 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3205
3206         * recog.c (canonicalize_change_group): Use validate_unshare_change.
3207
3208 2011-03-22  Richard Guenther  <rguenther@suse.de>
3209
3210         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
3211         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
3212         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
3213         and REALIGN_LOAD_EXPR.
3214         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
3215         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
3216         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
3217         DOT_PROD_EXPR case ...
3218         (expand_expr_real_2): ... here.
3219         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
3220         and REALIGN_LOAD_EXPR.
3221         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
3222         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
3223         (vect_create_epilog_for_reduction): Likewise.
3224         (vectorizable_reduction): Likewise.
3225         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
3226         * tree-vect-stmts.c (vectorizable_load): Likewise.
3227
3228 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
3229
3230         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
3231
3232 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3233
3234         * config/s390/s390.c (s390_delegitimize_address): Fix offset
3235         handling for PLTOFF/GOTOFF.
3236
3237 2011-03-22  Nick Clifton  <nickc@redhat.com>
3238
3239         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
3240         trailing backslash from the end of the macro definition.
3241
3242 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3243
3244         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
3245         and PLT unspecs.
3246
3247 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
3248
3249         * expr.h (prepare_operand): Move to...
3250         * optabs.h (prepare_operand): ...here and change the insn code
3251         parameter from "int" to "enum insn_code".
3252         (insn_operand_matches): Declare.
3253         * expr.c (init_expr_target): Use insn_operand_matches.
3254         (compress_float_constant): Likewise.
3255         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
3256         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
3257         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
3258         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
3259         Likewise.
3260         (gen_cond_trap): Likewise.
3261         (prepare_operand): Likewise.  Change icode to an insn_code.
3262         (insn_operand_matches): New function.
3263         * reload.c (find_reloads_address_1): Use insn_operand_matches.
3264         * reload1.c (gen_reload): Likewise.
3265         * targhooks.c (default_secondary_reload): Likewise.
3266
3267 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3268
3269         * config/alpha/alpha.md (unspec): New define_c_enum.
3270         (unspecv): Ditto.
3271
3272 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         PR debug/48214
3275         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
3276         between a call and its CALL_ARG_LOCATION note.
3277
3278 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
3279
3280         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
3281
3282 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3283
3284         PR c/42544
3285         PR c/48197
3286         * c-common.c (shorten_compare): If primopN is first sign-extended
3287         to opN and then zero-extended to result type, set primopN to opN.
3288
3289 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
3290
3291         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
3292         for barrier handlers.
3293
3294 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3295
3296         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
3297         UNSPEC constants to be in the unspec enumeration, and redefine
3298         all UNSPECV constants to be in the unspecv enumeration, so that
3299         dumps print which unspec/unspec_volatile this is.
3300         * config/rs6000/vector.md (UNSPEC_*): Ditto.
3301         * config/rs6000/paired.md (UNSPEC_*): Ditto.
3302         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
3303         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
3304         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
3305
3306         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
3307         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
3308         UNSPECV_LWSYNC, since these are used as unspec_volatile.
3309         * config/rs6000/sync.md (isync, lwsync): Ditto.
3310
3311 2011-03-21  Richard Guenther  <rguenther@suse.de>
3312
3313         * params.def (lto-min-partition): Fix typo.
3314
3315 2011-03-21  Richard Guenther  <rguenther@suse.de>
3316
3317         PR c/47939
3318         * c-decl.c (grokdeclarator): Drop to the main variant only
3319         for array types.  Drop flag_gen_aux_info check.
3320
3321 2011-03-21  Richard Guenther  <rguenther@suse.de>
3322
3323         PR translation/47911
3324         * params.def (lto-partitions): Fix typo.
3325         (lto-min-partition): Fix wording.
3326
3327 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
3328
3329         * config/rs6000/t-freebsd: Remove duplication from file.
3330
3331 2011-03-21  Richard Guenther  <rguenther@suse.de>
3332
3333         PR middle-end/47661
3334         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
3335
3336 2011-03-21  Richard Guenther  <rguenther@suse.de>
3337
3338         PR lto/48210
3339         * params.def (lto-partitions): Require at least 1 partition.
3340
3341 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3342
3343         * gthr-solaris.h: Remove.
3344         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
3345         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
3346         (LIB_SPEC): Likewise.
3347         * config/sol2.opt (threads): Remove.
3348         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
3349         (sparc*-*-solaris2*): Likewise.
3350         * configure.ac (enable_threads): Enable solaris support.
3351         * configure: Regenerate.
3352         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
3353         * doc/install.texi (Configuration, --enable-threads=lib): Remove
3354         solaris.
3355
3356 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3357
3358         * config.gcc: Obsolete *-*-solaris2.8*.
3359         * doc/install.texi (Specific, *-*-solaris2*): Document it.
3360
3361 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3362
3363         PR bootstrap/48135
3364         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
3365         reference.  Solaris 8 perl works.
3366
3367 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3368
3369         PR bootstrap/48135
3370         * doc/install.texi (Prerequisites): Move jar etc. up.
3371         Explain support library version requirements.
3372
3373 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3374
3375         PR bootstrap/48135
3376         * doc/install.texi (Prerequisites): Move Perl to build
3377         requirements.  Always necessary on Solaris 2 with Sun ld.
3378
3379 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3380
3381         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
3382         binutils 2.21.
3383         (Specific, i?86-*-solaris2.[89]): Likewise.
3384         (Specific, i?86-*-solaris2.10): Likewise.
3385         (Specific, mips-sgi-irix6): Likewise.
3386         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
3387         Update for binutils 2.21.
3388
3389 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3390
3391         * configure.ac (gcc_cv_lto_plugin): Fix typo.
3392         Allow -fuse-linker-plugin for non-default plugin linker.
3393         * configure: Regenerate.
3394
3395 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3396
3397         PR bootstrap/48167
3398         * gengtype.c (files_rules): Added rule for cp/parser.h.
3399
3400 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
3401
3402         PR target/48213
3403         * config/s390/s390.c (s390_delegitimize_address): Don't call
3404         lowpart_subreg if orig_x has BLKmode.
3405
3406 2011-03-21  Kai Tietz  <ktietz@redhat.com>
3407
3408         PR target/12171
3409         * doc/plugins.texi: Adjust documentation for plugin register_callback.
3410         * tree.h (attribute_spec): Add new member affects_type_identity.
3411         * attribs.c (empty_attribute_table): Adjust attribute_spec
3412         initializers.
3413         * config/alpha/alpha.c: Likewise.
3414         * config/arc/arc.c: Likewise.
3415         * config/arm/arm.c: Likewise.
3416         * config/avr/avr.c: Likewise.
3417         * config/bfin/bfin.c: Likewise.
3418         * config/crx/crx.c: Likewise.
3419         * config/darwin.h: Likewise.
3420         * config/h8300/h8300.c: Likewise.
3421         * config/i386/cygming.h: Likewise.
3422         * config/i386/i386.c: Likewise.
3423         * config/ia64/ia64.c: Likewise.
3424         * config/m32c/m32c.c: Likewise.
3425         * config/m32r/m32r.c: Likewise.
3426         * config/m68hc11/m68hc11.c: Likewise.
3427         * config/m68k/m68k.c: Likewise.
3428         * config/mcore/mcore.c: Likewise.
3429         * config/mep/mep.c: Likewise.
3430         * config/microblaze/microblaze.c: Likewise.
3431         * config/mips/mips.c: Likewise.
3432         * config/rs6000/rs6000.c: Likewise.
3433         * config/rx/rx.c: Likewise.
3434         * config/sh/sh.c: Likewise.
3435         * config/sol2.h: Likewise.
3436         * config/sparc/sparc.c: Likewise.
3437         * config/spu/spu.c: Likewise.
3438         * config/stormy16/stormy16.c: Likewise.
3439         * config/v850/v850.c: Likewise.
3440
3441 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
3442
3443         * simplify-rtx.c (simplify_binary_operation_1): Handle
3444         (xor (and A B) C) case when B and C are both constants.
3445
3446 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
3447
3448         * tree-dfa.c (add_referenced_var): Fix typo in comment.
3449
3450 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
3451
3452         PR bootstrap/48168
3453         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
3454
3455 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
3456
3457         PR rtl-optimization/48156
3458         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
3459         assume df and df_lr are not NULL.
3460
3461 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3462
3463         PR debug/48023
3464         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
3465         between a call and its CALL_ARG_LOCATION note.
3466
3467 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3468
3469         PR debug/48178
3470         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3471         between a call and its corresponding CALL_ARG_LOCATION note.
3472
3473 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
3474
3475         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
3476         instead of loop. Use HARD_REGISTER_NUM_P predicate.
3477         * haifa-sched.c (setup_ref_regs): Ditto.
3478         * caller-save.c (add_used_regs_1): Ditto.
3479         * dse.c (look_for_hardregs): Ditto.
3480         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
3481         * sched-rgn.c (check_live_1): Ditto.
3482
3483 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
3484
3485         * c-decl.c (diagnose_mismatched_decls): Give an error for
3486         redefining a typedef with variably modified type.
3487
3488 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
3489
3490         * c-decl.c (grokfield): Don't allow typedefs for structures or
3491         unions with no tag by default.
3492         * doc/extend.texi (Unnamed Fields): Update.
3493
3494 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
3495
3496         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3497         Rewrite using indirect functions.
3498         (lwp_slwpcb): Ditto.
3499         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
3500         (avx_vinsertf128<mode>): Ditto.
3501
3502 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3503
3504         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
3505         unspecs.
3506
3507 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3508
3509         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
3510         splitting between a call and its corresponding CALL_ARG_LOCATION note.
3511
3512 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3513
3514         PR rtl-optimization/48170
3515         * gcse.c (hoist_code): Remove bogus asserts.
3516
3517 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
3518
3519         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
3520         computation for prologue/epilogue.
3521
3522 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3523
3524         * Makefile.in (check-consistency): Remove.
3525
3526 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
3527
3528         PR debug/48176
3529         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
3530         arange_table_in_use is 0, but either text_section_used or
3531         cold_text_section_used is true.  Don't call it if
3532         !info_section_emitted.
3533
3534 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
3535
3536         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
3537         FUNCTION_VALUE_REGNO_P): Remove.
3538         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
3539         Remove.
3540         * config/avr/avr.c (avr_ret_register): Make static inline.
3541         (avr_function_value_regno_p): New function.
3542         (avr_libcall_value): Make static. Add 'func' argument.
3543         (avr_function_value): Make static. Rename 'func' argument to
3544         'fn_decl_or_type', forward it to avr_libcall_value. Call
3545         avr_ret_register function instead of RET_REGISTER macro.
3546         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
3547
3548 2011-03-18  Jason Merrill  <jason@redhat.com>
3549
3550         PR c++/23372
3551         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
3552
3553 2011-03-18  Richard Guenther  <rguenther@suse.de>
3554
3555         * doc/install.texi (--enable-gold): Remove.
3556         (--with-plugin-ld): Document.
3557         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
3558
3559 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
3560
3561         PR middle-end/47790
3562         * expr.c (optimize_bitfield_assignment_op): Revamp to work
3563         again after expansion changes.
3564
3565 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
3566
3567         * combine.c (try_combine): Do simplification only call of
3568         subst() on i2 even when i1 is present. Update comments.
3569
3570 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3571
3572         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
3573         and UNSPEC_PCREL_SYMOFF.
3574
3575 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3576
3577         * config/s390/s390.md: Use define_c_enum for the unspec constant
3578         definitions.
3579
3580 2011-03-18  Richard Henderson  <rth@redhat.com>
3581             Jakub Jelinek  <jakub@redhat.com>
3582
3583         PR bootstrap/48161
3584         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
3585         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
3586
3587 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3588
3589         PR middle-end/47725
3590         * combine.c (cant_combine_insn_p): Don't check zero/sign
3591         extended hard registers.
3592
3593 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3594
3595         PR middle-end/47725
3596         * combine.c (cant_combine_insn_p): Check zero/sign extended
3597         hard registers.
3598
3599 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
3600
3601         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3602         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
3603         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
3604         Change return type to bool.
3605         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3606
3607 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3608
3609         PR debug/48163
3610         * var-tracking.c (prepare_call_arguments): If CALL target
3611         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
3612         pc instead of looking it up using cselib_lookup and use
3613         Pmode for it if x has VOIDmode.
3614         * dwarf2out.c (gen_subprogram_die): If also both first and
3615         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
3616
3617         PR debug/48163
3618         * function.c (assign_parms): For data.passed_pointer parms
3619         use MEM of data.entry_parm instead of data.entry_parm itself
3620         as DECL_INCOMING_RTL.
3621         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
3622         also when passed and declared mode is the same, DECL_RTL
3623         is a MEM with pseudo as address and DECL_INCOMING_RTL is
3624         a MEM too.
3625
3626 2011-03-16  Jeff Law  <law@redhat.com>
3627
3628         PR rtl-optimization/37273
3629         * ira-costs.c (scan_one_insn): Detect constants living in memory and
3630         handle them like argument loads from stack slots.  Do not double
3631         count memory for memory constants and argument loads from stack slots.
3632
3633 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3634
3635         PR debug/48160
3636         * var-tracking.c (prepare_call_arguments): Check SUBREG.
3637
3638 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3639
3640         PR target/48171
3641         * config/i386/i386.opt: Add Save to -mavx and -mfma.
3642
3643 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3644
3645         PR bootstrap/48153
3646         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
3647         if dwarf_strict.
3648         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
3649         Clear call_arg_locations and call_arg_loc_last always.
3650
3651         PR middle-end/48152
3652         * var-tracking.c (prepare_call_arguments): If argument needs to be
3653         passed by reference, adjust argtype and mode.
3654
3655 2011-03-17  Richard Guenther  <rguenther@suse.de>
3656
3657         PR middle-end/48134
3658         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
3659         a value make sure to fold the statement.
3660
3661 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
3662
3663         PR target/43872
3664         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
3665         return condition with !cfun->calls_alloca.
3666
3667 2011-03-17  Richard Guenther  <rguenther@suse.de>
3668
3669         PR bootstrap/48148
3670         * lto-cgraph.c (input_overwrite_node): Clear the abstract
3671         origin for decls in other ltrans units.
3672         (input_varpool_node): Likewise.
3673
3674 2011-03-17  Richard Guenther  <rguenther@suse.de>
3675
3676         PR middle-end/48165
3677         * tree-object-size.c (compute_object_offset): Properly return
3678         the offset operand of MEM_REFs as sizetype.
3679
3680 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3681
3682         PR rtl-optimization/48141
3683         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
3684         * dse.c: Include params.h.
3685         (active_local_stores_len): New variable.
3686         (add_wild_read, dse_step1): Clear it when setting active_local_stores
3687         to NULL.
3688         (record_store, check_mem_read_rtx): Decrease it when removing
3689         from the chain.
3690         (scan_insn): Likewise.  Increase it when adding to chain, if it
3691         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
3692         set active_local_stores to NULL before the addition.
3693         * Makefile.in (dse.o): Depend on $(PARAMS_H).
3694
3695         PR rtl-optimization/48141
3696         * dse.c (record_store): If no positions are needed in an insn
3697         that cannot be deleted, at least unchain it from active_local_stores.
3698
3699 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
3700
3701         PR debug/47510
3702         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
3703         (lookup_type_die_strip_naming_typedef): ... here.
3704         (get_context_die): Use it.
3705         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
3706         the anonymous struct named by the naming typedef.
3707
3708 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3709
3710         PR target/48154
3711         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
3712         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3713
3714 2011-03-16  Jeff Law  <law@redhat.com>
3715
3716         * tree-vrp.c (identify_jump_threads): Slightly simplify type
3717         check for operands of conditional.  Allow type to be a pointer.
3718
3719 2011-03-16  Richard Guenther  <rguenther@suse.de>
3720
3721         PR tree-optimization/48149
3722         * fold-const.c (fold_binary_loc): Fold
3723         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
3724
3725 2011-03-16  Richard Guenther  <rguenther@suse.de>
3726
3727         PR tree-optimization/26134
3728         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
3729         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
3730         (non_rewritable_mem_ref_base): Handle complex type component
3731         accesses, constrain offsets for vector and complex extracts
3732         more properly.
3733
3734 2011-03-16  Richard Guenther  <rguenther@suse.de>
3735
3736         PR tree-optimization/48146
3737         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
3738         operands avoiding the need for renaming.
3739
3740 2011-03-16  Richard Guenther  <rguenther@suse.de>
3741
3742         * gimple-fold.c (maybe_fold_reference): Open-code relevant
3743         constant folding.  Move MEM_REF canonicalization first.
3744         Rely on fold_const_aggregate_ref for initializer folding.
3745         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
3746
3747 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3748
3749         PR middle-end/48136
3750         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3751         arg0/arg1 or their arguments are always fold converted to matching
3752         types.
3753
3754         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
3755         to nargs.
3756
3757 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3758
3759         PR lto/46944
3760         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
3761         Handle in-tree gold.
3762         (ld_vers): Extract binutils version for gold.
3763         (gcc_cv_ld_hidden): Handle gold here.
3764         (gcc_cv_lto_plugin): Determine level of linker plugin support.
3765         * configure: Regenerate.
3766         * config.in: Regenerate.
3767         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
3768         -fuse-linker-plugin otherwise.
3769         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
3770         (LINK_COMMAND_SPEC): Use it.
3771         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
3772
3773 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3774
3775         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
3776         * calls.c: Remove debug.h include.
3777         (emit_call_1): Don't call virtual_call_token debug hook.
3778         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
3779         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
3780         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
3781         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
3782         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
3783         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
3784         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
3785         dwarf2out_virtual_call): Remove.
3786         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
3787         copy_call_info and virtual_call hooks.
3788         (dwarf2out_init): Don't initialize vcall_insn_table,
3789         debug_dcall_section and debug_vcall_section.
3790         (prune_unused_types): Don't mark nodes from dcall_table.
3791         (dwarf2out_finish): Don't output dcall or vcall tables.
3792         * final.c (final_scan_insn): Don't call direct_call or
3793         virtual_call debug hooks.
3794         * debug.h (struct gcc_debug_hooks): Remove direct_call,
3795         virtual_call_token, copy_call_info and virtual_call hooks.
3796         (debug_nothing_uid): Remove prototype.
3797         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
3798         copy_call_info and virtual_call hooks.
3799         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3800         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3801         * debug.c (do_nothing_debug_hooks): Likewise.
3802         (debug_nothing_uid): Remove.
3803         * doc/invoke.texi (-fenable-icf-debug): Remove.
3804         * common.opt (-fenable-icf-debug): Likewise.
3805
3806         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
3807         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
3808         call's MEM.  Handle functions returning aggregate through a hidden
3809         first pointer.  For virtual calls add clobbered pc to call arguments
3810         chain.
3811         * dwarf2out.c (gen_subprogram_die): Emit
3812         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
3813         can't be emitted.
3814
3815         PR debug/45882
3816         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
3817         * rtl.h (ENTRY_VALUE_EXP): Define.
3818         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
3819         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3820         * print-rtl.c (print_rtx): Likewise.
3821         * gengtype.c (adjust_field_rtx_def): Likewise.
3822         * var-tracking.c (vt_add_function_parameter): Adjust
3823         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
3824         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
3825         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
3826         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
3827         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
3828
3829         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
3830         Call var_location debug hook even on CALL_INSNs.
3831         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
3832         * rtl.def (ENTRY_VALUE): New.
3833         * dwarf2out.c: Include cfglayout.h.
3834         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3835         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
3836         (struct call_arg_loc_node): New type.
3837         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
3838         tail_call_site_count): New variables.
3839         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
3840         DW_TAG_GNU_call_site_parameter.
3841         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
3842         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
3843         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
3844         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
3845         and DW_AT_GNU_all_source_call_sites.
3846         (mem_loc_descriptor): Handle ENTRY_VALUE.
3847         (add_src_coords_attributes): Don't add enything if
3848         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
3849         (dwarf2out_abstract_function): Save and clear call_arg_location,
3850         call_site_count and tail_call_site_count around dwarf2out_decl call.
3851         (gen_call_site_die): New function.
3852         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
3853         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
3854         (dwarf2out_function_decl): Clear call_arg_locations,
3855         call_arg_loc_last, set call_site_count and tail_call_site_count
3856         to -1 and free block_map.
3857         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
3858         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
3859         followed by any real instructions.
3860         (dwarf2out_begin_function): Set call_site_count and
3861         tail_call_site_count to 0.
3862         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
3863         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
3864         attempt to force a DIE for it and worst case remove the attribute.
3865         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
3866         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
3867         the decl itself.
3868         * var-tracking.c: Include tm_p.h.
3869         (vt_stack_adjustments): For calls call note_register_arguments.
3870         (argument_reg_set): New variable.
3871         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
3872         ensure the VALUE is resolved.
3873         (call_arguments): New variable.
3874         (prepare_call_arguments): New function.
3875         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
3876         (struct expand_loc_callback_data): Add ignore_cur_loc field.
3877         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
3878         always use the best expression.
3879         (vt_expand_loc): Add ignore_cur_loc argument.
3880         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
3881         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
3882         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
3883         note for all calls.
3884         (vt_add_function_parameter): Use cselib_lookup_from_insn.
3885         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
3886         argument.  Don't call cselib_preserve_only_values and
3887         cselib_reset_table.
3888         (note_register_arguments): New function.
3889         (vt_initialize): Compute argument_reg_set.  Call
3890         vt_add_function_parameters before processing basic blocks instead of
3891         afterwards.  For calls call prepare_call_arguments before calling
3892         cselib_process_insn.
3893         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
3894         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
3895         (var-tracking.o): Depend on $(TM_P_H).
3896         * cfglayout.h (insn_scope): New prototype.
3897         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
3898         * cfglayout.c (insn_scope): No longer static.
3899         * insn-notes.def (CALL_ARG_LOCATION): New.
3900         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
3901         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
3902         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
3903         nothing for DECL_EXTERNAL BLOCK_VARS.
3904
3905 2011-03-16  Alan Modra  <amodra@gmail.com>
3906
3907         PR target/45844
3908         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3909         create invalid offset address for vsx splat insn.
3910         * config/rs6000/predicates.md (splat_input_operand): New.
3911         * config/rs6000/vsx.md (vsx_splat_*): Use it.
3912
3913 2011-03-15  Xinliang David Li  <davidxl@google.com>
3914
3915         PR c/47837
3916         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
3917         (normalize_preds): New function.
3918         (is_use_properly_guarded): Normalize def predicates.
3919
3920 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3921
3922         PR target/46788
3923         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
3924         in the output template.
3925
3926 2011-03-15  Richard Guenther  <rguenther@suse.de>
3927
3928         PR middle-end/47650
3929         * tree-pretty-print.c (dump_function_declaration): Properly
3930         dump unprototyped and varargs function types.
3931
3932 2011-03-15  Richard Guenther  <rguenther@suse.de>
3933
3934         PR tree-optimization/13954
3935         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
3936         and friends.
3937
3938 2011-03-15  Richard Guenther  <rguenther@suse.de>
3939
3940         PR tree-optimization/48037
3941         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
3942         selects into BIT_FIELD_REFs.
3943         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
3944         vector select.
3945
3946 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
3947
3948         PR tree-optimization/48129
3949         * builtins.c (fold_builtin_snprintf): Convert to type of
3950         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
3951         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
3952
3953 2011-03-15  Richard Guenther  <rguenther@suse.de>
3954
3955         PR tree-optimization/41490
3956         * tree-ssa-dce.c (propagate_necessity): Handle returns without
3957         value but with VUSE.
3958         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
3959         return statements.
3960         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
3961         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
3962         * tree-tailcall.c (find_tail_calls): Ignore returns.
3963
3964 2011-03-15  Richard Guenther  <rguenther@suse.de>
3965
3966         PR middle-end/48031
3967         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
3968         or variable-indexed array accesses when in gimple form.
3969
3970 2011-03-15  Richard Guenther  <rguenther@suse.de>
3971
3972         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
3973
3974 2011-03-15  Alan Modra  <amodra@gmail.com>
3975
3976         PR target/48032
3977         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
3978         presume symbol_refs without a symbol_ref_decl are suitably
3979         aligned, nor other trees we may see here.  Handle anchor symbols.
3980         (legitimate_constant_pool_address_p): Comment.  Add mode param.
3981         Check cmodel=medium addresses.  Adjust all calls.
3982         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
3983         creating cmodel=medium optimized access to locals.
3984         * config/rs6000/constraints.md (R): Pass QImode to
3985         legitimate_constant_pool_address_p.
3986         * config/rs6000/predicates.md (input_operand): Pass mode to
3987         legitimate_constant_pool_address_p.
3988         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
3989         Update prototype.
3990
3991 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3992
3993         PR target/48053
3994         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
3995         64-bit constants being loaded into registers other than GPRs such
3996         as loading 0 into a VSX register.
3997
3998 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3999
4000         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
4001
4002 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4003
4004         PR middle-end/47917
4005         * builtins.c (fold_builtin_snprintf): New function.
4006         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
4007         (fold_builtin_4): Likewise.
4008
4009         PR middle-end/38878
4010         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
4011         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
4012         and C - X == X also strip nops from +/-/p+ operand.
4013         When optimizing -X == C, fold C to arg0's type.
4014
4015         PR debug/47946
4016         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
4017         emit it as add_AT_int instead of add_AT_unsigned.
4018
4019 2011-03-14  Tom Tromey  <tromey@redhat.com>
4020
4021         * unwind-dw2.c: Include sys/sdt.h if it exists.
4022         (_Unwind_DebugHook): Use STAP_PROBE2.
4023         * config.in, configure: Rebuild.
4024         * configure.ac: Check for sys/sdt.h.
4025
4026 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
4027
4028         * config/i386/i386.md (ROUND_FLOOR): New constant.
4029         (ROUND_CEIL): Ditto.
4030         (ROUND_TRUNC): Ditto.
4031         (ROUND_MXCSR): Ditto.
4032         (ROUND_NO_EXC): Ditto.
4033         (rint<mode>2): Use new defines instead of numerical constants.
4034         (floor<mode>2): Ditto.
4035         (ceil<mode>2): Ditto.
4036         (btrunc<mode>2): Ditto.
4037         * config/i386/i386-builtin-types.def: Define ROUND function type
4038         aliases.
4039         * config/i386/i386.c (enum ix86_builtins): Add
4040         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
4041         (struct builtin_description): Add
4042         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
4043         (ix86_expand_sse_round): New static function.
4044         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
4045         function types.
4046         (ix86_builtin_vectorized_function): Handle
4047         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
4048
4049 2011-03-14  Tom Tromey  <tromey@redhat.com>
4050
4051         * c-parser.c (c_parser_asm_string_literal): Clear
4052         warn_overlength_strings.
4053
4054 2011-03-14  Tom Tromey  <tromey@redhat.com>
4055
4056         * c-parser.c (disable_extension_diagnostics): Save
4057         warn_overlength_strings.
4058         (restore_extension_diagnostics): Restore warn_overlength_strings.
4059
4060 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4061
4062         * BASE-VER: Change to 4.7.0.
4063
4064 2011-03-14  Richard Guenther  <rguenther@suse.de>
4065
4066         PR middle-end/48098
4067         * tree.c (build_vector_from_val): Adjust assert to requirements
4068         and reality.
4069
4070 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
4071
4072         PR bootstrap/48102
4073         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
4074
4075 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
4076
4077         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
4078         terms of target_flags_explicit. Adjust copyright year.
4079
4080         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
4081         * config/rs6000/t-freebsd: New file. Add override for
4082         LIB2FUNCS_EXTRA.
4083
4084 2011-03-13  Chris Demetriou  <cgd@google.com>
4085
4086         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
4087         (-fno-diagnostics-show-option): this, to reflect current default.
4088         (-Werror=): Update text about -fno-diagnostics-show-option.
4089
4090 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
4091
4092         PR target/48053
4093         * config/rs6000/predicates.md (easy_vector_constant_add_self,
4094         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
4095         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
4096         mode is not V2DImode or V2DFmode.
4097         (vspltis_constant): Do not handle V2DImode and V2DFmode.
4098         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
4099         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
4100         registers to 0.
4101         (movdi_internal64): Likewise.
4102
4103 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
4104
4105         PR tree-optimization/47127
4106         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
4107         parameter.
4108         (set_cloog_options): Same.
4109         (scop_to_clast): Same.
4110         (print_clast_stmt): Do not call cloog_state_malloc and
4111         cloog_state_free.
4112         (print_generated_program): Same.
4113         (gloog): Same.
4114         * graphite-clast-to-gimple.h (cloog_state): Declared.
4115         (scop_to_clast): Adjust declaration.
4116         * graphite.c (cloog_state): Defined here.
4117         (graphite_initialize): Call cloog_state_malloc.
4118         (graphite_finalize): Call cloog_state_free.
4119
4120 2011-03-11  Jason Merrill  <jason@redhat.com>
4121
4122         * attribs.c (lookup_attribute_spec): Take const_tree.
4123         * tree.h: Adjust.
4124
4125 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
4126
4127         * config/sparc/sparc.c (sparc_option_override): Use
4128         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
4129
4130 2011-03-11  Richard Guenther  <rguenther@suse.de>
4131
4132         PR tree-optimization/48067
4133         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
4134         multiplication result will be only used once on the target
4135         stmt.
4136
4137 2011-03-11  Richard Guenther  <rguenther@suse.de>
4138
4139         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
4140
4141 2011-03-11  Richard Guenther  <rguenther@suse.de>
4142
4143         PR lto/48073
4144         * tree.c (find_decls_types_r): Do not walk types only reachable
4145         from IDENTIFIER_NODEs.
4146
4147 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4148
4149         PR middle-end/48044
4150         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
4151         all vnode->force_output nodes as needed.
4152
4153 2011-03-11  Jason Merrill  <jason@redhat.com>
4154
4155         PR c++/48069
4156         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
4157         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
4158
4159 2011-03-11  Martin Jambor  <mjambor@suse.cz>
4160
4161         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
4162         cgraph_node.
4163
4164 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
4165
4166         PR tree-optimization/48063
4167         * ipa-inline.c (cgraph_decide_inlining): Don't try to
4168         inline functions called once if !tree_can_inline_p (node->callers).
4169
4170 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
4171
4172         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
4173         extra_objs.
4174         * config/score/score3.c: Delete.
4175         * config/score/score3.h: Delete.
4176         * config/score/mul-div.S: Delete.
4177         * config/score/sfp-machine.h: Add new file.
4178         * config/score/constraints.md: Add new file.
4179         * config/score/t-score-softfp: Add new file.
4180         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
4181         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
4182         (score7_extra_constraint): Delete.
4183         (score7_option_override): Remove unused code.
4184         * config/score/score.c: Remove score3 and score5 define and code.
4185         * config/score/score.h: Remove score3 and score5 define and code.
4186         * config/score/score.md: Remove score3 template and unusual insn.
4187         * config/score/score.opt: Remove score3 and score5 options.
4188
4189 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4190
4191         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
4192         when _HPUX_SOURCE is defined.
4193         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
4194
4195 2011-03-10  Jason Merrill  <jason@redhat.com>
4196
4197         PR c++/48029
4198         * stor-layout.c (layout_type): Don't set structural equality
4199         on arrays of incomplete type.
4200         * tree.c (type_hash_eq): Handle comparing them properly.
4201
4202 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
4203
4204         PR debug/48043
4205         * config/s390/s390.c (s390_delegitimize_address): Make sure the
4206         result mode matches original rtl mode.
4207
4208 2011-03-10  Nick Clifton  <nickc@redhat.com>
4209
4210         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
4211         (andsi3, andsi3_flags): Fix timings for three operand alternative.
4212
4213 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
4214
4215         PR rtl-optimization/47866
4216         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
4217         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
4218         if target wasn't scalar.
4219         * function.c (assign_stack_temp_for_type): Assert that neither
4220         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
4221         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
4222         macro.
4223         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
4224
4225 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4226
4227         * config/s390/s390-protos.h (s390_label_align): New prototype.
4228         * config/s390/s390.c (s390_label_align): New function.
4229         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
4230
4231 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4232
4233         PR target/47755
4234         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
4235         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
4236         (output_vec_const_move): Ditto.
4237
4238 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
4239
4240         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
4241         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
4242         * config/mips/mips.c (mips_preferred_reload_class): Make static.
4243         Change 'rclass' argument and result type to reg_class_t.
4244         (TARGET_PREFERRED_RELOAD_CLASS): Define.
4245
4246 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
4247
4248         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4249         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
4250         (TARGET_MEMORY_MOVE_COST): Define.
4251         (avr_register_move_cost, avr_memory_move_cost): New Functions.
4252
4253 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
4254
4255         PR debug/47881
4256         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
4257         removed anything.
4258
4259         PR tree-optimization/48022
4260         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
4261         for EQ/NE_EXPR.
4262
4263 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
4264
4265         PR debug/47991
4266         * var-tracking.c (find_use_val): Return NULL for
4267         cui->sets && cui->store_p BLKmode MEMs.
4268
4269 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
4270
4271         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
4272         Remove.
4273         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
4274         xstormy16_print_operand_address): Remove.
4275         * config/stormy16/stormy16.c (xstormy16_print_operand,
4276         xstormy16_print_operand_address): Make static.
4277         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
4278
4279 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
4280
4281         PR target/47862
4282         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
4283         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
4284         before definition.
4285
4286 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
4287
4288         PR bootstrap/48000
4289         * cfgloopmanip.c (fix_bb_placements): Return immediately
4290         if FROM is BASE_LOOP's header.
4291
4292 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
4293
4294         * gimplify.c (gimplify_function_tree): Fix building calls
4295         to __builtin_return_address.
4296
4297 2011-03-07  Alan Modra  <amodra@gmail.com>
4298
4299         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
4300         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
4301         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
4302         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
4303         return_mode args.
4304         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
4305         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
4306         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
4307         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
4308         * config/rs6000/rs6000.c
4309         (rs6000_elf_end_indicate_exec_stack): Rename to..
4310         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
4311         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
4312         (rs6000_file_start): ..here.
4313         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
4314         file scope variables.
4315         (call_ABI_of_interest): New function.
4316         (init_cumulative_args): Set above vars when function return value
4317         is a float, vector, or small struct.
4318         (rs6000_function_arg_advance_1): Likewise for function args.
4319         (rs6000_va_start): Set rs6000_passes_float if variable arg function
4320         references float args.
4321
4322 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
4323
4324         * doc/cfg.texi: Remove "See" before @ref.
4325         * doc/invoke.texi: Likewise.
4326
4327 2011-03-05  Jason Merrill  <jason@redhat.com>
4328
4329         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
4330
4331 2011-03-05  Anthony Green  <green@moxielogic.com>
4332
4333         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
4334
4335 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
4336
4337         PR rtl-optimization/47899
4338         * cfgloopmanip.c (fix_bb_placements): Fix first argument
4339         to flow_loop_nested_p when moving the loop upward.
4340
4341 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
4342
4343         PR target/47719
4344         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
4345
4346 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
4347
4348         PR tree-optimization/47967
4349         * ipa-cp.c (build_const_val): Return NULL instead of creating
4350         VIEW_CONVERT_EXPR for mismatching sizes.
4351         (ipcp_create_replace_map): Return NULL if build_const_val failed.
4352         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
4353         give up on versioning.
4354
4355 2011-03-05  Alan Modra  <amodra@gmail.com>
4356
4357         PR target/47986
4358         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4359         full cmodel medium/large lo_sum + high addresses.
4360
4361 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4362
4363         * config/s390/s390.c (s390_decompose_address): Reject non-literal
4364         pool references in UNSPEC_LTREL_OFFSET.
4365
4366 2011-03-04  Jan Hubicka  <jh@suse.cz>
4367
4368         PR lto/47497
4369         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
4370         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
4371         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
4372         Add node pointers.
4373         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
4374         cgraph_add_thunk): Add node pointers.
4375         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
4376         associated to right node.
4377         (input_node): Update use of cgraph_same_body_alias
4378         and cgraph_add_thunk.
4379
4380 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
4381
4382         * config/i386/i386.opt (mprefer-avx128): New flag.
4383         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
4384         modes when the flag -mprefer-avx128 is on.
4385
4386 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
4387
4388         * dwarf2out.c (compare_loc_operands): Fix address handling.
4389
4390 2011-03-04  Alan Modra  <amodra@gmail.com>
4391
4392         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
4393
4394 2011-03-04  Richard Guenther  <rguenther@suse.de>
4395
4396         PR middle-end/47968
4397         * expmed.c (extract_bit_field_1): Prefer vector modes that
4398         vec_extract patterns can handle.
4399
4400 2011-03-04  Richard Guenther  <rguenther@suse.de>
4401
4402         PR middle-end/47975
4403         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
4404
4405 2011-03-04  Richard Henderson  <rth@redhat.com>
4406
4407         * explow.c (emit_stack_save): Remove 'after' parameter.
4408         (emit_stack_restore): Likewise.
4409         * expr.h: Update to match.
4410         * builtins.c, calls.c, stmt.c: Likewise.
4411         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
4412         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
4413         * function.c (expand_function_end): Insert the emit_stack_save
4414         sequence before parm_birth_insn instead of after.
4415
4416 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
4417
4418         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
4419         (ssse3_pmaddubsw128): Ditto.
4420         (ssse3_pmaddubsw): Ditto.
4421
4422 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
4423
4424         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
4425
4426 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
4427
4428         PR c/47963
4429         * gimplify.c (omp_add_variable): Only call omp_notice_variable
4430         on TYPE_SIZE_UNIT if it is a DECL.
4431
4432         PR debug/47283
4433         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
4434         first operand is not is_gimple_mem_ref_addr, try to fold it.
4435         If the operand still isn't is_gimple_mem_ref_addr, clear
4436         MEM_EXPR on op0.
4437
4438 2011-03-03  Richard Guenther  <rguenther@suse.de>
4439
4440         PR middle-end/47283
4441         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
4442         match comment.
4443         (refs_may_alias_p_1): For release branches return true if
4444         we are confused by our input.
4445
4446 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4447
4448         * config/s390/s390.c (s390_function_value): Rename to ...
4449         (s390_function_and_libcall_value): ... this.
4450         (s390_function_value): New function.
4451         (s390_libcall_value): New function.
4452         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
4453         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
4454         target macro definitions.
4455         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
4456
4457 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
4458
4459         * config/i386/freebsd64.h (CC1_SPEC): Define.
4460         * config/i386/linux64.h (CC1_SPEC): Define.
4461         * config/i386/x86-64.h (CC1_SPEC): Don't define.
4462
4463 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
4464
4465         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4466         Remove.
4467         * config/stormy16/stormy16.c: Include reload.h.
4468         (xstormy16_memory_move_cost): New function.
4469         (TARGET_MEMORY_MOVE_COST): Define.
4470
4471 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
4472
4473         PR rtl-optimization/47925
4474         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
4475         with side effects.  Remove the more-specific check for volatile asms.
4476
4477 2011-03-02  Alan Modra  <amodra@gmail.com>
4478
4479         PR target/47935
4480         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
4481         toc relative addresses for valid offsets.
4482
4483 2011-03-01  Richard Guenther  <rguenther@suse.de>
4484
4485         PR tree-optimization/47890
4486         * tree-vect-loop.c (get_initial_def_for_induction): Set
4487         related stmt properly.
4488
4489 2011-03-01  Richard Guenther  <rguenther@suse.de>
4490
4491         PR lto/47924
4492         * lto-streamer.c (lto_record_common_node): Also register
4493         the canonical type.
4494
4495 2011-03-01  Richard Guenther  <rguenther@suse.de>
4496
4497         PR lto/46911
4498         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
4499         Do not stream DECL_ABSTRACT_ORIGIN.
4500         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
4501         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
4502         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
4503         Do not stream DECL_ABSTRACT_ORIGIN.
4504         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
4505         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
4506
4507 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
4508
4509         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
4510         FUNCTION_VALUE_REGNO_P): Remove.
4511         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
4512         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
4513         Add 'outgoing' argument.
4514         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
4515         function.
4516         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4517         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4518
4519 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
4520
4521         PR debug/28047
4522         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
4523         (lookup_filename): Likewise.
4524         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
4525
4526 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
4527             Jakub Jelinek  <jakub@redhat.com>
4528
4529         PR middle-end/47893
4530         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
4531         (assign_stack_local_1): Change last argument type to int.
4532         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
4533         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
4534         don't record padding space into frame_space_list nor use those areas.
4535         (assign_stack_local): Adjust caller.
4536         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
4537         of assign_stack_local, pass 0 as last argument.
4538         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
4539         callers.
4540
4541 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
4542
4543         PR debug/47283
4544         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
4545         Use target address_mode and pointer_mode hooks instead of hardcoded
4546         Pmode and ptr_mode.  Handle some simple cases of extending if
4547         POINTERS_EXTEND_UNSIGNED < 0.
4548         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
4549         Call convert_debug_memory_address.
4550         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
4551         convert_debug_memory_address.
4552
4553         PR middle-end/46790
4554         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
4555         * configure: Regenerated.
4556         * config.in: Regenerated.
4557         * varasm.c (default_function_section): Return NULL
4558         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
4559
4560 2011-02-28  Martin Jambor  <mjambor@suse.cz>
4561
4562         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
4563         the description to match the printed values.
4564
4565 2011-02-28  Richard Guenther  <rguenther@suse.de>
4566
4567         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
4568         of the copied scope tree.
4569
4570 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4571
4572         * doc/extend.texi (Function Attributes): Avoid deeply (and
4573         wrongly) nested tables.
4574
4575 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
4576
4577         PR middle-end/47903
4578         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
4579         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
4580         r isn't op0 nor op1.
4581
4582 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
4583
4584         * config/avr/avr.md: Remove magic comment for emacs.
4585
4586 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
4587
4588         PR target/45261
4589         * config/avr/avr.c (avr_option_override): Use error on bad options.
4590         (avr_help): New function.
4591         (TARGET_HELP): Define.
4592
4593 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
4594
4595         PR target/42240
4596         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
4597         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
4598
4599 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
4600
4601         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
4602         (ARM Options): Ditto.
4603         (i386 and x86-64 Options): Ditto.
4604         (RX Options): Ditto.
4605         (SPARC Options): Ditto.
4606
4607 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
4608
4609         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
4610         FreeBSD 6 and later.  Generally use cpu generic.
4611
4612 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
4613
4614         * doc/cpp.texi: Update copyright years.
4615
4616 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
4617
4618         PR target/46898
4619         * config/lm32/lm32.md (ashrsi3): Added needed variable.
4620
4621 2011-02-25  Jon Beniston  <jon@beniston.com>
4622
4623         PR target/46898
4624         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
4625         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4626         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
4627         (lm32_block_move_inline): Add type cast to remove warning.
4628         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
4629         (gen_int_relational): Move declarations to start of function.
4630
4631 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
4632
4633         PR tree-optimization/45470
4634         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
4635         can throw internally only.
4636         * tree-vect-stmts.c (vectorizable_call): Likewise.
4637
4638 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
4639
4640         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
4641         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4642         * config/stormy16/stormy16-protos.h
4643         (xstormy16_preferred_reload_class): Remove.
4644         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
4645         static. Change 'rclass' argument and return type to reg_class_t.
4646         (TARGET_PREFERRED_RELOAD_CLASS,
4647         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4648
4649 2011-02-24  Richard Guenther  <rguenther@suse.de>
4650
4651         * lto-streamer-in.c (input_bb): Do not find referenced vars
4652         in debug statements.
4653
4654 2011-02-23  Jason Merrill  <jason@redhat.com>
4655
4656         * common.opt (fabi-version): Document v5 and v6.
4657
4658 2011-02-23  Richard Guenther  <rguenther@suse.de>
4659
4660         PR tree-optimization/47849
4661         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
4662
4663 2011-02-23  Jie Zhang  <jie@codesourcery.com>
4664
4665         * opts-common.c (decode_cmdline_option): Print empty string
4666         argument as "" in decoded->orig_option_with_args_text.
4667         * gcc.c (execute): Print empty string argument as ""
4668         in the verbose output.
4669         (do_spec_1): Keep empty string argument.
4670
4671 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
4672
4673         * config.gcc: Declare score-* and crx-* obsolete.
4674
4675 2011-02-23  Jie Zhang  <jie@codesourcery.com>
4676
4677         PR rtl-optimization/47763
4678         * web.c (web_main): Ignore naked clobber when replacing register.
4679
4680 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
4681
4682         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4683         Remove.
4684
4685 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
4686
4687         PR doc/47848
4688         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
4689
4690 2011-02-22  Mike Stump  <mikestump@comcast.net>
4691
4692         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
4693         assembler.
4694         * configure: Regenerate.
4695
4696 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
4697
4698         PR rtl-optimization/46002
4699         * ira-color.c (update_copy_costs): Change class intersection
4700         test to reg_class_contents[] test of 'hard_regno'.
4701
4702 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
4703
4704         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
4705         than Driver option.
4706         * config/hpux11.opt (mt): Likewise.
4707         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
4708         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
4709         * config/vax/elf.opt (mno-asm-pic): Likewise.
4710         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
4711
4712 2011-02-21  Mike Stump  <mikestump@comcast.net>
4713
4714         PR target/47822
4715         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
4716         tree so we can get save the type.
4717         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
4718         for CFString instead of trying to use past the end of the builtins.
4719         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
4720         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
4721         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
4722         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
4723         Rename to darwin_builtin_cfstring.
4724         (darwin_init_cfstring_builtins): Return the built type.
4725
4726 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
4727
4728         PR target/47840
4729         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
4730         (_mm256_insert_epi64): Use _mm_insert_epi64.
4731
4732 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
4733
4734         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4735         * config/stormy16/stormy16-protos.h
4736         (xstormy16_mode_dependent_address_p): Remove.
4737         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
4738         Make static. Change return type to bool. Change argument type to
4739         const_rtx. Remove dead code.
4740         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4741
4742 2011-02-21  Richard Guenther  <rguenther@suse.de>
4743
4744         PR lto/47820
4745         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
4746         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
4747         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
4748         TUs context.
4749         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
4750         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
4751
4752 2011-02-20  Richard Guenther  <rguenther@suse.de>
4753
4754         PR lto/47822
4755         * tree.c (free_lang_data_in_decl): Clean builtins from
4756         the TU decl BLOCK_VARS.
4757
4758 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
4759
4760         PR debug/47620
4761         PR debug/47630
4762         * haifa-sched.c (fix_tick_ready): Skip tick computation
4763         for debug insns.
4764
4765 2011-02-19  Richard Guenther  <rguenther@suse.de>
4766
4767         PR lto/47647
4768         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
4769         Remove lazy BLOCK_VARS streaming.
4770         (lto_input_ts_block_tree_pointers): Likewise.
4771         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
4772
4773 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
4774
4775         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
4776
4777 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
4778
4779         * config/i386/biarch32.h, config/i386/mach.h,
4780         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
4781
4782 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
4783
4784         PR target/47800
4785         * config/i386/i386.md (peephole2 for shift and plus): Use
4786         operands[1] original mode in the first insn.
4787
4788 2011-02-18  Mike Stump  <mikestump@comcast.net>
4789
4790         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
4791
4792 2011-02-18  Jan Hubicka  <jh@suse.cz>
4793
4794         PR middle-end/47788
4795         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
4796         to zero when the function is not inlinable at all.
4797
4798 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4799
4800         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
4801         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4802         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
4803         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
4804         * config/pa/t-pa64: Likewise.
4805         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
4806
4807 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
4808
4809         PR driver/47787
4810         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
4811
4812 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4813
4814         PR target/47792
4815         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
4816
4817 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
4818
4819         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
4820         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
4821         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
4822         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
4823         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
4824         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
4825         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
4826         m32r_load_postinc_p, m32r_store_preinc_predec_p,
4827         m32r_legitimate_address_p): New functions.
4828         * config/m32r/constraints.md (constraint "S"): Don't use
4829         STORE_PREINC_PREDEC_P.
4830         (constraint "U"): Don't use LOAD_POSTINC_P.
4831
4832 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
4833
4834         PR rtl-optimization/46178
4835         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
4836         compute ira_hard_regno_cover_class[].
4837
4838 2011-02-18  Richard Guenther  <rguenther@suse.de>
4839
4840         PR lto/47798
4841         * lto-streamer.h (lto_global_var_decls): Declare.
4842         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
4843         statics for global var processing.
4844
4845 2011-02-18  Richard Guenther  <rguenther@suse.de>
4846
4847         PR tree-optimization/47737
4848         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
4849         edge dominance check.
4850
4851 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
4852
4853         PR debug/47780
4854         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
4855         avoid invalid rtx sharing.
4856
4857 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
4858
4859         * doc/cpp.texi (Obsolete Features): Add background on the
4860         origin of assertions.
4861
4862 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
4863
4864         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
4865         objc_abi == 2.
4866         * config/darwin.c (output_objc_section_asm_op): Added support for
4867         ABI v1 and v2.
4868         (is_objc_metadata): New.
4869         (darwin_objc2_section): New.
4870         (darwin_objc1_section): New.
4871         (machopic_select_section): Added support for ABI v1 and v2.
4872         (darwin_emit_objc_zeroed): New.
4873         (darwin_output_aligned_bss): Detect objc metadata and treat it
4874         appropriately.
4875         (darwin_asm_output_aligned_decl_common): Same.
4876         (darwin_asm_output_aligned_decl_local): Same.
4877         * config/darwin-sections.def: Updated for ABI v1 and v2.
4878         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
4879         compiling Objective-C code for the NeXT runtime, default to using
4880         ABI version 0 for 32-bit, and version 2 for 64-bit.
4881
4882 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4883
4884         * common.opt (optimize_fast): New Variable.
4885         * opts.c (default_options_optimization): Use opts->x_optimize_fast
4886         instead of local variable ofast.
4887
4888 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4889
4890         * doc/invoke.texi (fobjc-abi-version): Documented.
4891         (fobjc-nilcheck): Documented.
4892         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
4893         version.
4894
4895 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4896
4897         PR driver/47390
4898         * common.opt (export-dynamic): New Driver option.
4899         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
4900
4901 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4902
4903         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
4904
4905 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
4906             Jan Hubicka  <jh@suse.cz>
4907
4908         PR debug/47106
4909         PR debug/47402
4910         * cfgexpand.c (account_used_vars_for_block): Remove.
4911         (estimated_stack_frame_size): Use referenced vars.
4912         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
4913         that were referenced in the original function.  Test src_fn
4914         rather than cfun.  Drop redundant get_var_ann.
4915         (setup_one_parameter): Drop redundant get_var_ann.
4916         (declare_return_variable): Likewise.
4917         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
4918         (copy_arguments_for_versioning): Drop redundant get_var_ann.
4919         * ipa-inline.c (compute_inline_parameters): Do not compute
4920         disregard_inline_limits here.
4921         (compute_inlinable_for_current, pass_inlinable): New.
4922         (pass_inline_parameters): Require PROP_referenced_vars.
4923         * cgraphunit.c (cgraph_process_new_functions): Don't run
4924         compute_inline_parameters explicitly unless function is in SSA form.
4925         (cgraph_analyze_function): Set .disregard_inline_limits.
4926         * tree-sra.c (convert_callers): Compute inliner parameters
4927         only for functions already in SSA form.
4928
4929 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4930
4931         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
4932         -mlittle-endian-data.
4933
4934 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4935
4936         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
4937         -mno-fpu, not -fpu and -no-fpu.
4938         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
4939         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
4940
4941 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
4942
4943         PR target/43653
4944         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
4945         input reload with PLUS RTX.
4946
4947 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4948
4949         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
4950         of InverseVar(MDMX).
4951
4952 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4953
4954         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
4955         --m4-340.
4956
4957 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4958
4959         * config/mn10300/mn10300.opt (mno-crt0): New.
4960
4961 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4962
4963         * config/m68k/uclinux.opt (static-libc): New Driver option.
4964
4965 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4966
4967         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
4968
4969 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4970
4971         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
4972         %{muser-extend-enabled}.
4973
4974 2011-02-16  Richard Guenther  <rguenther@suse.de>
4975
4976         PR tree-optimization/47738
4977         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
4978         the TODO from tree_predictive_commoning.
4979
4980 2011-02-15  Jeff Law  <law@redhat.com>
4981
4982         Revert
4983         2011-01-25  Jeff Law  <law@redhat.com>
4984
4985         PR rtl-optimization/37273
4986         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4987         handle them like argument loads from stack slots.  Do not double
4988         count memory for memory constants and argument loads from stack slots.
4989
4990 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4991
4992         PR middle-end/47725
4993         * combine.c (cant_combine_insn_p): Revert the last change.
4994
4995 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4996
4997         PR target/47755
4998         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
4999         mode for vector constants.  Remove code that checks for TImode.
5000
5001 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5002
5003         PR debug/47106
5004         PR debug/47402
5005         * cgraph.h (compute_inline_parameters): Return void.
5006         * ipa-inline.c (compute_inline_parameters): Adjust.
5007
5008 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5009
5010         PR debug/47106
5011         PR debug/47402
5012         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
5013         rather than decl.
5014         * cfgexpand.c (estimated_stack_frame_size): Likewise.
5015         * ipa-inline.c (compute_inline_parameters): Adjust.
5016
5017 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5018
5019         PR debug/47106
5020         PR debug/47402
5021         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
5022         Adjust all users.  Pass FN to...
5023         * tree-flow-inline.h (first_referenced_var): ... this.  Add
5024         fn argument.
5025         * ipa-struct-reorg.c: Adjust.
5026         * tree-dfa.c: Adjust.
5027         * tree-into-ssa.c: Adjust.
5028         * tree-sra.c: Adjust.
5029         * tree-ssa-alias.c: Adjust.
5030         * tree-ssa-live.c: Adjust.
5031         * tree-ssa.c: Adjust.
5032         * tree-ssanames.c: Adjust.
5033         * tree-tailcall.c: Adjust.
5034
5035 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
5036
5037         PR debug/47106
5038         PR debug/47402
5039         * tree-flow.h (referenced_var_lookup): Add fn parameter.
5040         Adjust all callers.
5041         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
5042         * tree-flow-inline.h: Adjust.
5043         * gimple-pretty-print.c: Adjust.
5044         * tree-into-ssa.c: Adjust.
5045         * tree-ssa.c: Adjust.
5046         * cfgexpand.c: Adjust.
5047
5048 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5049
5050         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
5051         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5052         (EXTRA_CONSTRAINT): Delete.
5053         * config/iq2000/constraints.md: New file.
5054         * config/iq2000/iq2000.md: Include it.
5055         (define_insn ""): Delete.
5056         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
5057         unsupported constraint letters from patterns.
5058         (call_value, call_value_internal1): Likewise.
5059         (call_value_multiple_internal1): Likewise.
5060
5061 2011-02-15  Nick Clifton  <nickc@redhat.com>
5062
5063         * config/mn10300/mn10300.c: Include tm-constrs.h.
5064         (struct liw_data): New data structure describing an LIW candidate
5065         instruction.
5066         (extract_bundle): Use struct liw_data.  Allow small integer
5067         operands for some instructions.
5068         (check_liw_constraints): Use struct liw_data.  Remove swapped
5069         parameter.  Add comments describing the checks.  Fix bug when
5070         assigning the source of liw1 to the source of liw2.
5071         (liw_candidate): Delete.  Code moved into extract_bundle.
5072         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
5073         before swapping.
5074         * config/mn10300/predicates.md (liw_operand): New predicate.
5075         Allows registers and small integer constants.
5076         * config/mn10300/constraints.md (O): New constraint.  Accetps
5077         integers in the range -8 to +7 inclusive.
5078         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
5079         for moving a small integer into a register.  Give this alternative
5080         LIW attributes.
5081         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
5082         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
5083         using the J,K,L and M constraints,
5084         (liw): Remove SI mode on second operands to allow for HI and QI
5085         mode values.
5086         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
5087         instruction.
5088
5089 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5090
5091         PR middle-end/47725
5092         * combine.c (cant_combine_insn_p): Check zero/sign extended
5093         hard registers.
5094
5095 2011-02-15  Richard Guenther  <rguenther@suse.de>
5096
5097         PR tree-optimization/47743
5098         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
5099         for a non-type-compatible VN lookup bail out.
5100
5101 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5102
5103         * config/fr30/constraints.md: New file.
5104         * config/fr30/fr30.md: Include it.
5105         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
5106         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5107         (EXTRA_CONSTRAINT): Delete.
5108
5109 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
5110
5111         * config/frv/constraints.md: New file.
5112         * config/frv/predicates.md: Include it.
5113         * config/frv/frv.c (reg_class_from_letter): Delete.
5114         (frv_option_override): Don't initialize it.
5115         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
5116         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
5117         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
5118         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5119         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
5120         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5121         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
5122         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
5123         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
5124         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
5125         (REG_CLASS_FROM_CONSTRAINT): Delete.
5126
5127 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
5128
5129         PR middle-end/47581
5130         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
5131         if frame size is 0 in a leaf function.
5132
5133 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5134
5135         PR pch/14940
5136         * config/alpha/host-osf.c: New file.
5137         * config/alpha/x-osf: New file.
5138         * config.host (alpha*-dec-osf*): Use it.
5139
5140 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5141
5142         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5143         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
5144         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
5145         (rx_mode_dependent_address_p): ...this. Make static. Change argument
5146         type to const_rtx.
5147         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5148
5149 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5150
5151         * config/stormy16/constraints.md: New file.
5152         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
5153         Use satisfies_constraint_Q and satisfies_constraint_R.
5154         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
5155         Delete.
5156         (xstormy16_legitiamte_address_p): Declare.
5157         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
5158         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5159         (EXTRA_CONSTRAINT): Delete.
5160         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5161         Un-staticize.
5162         (xstormy16_extra_constraint_p): Delete.
5163
5164 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5165
5166         PR tree-optimization/46494
5167         * loop-unroll.c (split_edge_and_insert): Adjust comment.
5168         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
5169         (pass_rtl_loop_done): Add TODO_verify_flow.
5170         * fwprop.c (pass_rtl_fwprop): Likewise.
5171         * modulo-sched.c (pass_sms): Likewise.
5172         * tree-ssa-dom.c (pass_dominator): Likewise.
5173         * tree-ssa-loop-ch.c (pass_ch): Likewise.
5174         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
5175         (pass_tree_loop_done): Likewise.
5176         * tree-ssa-pre.c (execute_pre): Likewise.
5177         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5178         * tree-ssa-sink.c (pass_sink_code): Likewise.
5179         * tree-vrp.c (pass_vrp): Likewise.
5180
5181 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5182
5183         * config/v850/constraints.md: New file.
5184         * config/v850/v850.md: Include it.
5185         * config/v850/predicates.md (reg_or_0_operand): Use
5186         satisfies_constraint_G.
5187         (special_symbolref_operand): Use satisfies_constraint_K.
5188         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
5189         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5190         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
5191         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
5192         (EXTRA_CONSTRAINT): Delete.
5193         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
5194         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
5195         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
5196
5197 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
5198
5199         PR target/47696
5200         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
5201         description.
5202
5203 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
5204
5205         * config/mcore/constraints.md: New file.
5206         * config/mcore/mcore.md: Include it.
5207         * config/mcore/mcore.c (reg_class_from_letter): Delete.
5208         * config/mcore/mcore.h (reg_class_from_letter): Delete.
5209         (REG_CLASS_FROM_LETTER): Delete.
5210         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
5211         insn_const_int_ok_for_constraint.
5212         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
5213         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
5214         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5215         (EXTRA_CONSTRAINT): Delete.
5216
5217 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5218
5219         PR ada/41929
5220         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
5221         (IS_SIGHANDLER): Define.
5222         (sparc64_is_sighandler): New function, split off from
5223         sparc64_fallback_frame_state.
5224         (sparc_is_sighandler): New function, split off from
5225         sparc_fallback_frame_state.
5226         (sparc64_fallback_frame_state): Merge with ...
5227         (sparc_fallback_frame_state): ... this into ...
5228         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
5229         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
5230         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
5231         stack instead of hardcoded offsets.
5232
5233 2011-02-14  Andriy Gapon  <avg@freebsd.org>
5234
5235         PR target/45808
5236         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
5237
5238 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5239
5240         * configure: Regenerate.
5241
5242 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
5243
5244         PR driver/45731
5245         * gcc.c (asm_options): Correct spec matching --target-help.
5246
5247 2011-02-12  Martin Jambor  <mjambor@suse.cz>
5248
5249         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
5250         to gimple call error.
5251
5252 2011-02-12  Mike Stump  <mikestump@comcast.net>
5253
5254         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
5255         comments in backslash regions.
5256
5257 2011-02-12  Mike Stump  <mikestump@comcast.net>
5258             Jakub Jelinek  <jakub@redhat.com>
5259             Iain Sandoe  <iains@gcc.gnu.org>
5260
5261         PR target/47324
5262         * dwarf2out.c (output_cfa_loc): When required, apply the
5263         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
5264         (output_loc_sequence): Likewise.
5265         (output_loc_operands_raw): Likewise.
5266         (output_loc_sequence_raw): Likewise.
5267         (output_cfa_loc): Likewise.
5268         (output_loc_list): Suppress register number adjustment when
5269         calling output_loc_sequence()
5270         (output_die): Likewise.
5271
5272 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
5273
5274         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
5275         Remove macros.
5276         * config/xtensa/xtensa.c (xtensa_register_move_cost,
5277         xtensa_memory_move_cost): New functions.
5278         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
5279
5280 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
5281
5282         PR lto/47225
5283         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
5284         in the current directory.
5285         * configure: Rebuilt.
5286
5287 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
5288
5289         * config/darwin.c (darwin_override_options): Add a hunk missed
5290         from the commit of r168571.  Trim comment line lengths and
5291         correct indents of the preceding block.
5292
5293 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
5294
5295         * gcc.c (driver_handle_option): Concatenate the argument to -F with
5296         the switch.
5297
5298 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
5299
5300         * common.opt (nostartfiles): New Driver option.
5301
5302 2011-02-11  Xinliang David Li  <davidxl@google.com>
5303
5304         PR tree-optimization/47707
5305         * tree-chrec.c (convert_affine_scev): Keep type precision.
5306
5307 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
5308
5309         PR tree-optimization/47420
5310         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
5311
5312 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
5313
5314         PR rtl-optimization/47614
5315         * rtl.h (check_for_inc_dec): Declare.
5316         * dse.c (check_for_inc_dec): Externalize...
5317         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
5318         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
5319
5320 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
5321
5322         PR driver/47678
5323         * gcc.c (main): Do not compile inputs if there were errors in
5324         option handling.
5325         * opts-common.c (read_cmdline_option): Check for wrong language
5326         after other error checks.
5327
5328 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
5329
5330         * cgraph.c: Fix comment typos.
5331         * cgraph.h: Likewise.
5332         * cgraphunit.c: Likewise.
5333         * ipa-cp.c: Likewise.
5334         * ipa-inline.c: Likewise.
5335         * ipa-prop.c: Likewise.
5336         * ipa-pure-const.c: Likewise.
5337         * ipa-ref.c: Likewise.
5338         * ipa-reference.c: Likewise.
5339
5340 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
5341
5342         PR debug/47684
5343         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
5344
5345 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5346
5347         PR testsuite/47400
5348         * doc/sourcebuild.texi (Require Support): Document
5349         dg-require-ascii-locale.
5350
5351 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
5352
5353         * doc/lto.texi (Write summary): Fix missing parentheses.
5354
5355 2011-02-10  DJ Delorie  <dj@redhat.com>
5356
5357         * config/m32c/m32c.c (m32c_option_override): Disable
5358         -fcombine-stack-adjustments until flag value tracking and compare
5359         optimization can be rewritten.
5360
5361 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
5362
5363         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
5364         PROCESSOR_POWER7.
5365         (PROCESSOR_DEFAULT64): Likewise.
5366
5367 2011-02-10  Richard Henderson  <rth@redhat.com>
5368
5369         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
5370         change from 2011-02-03.
5371         * config/rx/rx.c (flags_from_code): Likewise.
5372         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
5373         is valid, n/pz otherwise.
5374         (rx_select_cc_mode): Return CCmode if Y is not zero.
5375
5376 2011-02-10  Richard Guenther  <rguenther@suse.de>
5377
5378         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
5379
5380 2011-02-10  Richard Guenther  <rguenther@suse.de>
5381
5382         PR tree-optimization/47677
5383         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
5384
5385 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
5386
5387         PR target/47665
5388         * combine.c (make_compound_operation): Only change shifts into
5389         multiplication for SCALAR_INT_MODE_P.
5390
5391 2011-02-10  Jie Zhang  <jie@codesourcery.com>
5392
5393         PR testsuite/47622
5394         Revert
5395         2011-02-05  Jie Zhang  <jie@codesourcery.com>
5396         PR debug/42631
5397         * web.c (entry_register): Don't clobber the number of the
5398         first uninitialized reference in used[].
5399
5400 2011-02-09  Richard Guenther  <rguenther@suse.de>
5401
5402         PR tree-optimization/47664
5403         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
5404         all edges again.
5405
5406 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
5407
5408         PR target/46481
5409         PR target/47032
5410         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
5411         PROCESSOR_POWER7.
5412         (PROCESSOR_DEFAULT64): Same.
5413         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
5414
5415 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5416
5417         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
5418
5419 2011-02-09  Martin Jambor  <mjambor@suse.cz>
5420
5421         PR middle-end/45505
5422         * tree-sra.c (struct access): New flags grp_scalar_read and
5423         grp_scalar_write.  Changed description of assignment read and write
5424         flags.
5425         (dump_access): Dump new flags, reorder all of them.
5426         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
5427         to detect multiple scalar reads.
5428         (analyze_access_subtree): Use the new scalar read write flags instead
5429         of the old flags.  Adjusted comments.
5430
5431 2011-02-08  DJ Delorie  <dj@redhat.com>
5432
5433         PR target/47548
5434         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
5435         patterns.
5436
5437 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5438
5439         * config/m68k/uclinux.opt: New.
5440         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
5441
5442 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5443
5444         * config/cris/elf.opt (sim): New Driver option.
5445
5446 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5447
5448         * config/xtensa/elf.opt: New.
5449         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
5450
5451 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5452
5453         * config/vax/elf.opt: New.
5454         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
5455
5456 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5457
5458         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
5459
5460 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5461
5462         * config/gnu-user.opt: New.
5463         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
5464         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
5465         *-*-uclinux*): Use gnu-user.opt.
5466
5467 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
5468
5469         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
5470         * config/i386/gnu.h (CPP_SPEC): Likewise.
5471
5472 2011-02-08  Ian Lance Taylor  <iant@google.com>
5473
5474         * common.opt (fcx-limited-range): Add SetByCombined flag.
5475         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
5476         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
5477         (fassociative-math, freciprocal-math): Likewise.
5478         (funsafe-math-optimizations): Likewise.
5479         * opth-gen.awk: Handle SetByCombined.
5480         * optc-gen.awk: Likewise.
5481         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5482         (set_unsafe_math_optimizations_flags): Likewise.
5483         * doc/options.texi (Option properties): Document SetByCombined.
5484
5485 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
5486
5487         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
5488         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
5489         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
5490         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
5491         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
5492
5493 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
5494
5495         PR tree-optimization/46834
5496         PR tree-optimization/46994
5497         PR tree-optimization/46995
5498         * graphite-sese-to-poly.c (used_outside_reduction): New.
5499         (detect_commutative_reduction): Call used_outside_reduction.
5500         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
5501         translate_scalar_reduction_to_array only when at least one
5502         loop-phi/close-phi tuple has been detected.
5503
5504 2011-02-08  Richard Guenther  <rguenther@suse.de>
5505
5506         PR middle-end/47639
5507         * tree-vect-generic.c (expand_vector_operations_1): Update
5508         stmts here ...
5509         (expand_vector_operations): ... not here.  Cleanup EH info
5510         and the CFG if required.
5511
5512 2011-02-08  Richard Guenther  <rguenther@suse.de>
5513
5514         PR tree-optimization/47641
5515         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
5516         require type compatibility.
5517
5518 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5519
5520         * gimple-low.c (lower_function_body): Don't remove the location of
5521         the return statement here.
5522         (lower_gimple_return): Do it here instead but only if the return
5523         statement is actually used twice.
5524
5525 2011-02-08  Richard Guenther  <rguenther@suse.de>
5526
5527         PR tree-optimization/47632
5528         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
5529         unused up_to_stmt parameter, return whether cfg-cleanup is
5530         necessary, remove EH info properly.
5531         (forward_propagate_into_gimple_cond): Adjust caller.
5532         (forward_propagate_into_cond): Likewise.
5533         (forward_propagate_comparison): Likewise.
5534         (tree_ssa_forward_propagate_single_use_vars): Make
5535         forward_propagate_comparison case similar to the two others.
5536
5537 2011-02-08  Nick Clifton  <nickc@redhat.com>
5538
5539         * config/mn10300/mn10300.opt (mliw): New command line option.
5540         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
5541         (liw_bundling): New automaton.
5542         (liw): New attribute.
5543         (liw_op): New attribute.
5544         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
5545         (movsi_internal): Add LIW attributes.
5546         (andsi3): Likewise.
5547         (iorsi3): Likewise.
5548         (xorsi3): Likewise.
5549         (addsi3): Separate register and immediate alternatives.
5550         Add LIW attributes.
5551         (subsi3): Likewise.
5552         (cmpsi): Likewise.
5553         (aslsi3): Likewise.
5554         (lshrsi3): Likewise.
5555         (ashrsi3): Likewise.
5556         (liw): New pattern.
5557         * config/mn10300/mn10300.c (liw_op_names): New
5558         (mn10300_print_operand): Handle 'W' operand descriptor.
5559         (extract_bundle): New function.
5560         (check_liw_constraints): New function.
5561         (liw_candidate): New function.
5562         (mn10300_bundle_liw): New function.
5563         (mn10300_reorg): New function.
5564         (TARGET_MACHINE_DEPENDENT_REORG): Define.
5565         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
5566         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
5567         __LIW__ or __NO_LIW__.
5568         * doc/invoke.texi: Describe the -mliw command line option.
5569
5570 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5571
5572         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
5573         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
5574         pthread_mutex_unlock): Remove.
5575         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
5576         * config/pa/t-pa64: Likewise.
5577         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
5578         shared libc if not linking against libpthread.
5579         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5580
5581 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
5582
5583         PR target/47558
5584         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
5585         on 10.6 and later to ensure that we always use the unwinder from
5586         the system.  Only add -no_compact_unwind when tarteting darwin
5587         10.6 or later.
5588
5589 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
5590
5591         PR target/46997
5592         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
5593         (vec_interleave_lowv2sf): Ditto.
5594         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
5595         (vec_extract_oddv2sf): Ditto.
5596
5597 2011-02-07  Mike Stump  <mikestump@comcast.net>
5598
5599         PR target/42333
5600         Add __ieee_divdc3 entry point.
5601         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
5602         entry point.
5603         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
5604         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
5605         * config/darwin.c (darwin_rename_builtins): Add.
5606         * config/darwin-protos.h (darwin_rename_builtins): Add.
5607
5608 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5609
5610         PR target/47636
5611         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
5612         for the condition.
5613
5614 2011-02-07  Mike Stump  <mikestump@comcast.net>
5615
5616         * config/darwin.opt (mmacosx-version-min): Update default OS version.
5617
5618 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
5619
5620         PR target/47534
5621         * config/avr/libgcc.S (exit): Move .endfunc
5622
5623 2011-02-07  Richard Guenther  <rguenther@suse.de>
5624
5625         PR tree-optimization/47615
5626         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
5627         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
5628         (run_scc_vn): Initialize it.
5629         (visit_reference_op_load): Use it.
5630         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
5631
5632 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5633
5634         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
5635         DImode trapping arithmetic libfuncs.
5636
5637 2011-02-07  Richard Guenther  <rguenther@suse.de>
5638
5639         PR tree-optimization/47621
5640         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
5641         two duplicates ...
5642         (execute_update_addresses_taken): ... here.  Make it more
5643         conservative in what we accept.
5644
5645 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
5646
5647         * config/sparc/freebsd.h (ASM_SPEC): Define.
5648         * config/sparc/vxworks.h (ASM_SPEC): Define.
5649
5650 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
5651
5652         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
5653
5654 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
5655
5656         * doc/invoke.texi: Remove reference to compiler internals from
5657         user documentation.
5658
5659         * reg-notes.def: Remove REG_VALUE_PROFILE.
5660         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
5661
5662 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
5663
5664         PR middle-end/47610
5665         * varasm.c (default_section_type_flags): If decl is NULL,
5666         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
5667
5668 2011-02-05  Jie Zhang  <jie@codesourcery.com>
5669
5670         PR debug/42631
5671         * web.c (entry_register): Don't clobber the number of the
5672         first uninitialized reference in used[].
5673
5674 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
5675
5676         PR tree-optimization/46194
5677         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
5678         (build_classic_dist_vector_1): Do not represent classic distance
5679         vectors when the access functions are variating in different loops.
5680
5681 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5682
5683         * config/mips/iris6.opt: New.
5684         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
5685
5686 2011-02-04  Richard Henderson  <rth@redhat.com>
5687             Steve Ellcey  <sje@cup.hp.com>
5688
5689         PR target/46997
5690         * config/ia64/predicates.md (mux1_brcst_element): New.
5691         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
5692         * config/ia64/ia64.c (ia64_unpack_assemble): New.
5693         (ia64_unpack_sign): New.
5694         (ia64_expand_unpack): Rewrite using new routines.
5695         (ia64_expand_widen_sum): Ditto.
5696         (ia64_expand_dot_prod_v8qi): Ditto.
5697         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
5698         routines, add endian check.
5699         (pmpy2_even): Rename from pmpy2_r, add endian check.
5700         (pmpy2_odd): Rename from pmpy2_l, add endian check.
5701         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
5702         (vec_widen_smult_hi_v4hi): Ditto.
5703         (vec_widen_umult_lo_v4hi): Ditto.
5704         (vec_widen_umult_hi_v4hi): Ditto.
5705         (mulv2si3): Change endian checks.
5706         (sdot_prodv4hi): Rewrite with new calls.
5707         (udot_prodv4hi): New.
5708         (vec_pack_ssat_v4hi): Add endian check.
5709         (vec_pack_usat_v4hi): Ditto.
5710         (vec_pack_ssat_v2si): Ditto.
5711         (max1_even): Rename from max1_r, add endian check.
5712         (max1_odd): Rename from max1_l, add endian check.
5713         (*mux1_rev): Format change.
5714         (*mux1_mix): Ditto.
5715         (*mux1_shuf): Ditto.
5716         (*mux1_alt): Ditto.
5717         (*mux1_brcst_v8qi): Use new predicate.
5718         (vec_extract_evenv8qi): Remove endian check.
5719         (vec_extract_oddv8qi): Ditto.
5720         (vec_interleave_lowv4hi): Format change.
5721         (vec_interleave_highv4hi): Ditto.
5722         (mix2_even): Rename from mix2_r, add endian check.
5723         (mix2_odd): Rename from mux2_l, add endian check.
5724         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
5725         (vec_extract_evenodd_helper): Format change.
5726         (vec_extract_evenv4hi): Remove endian check.
5727         (vec_extract_oddv4hi): Remove endian check.
5728         (vec_interleave_lowv2si): Format change.
5729         (vec_interleave_highv2si): Format change.
5730         (vec_initv2si): Remove endian check.
5731         (vecinit_v2si): Add endian check.
5732         (reduc_splus_v2sf): Add endian check.
5733         (reduc_smax_v2sf): Ditto.
5734         (reduc_smin_v2sf): Ditto.
5735         (vec_initv2sf): Remove endian check.
5736         (fpack): Add endian check.
5737         (fswap): Add endian check.
5738         (vec_interleave_highv2sf): Add endian check.
5739         (vec_interleave_lowv2sf): Add endian check.
5740         (fmix_lr): Add endian check.
5741         (vec_setv2sf): Format change.
5742         (*vec_extractv2sf_0_be): Use shift to extract operand.
5743         (*vec_extractv2sf_1_be): New.
5744         (vec_pack_trunc_v4hi): Add endian check.
5745         (vec_pack_trunc_v2si): Format change.
5746
5747 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
5748
5749         PR inline-asm/23200
5750         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
5751         do bb, locus and block comparison and disallow loads if it is not set.
5752         (stmt_is_replaceable_p): New function.
5753         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
5754         callers.
5755         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
5756         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
5757         SSA_NAME_DEF_STMT.
5758         * tree-flow.h (stmt_is_replaceable_p): New prototype.
5759
5760 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5761
5762         * config/rs6000/xilinx.opt: New.
5763         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
5764
5765 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5766
5767         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
5768
5769 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
5770
5771         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
5772         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5773         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
5774         secondary_reload_info, xtensa_secondary_reload): Remove.
5775         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
5776         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5777         (xtensa_preferred_reload_class): Make static. Change return and
5778         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
5779         Use CONST_DOUBLE_P predicate.
5780         (xtensa_preferred_output_reload_class): New function.
5781         (xtensa_secondary_reload): Make static.
5782
5783 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
5784
5785         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
5786         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
5787         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
5788
5789 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5790
5791         PR middle-end/31490
5792         * output.h (SECTION_RELRO): Define.
5793         (SECTION_MACH_DEP): Adjust.
5794         (get_variable_section): New prototype.
5795         * varpool.c (varpool_finalize_named_section_flags): New function.
5796         (varpool_assemble_pending_decls): Call it.
5797         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
5798         * cgraphunit.c (cgraph_output_in_order): Call
5799         varpool_finalize_named_section_flags.
5800         * varasm.c (get_section): Allow section flags conflicts between
5801         relro and read-only sections if the section hasn't been declared yet.
5802         Set SECTION_OVERRIDE after diagnosing section type conflict.
5803         (get_variable_section): No longer static.
5804         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
5805         readonly sections that need relocations.
5806         (decl_readonly_section_1): New function.
5807         (decl_readonly_section): Use it.
5808
5809         Revert:
5810         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
5811                     Steve Ellcey  <sje@cup.hp.com>
5812
5813         PR middle-end/31490
5814         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
5815         if section attribute used.
5816
5817 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5818
5819         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
5820         * config/darwin.c (SECTION_NO_ANCHOR): Define.
5821         (darwin_init_sections): Remove assertion.
5822
5823 2011-02-03  Nick Clifton  <nickc@redhat.com>
5824
5825         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
5826         lt and ge.
5827         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
5828         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
5829         instead of "n" and "pz".
5830         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
5831         CC_FLAG_S.
5832
5833 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5834
5835         PR target/47312
5836         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
5837         fma, expand FMA_EXPR as fma{,f,l} call.
5838
5839         PR lto/47274
5840         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
5841         copy them into a unsigned char variable and pass address of it to
5842         lto_output_data_stream.
5843
5844         PR target/47564
5845         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
5846         around backend_init_target and lang_dependent_init_target calls.
5847         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
5848         (verify_cgraph_node): Don't call set_cfun here.  Use
5849         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
5850         Set error_found for incorrectly represented calls to thunks.
5851
5852 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
5853
5854         PR debug/43092
5855         PR rtl-optimization/43494
5856         * rtl.h (for_each_inc_dec_fn): New type.
5857         (for_each_inc_dec): Declare.
5858         * rtlanal.c (struct for_each_inc_dec_ops): New type.
5859         (for_each_inc_dec_find_inc_dec): New fn.
5860         (for_each_inc_dec_find_mem): New fn.
5861         (for_each_inc_dec): New fn.
5862         * dse.c (struct insn_size): Remove.
5863         (replace_inc_dec, replace_inc_dec_mem): Remove.
5864         (emit_inc_dec_insn_before): New fn.
5865         (check_for_inc_dec): Use it, along with for_each_inc_dec.
5866         (canon_address): Pass mem modes to cselib_lookup.
5867         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
5868         (cselib_lookup_from_insn): Likewise.
5869         (cselib_subst_to_values): Likewise.
5870         * cselib.c (find_slot_memmode): New var.
5871         (cselib_find_slot): New fn.  Use it instead of
5872         htab_find_slot_with_hash everywhere.
5873         (entry_and_rtx_equal_p): Use find_slot_memmode.
5874         (autoinc_split): New fn.
5875         (rtx_equal_for_cselib_p): Rename and implement in terms of...
5876         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
5877         Deal with autoinc.  Special-case recursion into MEMs.
5878         (cselib_hash_rtx): Likewise.
5879         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
5880         address and MEM modes.
5881         (cselib_subst_to_values): Add memmode, pass it on.
5882         Deal with autoinc.
5883         (cselib_lookup): Add memmode argument, pass it on.
5884         (cselib_lookup_from_insn): Add memmode.
5885         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
5886         (struct cselib_record_autoinc_data): New.
5887         (cselib_record_autoinc_cb): New fn.
5888         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
5889         mode to cselib_lookup.  Reset autoinced REGs here instead of...
5890         (cselib_process_insn): ... here.
5891         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
5892         to cselib_lookup.
5893         (add_uses): Likewise, also to cselib_subst_to_values.
5894         (add_stores): Likewise.
5895         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
5896         cselib_subst_to_values.
5897         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
5898         * gcse.c (do_local_cprop): Adjusted.
5899         * postreload.c (reload_cse_simplify_set): Adjusted.
5900         (reload_cse_simplify_operands): Adjusted.
5901         * sel-sched-dump (debug_mem_addr_value): Pass mode.
5902
5903 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
5904
5905         PR tree-optimization/45122
5906         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
5907         unsafe assumptions when there's more than one loop exit.
5908
5909 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5910
5911         PR target/47272
5912         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5913         Document using vector double with the load/store builtins, and
5914         that the load/store builtins always use Altivec instructions.
5915
5916         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
5917         to use altivec memory instructions, even on VSX.
5918         (vector_altivec_store_<mode>): Ditto.
5919
5920         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
5921         function.
5922
5923         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5924         V2DF, V2DI support to load/store overloaded builtins.
5925
5926         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
5927         altivec load/store builtins for V2DF/V2DI types.
5928
5929         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5930         set avoid indexed addresses on power6 if -maltivec.
5931         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
5932         vector_altivec_load/vector_altivec_store builtins.
5933         (altivec_expand_st_builtin): Ditto.
5934         (altivec_expand_builtin): Add VSX memory builtins.
5935         (rs6000_init_builtins): Add V2DI types to internal types.
5936         (altivec_init_builtins): Add support for V2DF/V2DI altivec
5937         load/store builtins.
5938         (rs6000_address_for_altivec): Insure memory address is appropriate
5939         for Altivec.
5940
5941         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
5942         vec_vsx_ld and vec_vsx_st.
5943         (vsx_store_<mode>): Ditto.
5944
5945         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
5946         variables to hold long long types for VSX vector memory builtins.
5947         (RS6000_BTI_unsigned_long_long): Ditto.
5948         (long_long_integer_type_internal_node): Ditti.
5949         (long_long_unsigned_type_internal_node): Ditti.
5950
5951         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
5952         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
5953         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
5954
5955         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
5956         short cuts.
5957         (vec_vsx_st): Ditto.
5958
5959 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5960
5961         * config/pa/pa-hpux10.opt: New.
5962         * config/hpux11.opt (pthread): New Driver option.
5963         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
5964         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
5965
5966 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5967
5968         * config/ia64/vms.opt: New.
5969         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
5970
5971 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5972
5973         PR target/47580
5974         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
5975         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
5976         generator functions.
5977         (vsx_floatuns<VSi><mode>2): Ditto.
5978         (vsx_fix_trunc<mode><VSi>2): Ditto.
5979         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
5980
5981 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5982
5983         * config/i386/djgpp.opt (posix): New Driver option.
5984
5985 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
5986
5987         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
5988         Move to the unsupported targets list.
5989
5990 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
5991
5992         PR rtl-optimization/47525
5993         * df-scan.c: Update copyright years.
5994         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
5995         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
5996
5997 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5998
5999         * config/i386/sysv4.h (TARGET_VERSION): Remove.
6000         (SUBTARGET_RETURN_IN_MEMORY): Remove.
6001         (ASM_OUTPUT_ASCII): Remove.
6002         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
6003
6004 2011-02-02  Jeff Law  <law@redhat.com>
6005
6006         PR middle-end/47543
6007         * reload.c (find_reloads_address): Handle reg+d address where both
6008         components are invalid by reloading the entire address.
6009
6010 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6011             Richard Guenther  <rguenther@suse.de>
6012
6013         PR tree-optimization/40979
6014         PR bootstrap/47044
6015         * passes.c (init_optimization_passes): After LIM call copy_prop
6016         and DCE to clean up.
6017         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
6018
6019 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
6020
6021         PR tree-optimization/47576
6022         PR tree-optimization/47555
6023         * doc/invoke.texi (scev-max-expr-complexity): Documented.
6024         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6025         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
6026         * tree-scalar-evolution.c (follow_ssa_edge): Use
6027         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
6028
6029 2011-02-02  Richard Guenther  <rguenther@suse.de>
6030
6031         PR tree-optimization/47566
6032         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
6033
6034 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6035
6036         PR debug/47106
6037         PR debug/47402
6038         * tree-inline.c (declare_return_variable): Remove unused caller
6039         variable.
6040
6041         PR debug/47106
6042         PR debug/47402
6043         * tree-flow-inline.h (clear_is_used, is_used_p): New.
6044         * cfgexpand.c (account_used_vars_for_block): Use them.
6045         * tree-nrv.c (tree_nrv): Likewise.
6046         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
6047         (dump_scope_block): Likewise.
6048         (remove_unused_locals): Likewise.
6049
6050         PR debug/47106
6051         PR debug/47402
6052         * tree-inline.c (declare_return_variable): Add result decl to
6053         local decls only once.
6054         * gimple-low.c (record_vars_into): Mark newly-created variables
6055         as referenced.
6056
6057 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
6058
6059         PR debug/47498
6060         PR debug/47501
6061         PR debug/45136
6062         PR debug/45130
6063         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6064         debug insns.
6065         (no_real_insns_p, schedule_block, set_priorities): Drop special
6066         treatment of boundary debug insns.
6067         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6068         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
6069         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6070         (BOUNDARY_DEBUG_INSN_P): Likewise.
6071         (SCHEDULE_DEBUG_INSN_P): Likewise.
6072         * sched-rgn.c (init_ready_list): Drop special treatment of
6073         boundary debug insns.
6074         * final.c (rest_of_clean_state): Clear notes' BB.
6075
6076 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6077
6078         * config/openbsd.opt (assert=): New Driver option.
6079
6080 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6081
6082         * config/i386/nto.opt: New.
6083         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
6084
6085 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6086
6087         * config/i386/netware.opt: New.
6088         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
6089
6090 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6091
6092         * config/interix.opt (posix): New Driver option.
6093
6094 2011-02-01  DJ Delorie  <dj@redhat.com>
6095
6096         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
6097
6098         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
6099         class for A0/A1.
6100
6101 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
6102
6103         PR tree-optimization/47561
6104         * toplev.c (process_options): Print the Graphite flags.  Add
6105         flag_loop_flatten to the list of options requiring Graphite.
6106
6107 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6108
6109         * config/i386/cygming.opt (posix): New Driver option.
6110
6111 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6112
6113         * config/arm/vxworks.opt: New.
6114         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
6115
6116 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
6117
6118         * config/alpha/elf.opt: New.
6119         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
6120         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
6121
6122 2011-02-01  Richard Guenther  <rguenther@suse.de>
6123
6124         PR tree-optimization/47559
6125         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
6126         store-motion on references that can throw.
6127
6128 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
6129
6130         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
6131         * tree-pass.h (TDF_CSELIB): New macro.
6132         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
6133         cselib_lookup): Check for it rather than for TDF_DETAILS.
6134
6135 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
6136
6137         PR driver/47547
6138         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
6139         is HOST_BIT_BUCKET.
6140
6141         * opts.c (finish_options): Don't add x_aux_base_name if it is
6142         HOST_BIT_BUCKET.
6143
6144 2011-02-01  Richard Guenther  <rguenther@suse.de>
6145
6146         PR tree-optimization/47555
6147         Revert
6148         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
6149
6150         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
6151
6152 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
6153
6154         PR gcc/46692
6155         * config/lm32/t-lm32: Add multilib for all CPU options.
6156
6157 2011-02-01  Richard Guenther  <rguenther@suse.de>
6158
6159         PR tree-optimization/47541
6160         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
6161         sure to have a field at offset zero.
6162
6163 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6164
6165         * config/arc/arc.opt (EB, EL): New Driver options.
6166
6167 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6168
6169         * config/alpha/osf5.opt: New.
6170         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
6171
6172 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
6173
6174         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
6175
6176 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
6177
6178         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
6179         -floop-interchange.
6180         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
6181         is an alias of -floop-interchange and that it requires the
6182         Graphite infrastructure.
6183         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
6184         flag_loop_interchange based on the value of flag_tree_loop_linear.
6185
6186 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
6187             Richard Guenther  <rguenther@suse.de>
6188
6189         PR tree-optimization/47538
6190         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
6191         type instead of r1type, except for comparisons.  For right
6192         shifts and comparisons punt if there are mismatches in
6193         sizetype vs. non-sizetype types.
6194
6195 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6196
6197         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6198         avx_runtime.
6199
6200 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6201
6202         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
6203         version number.
6204         * configure: Regenerate.
6205
6206 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6207
6208         * configure.ac (gcc_cv_ld_static_option): Define.
6209         (gcc_cv_ld_dynamic_option): Define.
6210         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
6211         instead.
6212         (HAVE_LD_STATIC_DYNAMIC): Update message.
6213         (LD_STATIC_OPTION): Define.
6214         (LD_DYNAMIC_OPTION): Define.
6215         * configure: Regenerate.
6216         * config.in: Regenerate.
6217         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
6218         HAVE_LD_STATIC_DYNAMIC]: Use them.
6219
6220 2011-01-31  Nick Clifton  <nickc@redhat.com>
6221
6222         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
6223         registers inside interrupt handlers if the handler is not a leaf
6224         function.
6225
6226 2011-01-31  Nick Clifton  <nickc@redhat.com>
6227
6228         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
6229         reg_renumber returning an INVALID_REGNUM.
6230
6231 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6232
6233         PR libgcj/44341
6234         * doc/install.texi: Document host options discarded when cross
6235         configuring target libraries.
6236
6237 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
6238
6239         Reverted:
6240         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
6241         PR debug/45136
6242         PR debug/45130
6243         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6244         debug insns.
6245         (no_real_insns_p, schedule_block, set_priorities): Drop special
6246         treatment of boundary debug insns.
6247         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6248         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
6249         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6250         (BOUNDARY_DEBUG_INSN_P): Likewise.
6251         (SCHEDULE_DEBUG_INSN_P): Likewise.
6252         * sched-rgn.c (init_ready_list): Drop special treatment of
6253         boundary debug insns.
6254         * final.c (rest_of_clean-state): Clear notes' BB.
6255
6256 2011-01-31  Alan Modra  <amodra@gmail.com>
6257
6258         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
6259         toc relative expressions as we do in print_operand_address.
6260
6261 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
6262
6263         * doc/extend.texi: Follow spelling conventions.
6264         * doc/invoke.texi: Fix a typo.
6265
6266 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
6267
6268         * config/hpux11.opt: New.
6269         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
6270         ia64*-*-hpux*): Use hpux11.opt.
6271
6272 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
6273
6274         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
6275         to tmake_file.
6276
6277 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6278
6279         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
6280         support sites.
6281
6282 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6283
6284         * doc/install.texi (Binaries): Remove outdated reference for
6285         Motorola 68HC11/68HC12 downloads.
6286
6287 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6288
6289         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
6290         Drepper's paper.
6291
6292 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
6293
6294         PR bootstrap/47147
6295         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
6296         used by NetBSD.
6297
6298 2011-01-28  Ahmad Sharif  <asharif@google.com>
6299
6300         * value-prof.c (check_counter): Corrected error message.
6301
6302 2011-01-29  Jie Zhang  <jie@codesourcery.com>
6303
6304         * config/arm/arm.c (arm_legitimize_reload_address): New.
6305         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
6306         arm_legitimize_reload_address.
6307         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
6308
6309 2011-01-28  Ian Lance Taylor  <iant@google.com>
6310
6311         * godump.c (go_define): Ignore macros whose definitions include
6312         two adjacent operands.
6313
6314 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
6315
6316         PR target/42894
6317         * varasm.c (force_const_mem): Store copy of x in desc->constant
6318         instead of x itself.
6319         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
6320         itself into REG_EQUAL note.
6321
6322 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
6323
6324         * config/freebsd.opt (posix, rdynamic): New Driver options.
6325
6326 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6327
6328         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
6329         -Bstatic/-Bdynamic.
6330         * configure: Regenerate.
6331
6332 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
6333
6334         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
6335         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
6336
6337 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
6338
6339         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
6340         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
6341         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6342         (s390_preferred_reload_class): Make static. Change return and
6343         'rclass' argument type to reg_class_t.
6344
6345 2011-01-27  Jan Hubicka  <jh@suse.cz>
6346
6347         PR middle-end/46949
6348         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
6349         (process_function_and_variable_attributes): Check defined weakrefs.
6350
6351 2011-01-27  Martin Jambor  <mjambor@suse.cz>
6352
6353         PR tree-optimization/47228
6354         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
6355         build_ref_for_offset.
6356
6357 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6358
6359         * config/spu/spu-elf.h (ASM_SPEC): Remove.
6360
6361 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
6362
6363         PR rtl-optimization/46856
6364         * postreload.c (reload_combine_recognize_const_pattern): Do not
6365         separate cc0 setter and user on cc0 targets.
6366
6367 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
6368
6369         PR c/43082
6370         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
6371         passed a VOID_TYPE expression, immediately emit an error and
6372         return error_mark_node.
6373
6374 2011-01-26  Jeff Law  <law@redhat.com>
6375
6376         PR rtl-optimization/47464
6377         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
6378         rather than may_trap_p as needed.
6379
6380 2011-01-26  DJ Delorie  <dj@redhat.com>
6381
6382         PR rtl-optimization/46878
6383         * combine.c (insn_a_feeds_b): Check for the implicit cc0
6384         setter/user dependency as well.
6385
6386 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         PR rtl-optimization/44469
6389         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
6390         after removing trivially dead basic blocks.
6391
6392 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6393
6394         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
6395         * config/frv/frv.h (LINK_SPEC): Likewise.
6396         * config/i386/netware.h (LINK_SPEC): Likewise.
6397         * config/m68k/linux.h (ASM_SPEC): Likewise.
6398         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
6399         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6400         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6401         * config/sparc/linux.h (ASM_SPEC): Likewise.
6402         * config/sparc/linux64.h (ASM_SPEC): Likewise.
6403         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6404
6405 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6406
6407         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
6408         * config/frv/frv.h (ASM_SPEC): Likewise.
6409         * config/m68k/linux.h (ASM_SPEC): Likewise.
6410         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
6411         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
6412         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6413         * config/sparc/linux.h (ASM_SPEC): Likewise.
6414         * config/sparc/linux64.h (ASM_SPEC): Likewise.
6415         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6416
6417 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6418
6419         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
6420         * config/frv/frv.h (LINK_SPEC): Likewise.
6421         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
6422
6423 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
6424
6425         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
6426         * config/frv/frv.h (ASM_SPEC): Likewise.
6427         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
6428         * config/m68k/linux.h (ASM_SPEC): Likewise.
6429         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
6430         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
6431         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
6432         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
6433         * config/sparc/linux.h (ASM_SPEC): Likewise.
6434         * config/sparc/linux64.h (ASM_SPEC): Likewise.
6435         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
6436         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
6437
6438 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
6439
6440         PR target/46997
6441         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
6442         (*mux2): Ditto.
6443         (vec_extract_evenodd_help): Ditto.
6444         (vec_extract_evenv4hi): Ditto.
6445         (vec_extract_oddv4hi): Ditto.
6446         (vec_interleave_lowv2si): Ditto.
6447         (vec_interleave_highv2si): Ditto.
6448         (vec_extract_evenv2si): Ditto.
6449         (vec_extract_oddv2si: Ditto.
6450         (vec_pack_trunc_v2si): Ditto.
6451
6452 2011-01-22  Jan Hubicka  <jh@suse.cz>
6453
6454         PR target/47237
6455         * cgraph.h (cgraph_local_info): New field can_change_signature.
6456         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
6457         signature can change.
6458         (ipcp_estimate_growth): Call sequence simplify only if calle signature
6459         can change.
6460         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
6461         (cgraph_function_versioning): We can not change signature of functions
6462         that don't allow that.
6463         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
6464         (lto_input_node): Likewise.
6465         * ipa-inline.c (compute_inline_parameters): Compute
6466         local.can_change_signature.
6467         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
6468         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
6469         functions that can not change signature.
6470         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
6471         init_cumulative_args): Do not use local calling conventions
6472         for functions that can not change signature.
6473
6474 2011-01-22  Jan Hubicka  <jh@suse.cz>
6475
6476         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
6477
6478 2011-01-26  Richard Guenther  <rguenther@suse.de>
6479
6480         PR tree-optimization/47190
6481         * cgraphunit.c (process_common_attributes): New function.
6482         (process_function_and_variable_attributes): Use it.
6483
6484 2011-01-26  Richard Guenther  <rguenther@suse.de>
6485
6486         PR lto/47423
6487         * cgraphbuild.c (record_eh_tables): Record reference to personality
6488         function.
6489
6490 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
6491
6492         PR debug/45454
6493         * sel-sched.c (moveup_expr): Don't let debug insns prevent
6494         non-debug insns from moving up.
6495
6496 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
6497
6498         PR target/40125
6499         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
6500         t-dlldir{,-x} fragment for build and add it to tmake_file.
6501         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
6502         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
6503         * config/i386/t-dlldir: New file.
6504         (SHLIB_DLLDIR): Define.
6505         * config/i386/t-dlldir-x: New file.
6506         (SHLIB_DLLDIR): Define.
6507         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
6508         (SHLIB_INSTALL): Use it.
6509
6510 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
6511
6512         PR target/47246
6513         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
6514         lower bound of the allowed Thumb-2 coprocessor load/store
6515         index range to -256. Add explaining comment.
6516
6517 2011-01-25  Ian Lance Taylor  <iant@google.com>
6518
6519         * godump.c (go_define): Improve lexing of macro expansion to only
6520         accept expressions which match Go spec.
6521
6522 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
6523
6524         PR c++/43601
6525         * tree.c (handle_dll_attribute): Handle it.
6526         * doc/extend.texi (@item dllexport): Mention it.
6527         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
6528
6529 2011-01-25  Ian Lance Taylor  <iant@google.com>
6530
6531         PR tree-optimization/26854
6532         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
6533         (decl_jump_unsafe): Move higher in file, with no other change.
6534         (bind): Set has_jump_unsafe_decl if appropriate.
6535         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
6536         (check_earlier_gotos): Likewise.
6537         (c_check_switch_jump_warnings): Likewise.
6538
6539 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
6540
6541         * doc/invoke.texi (Warning Options): Add missing hyphen.
6542         (-fprofile-dir): Minor grammatical fixes.
6543         (-fbranch-probabilities): Likewise.
6544
6545 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
6546
6547         PR debug/45136
6548         PR debug/45130
6549         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
6550         debug insns.
6551         (no_real_insns_p, schedule_block, set_priorities): Drop special
6552         treatment of boundary debug insns.
6553         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
6554         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
6555         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
6556         (BOUNDARY_DEBUG_INSN_P): Likewise.
6557         (SCHEDULE_DEBUG_INSN_P): Likewise.
6558         * sched-rgn.c (init_ready_list): Drop special treatment of
6559         boundary debug insns.
6560         * final.c (rest_of_clean-state): Clear notes' BB.
6561
6562 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6563
6564         * Makefile.in (LAMBDA_H): Removed.
6565         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
6566         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
6567         lambda-trans.o, and tree-loop-linear.o.
6568         (lto-symtab.o): Remove dependence on LAMBDA_H.
6569         (tree-loop-linear.o): Remove rule.
6570         (lambda-mat.o): Same.
6571         (lambda-trans.o): Same.
6572         (lambda-code.o): Same.
6573         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
6574         (tree-vect-slp.o): Same.
6575         * hwint.h (gcd): Moved here.
6576         (least_common_multiple): Same.
6577         * lambda-code.c: Removed.
6578         * lambda-mat.c: Removed.
6579         * lambda-trans.c: Removed.
6580         * lambda.h: Removed.
6581         * tree-loop-linear.c: Removed.
6582         * lto-symtab.c: Do not include lambda.h.
6583         * omega.c (gcd): Removed.
6584         * passes.c (init_optimization_passes): Remove pass_linear_transform.
6585         * tree-data-ref.c (print_lambda_vector): Moved here.
6586         (lambda_vector_copy): Same.
6587         (lambda_matrix_copy): Same.
6588         (lambda_matrix_id): Same.
6589         (lambda_vector_first_nz): Same.
6590         (lambda_matrix_row_add): Same.
6591         (lambda_matrix_row_exchange): Same.
6592         (lambda_vector_mult_const): Same.
6593         (lambda_vector_negate): Same.
6594         (lambda_matrix_row_negate): Same.
6595         (lambda_vector_equal): Same.
6596         (lambda_matrix_right_hermite): Same.
6597         * tree-data-ref.h: Do not include lambda.h.
6598         (lambda_vector): Moved here.
6599         (lambda_matrix): Same.
6600         (dependence_level): Same.
6601         (lambda_transform_legal_p): Removed declaration.
6602         (lambda_collect_parameters): Same.
6603         (lambda_compute_access_matrices): Same.
6604         (lambda_vector_gcd): Same.
6605         (lambda_vector_new): Same.
6606         (lambda_vector_clear): Same.
6607         (lambda_vector_lexico_pos): Same.
6608         (lambda_vector_zerop): Same.
6609         (lambda_matrix_new): Same.
6610         * tree-flow.h (least_common_multiple): Removed declaration.
6611         * tree-parloops.c (lambda_trans_matrix): Moved here.
6612         (LTM_MATRIX): Same.
6613         (LTM_ROWSIZE): Same.
6614         (LTM_COLSIZE): Same.
6615         (LTM_DENOMINATOR): Same.
6616         (lambda_trans_matrix_new): Same.
6617         (lambda_matrix_vector_mult): Same.
6618         (lambda_transform_legal_p): Same.
6619         * tree-pass.h (pass_linear_transform): Removed declaration.
6620         * tree-ssa-loop.c (tree_linear_transform): Removed.
6621         (gate_tree_linear_transform): Removed.
6622         (pass_linear_transform): Removed.
6623         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
6624         flag_loop_interchange.
6625
6626 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6627
6628         PR tree-optimization/47265
6629         PR tree-optimization/47443
6630         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
6631         if name still has some uses.
6632
6633 2011-01-25  Martin Jambor  <mjambor@suse.cz>
6634
6635         PR tree-optimization/47382
6636         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
6637         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
6638
6639 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
6640
6641         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
6642         sjlj_except_unwind_info.
6643
6644 2011-01-25  Richard Guenther  <rguenther@suse.de>
6645
6646         PR tree-optimization/47426
6647         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
6648         visible functions results escape.
6649
6650 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6651
6652         PR target/45701
6653         * config/arm/arm.c (any_sibcall_uses_r3): New function.
6654         (arm_get_frame_offsets): Use it.
6655
6656 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6657             Jakub Jelinek  <jakub@redhat.com>
6658
6659         PR tree-optimization/47271
6660         * tree-if-conv.c (bb_postdominates_preds): New.
6661         (if_convertible_bb_p): Call bb_postdominates_preds.
6662         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
6663         (predicate_scalar_phi): Call bb_postdominates_preds.
6664
6665 2011-01-25  Nick Clifton  <nickc@redhat.com>
6666
6667         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
6668         * config/rx/rx.c (rx_function_value): Likewise.
6669         (rx_promote_function_mode): Likewise.
6670         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
6671         in order to make it legitimate.
6672         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
6673         make sure that the first operand is the same as the result register.
6674         (addsi3_unspec): Delete.
6675         (subdi3): Do not accept immediate operands.
6676         (subdi3_internal): Likewise.
6677
6678 2011-01-25  Jeff Law  <law@redhat.com>
6679
6680         PR rtl-optimization/37273
6681         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6682         handle them like argument loads from stack slots.  Do not double
6683         count memory for memory constants and argument loads from stack slots.
6684
6685 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6686
6687         PR tree-optimization/47427
6688         PR tree-optimization/47428
6689         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6690         coalesce if the new root var would be TREE_READONLY.
6691
6692 2011-01-25  Richard Guenther  <rguenther@suse.de>
6693
6694         PR middle-end/47414
6695         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
6696         correct type for TBAA.
6697
6698 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6699
6700         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
6701         (close_phi_written_to_memory): Call for_each_index with
6702         dr_indices_valid_in_loop.
6703
6704 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6705
6706         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
6707         when it is initialized.
6708
6709 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6710
6711         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
6712         call to graphite_find_data_references_in_stmt.
6713         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
6714         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
6715         call to graphite_find_data_references_in_stmt.
6716         (analyze_drs_in_stmts): Same.
6717         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
6718         in which the scalar analysis of indices is performed.
6719         (create_data_ref): Same.  Update call to dr_analyze_indices.
6720         (find_data_references_in_stmt): Update call to create_data_ref.
6721         (graphite_find_data_references_in_stmt): Same.
6722         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
6723         declaration.
6724         (create_data_ref): Same.
6725         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
6726         call to create_data_ref.
6727
6728 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6729
6730         * graphite-sese-to-poly.c (build_poly_scop): Move
6731         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
6732
6733 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6734
6735         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
6736         VAR_DECL, PARM_DECL, and RESULT_DECL.
6737
6738 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6739
6740         * graphite-dependences.c (reduction_dr_1): Allow several reductions
6741         in a reduction PBB.
6742         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
6743         that have already been marked as PBB_IS_REDUCTION.
6744
6745 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6746
6747         * graphite-scop-detection.c (same_close_phi_node): New.
6748         (remove_duplicate_close_phi): New.
6749         (make_close_phi_nodes_unique): New.
6750         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
6751
6752 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6753
6754         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
6755         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
6756         of both data references to be the same.
6757
6758 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6759
6760         * graphite-dependences.c (build_lexicographical_constraint): Remove
6761         the gdim parameter.
6762         (build_lexicographical_constraint): Adjust call to
6763         ppl_powerset_is_empty.
6764         (dependence_polyhedron): Same.
6765         (graphite_legal_transform_dr): Same.
6766         (graphite_carried_dependence_level_k): Same.
6767         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
6768         parameter.
6769         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
6770
6771 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6772
6773         * graphite-sese-to-poly.c
6774         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
6775         (close_phi_written_to_memory): New.
6776         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
6777         and unshare_expr.
6778
6779 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6780
6781         * doc/install.texi: Update the expected version number of PPL to 0.11.
6782         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
6783         #if PPL_VERSION_MINOR < 11.
6784
6785 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6786
6787         * graphite-dependences.c: Include graphite-cloog-util.h.
6788         (new_poly_ddr): Inlined into dependence_polyhedron.
6789         (free_poly_ddr): Moved close by new_poly_ddr.
6790         (dependence_polyhedron_1): Renamed dependence_polyhedron.
6791         Early return NULL when ppl_powerset_is_empty returns true.
6792         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
6793         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
6794         (graphite_legal_transform_dr): Call new_poly_ddr.
6795         (graphite_carried_dependence_level_k): Same.
6796         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
6797         (dot_transformed_deps_stmt_1): Removed.
6798         (dot_deps_stmt_1): Call dot_deps_stmt_2.
6799         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
6800         (dot_deps_1): Call dot_deps_2.
6801         * Makefile.in (graphite-dependences.o): Add missing dependence on
6802         graphite-cloog-util.h.
6803
6804 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6805
6806         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
6807         (build_lexicographical_constraint): Same.
6808         (dependence_polyhedron_1): Same.
6809         (graphite_legal_transform_dr): Same.
6810         (graphite_carried_dependence_level_k): Same.
6811         * graphite-ppl.c (ppl_powerset_is_empty): New.
6812         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
6813         * tree-data-ref.c (dump_data_reference): Print the basic block index.
6814
6815 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6816
6817         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
6818         the "a followed by b" relation and document it.
6819
6820 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6821
6822         * graphite-dependences.c (build_lexicographical_constraint): Stop the
6823         iteration when the bag of constraints is empty.
6824
6825 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6826
6827         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
6828
6829 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6830
6831         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
6832         nest and two loop depths as parameters.
6833         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
6834         lst_perfect_nestify.
6835
6836 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6837
6838         * graphite-dependences.c (print_pddr): Call
6839         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
6840
6841 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6842
6843         * graphite-ppl.c (debug_gmp_value): New.
6844         * graphite-ppl.h (debug_gmp_value): Declared.
6845
6846 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
6847
6848         * doc/install.texi: Document availability of cloog-0.16.
6849
6850 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
6851
6852         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
6853         invalid postdominance info.
6854
6855 2011-01-24  Jan Hubicka  <jh@suse.cz>
6856
6857         PR c/21659
6858         * doc/extend.texi (weak pragma): Drop claim that it must
6859         appear before definition.
6860         * varasm.c (merge_weak, declare_weak): Only sanity check
6861         that DECL is not output at a time it is declared weak.
6862
6863 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
6864
6865         * machmode.def: Fixed comments.
6866
6867 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
6868
6869         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
6870
6871 2011-01-24  Paul Koning  <ni1d@arrl.net>
6872
6873         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
6874         WORDS_BIG_ENDIAN.
6875
6876 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6877
6878         PR target/46519
6879         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
6880         (block_info): Add scanned and prev.
6881         (move_or_delete_vzeroupper_2): Return if the basic block
6882         has been scanned and the upper 128bit state is unchanged
6883         from the last scan.
6884         (move_or_delete_vzeroupper_1): Return true if the exit
6885         state is changed.
6886         (move_or_delete_vzeroupper): Visit basic blocks using the
6887         work-list based algorithm based on vt_find_locations in
6888         var-tracking.c.
6889
6890         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
6891
6892 2011-01-24  Nick Clifton  <nickc@redhat.com>
6893
6894         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
6895         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
6896         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
6897         then define __v850e1__.
6898         * doc/invoke.texi: Document -mv850es.
6899
6900 2011-01-24  Richard Henderson  <rth@redhat.com>
6901
6902         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
6903         compound unordered comparisons.
6904         * config/rx/rx.c (rx_split_fp_compare): Remove.
6905         * config/rx/rx-protos.h: Update.
6906         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
6907         (cbranchsf4): Don't call rx_split_fp_compare.
6908         (*cbranchsf4): Use rx_split_cbranch.
6909         (*cmpsf): Don't accept "i" constraint.
6910         (*conditional_branch): Only valid after reload.
6911         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
6912
6913 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6914
6915         PR target/47385
6916         * config/rs6000/altivec.md (vector constant splitters): Add
6917         support for creating vector single precision constants if -mvsx is
6918         used and we would create the constant using Altivec primitives.
6919
6920 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
6921             Richard Sandiford  <rdsandiford@googlemail.com>
6922
6923         PR rtl-optimization/47166
6924         * reload1.c (emit_reload_insns): Disable the spill_reg_store
6925         mechanism for PRE_MODIFY and POST_MODIFY.
6926         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
6927         reloadreg.
6928
6929 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
6930
6931         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
6932
6933 2011-01-22  Jan Hubicka  <jh@suse.cz>
6934
6935         PR lto/47333
6936         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
6937
6938 2011-01-22  Jan Hubicka  <jh@suse.cz>
6939
6940         PR tree-optimization/43884
6941         PR lto/44334
6942         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
6943         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
6944
6945 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
6946
6947         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6948         * config/s390/s390.c (s390_register_move_cost,
6949         s390_memory_move_cost): New.
6950         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6951
6952 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6953
6954         PR middle-end/47401
6955         * except.c (sjlj_assign_call_site_values): Move setting the
6956         crtl->uses_eh_lsda flag to ...
6957         (sjlj_mark_call_sites): ... here.
6958         (sjlj_emit_function_enter): Support NULL dispatch label.
6959         (sjlj_build_landing_pads): In a function with no landing pads
6960         that still has must-not-throw regions, generate code to register
6961         a personality function with empty LSDA.
6962
6963 2011-01-21  Richard Henderson  <rth@redhat.com>
6964
6965         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
6966
6967         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
6968
6969         * compare-elim.c: New file.
6970         * Makefile.in (OBJS-common): Add it.
6971         (compare-elim.o): New.
6972         * common.opt (fcompare-elim): New.
6973         * opts.c (default_options_table): Add OPT_fcompare_elim.
6974         * tree-pass.h (pass_compare_elim_after_reload): New.
6975         * passes.c (init_optimization_passes): Add it.
6976         * recog.h: Protect against re-inclusion.
6977         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
6978         * doc/invoke.texi (-fcompare-elim): Document it.
6979         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
6980         * doc/tm.texi: Rebuild.
6981
6982 2011-01-22  Nick Clifton  <nickc@redhat.com>
6983
6984         * config/rx/rx.md (cstoresf4): Pass comparison operator to
6985         rx_split_fp_compare.
6986
6987 2011-01-22  Nick Clifton  <nickc@redhat.com>
6988
6989         * config/rx/rx.md (UNSPEC_CONST): New.
6990         (deallocate_and_return): Wrap the amount popped off the stack in
6991         an UNSPEC_CONST in order to stop it being rejected by
6992         -mmax-constant-size.
6993         (pop_and_return): Add a "(return)" rtx.
6994         (call): Drop the immediate operand.
6995         (call_internal): Likewise.
6996         (call_value): Likewise.
6997         (call_value_internal): Likewise.
6998         (sibcall_internal): Likewise.
6999         (sibcall_value_internal): Likewise.
7000         (sibcall): Likewise.  Generate an explicit call using
7001         sibcall_internal.
7002         (sibcall_value): Likewise.
7003         (mov<>): FAIL if a constant operand is not legitimate.
7004         (addsi3_unpsec): New pattern.
7005
7006         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
7007         (ok_for_max_constant): New function.
7008         (gen_safe_add): New function.
7009         (rx_expand_prologue): Use gen_safe_add.
7010         (rx_expand_epilogue): Likewise.
7011         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
7012         UNSPEC CONSTs.
7013
7014 2011-01-21  Jeff Law  <law@redhat.com>
7015
7016         PR tree-optimization/47053
7017         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
7018         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
7019         statements are deleted.
7020         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
7021         is nonempty, then purge dead edges and cleanup the CFG.
7022
7023 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7024
7025         PR debug/47402
7026         Temporarily revert:
7027         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7028         PR debug/47106
7029         * tree-dfa.c (create_var_ann): Mark variable as used.
7030
7031 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7032
7033         PR middle-end/45566
7034         * except.c (convert_to_eh_region_ranges): Emit queued no-region
7035         notes from other section in hot/cold partitioning even if
7036         last_action is -3.  Increment call_site_base.
7037
7038         PR rtl-optimization/47366
7039         * fwprop.c (forward_propagate_into): Return bool.  If
7040         any changes are made, -fnon-call-exceptions is used and
7041         REG_EH_REGION note is present, call purge_dead_edges
7042         and return true if it purged anything.
7043         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
7044         any EH edges were purged.
7045
7046 2011-01-21  Jeff Law  <law@redhat.com>
7047
7048         PR rtl-optimization/41619
7049         * caller-save.c (setup_save_areas): Break out code to determine
7050         which hard regs are live across calls by examining the reload chains
7051         so that it is always used.
7052         Eliminate code which checked REG_N_CALLS_CROSSED.
7053
7054 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7055
7056         PR tree-optimization/47355
7057         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
7058         NOP has non-debug uses beyond PHIs in new_bb.
7059
7060 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
7061
7062         PR debug/47106
7063         * cfgexpand.c (account_used_vars_for_block): Only account vars
7064         that are annotated as used.
7065         (estimated_stack_frame_size): Don't set TREE_USED.
7066         * tree-dfa.c (create_var_ann): Mark variable as used.
7067
7068 2011-01-21  Richard Guenther  <rguenther@suse.de>
7069
7070         PR middle-end/47395
7071         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
7072
7073 2011-01-21  Richard Guenther  <rguenther@suse.de>
7074
7075         PR tree-optimization/47365
7076         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
7077         (vn_reference_lookup_pieces): Adjust.
7078         (vn_reference_lookup): Likewise.
7079         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
7080         (vn_reference_lookup_3): Only look through kills if in
7081         VN_WALKREWRITE mode.
7082         (vn_reference_lookup_pieces): Adjust.
7083         (vn_reference_lookup): Likewise.
7084         (visit_reference_op_load): Likewise.
7085         (visit_reference_op_store): Likewise.
7086         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
7087         (compute_avail): Likewise.
7088         (eliminate): Likewise.
7089
7090 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
7091
7092         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
7093         DECL_IGNORED_P non-reg vars if they are used.
7094
7095         PR tree-optimization/47391
7096         * varpool.c (const_value_known_p): Return false if
7097         decl is volatile.
7098
7099 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
7100
7101         PR bootstrap/47215
7102         * config/i386/i386.c (ix86_local_alignment): Handle
7103         case for va_list_type_node is nil.
7104         (ix86_canonical_va_list_type): Likewise.
7105
7106 2011-01-21  Alan Modra  <amodra@gmail.com>
7107
7108         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
7109         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
7110
7111 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7112
7113         * config/arm/arm.md (define_attr type): Rename f_load
7114         and f_store to f_fpa_load and f_fpa_store. Update.
7115         (write_conflict): Deal with rename fallout.
7116         (*push_fp_multi): Likewise.
7117         * config/arm/fpa.md (f_load): Use f_fpa_load.
7118         (f_store): Use f_fpa_store.
7119         (*movsf_fpa): Likewise.
7120         (*movdf_fpa): Likewise.
7121         (*movxf_fpa): Likewise.
7122         (*thumb2_movsf_fpa): Likewise.
7123         (*thumb2_movdf_fpa): Likewise.
7124         (*thumb2_movxf_fpa): Likewise.
7125         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
7126         f_loadd and f_stored.
7127         (*thumb2_movdi_vfp): Likewise.
7128         (*thumb2_movsf_vfp): Fix attribute to f_loads.
7129         (*thumb2_movsi_vfp): Likewise.
7130         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
7131         Use f_loads instead of f_load.
7132         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
7133
7134 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
7135
7136         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7137         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
7138         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7139         (xtensa_mode_dependent_address_p): New function.
7140         (constantpool_address_p): Make static. Change return type to bool.
7141         Change argument type to const_rtx. Use CONST_INT_P predicate.
7142
7143 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
7144
7145         PR debug/46583
7146         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
7147
7148 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7149
7150         PR debug/47283
7151         * cfgexpand.c (expand_debug_expr): Instead of generating
7152         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
7153         etc. handling.
7154
7155 2011-01-20  Richard Guenther  <rguenther@suse.de>
7156
7157         PR middle-end/47370
7158         * tree-inline.c (remap_gimple_op_r): Recurse manually for
7159         the pointer operand of MEM_REFs.
7160
7161 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
7162
7163         PR tree-optimization/46130
7164         * ipa-split.c (consider_split): If return_bb contains non-virtual
7165         PHIs other than for retval or if split_function would not adjust it,
7166         refuse to split.
7167
7168 2011-01-20  Richard Guenther  <rguenther@suse.de>
7169
7170         PR tree-optimization/47167
7171         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
7172         Revert previous change, only avoid enumeral type changes.
7173
7174 2011-01-19  Mike Stump  <mikestump@comcast.net>
7175
7176         * doc/tm.texi.in (BRANCH_COST): Englishify.
7177         * doc/tm.texi (BRANCH_COST): Likewise.
7178
7179 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
7180
7181         PR c++/47291
7182         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
7183         (gen_scheduled_generic_parms_dies): New functions.
7184         (gen_struct_or_union_type_die): Schedule template parameters DIEs
7185         generation for the end of CU compilation.
7186         (dwarf2out_finish): Generate template parameters DIEs here.
7187
7188 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7189
7190         PR debug/46240
7191         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
7192         debug bind stmt on merge edges.
7193
7194 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7195
7196         PR debug/47079
7197         PR debug/46724
7198         * function.c (instantiate_expr): Instantiate incoming rtl of
7199         implicit arguments, and recurse on VALUE_EXPRs.
7200         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
7201         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
7202
7203 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
7204
7205         * c-parser.c (c_parser_for_statement): Initialize
7206         collection_expression.
7207
7208 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7209
7210         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
7211
7212 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7213
7214         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
7215         (LINK_SHLIB_SPEC): Don't use %(link_path).
7216         (SUBTARGET_EXTRA_SPECS): Remove link_path.
7217
7218 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7219
7220         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
7221         (NO_SHARED_LIB_SUPPORT): Remove.
7222         (LINK_SHLIB_SPEC): Remove one conditional definition.
7223
7224 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
7225
7226         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
7227         %{call_shared}.
7228         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
7229         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
7230         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
7231         %{call_shared} and conditionals on these options not being passed.
7232         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
7233         %{call_shared}.
7234
7235 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
7236
7237         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
7238         simplify.
7239
7240         * ipa-split.c: Spelling fixes.
7241
7242 2011-01-19  Richard Henderson  <rth@redhat.com>
7243
7244         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
7245         (*mulsi3): Likewise.
7246
7247         * longlong.h [__mn10300__] (count_leading_zeros): New.
7248         [__mn10300__] (umul_ppmm, smul_ppmm): New.
7249         [__mn10300__] (add_ssaaaa, subddmmss): New.
7250         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
7251         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
7252
7253 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7254
7255         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
7256
7257 2011-01-19  Richard Henderson  <rth@redhat.com>
7258
7259         * config/mn10300/mn10300.md (addsi3_flags): New.
7260         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
7261         (subsi3_flags, subc_internal, subdi3): New.
7262         (subdi3_internal, *subdi3_degenerate): New.
7263         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
7264
7265         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
7266         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
7267         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
7268         * config/mn10300/mn10300-protos.h: Update.
7269         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
7270         (return_ret): Likewise.  Rename from return_internal_regs.
7271         (return_internal): Remove.
7272
7273         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
7274         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
7275         (mn10300_legitimate_constant_p): Likewise.
7276         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
7277         (mn10300_frame_size): New.
7278         (mn10300_expand_prologue): Use it.
7279         (mn10300_expand_epilogue): Likewise.
7280         (mn10300_initial_offset): Likewise.
7281         * config/mn10300/mn10300-protos.h: Update.
7282         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
7283         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
7284         (prologue, epilogue, return_internal): Tidy output code.
7285         (mn10300_store_multiple_operation, return): Likewise.
7286         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
7287         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
7288         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
7289         (load_pic, am33_load_pic): New.
7290         (mn10300_load_pic0, mn10300_load_pic1): New.
7291
7292         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
7293         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
7294         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
7295         (cc_flags_for_mode, cc_flags_for_code): New.
7296         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
7297         overflow flag is not valid.  Validate that the flags we need
7298         for the comparison are valid.
7299         (mn10300_output_cmp): Remove.
7300         (mn10300_output_add): New.
7301         (mn10300_select_cc_mode): Use cc_flags_for_code.
7302         (mn10300_split_cbranch): New.
7303         (mn10300_match_ccmode): New.
7304         (mn10300_split_and_operand_count): New.
7305         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
7306         to the function.
7307         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
7308         (addsi3): ... here.  Use mn10300_output_add.
7309         (*addsi3_flags): New.
7310         (*am33_subsi3, *mn10300_subsi3): Merge...
7311         (subsi3): ... here.  Use attribute isa.
7312         (*subsi3_flags): New.
7313         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
7314         when possible.
7315         (*am33_andsi3, *mn10300_andsi3): Merge...
7316         (andsi3): ... here.
7317         (*andsi3_flags): New.
7318         (andsi3 splitters): New.
7319         (*am33_iorsi3, *mn10300_iorsi3): Merge...
7320         (iorsi3): ... here.
7321         (*iorsi3_flags): New.
7322         (*am33_xorsi3, *mn10300_xorsi3): Merge...
7323         (xorsi3): ... here.
7324         (*xorsi3_flags): New.
7325         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
7326         (one_cmplsi2): ... here.
7327         (*one_cmplsi2_flags): New.
7328         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
7329         instead of "dax" in constraints.  Use mn10300_split_cbranch.
7330         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
7331         use matching constraints to eliminate a self-comparison.
7332         (*integer_conditional_branch): Rename from integer_conditional_branch.
7333         Use int_mode_flags to match CC_REG.
7334         (*cbranchsi4_btst, *btstsi): New.
7335         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
7336         mn10300_split_cbranch.
7337         (*am33_cmpsf): Rename from am33_cmpsf.
7338         (*float_conditional_branch): Rename from float_conditional_branch.
7339         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
7340         (zero_extendqisi2): ... here.
7341         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
7342         (zero_extendhisi2): ... here.
7343         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
7344         (extendqisi2): ... here.
7345         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
7346         (extendhisi2): ... here.
7347         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
7348         (ashlsi3): ... here.
7349         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
7350         (lshrsi3): ... here.
7351         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
7352         (ashrsi3): ... here.
7353         (consecutive add peephole): Remove.
7354         * config/mn10300/predicates.md (label_ref_operand): New.
7355         (int_mode_flags): New.
7356         (CCZN_comparison_operator): New.
7357
7358         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
7359         (throughput_42_latency_43): New reservation.
7360         (mulsidi3, umulsidi3): New expanders.
7361         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
7362         the MDR register to allocation; separately allocate the low and
7363         high parts of the DImode result.
7364         (umulsidi3_internal): Similarly.
7365         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
7366         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
7367         (udivsi3, umodsi3): Remove.
7368         (udivmodsi4, divmodsi4): New expanders.
7369         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
7370         (*divmodsi4): Simiarly.
7371         (ext_internal): New.
7372
7373         * config/mn10300/constraints.md ("z"): New constraint.
7374         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
7375         (FIXED_REGISTERS): Don't fix MDR.
7376         (CALL_USED_REGSITERS): Reformat nicely.
7377         (REG_ALLOC_ORDER): Add MDR.
7378         (enum regclass): Add MDR_REGS.
7379         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
7380         (IRA_COVER_CLASSES): Add MDR_REGS.
7381         (REGNO_REG_CLASS): Handle MDR_REG.
7382         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
7383         (mn10300_register_move_cost): Likewise.
7384         * config/mn10300/mn10300.md (MDR_REG): New.
7385         (*movsi_internal): Handle moves to/from MDR_REGS.
7386
7387         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
7388         POST_MODIFY.
7389         (mn10300_secondary_reload): Tidy combination reload classes.
7390         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
7391         addresses for AM33.  Allow symbolic offsets for reg+imm.
7392         (mn10300_regno_in_class_p): New.
7393         (mn10300_legitimize_reload_address): New.
7394         * config/mn10300/mn10300.h (enum reg_class): Remove
7395         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
7396         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
7397         SP_OR_GENERAL_REGS.
7398         (REG_CLASS_NAMES): Update to match.
7399         (REG_CLASS_CONTENTS): Likewise.
7400         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
7401         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
7402         (REGNO_IN_RANGE_P): Remove.
7403         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
7404         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
7405         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
7406         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
7407         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
7408         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
7409         (REGNO_GENERAL_P): New.
7410         (HAVE_POST_MODIFY_DISP): New.
7411         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
7412         (LEGITIMIZE_RELOAD_ADDRESS): New.
7413         * config/mn10300/mn10300-protos.h: Update.
7414
7415         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
7416         DATA_REGS for AM33 stack-pointer destination.
7417         (mn10300_preferred_output_reload_class): Likewise.
7418         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
7419         into a form appropriate for ...
7420         (TARGET_SECONDARY_RELOAD): New.
7421         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
7422         * config/mn10300/mn10300-protos.h: Update.
7423         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
7424         reload_insi; use the "A" constraint for the scratch; handle AM33
7425         moves of sp to non-address registers.
7426
7427         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
7428         (*movqi_internal): ... here.
7429         (*am33_movhi, *mn10300_movhi): Merge into...
7430         (*movhi_internal): ... here.
7431         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
7432         as the source/destination of moves from/to SP.
7433         (movsf): Only allow for AM33-2.
7434         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
7435         any integer constant constraint.  Only allow for AM33-2.  Tidy
7436         all of the alternative outputs.
7437         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
7438         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
7439         for MN103.
7440         (udivsi3, umodsi3): New patterns for MN103 only.
7441
7442 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
7443
7444         * doc/tm.texi.in: Spell out that a lack of register class unions
7445         can lead to ICEs.
7446         * doc/tm.texi: Regenerate.
7447
7448 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
7449
7450         PR rtl-optimization/47337
7451         * dce.c (check_argument_store): New function.
7452         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
7453
7454         PR tree-optimization/47290
7455         * tree-eh.c (infinite_empty_loop_p): New function.
7456         (cleanup_empty_eh): Use it.
7457
7458 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
7459
7460         PR target/46997
7461         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
7462         (a64_expand_widen_sum): Ditto.
7463         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
7464         (vec_extract_evenodd_help): Ditto.
7465         (vec_extract_evenv4hi): Ditto.
7466         (vec_extract_oddv4hi): Ditto.
7467         (vec_extract_evenv2si): Ditto.
7468         (vec_extract_oddv2si): Ditto.
7469         (vec_extract_evenv2sf): Ditto.
7470         (vec_extract_oddv2sf): Ditto.
7471         (vec_pack_trunc_v4hi: Ditto.
7472         (vec_pack_trunc_v2si): Ditto.
7473         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
7474         (vec_interleave_highv8qi): Ditto.
7475         (mix1_r): Ditto.
7476         (vec_extract_oddv8qi): Ditto.
7477         (vec_interleave_lowv4hi): Ditto.
7478         (vec_interleave_highv4hi): Ditto.
7479         (vec_interleave_lowv2si): Ditto.
7480         (vec_interleave_highv2si): Ditto.
7481
7482 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7483
7484         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
7485         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
7486         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
7487         (pa_c_mode_for_suffix): New.
7488         (TARGET_EXPAND_BUILTIN): Define.
7489         (TARGET_C_MODE_FOR_SUFFIX): Define.
7490         (pa_builtins): Define.
7491         (pa_init_builtins): Register __float128 type and init new support
7492         builtins.
7493         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
7494         * config/pa/quadlib.c (_U_Qfcopysign): New.
7495
7496 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
7497
7498         PR middle-end/46894
7499         * explow.c (allocate_dynamic_stack_space): Do not assume more than
7500         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
7501         are defined.
7502
7503 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7504
7505         PR tree-optimization/47179
7506         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
7507         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
7508
7509 2011-01-18  Richard Guenther  <rguenther@suse.de>
7510
7511         PR rtl-optimization/47216
7512         * emit-rtl.c: Include tree-flow.h.
7513         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
7514         of replicating it with different semantics.
7515         * Makefile.in (emit-rtl.o): Adjust.
7516
7517 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7518
7519         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
7520         (cortex_a9_dp): Handle neon types correctly.
7521
7522 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
7523
7524         PR rtl-optimization/47299
7525         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
7526         subtarget.  Use normal multiplication if both operands are constants.
7527         * expmed.c (expand_widening_mult): Don't try to optimize constant
7528         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
7529         before using it.
7530
7531 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7532
7533         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
7534         spacing after 'e.g.', typos, comma, hyphenation.
7535
7536 2011-01-17  Richard Henderson  <rth@redhat.com>
7537
7538         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
7539         (rx_restricted_mem_operand): New.
7540         (rx_shift_operand): Use register_operand.
7541         (rx_source_operand, rx_compare_operand): Likewise.
7542         * config/rx/rx.md (addsi3_flags): New expander.
7543         (adddi3): Rewrite as expander.
7544         (adc_internal, *adc_flags, adddi3_internal): New patterns.
7545         (subsi3_flags): New expander.
7546         (subdi3): Rewrite as expander.
7547         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
7548
7549         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
7550         (rx_init_builtins): Remove sat builtin.
7551         (rx_expand_builtin): Likewise.
7552         * config/rx/rx.md (ssaddsi3): New.
7553         (*sat): Rename from sat.  Represent the CC_REG input.
7554
7555         * config/rx/predicates.md (rshift_operator): New.
7556         * config/rx/rx.c (rx_expand_insv): Remove.
7557         * config/rx/rx-protos.h: Update.
7558         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
7559         operand to the canonical position.
7560         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
7561         (*bitclr, *bitclr_in_memory): Similarly.
7562         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
7563         (insv): Retain the zero_extract in the expansion.
7564
7565         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
7566         (bswaphi2, bitinvert, revw): Likewise.
7567
7568         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
7569         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
7570         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
7571         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
7572         (bitset, bitset_in_memory): Likewise.
7573         (bitinvert, bitinvert_in_memory): Likewise.
7574         (bitclr, bitclr_in_memory): Likewise.
7575         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
7576         (rx_strend, rx_cmpstrn): Likewise.
7577         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
7578         (bitop peep2 patterns): Remove.
7579
7580         * config/rx/rx.c (rx_match_ccmode): New.
7581         * config/rx/rx-protos.h: Update.
7582         * config/rx/rx.md (abssi2): Clobber, don't set flags.
7583         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
7584         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
7585         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
7586         (fix_truncsfsi2, floatsisf2): Likewise.
7587         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
7588         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
7589         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
7590         (*subsi3_flags, *xorsi3_flags): New.
7591
7592         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
7593
7594         * config/rx/rx.c (rx_print_operand): Remove workaround for
7595         unsplit comparison operations.
7596
7597         * config/rx/rx.md (movsicc): Split after reload.
7598         (*movsicc): Merge *movsieq and *movsine via match_operator.
7599         (*stcc): New pattern.
7600
7601         * config/rx/rx.c (rx_float_compare_mode): Remove.
7602         * config/rx/rx.h (rx_float_compare_mode): Remove.
7603         * config/rx/rx.md (cstoresi4): Split after reload.
7604         (*sccc): New pattern.
7605
7606         * config/rx/predicates.md (label_ref_operand): New.
7607         (rx_z_comparison_operator): New.
7608         (rx_zs_comparison_operator): New.
7609         (rx_fp_comparison_operator): New.
7610         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
7611         Validate that the flags are set properly for the comparison.
7612         (rx_gen_cond_branch_template): Remove.
7613         (rx_cc_modes_compatible): Remove.
7614         (mode_from_flags): New.
7615         (flags_from_code): Rename from flags_needed_for_conditional.
7616         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
7617         (rx_select_cc_mode): Likewise.
7618         (rx_split_fp_compare): New.
7619         (rx_split_cbranch): New.
7620         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
7621         (*cbranchsi4): Use match_operator and rx_split_cbranch.
7622         (*cbranchsf4): Similarly.
7623         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
7624         match_operator and rx_split_cbranch.
7625         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
7626         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
7627         (*cmpsi): Rename from cmpsi.
7628         (*tstsi): Rename from tstsi.
7629         (*cmpsf): Rename from cmpsf; use CC_Fmode.
7630         (*conditional_branch): Rename from conditional_branch.
7631         (*reveresed_conditional_branch): Remove.
7632         (b<code>): Remove expander.
7633         * config/rx/rx-protos.h: Update.
7634
7635         * config/rx/rx.c (rx_compare_redundant): Remove.
7636         * config/rx/rx.md (cmpsi): Don't use it.
7637         * config/rx/rx-protos.h: Update.
7638
7639         * config/rx/rx-modes.def (CC_F): New mode.
7640         * config/rx/rx.c (rx_select_cc_mode): New.
7641         * config/rx/rx.h (SELECT_CC_MODE): Use it.
7642         * config/rx/rx-protos.h: Update.
7643
7644 2011-01-17  Richard Henderson  <rth@redhat.com>
7645
7646         * except.c (dump_eh_tree): Fix stray ; after for statement.
7647
7648 2011-01-17  Richard Guenther  <rguenther@suse.de>
7649
7650         PR tree-optimization/47313
7651         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
7652         handling before copying the body.  Properly deal with
7653         by-reference result in SSA form.
7654
7655 2011-01-17  Ian Lance Taylor  <iant@google.com>
7656
7657         PR target/47219
7658         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
7659         (struct_value_alias_set): Don't define.
7660         (sparc_option_override): Don't set sparc_sr_alias_set and
7661         struct_value_alias_set.
7662         (save_or_restore_regs): Use gen_frame_mem rather than calling
7663         set_mem_alias_set.
7664         (sparc_struct_value_rtx): Likewise.
7665
7666 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
7667
7668         PR target/47318
7669         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
7670         (_mm_maskstore_pd): Likewise.
7671         (_mm_maskload_ps): Likewise.
7672         (_mm_maskstore_ps): Likewise.
7673         (_mm256_maskload_pd): Change mask to __m256i.
7674         (_mm256_maskstore_pd): Likewise.
7675         (_mm256_maskload_ps): Likewise.
7676         (_mm256_maskstore_ps): Likewise.
7677
7678         * config/i386/i386-builtin-types.def: Updated.
7679         (ix86_expand_special_args_builtin): Likewise.
7680
7681         * config/i386/i386.c (bdesc_special_args): Update
7682         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
7683         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
7684         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
7685         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
7686
7687         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
7688         Use <avxpermvecmode> on mask register.
7689         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
7690
7691 2011-01-17  Olivier Hainque  <hainque@adacore.com>
7692             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
7693             Eric Botcazou  <ebotcazou@adacore.com>
7694
7695         PR target/46655
7696         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
7697         if <= USHRT_MAX in 32-bit mode.
7698
7699 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7700
7701         * doc/install.texi (Configuration, Specific): Wrap long
7702         lines in examples.  Allow line wrapping in long options
7703         and URLs where beneficial for PDF output.
7704
7705 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
7706
7707         * config/mips/mips.c (mips_classify_symbol): Don't return
7708         SYMBOL_PC_RELATIVE for nonlocal labels.
7709
7710 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7711
7712         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
7713
7714 2011-01-15  Jan Hubicka  <jh@suse.cz>
7715
7716         PR tree-optimization/47276
7717         * ipa.c (function_and_variable_visibility): Do not try to mark alias
7718         declarations as needed.
7719
7720 2011-01-15  Martin Jambor  <mjambor@suse.cz>
7721
7722         * common.opt (fdevirtualize): New flag.
7723         * doc/invoke.texi (Option Summary): Document it.
7724         * opts.c (default_options_table): Add devirtualize flag.
7725         * ipa-prop.c (detect_type_change): Return immediately if
7726         devirtualize flag is not set.
7727         (detect_type_change_ssa): Likewise.
7728         (compute_known_type_jump_func): Likewise.
7729         (ipa_analyze_virtual_call_uses): Likewise.
7730
7731 2011-01-14  Martin Jambor  <mjambor@suse.cz>
7732
7733         PR tree-optimization/45934
7734         PR tree-optimization/46302
7735         * ipa-prop.c (type_change_info): New type.
7736         (stmt_may_be_vtbl_ptr_store): New function.
7737         (check_stmt_for_type_change): Likewise.
7738         (detect_type_change): Likewise.
7739         (detect_type_change_ssa): Likewise.
7740         (compute_complex_assign_jump_func): Check for dynamic type change.
7741         (compute_complex_ancestor_jump_func): Likewise.
7742         (compute_known_type_jump_func): Likewise.
7743         (compute_scalar_jump_functions): Likewise.
7744         (ipa_analyze_virtual_call_uses): Likewise.
7745         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
7746
7747 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7748
7749         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
7750         * config/i386/i386.opt (msse5): New Alias.
7751
7752 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7753
7754         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7755         * config/sparc/linux64.h (CC1_SPEC): Likewise.
7756         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
7757         * config/sparc/sparc.h (CC1_SPEC): Likewise.
7758
7759 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7760
7761         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
7762         -mcpu options.
7763         * config/sparc/linux64.h (CC1_SPEC): Likewise.
7764         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
7765         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
7766         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
7767         Likewise.
7768         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
7769
7770 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7771
7772         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
7773
7774 2011-01-14  Mike Stump  <mikestump@comcast.net>
7775
7776         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
7777         * config/fr30/fr30.md: Likweise
7778         (movsi_push): Likewise.
7779         (movsi_pop): Likewise.
7780         (enter_func): Likewise.
7781         * config/moxie/moxie.md (movsi_push): Likewise.
7782         (movsi_pop): Likewise.
7783
7784 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7785
7786         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
7787         %{no_archive} %{exact_version}.
7788         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
7789         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
7790         %{no_archive} %{exact_version}.
7791         * config/mips/openbsd.h (LINK_SPEC): Likewise.
7792         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
7793         * config/mips/vxworks.h: Likewise.
7794
7795 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7796
7797         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
7798
7799 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7800
7801         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
7802         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
7803
7804 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7805
7806         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
7807         -nodefaultlib.
7808
7809 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7810
7811         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
7812         for mcpu not cpu.
7813         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
7814         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
7815         not cpu.
7816         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
7817         Don't handle -shlib.
7818
7819 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7820
7821         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
7822         (CC1_SPEC): Don't handle -profile.
7823
7824 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7825
7826         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
7827         * config/mips/mips.h (CC1_SPEC): Likewise.
7828
7829 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7830
7831         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
7832         * config/mips/mips.h (CC1_SPEC): Likewise.
7833
7834 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7835
7836         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
7837         * config/m32r/linux.h (LINK_SPEC): Likewise.
7838         * config/mips/linux.h (LINK_SPEC): Likewise.
7839         * config/mips/linux64.h (LINK_SPEC): Likewise.
7840         * config/sparc/linux.h (LINK_SPEC): Likewise.
7841         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7842         LINK_SPEC): Likewise.
7843         * config/xtensa/linux.h (LINK_SPEC): Likewise.
7844
7845 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7846
7847         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
7848         %{version:-v}.
7849         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
7850
7851 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7852
7853         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
7854         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
7855
7856 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7857
7858         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
7859
7860 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7861
7862         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
7863         supports -Bstatic/-Bdynamic.
7864         * configure: Regenerate.
7865
7866 2011-01-14  Jan Hubicka  <jh@suse.cz>
7867             Jack Howarth  <howarth@bromo.med.uc.edu>
7868
7869         PR target/46037
7870         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
7871         when checking debug_info_level. Test write_symbols instead of
7872         debug_hooks->var_location when setting flag_var_tracking_uninit.
7873
7874 2011-01-14  Richard Guenther  <rguenther@suse.de>
7875
7876         PR tree-optimization/47179
7877         * target.def (ref_may_alias_errno): New target hook.
7878         * targhooks.h (default_ref_may_alias_errno): Declare.
7879         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
7880         (default_ref_may_alias_errno): New function.
7881         * target.h (struct ao_ref_s): Declare.
7882         * tree-ssa-alias.c: Include target.h.
7883         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
7884         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
7885         (targhooks.o): Likewise.
7886         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
7887         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
7888
7889 2011-01-14  Richard Guenther  <rguenther@suse.de>
7890
7891         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
7892
7893 2011-01-14  Richard Guenther  <rguenther@suse.de>
7894
7895         PR tree-optimization/47280
7896         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
7897         return CFG changes.
7898         (tree_ssa_forward_propagate_single_use_vars): Deal with
7899         CFG changes from associate_plusminus.
7900
7901 2011-01-14  Richard Guenther  <rguenther@suse.de>
7902
7903         PR middle-end/47281
7904         Revert
7905         2011-01-11  Richard Guenther  <rguenther@suse.de>
7906
7907         PR tree-optimization/46076
7908         * tree-ssa.c (useless_type_conversion_p): Conversions from
7909         unprototyped to empty argument list function types are useless.
7910
7911 2011-01-14  Richard Guenther  <rguenther@suse.de>
7912
7913         PR tree-optimization/47286
7914         * tree-ssa-structalias.c (new_var_info): Register variables are global.
7915
7916 2011-01-14  Martin Jambor  <mjambor@suse.cz>
7917
7918         PR middle-end/46823
7919         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
7920
7921 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
7922
7923         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
7924         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7925         * config/xtensa/xtensa.c (xtensa_libcall_value,
7926         xtensa_function_value_regno_p): New functions.
7927         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7928
7929 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
7930
7931         PR c++/47213
7932         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
7933         PE specific hook.
7934         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
7935         New function prototype.
7936         * config/i386/winnt.c (i386_pe_assemble_visibility):
7937         Warn only if attribute was specified by user.
7938
7939 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
7940
7941         PR target/47251
7942         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
7943         floating point.
7944         (floatunsdidf2_fcfidu): Ditto.
7945
7946 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7947
7948         * config/s390/s390.c (print_operand_address): Replace 'error' with
7949         'output_operand_lossage'.
7950         (print_operand): Likewise.
7951
7952 2011-01-13  Jeff Law  <law@redhat.com>
7953
7954         PR rtl-optimization/39077
7955         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
7956         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
7957         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
7958         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
7959         * gcse.c (prune_insertions_deletions): New function.
7960         (compute_pre_data): Use it.
7961
7962 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
7963
7964         PR debug/PR46973
7965         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
7966         static function.
7967         (prune_unused_types_mark): Use it.
7968
7969 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
7970
7971         PR rtl-optimization/45352
7972         * sel-sched.c: Update copyright years.
7973         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
7974         in the advancing loop when we have issued issue_rate insns.
7975
7976 2011-01-12  Richard Henderson  <rth@redhat.com>
7977
7978         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
7979         (TARGET_MD_ASM_CLOBBERS): New.
7980
7981         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
7982         (TARGET_DELEGITIMIZE_ADDRESS): New.
7983
7984         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
7985         (clzsi2, *bsch): New patterns.
7986
7987         * config/mn10300/mn10300.md (INT): New mode iterator.
7988         (*mov<INT>_clr): New pattern, and peep2 to generate it.
7989
7990         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
7991         flag_split_wide_types.
7992
7993         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
7994         (mn10300_trampoline_init): Rewrite without a template, an immediate
7995         load and a direct branch.
7996         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
7997
7998 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
7999
8000         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8001         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
8002         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
8003         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8004
8005 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
8006
8007         PR debug/47209
8008         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
8009         of type.
8010
8011 2011-01-12  Jan Hubicka  <jh@suse.cz>
8012
8013         PR driver/47244
8014         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
8015         (PLUGIN_COND_CLOSE): New macro.
8016         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
8017
8018 2011-01-12  Richard Guenther  <rguenther@suse.de>
8019
8020         PR lto/47259
8021         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
8022         register variables in a MEM_REF.
8023
8024 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
8025
8026         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
8027         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
8028         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
8029         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
8030         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
8031         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
8032         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
8033         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
8034         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
8035         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
8036         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
8037         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
8038         * config/gnu-user.h: New.  Copied from linux.h.
8039         (LINUX_TARGET_STARTFILE_SPEC): Rename to
8040         GNU_USER_TARGET_STARTFILE_SPEC.
8041         (LINUX_TARGET_ENDFILE_SPEC): Rename to
8042         GNU_USER_TARGET_ENDFILE_SPEC.
8043         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
8044         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
8045         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
8046         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
8047         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
8048         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
8049         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
8050         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
8051         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
8052         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
8053         * config/arm/linux-eabi.h (CC1_SPEC): Use
8054         GNU_USER_TARGET_CC1_SPEC.
8055         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
8056         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
8057         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
8058         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
8059         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
8060         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
8061         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
8062         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
8063
8064 2011-01-12  Richard Guenther  <rguenther@suse.de>
8065
8066         PR other/46946
8067         * doc/invoke.texi (ffast-math): Document it is turned on
8068         with -Ofast.
8069
8070 2011-01-12  Jan Hubicka  <jh@suse.cz>
8071
8072         PR tree-optimization/47233
8073         * opts.c (common_handle_option): Disable ipa-reference with profile
8074         feedback.
8075
8076 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8077
8078         * c-parser.c (c_parser_objc_at_property_declaration): Improved
8079         error message.
8080
8081 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
8082
8083         * c-parser.c (c_lex_one_token): Updated and reindented some
8084         comments.  No changes in code.
8085
8086 2011-01-11  Ian Lance Taylor  <iant@google.com>
8087
8088         * godump.c (go_output_var): Don't output the variable if there is
8089         already a type with the same name.
8090
8091 2011-01-11  Ian Lance Taylor  <iant@google.com>
8092
8093         * godump.c (go_format_type): Don't generate float80.
8094
8095 2011-01-11  Richard Henderson  <rth@redhat.com>
8096
8097         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
8098         declaration.  Rewrite for both speed and size.
8099         (mn10300_address_cost_1): Remove.
8100         (mn10300_register_move_cost): New.
8101         (mn10300_memory_move_cost): New.
8102         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
8103         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
8104         extensions, shifts, BSWAP, CLZ.
8105         (mn10300_wide_const_load_uses_clr): Remove.
8106         (TARGET_REGISTER_MOVE_COST): New.
8107         (TARGET_MEMORY_MOVE_COST): New.
8108         * config/mn10300/mn10300-protos.h: Update.
8109         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
8110
8111         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
8112         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
8113         * config/mn10300/mn10300-protos.h: Update.
8114         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
8115         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
8116         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
8117         (*test_int_bitfield, *test_byte_bitfield): Remove.
8118         (*bit_test, *subreg_bit_test): Remove.
8119         * config/mn10300/predicates.md (const_8bit_operand): Remove.
8120
8121         * config/mn10300/constraints.md ("c"): Rename from "A".
8122         ("A", "D"): New constraint letters.
8123         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
8124         (fmssf4, fnmasf4, fnmssf4): Likewise.
8125
8126         * config/mn10300/mn10300.md (isa): New attribute.
8127         (enabled): New attribute.
8128
8129         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
8130         (abssf2, negsf2): Define only for hardware fp.
8131         (sqrtsf2): Reformat.
8132         (addsf3, subsf3, mulsf3): Merge expander and insn.
8133
8134         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
8135         (DEBUGGER_AUTO_OFFSET): Remove.
8136         (DEBUGGER_ARG_OFFSET): Remove.
8137
8138         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
8139         Emit register stores with the same offsets as the hardware.
8140         (mn10300_store_multiple_operation): Don't check that the register
8141         save offsets are monotonic.
8142         * config/mn10300/mn10300-protos.h: Update.
8143
8144         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
8145
8146         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
8147         in terms of the value on the stack, not the MDR register.
8148
8149 2011-01-11  Jan Hubicka  <jh@suse.cz>
8150
8151         PR lto/45721
8152         PR lto/45375
8153         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
8154         (symbol_alias_set_destroy, symbol_alias_set_contains,
8155         propagate_aliases_backward): Declare.
8156         * lto-streamer-out.c (struct sets): New sturcture.
8157         (trivally_defined_alias): New function.
8158         (output_alias_pair_p): Rewrite.
8159         (output_unreferenced_globals): Fix output of alias pairs.
8160         (produce_symtab): Likewise.
8161         * ipa.c (function_and_variable_visibility): Set weak alias destination
8162         as needed in lto.
8163         * varasm.c (symbol_alias_set_t): Remove.
8164         (symbol_alias_set_destroy): Export.
8165         (propagate_aliases_forward, propagate_aliases_backward): New functions
8166         based on ...
8167         (compute_visible_aliases): ... this one; remove.
8168         (trivially_visible_alias): New
8169         (trivially_defined_alias): New.
8170         (remove_unreachable_alias_pairs): Rewrite.
8171         (finish_aliases_1): Reorganize code checking if alias is defined.
8172         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
8173         in LTO mode.
8174
8175 2011-01-11  Richard Guenther  <rguenther@suse.de>
8176
8177         PR tree-optimization/46076
8178         * tree-ssa.c (useless_type_conversion_p): Conversions from
8179         unprototyped to empty argument list function types are useless.
8180
8181 2011-01-11  Richard Guenther  <rguenther@suse.de>
8182
8183         PR middle-end/45235
8184         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
8185         volatile MEMs as MEM_READONLY_P.
8186
8187 2011-01-11  Richard Guenther  <rguenther@suse.de>
8188
8189         PR tree-optimization/47239
8190         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
8191
8192 2011-01-11  Jeff Law  <law@redhat.com>
8193
8194         PR tree-optimization/47086
8195         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
8196         IVs from statements that might throw.
8197
8198 2011-01-10  Jan Hubicka  <jh@suse.cz>
8199
8200         PR lto/45375
8201         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
8202
8203 2011-01-10  Jan Hubicka  <jh@suse.cz>
8204
8205         PR lto/45375
8206         * profile.c (read_profile_edge_counts): Ignore profile inconistency
8207         when correcting profile.
8208
8209 2011-01-10  Jan Hubicka  <jh@suse.cz>
8210
8211         PR lto/46083
8212         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
8213         DECL_FINI_PRIORITY.
8214         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
8215         Restore DECL_FINI_PRIORITY.
8216
8217 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8218
8219         * doc/gimple.texi: Fix quoting of multi-word return values in
8220         @deftypefn statements.  Ensure presence of return value.  Wrap
8221         overlong @deftypefn lines.
8222         (is_gimple_operand, is_gimple_min_invariant_address): Remove
8223         descriptions of removed functions.
8224         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
8225         of multi-word return value in @deftypefn statement.
8226
8227 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8228
8229         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
8230         (Conditional Expressions, Logical Operators)
8231         (Statement and operand traversals): Do not indent smallexample
8232         code.  Fix duplicate function argument in example.
8233
8234 2011-01-10  Jeff Law  <law@redhat.com>
8235
8236         PR tree-optimization/47141
8237         * ipa-split.c (split_function): Handle case where we are
8238         returning a value and the return block has a virtual operand phi.
8239
8240 2011-01-10  Jan Hubicka  <jh@suse.cz>
8241
8242         PR tree-optimization/47234
8243         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
8244         (pass_feedback_split_functions): Declare.
8245         * passes.c (init_optimization_passes): Add ipa-split as subpass of
8246         tree-profile.
8247         * ipa-split.c (gate_split_functions): Update comments; disable
8248         split-functions for profile_arc_flag and branch_probabilities.
8249         (gate_feedback_split_functions): New function.
8250         (execute_feedback_split_functions): New function.
8251         (pass_feedback_split_functions): New global var.
8252
8253 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
8254
8255         PR lto/46760
8256         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
8257         calling gimple_call_set_cannot_inline.
8258
8259 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
8260
8261         * config/darwin-sections.def: Remove unused section.
8262
8263 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
8264
8265         PR c++/47218
8266         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
8267
8268 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8269
8270         PR objc/47232
8271         * c-parser.c (c_parser_declaration_or_fndef): Improved
8272         error message.
8273
8274 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
8275
8276         * config/i386/winnt.c (i386_pe_start_function): Make sure
8277         to switch back to function's section.
8278
8279 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
8280
8281         PR gcc/46902
8282         PR testsuite/46912
8283         * plugin.c: Move include of dlfcn.h from here...
8284         * system.h: ... to here.
8285
8286 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8287
8288         * doc/cpp.texi (C++ Named Operators): Fix markup for header
8289         file name.
8290         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
8291         two extra empty pages in PDF output.
8292
8293 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
8294
8295         PR objc/47078
8296         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
8297         for error recovery purposes behave as if it was not specified so
8298         that the default type is usd.
8299
8300 2011-01-07  Jan Hubicka  <jh@suse.cz>
8301
8302         PR tree-optmization/46469
8303         * ipa.c (function_and_variable_visibility): Clear needed flags on
8304         nodes with external decls; handle weakrefs merging correctly.
8305
8306 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
8307
8308         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
8309         not false.
8310
8311 2011-01-07  Jan Hubicka  <jh@suse.cz>
8312
8313         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
8314         and no longer claim that gold is required for linker plugin.
8315         * configure: Regenerate.
8316         * gcc.c (PLUGIN_COND): New macro.
8317         (LINK_COMMAND_SPEC): Use it.
8318         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
8319         * config.in (HAVE_LTO_PLUGIN): New.
8320         * configure.ac (--with-lto-plugin): New parameter; autodetect
8321         HAVE_LTO_PLUGIN.
8322
8323 2011-01-07  Jan Hubicka  <jh@suse.cz>
8324
8325         PR tree-optimization/46367
8326         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
8327         when we can update original.
8328         (cgraph_mark_inline_edge): Sanity check.
8329         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
8330
8331 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8332
8333         * config/spu/spu.h (ASM_COMMENT_START): Define.
8334
8335 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
8336
8337         PR driver/42445
8338         * gcc.c (%>S): New.
8339         (SWITCH_KEEP_FOR_GCC): Likewise.
8340         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
8341         (do_spec_1): Handle "%>".
8342
8343         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
8344
8345 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
8346
8347         PR target/47201
8348         * config/i386/i386.c (ix86_delegitimize_address): If
8349         simplify_gen_subreg fails, return orig_x.
8350
8351         PR bootstrap/47187
8352         * value-prof.c (gimple_stringop_fixed_value): Handle
8353         lhs of the call properly.
8354
8355 2011-01-07  Jan Hubicka  <jh@suse.cz>
8356
8357         PR lto/45375
8358         * lto-opt.c (lto_reissue_options): Set flag_shlib.
8359
8360 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
8361
8362         * target.def (function_switched_text_sections): New hook.
8363         * doc/tm.texi: Regenerated.
8364         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
8365         * final.c (default_function_switched_text_sections): New.
8366         (final_scan_insn): Call function_switched_text_sections when a
8367         mid-function section change occurs.
8368         * output.h (default_function_switched_text_sections): Declare.
8369         * config/darwin-protos.h (darwin_function_switched_text_sections):
8370         Likewise.
8371         * config/darwin.c (darwin_function_switched_text_sections): New.
8372         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
8373
8374 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
8375
8376         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
8377         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
8378         the secondary code fragment when outputting for DWARF == 2.
8379
8380 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
8381
8382         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8383         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
8384         Remove.
8385         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
8386         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8387
8388 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
8389
8390         PR debug/46704
8391         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
8392         when it is not empty.
8393
8394 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
8395
8396         Bobcat Enablement
8397         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
8398         (case ${target}): Add btver1.
8399         * config/i386/driver-i386.c (host_detect_local_cpu): Let
8400         -march=native recognize btver1 processors.
8401         * config/i386/i386-c.c (ix86_target_macros_internal): Add
8402         btver1 def_and_undef
8403         * config/i386/i386.c (struct processor_costs btver1_cost): New
8404         btver1 cost table.
8405         (m_BTVER1): New definition.
8406         (m_AMD_MULTIPLE): Includes m_BTVER1.
8407         (initial_ix86_tune_features): Add btver1 tune.
8408         (processor_target_table): Add btver1 entry.
8409         (static const char *const cpu_names): Add btver1 entry.
8410         (software_prefetching_beneficial_p): Add btver1.
8411         (ix86_option_override_internal): Add btver1 instruction sets.
8412         (ix86_issue_rate): Add btver1.
8413         (ix86_adjust_cost): Add btver1.
8414         * config/i386/i386.h (TARGET_BTVER1): New definition.
8415         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
8416         (enum processor_type): Add PROCESSOR_BTVER1.
8417         * config/i386/i386.md (define_attr "cpu"): Add btver1.
8418
8419 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8420
8421         PR target/43309
8422         * config/i386/i386.c (legitimize_tls_address)
8423         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
8424         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
8425         (tls_initial_exec_64_sun): New pattern.
8426
8427 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
8428
8429         * doc/invoke.texi (Overall Options): Improve wording and markup
8430         of the description of -wrapper.
8431
8432 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
8433
8434         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
8435         rdynamic, threads): New Driver options.
8436
8437 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8438
8439         PR target/38118
8440         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
8441         if coming from .tdata.
8442         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8443
8444 2011-01-06  Jan Hubicka  <jh@suse.cz>
8445
8446         PR lto/47188
8447         * collect2.c (main): Do not enable LTOmode when plugin is active.
8448
8449 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8450
8451         PR other/45915
8452         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
8453         --version output if supported.
8454         * configure: Regenerate.
8455
8456 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
8457
8458         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
8459         Driver options.
8460
8461 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
8462
8463         PR c/47150
8464         * c-convert.c (convert): When converting a complex expression
8465         other than COMPLEX_EXPR to a different complex type, ensure
8466         c_save_expr is called instead of save_expr, unless in_late_binary_op.
8467         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
8468         when converting COMPLEX_TYPE.
8469
8470 2011-01-06  Ira Rosen  <irar@il.ibm.com>
8471
8472         PR tree-optimization/47139
8473         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
8474         only the last reduction value is used outside the loop.  Update
8475         documentation.
8476
8477 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
8478
8479         * config/rtems.opt: New.
8480         * config.gcc (*-*-rtems*): Use rtems.opt.
8481
8482 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
8483
8484         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
8485         processors do not support 3DNow instructions.
8486
8487 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8488
8489         * config/spu/spu.c (spu_option_override): Set parameter
8490         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
8491
8492 2011-01-05  Jan Hubicka  <jh@suse.cz>
8493
8494         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
8495         at the command line.
8496
8497 2011-01-05  Martin Jambor  <mjambor@suse.cz>
8498
8499         PR lto/47162
8500         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
8501         deltas on streamed outgoing edges.
8502         (output_node_opt_summary): Output info for outgoing edges only when
8503         the node is in new parameter set.
8504         (output_cgraph_opt_summary): New parameter set, passed to the two
8505         aforementioned functions.  Update its forward declaration and its
8506         callee too.
8507
8508 2011-01-05  Tom Tromey  <tromey@redhat.com>
8509
8510         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
8511         operator to c_finish_omp_atomic.
8512         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
8513         (build_unary_op): Update.
8514         (build_modify_expr): Update.
8515         (build_asm_expr): Update.
8516
8517 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8518
8519         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
8520         newly inserted insns.
8521         (pad_bb): Likewise.
8522         (spu_emit_branch_hint): Likewise.
8523         (insert_hbrp_for_ilb_runout): Likewise.
8524         (spu_machine_dependent_reorg): Call df_finish_pass after
8525         schedule_insns returns.
8526
8527 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8528
8529         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
8530
8531 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8532
8533         PR tree-optimization/47005
8534         * tree-sra.c (struct access): Add 'non_addressable' bit.
8535         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
8536         (decide_one_param_reduction): Return 0 if the parameter is passed by
8537         reference and one of the accesses in the group is non_addressable.
8538
8539 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
8540
8541         PR tree-optimization/47056
8542         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
8543         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
8544         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
8545
8546 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
8547
8548         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
8549         initializer.  Skip view conversions from aggregate types.
8550
8551 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
8552
8553         PR bootstrap/47055
8554         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
8555
8556 2011-01-04  Philipp Thomas  <pth@suse.de>
8557
8558         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
8559         obvious typo.
8560
8561 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8562
8563         * function.c (thread_prologue_and_epilogue_insns): Do not crash
8564         on empty epilogue sequences.
8565
8566 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
8567
8568         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
8569         non-static): New Driver options.
8570
8571 2011-01-04  Jie Zhang  <jie@codesourcery.com>
8572
8573         PR driver/47137
8574         * gcc.c (default_compilers[]): Set combinable field to 0
8575         for all assembly languages.
8576
8577 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
8578
8579         * config/mips/loongson3a.md: New file.
8580         * config/mips/mips.md: Include loongson3a.md.
8581         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
8582         TUNE_LOONGSON_3A.
8583
8584 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8585
8586         PR middle-end/47017
8587         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
8588         instead of convert_memory_address_addr_space on the base expression.
8589
8590 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8591
8592         * config/spu/spu.c (spu_option_override): Update error text
8593         for bad -march= / -mtune= values.
8594
8595 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8596
8597         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
8598         if branch-hint optimization will be performed.
8599
8600 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
8601
8602         PR tree-optimization/47148
8603         * ipa-split.c (split_function): Convert arguments to
8604         DECL_ARG_TYPE if possible.
8605
8606         PR tree-optimization/47155
8607         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
8608         when computing uns.
8609
8610         PR rtl-optimization/47157
8611         * combine.c (try_combine): If undobuf.other_insn becomes
8612         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
8613         and set *new_direct_jump_p too.
8614
8615 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
8616
8617         PR tree-optimization/47021
8618         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
8619
8620 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
8621
8622         * gcc.c (process_command): Update copyright notice dates.
8623         * gcov.c (print_version): Likewise.
8624         * gcov-dump.c (print_version): Likewise.
8625         * mips-tfile.c (main): Likewise.
8626         * mips-tdump.c (main): Likewise.
8627
8628 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8629
8630         PR tree-optimization/46801
8631         * tree-sra.c (type_internals_preclude_sra_p): Check whether
8632         aggregate fields start at byte boundary instead of the bit-field flag.
8633
8634 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8635
8636         PR driver/47137
8637         * gcc.c (main): Revert revision 168407.
8638
8639 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8640
8641         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
8642
8643 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8644
8645         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
8646         vector optab to expand vector/scalar shift, update gimple to vector.
8647
8648 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8649
8650         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
8651         a thunk.
8652
8653 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8654
8655         PR tree-optimization/46984
8656         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
8657         HOST_WIDE_INT.
8658         (cgraph_create_indirect_edge): Fixed line length.
8659         (cgraph_indirect_call_info): Declare.
8660         (cgraph_make_edge_direct) Update declaration.
8661         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
8662         (cgraph_create_indirect_edge): Use it.
8663         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
8664         callees.
8665         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
8666         the new thunk_delta representation.
8667         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
8668         HOST_WIDE_INT.
8669         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
8670         (ipa_read_indirect_edge_info): Likewise.
8671         * lto-cgraph.c (output_edge_opt_summary): New function.
8672         (output_node_opt_summary): Call it on all outgoing edges.
8673         (input_edge_opt_summary): New function.
8674         (input_node_opt_summary): Call it on all outgoing edges.
8675
8676 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
8677
8678         PR driver/47137
8679         * gcc.c (main): Don't check have_o when settting combine_inputs.
8680
8681 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
8682
8683         * regrename.c: Add general comment describing the pass.
8684         (struct du_head): Remove 'length' field.
8685         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
8686         (regrename_optimize): Do not sort chains.  Rework comments, add others.
8687         Force renaming to the preferred class (if any) in the first pass and do
8688         not consider registers that belong to it in the second pass.
8689         (create_new_chain): Do not set 'length' field.
8690         (scan_rtx_reg): Likewise.
8691
8692 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
8693
8694         PR tree-optimization/47140
8695         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
8696         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
8697         to bit_value_binop.
8698
8699         PR rtl-optimization/47028
8700         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
8701         parm_birth_insn instead of at the beginning of first bb.
8702
8703 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
8704
8705         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
8706         Remove the word "see" before "@pxref".
8707         * doc/rtl.texi: Remove the word "see" before "@pxref".
8708
8709 2011-01-01  Jan Hubicka  <jh@suse.cz>
8710
8711         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
8712         memory.
8713
8714 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
8715
8716         PR target/38662
8717         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
8718
8719 \f
8720 Copyright (C) 2011 Free Software Foundation, Inc.
8721
8722 Copying and distribution of this file, with or without modification,
8723 are permitted in any medium without royalty provided the copyright
8724 notice and this notice are preserved.