OSDN Git Service

76908e52813cb798572ed39c4005d0db93db501e
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
2
3         From Bernd Schmidt:
4         * config/bfin/bfin.md (MOVCC): New mode_macro.
5         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
6         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
7         comments from generated assembly.
8
9 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
10
11         From Bernd Schmidt
12         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
13         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
14         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
15         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
16         * config/bfin/lib1funcs.asm (___muldi3): New function.
17
18 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
19
20         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
21         build_function_type_list instead of build_function_type.
22         Rearrange initialization of `args' to do so.
23
24 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
25
26         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
27         instead of build_function_type.
28
29 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
30
31         * config/rs6000/rs6000.c (spe_init_builtins): Call
32         build_function_type_list instead of build_function_type.
33         (paired_init_builtins, altivec_init_builtins): Likewise.
34         (builtin_function_type): Likewise.
35
36 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
37
38         * config/sh/sh.c (sh_media_init_builtins): Call
39         build_function_type_list instead of build_function_type.
40
41 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
42
43         * config/sparc/sparc.c (sparc_file_end): Call
44         build_function_type_list instead of build_function_type.
45
46 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
47
48         * config/alpha/alpha.c (alpha_init_builtins): Call
49         build_function_type_list instead of build_function_type.
50
51 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
52
53         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
54         build_function_type_list instead of build_function_type.
55
56 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
57
58         * config/iq2000/i2000.c (iq2000_init_builtins): Call
59         build_function_type_list instead of build_function_type.
60         Delete `endlink' variable.
61
62 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
63
64         * config/avr/avr.c (avr_init_builtins): Call
65         build_function_type_list instead of build_function_type.
66
67 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
68
69         * config/picochip/picochip.c (picochip_init_builtins): Call
70         build_function_type_list instead of build_function_type.
71         Delete `endlink' variable.
72
73 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
74
75         * config/bfin/bfin.c (bfin_init_builtins): Call
76         build_function_type_list instead of build_function_type.
77
78 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
79
80         From Bernd Schmidt
81         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
82         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
83
84 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
85
86         From Jie Zhang:
87         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
88         libbffastfp overrides libgcc when -mfast-fp.
89
90 2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>
91
92         Originally from Bernd Schmidt
93         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
94         * config/bfin/bfin.c (override_options): Test it and error if
95         TARGET_FDPIC.
96
97 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
98
99         Originally From Bernd Schmidt
100         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
101         FD-PIC.
102
103 2011-05-03  Jeff Law  <law@redhat.com>
104
105         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
106         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
107         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
108         than accessing AUX field directly.  Free the AUX field before                   clearing it.
109         (thread_block, thread_through_loop_header): Likewise.
110         (thread_single_edge, mark_threaded_blocks): Likewise.
111         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
112         (register_jump_thread): Do not attempt to thread to a NULL edge.
113         
114 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
115
116         * function.c (init_function_start): Call decide_function_section.
117         * varasm.c (decide_function_section): New function.
118         (assemble_start_function): When not using
119         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
120         or first_function_block_is_cold.
121         * rtl.h (decide_function_section): Declare.
122
123 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
124             Jakub Jelinek  <jakub@redhat.com>
125
126         PR target/48774
127         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
128         only succeed if req_mode is the same as set_mode.
129
130 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
131
132         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
133         * genemit.c (gen_exp): Handle RETURN.
134         * emit-rtl.c (verify_rtx_sharing): Likewise.
135         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
136         * rtl.c (copy_rtx): RETURN is shared.
137         * rtl.h (enum global_rtl_index): Add GR_RETURN.
138         (ret_rtx): New.
139         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
140         * config/s390/s390.c (s390_emit_epilogue): Likewise.
141         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
142         * config/cris/cris.c (cris_expand_return): Likewise.
143         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
144         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
145         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
146         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
147         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
148         Likewise.
149         * config/v850/v850.c (expand_epilogue): Likewise.
150         * config/bfin/bfin.c (bfin_expand_call): Likewise.
151         * config/arm/arm.md (epilogue): Likewise.
152         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
153         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
154         variable to ret_reg.
155
156 2011-05-03  Richard Guenther  <rguenther@suse.de>
157
158         PR lto/48846
159         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
160         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
161         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
162
163 2011-05-03  Richard Guenther  <rguenther@suse.de>
164
165         * c-decl.c (grokdeclarator): Instead of looking at
166         TREE_OVERFLOW check if the constant fits in the index type.
167
168 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
169
170         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
171         (vec_store_lanes<mode><mode>): Likewise.
172
173 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
174
175         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
176         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
177         convert_optab_index values.
178         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
179         * genopinit.c (optabs): Initialize the new optabs.
180         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
181         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
182         (expand_STORE_LANES): New functions.
183         * tree.h (build_array_type_nelts): Declare.
184         * tree.c (build_array_type_nelts): New function.
185         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
186         (vect_model_load_cost): Likewise.
187         (vect_store_lanes_supported, vect_load_lanes_supported)
188         (vect_record_strided_load_vectors): Declare.
189         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
190         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
191         (vect_transform_strided_load): Split out statement recording into...
192         (vect_record_strided_load_vectors): ...this new function.
193         * tree-vect-stmts.c (create_vector_array, read_vector_array)
194         (write_vector_array, create_array_ref): New functions.
195         (vect_model_store_cost): Add store_lanes_p argument.
196         (vect_model_load_cost): Add load_lanes_p argument.
197         (vectorizable_store): Try to use store-lanes functions for
198         interleaved stores.
199         (vectorizable_load): Likewise load-lanes and loads.
200         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
201         to vect_model_store_cost.
202         (vect_build_slp_tree): Likewise vect_model_load_cost.
203
204 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
205
206         * hooks.h (hook_bool_mode_uhwi_false): Declare.
207         * hooks.c (hook_bool_mode_uhwi_false): New function.
208         * target.def (array_mode_supported_p): New hook.
209         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
210         * doc/tm.texi: Regenerate.
211         * stor-layout.c (mode_for_array): New function.
212         (layout_type): Use it.
213         * config/arm/arm.c (arm_array_mode_supported_p): New function.
214         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
215
216 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
217
218         PR target/48723
219         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
220         for -fstack-check if the size to allocate is negative.
221
222 2011-05-02  Lawrence Crowl  <crowl@google.com>
223
224         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
225         (timevar_cond_start): New for starting a timer only when it is not
226         already running.
227         (timevar_cond_stop): New for stopping a timer when it was not already
228         running.
229
230         * timevar.c (timevar_stop): Enable start/stop timers to start again.
231         (timevar_cond_start): New as above.
232         (timevar_cond_stop): New as above.
233
234         * timevar.def: Add start/stop timers for compiler phases,
235         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
236         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
237         and TV_PHASE_FINALIZE.
238         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
239         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
240         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
241         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
242         Make unused TV_OVERLOAD into a start/stop timer.
243
244         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
245         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
246         to indicate that they are start/stop timers.
247
248         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
249         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
250         Move initialization to do_compile.
251         (do_compile): Add initialization from above.
252         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
253
254         * c-decl.c (c_write_global_declarations): Add start/stop of
255         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
256
257         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
258         or TV_PARSE_INLINE, as appropriate.
259         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
260         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
261
262 2011-05-02  Jason Merrill  <jason@redhat.com>
263
264         PR c++/40975
265         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
266
267 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
268
269         PR c/35445
270         * c-decl.c (finish_decl): Only create a composite if the types are
271         compatible.
272
273 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
274
275         * config/fr30/fr30-protos.h (Mmode): Don't define.
276         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
277         definition where used.
278         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
279         define.  Expand definitions where used.
280         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
281         Expand definitions where used.
282         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
283         rx_function_arg, rx_function_arg_advance,
284         rx_function_arg_boundary): Expand definitions of those macros.
285         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
286         definition where used.
287
288 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
289
290         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
291         reg<->xmm moves.
292         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
293         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
294         with *movv2sf_internal_rex64_avx.
295         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
296         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
297         Use %v prefix in insn mnemonic to handle TARGET_AVX.
298         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
299         "vex" in "prefix" attribute calculation.
300         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
301
302 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
303
304         PR target/47951
305         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
306         inputs match the output.
307
308 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
309
310         PR target/47955
311         * config/m68k/m68k.c (m68k_expand_prologue): Set
312         current_function_static_stack_size.
313
314 2011-05-02   Jan Hubicka  <jh@suse.cz>
315
316         * lto-streamer.c (lto_streamer_cache_insert_1,
317         lto_streamer_cache_lookup, lto_streamer_cache_create,
318         lto_streamer_cache_delete): Use pointer map instead of hashtable.
319         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
320
321 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
322
323         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
324         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
325         config/m68k/t-opts: New files.
326         * config/m68k/m68k-tables.opt: New file (generated).
327         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
328         extra_options and m68k/t-opts to tmake_file.
329         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
330         (all_isas): Initialize using m68k-isas.def.
331         (all_microarchs): Initialize using m68k-microarchs.def.
332         (m68k_find_selection): Remove.
333         (m68k_handle_option): Don't assert that global structures are in
334         use.  Use error_at.  Access variables via opts pointer.  Don't
335         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
336         directly for -m68020-40 and -m68020-60.
337         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
338         m68k_tune_entry here.
339         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
340         to m68k-opts.h.
341         (m68k_library_id_string): Remove declaration.
342         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
343         (m68k_library_id_string): New Variable.
344         (march=, mcpu=, mtune=): Use Enum and Var.
345
346 2011-05-02  Richard Guenther  <rguenther@suse.de>
347
348         * varasm.c (output_constructor_regular_field): Compute zero-based
349         index with double-ints.  Make sure to ICE instead of producing
350         wrong code.
351         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
352         in asserts.  Properly use a signed type.
353
354 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
355
356         * config/i386/sse.md (V): New mode iterator.
357         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
358         TARGET_SSE2.
359         (V_256): Rename from AVX256MODE.
360         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
361         condition to all users.
362         (VF1): Ditto.
363         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
364         condition to all users.
365         (VF_128): Make V4SF mode unconditional.
366         (VF_256): Rename from AVX256MODEF2P.
367         (VI4F_128): Rename from SSEMODE4S.
368         (VI8F_128): Rename from SSEMODE2D.
369         (VI4F_256): Rename from AVX256MODE8P.
370         (VI8F_256): Rename from AVX256MODE4P.
371         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
372         (ssescalarmodesuffix): Remove SF and DF modes.
373         (SSEMODE124): Remove.
374         (SSEMODE1248): Ditto.
375         (SSEMODEF2P): Ditto.
376         (AVXMODEF2P): Ditto.
377         (AVXMODEFDP): Ditto.
378         (AVXMODEFSP): Ditto.
379         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
380         unconditional.
381         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
382         unconditional.
383         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
384         xop_pcmov_<mode>256.  Use V mode iterator.
385
386         Adjust RTX patterns globally for renamed mode attributes.
387
388 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
389
390         * haifa-sched.c (sched_emit_insn): Emit insn before first
391         non-scheduled insn.  Inform back-end about new insn.  Add
392         new insn to scheduled_insns list.
393
394 2011-05-02  Richard Guenther  <rguenther@suse.de>
395
396         PR tree-optimization/48822
397         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
398         (process_scc): Indicate which iteration we start.
399
400 2011-05-02  Jan Hubicka  <jh@suse.cz>
401
402         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
403         (lto_section_overrun): New.
404         * lto-section-out.c (append_block): Rename to ...
405         (lto_append_block): ... this one; export.
406         (lto_output_1_stream): Move lto lto-streamer.h
407         (lto_output_data_stream): Update.
408         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
409         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
410         functions.
411
412 2011-05-02  Richard Guenther  <rguenther@suse.de>
413
414         * tree.c (tree_code_counts): New global array.
415         (record_node_allocation_statistics): Count individual tree codes.
416         (dump_tree_statistics): Dump individual code stats.
417
418 2011-05-01  Jan Hubicka  <jh@suse.cz>
419
420         * ipa-inline.c (caller_growth_limits): Fix thinko when
421         looking for largest stack frame.
422         * ipa-inline.h (dump_inline_summary): Declare.
423         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
424         on stack usage.
425         (dump_inline_summary): Export.
426         (debug_inline_summary): Declare as DEBUG_FUNCTION.
427
428 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
429
430         * reginfo.c (memory_move_cost): Change rclass argument type form
431         'enum reg_class' to reg_class_t.
432         * reload.h (memory_move_cost): Update prototype.
433         * postreload.c reload_cse_simplify_set): Change type dclass var to
434         reg_class_t.
435         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
436         Update prototype.
437         (ira_allocate_and_set_costs): Change aclass argument type form
438         'enum reg_class' to reg_class_t.
439         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
440         Change aclass argument type to reg_class_t.
441         (update_conflict_hard_reg_costs): Change type aclass and pref vars
442         to reg_class_t.
443         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
444         memory_move_cost call.
445
446         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
447         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
448         Change type tmp var to reg_class_t.
449
450 2011-04-30  Jan Hubicka  <jh@suse.cz>
451
452         * ipa-inline.c (can_inline_edge_p): Disregard limits when
453         inlining into function with flatten attribute.
454         (want_inline_small_function_p): Be more realistic about inlining
455         cold calls where callee size grows.
456
457 2011-04-30  Jan Hubicka  <jh@suse.cz>
458
459         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
460         flags.
461
462 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
463
464         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
465         PRINT_OPERAND_PUNCT_VALID_P): Remove.
466         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
467         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
468         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
469         (print_operand): Rename to...
470         (sparc_print_operand): ...this. Make static. Adjust
471         sparc_print_operand function call.
472         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
473         functions.
474
475 2011-04-30  Jan Hubicka  <jh@suse.cz>
476
477         PR middle-end/48752
478         * ipa-inline.c (early_inliner): Disable when doing late
479         addition of function.
480
481 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
482
483         * dwarf2out.c (get_address_mode): New inline.
484         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
485         if not dwarf_strict emit
486         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
487         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
488         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
489         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
490         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
491         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
492         mem_loc_descriptor callers.
493         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
494         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
495         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
496         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
497         (base_types): New variable.
498         (get_base_type_offset, calc_base_type_die_sizes,
499         base_type_for_mode, mark_base_types, base_type_cmp,
500         move_marked_base_types): New functions.
501         (calc_die_sizes): Assert that die_offset is 0 or equal to
502         next_die_offset.
503         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
504         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
505         callers.  If not dwarf_strict, call mem_loc_descriptor even for
506         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
507         (gen_subprogram_die): Don't give up on call site parameters
508         with non-integral or large integral modes.  Adjust
509         mem_loc_descriptor callers.
510         (prune_unused_types): Call prune_unused_types_mark on base_types
511         vector entries.
512         (resolve_addr): Call mark_base_types.
513         (dwarf2out_finish): Call move_marked_base_types.
514
515         PR tree-optimization/48809
516         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
517         type.
518         (gen_inbound_check): Don't compute index_expr - range_min in utype
519         again, instead reuse SSA_NAME initialized in build_arrays.
520         Remove two useless gsi_for_stmt calls.
521
522 2011-04-29  Jeff Law  <law@redhat.com>
523
524         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
525
526 2011-04-29  Martin Jambor  <mjambor@suse.cz>
527
528         * cgraph.h (cgraph_postorder): Remove declaration.
529         * ipa-utils.h (ipa_free_postorder_info): Declare.
530         (ipa_reverse_postorder): Likewise.
531         * cgraphunit.c: Include ipa-utils.h.
532         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
533         * ipa-inline.c: Include ipa-utils.h.
534         (ipa_inline): Update call to ipa_reverse_postorder.
535         * ipa-pure-const.c (propagate_pure_const): Update call to
536         ipa_reduced_postorder and ipa_print_order.  Call
537         ipa_free_postorder_info to clean up.
538         (propagate_nothrow): Likewise.
539         * ipa-reference.c (propagate): Removed a useless call to
540         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
541         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
542         * ipa.c: Include ipa-utils.h.
543         (ipa_profile): Update call to ipa_reverse_postorder.
544         (cgraph_postorder): Moved to...
545         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
546         (ipa_utils_print_order): Renamed to ipa_print_order.
547         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
548         comments.
549         (ipa_free_postorder_info): New function.
550         * passes.c: Include ipa-utils.h.
551         (do_per_function_toporder): Update call to ipa_reverse_postorder.
552         (ipa_write_summaries): Likewise.
553         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
554         (cgraphunit.o): Likewise.
555         (ipa.o): Likewise.
556         (ipa-inline.o): Likewise.
557
558 2011-04-29  Jan Hubicka  <jh@suse.cz>
559
560         * gcc.dg/tree-ssa/inline-10.c: New testcase.
561         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
562         * ipa-inline.h (clause_t): Turn into unsigned int.
563         * ipa-inline-analysis.c (add_clause): Do more simplification.
564         (and_predicates): Shortcut more cases.
565         (predicates_equal_p): Move forward; check that clauses are properly
566         ordered.
567         (or_predicates): Shortcut more cases.
568         (edge_execution_predicate): Rewrite as...
569         (set_cond_stmt_execution_predicate): ... this function; handle
570         __builtin_constant_p.
571         (set_switch_stmt_execution_predicate): New .
572         (compute_bb_predicates): New.
573         (will_be_nonconstant_predicate): Update TODO.
574         (estimate_function_body_sizes): Use compute_bb_predicates
575         and free them later, always try to estimate if stmt is constant.
576         (estimate_time_after_inlining, estimate_size_after_inlining):
577         Gracefully handle optimized out edges.
578         (read_predicate): Fix off by one error.
579
580 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
581
582         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
583
584 2011-04-27  Xinliang David Li  <davidxl@google.com>
585
586         * tree-profile.c (init_ic_make_global_vars): Set
587         tls attribute on ic vars.
588         * coverage.c (coverage_end_function): Initialize
589         function_list with zero.
590
591 2011-04-29  Richard Guenther  <rguenther@suse.de>
592
593         * builtins.c (fold_builtin_classify_type): Use integer_type_node
594         for the type of the result.
595         (fold_builtin_isascii): Likewise.
596         (fold_builtin_toascii): Use integer_type_node where appropriate.
597         (fold_builtin_logb): Likewise.
598         (fold_builtin_frexp): Likewise.
599         (fold_builtin_strstr): Likewise.
600         (fold_builtin_strpbrk): Likewise.
601         (fold_builtin_fputs): Likewise.
602         (fold_builtin_sprintf): Likewise.
603         (fold_builtin_snprintf): Likewise.
604         (fold_builtin_printf): Likewise.
605         (do_mpfr_remquo): Use a proper type for the assigned constant.
606         (do_mpfr_lgamma_r): Likewise.
607         * dwarf2out.c (resolve_one_addr): Use size_int.
608         * except.c (init_eh): Likewise.
609         (assign_filter_values): Use integer_type_node for filter values.
610         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
611         indices.
612         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
613         for EH region numbers.
614         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
615         for the shift amount.
616
617 2011-04-29  Richard Guenther  <rguenther@suse.de>
618
619         * expr.h (expand_shift): Rename to ...
620         (expand_variable_shift): ... this.
621         (expand_shift): Take a constant shift amount.
622         * expmed.c (expand_shift): Rename to ...
623         (expand_variable_shift): ... this.
624         (expand_shift): New wrapper around expand_variable_shift.
625         * expr.c (convert_move, emit_group_load_1, emit_group_store,
626         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
627         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
628         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
629         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
630         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
631         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
632         emit_store_flag_1, emit_store_flag): Likewise.
633         * builtins.c (expand_builtin_signbit): Likewise.
634         * calls.c (load_register_parameters): Likewise.
635         * function.c (assign_parm_setup_block): Likewise.
636         * lower-subreg.c (resolve_shift_zext): Likewise.
637         * optabs.c (widen_bswap, expand_abs_nojump,
638         expand_one_cmpl_abs_nojump, expand_float): Likewise.
639         * spu/spu.c (spu_expand_extv): Likewise.
640         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
641
642 2011-04-29  Richard Guenther  <rguenther@suse.de>
643
644         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
645         for the remapped region number.
646         * predict.c (build_predict_expr): Use integer_type_node for the
647         predict kind.
648         * fold-const.c (fold_binary_loc): Use integer_type_node for
649         the shift amount.  Use a proper type for the PLUS_EXPR operand.
650
651 2011-04-29  Michael Matz  <matz@suse.de>
652
653         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
654         other trees that just builtins.
655         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
656
657 2011-04-29  Richard Guenther  <rguenther@suse.de>
658
659         * tree-nested.c (get_trampoline_type): Use size_int.
660         (get_nl_goto_field): Likewise.
661         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
662         for all indexes.
663         (lower_eh_constructs_2): Likewise.
664         (lower_resx): Likewise.
665         (lower_eh_dispatch): Likewise.
666         * tree-mudflap.c (mf_build_string): Use size_int.
667         (mudflap_register_call): Use integer_type_node for the flag.
668         (mudflap_enqueue_constant): Use size_int.
669         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
670         instead of rebuilding it.
671
672 2011-04-29  Richard Guenther  <rguenther@suse.de>
673
674         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
675         Handle OBJ_TYPE_REF.
676         (find_func_aliases_for_call): Use it more consistently.
677
678 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
679
680         * haifa-sched.c (last_nondebug_scheduled_insn): New.
681         (rank_for_schedule): Use it.
682         (schedule_block): Set it.
683
684 2011-04-28  David Li  <davidxl@google.com>
685
686         * tree.c (crc32_string): Use crc32_byte.
687         (crc32_byte): New function.
688         * tree.h (crc32_byte): New function.
689         * gcov.c (read_graph_file): Handle new cfg_cksum.
690         (read_count_file): Ditto.
691         * profile.c (instrument_values): Ditto.
692         (get_exec_counts): Ditto.
693         (read_profile_edge_counts): Ditto.
694         (compute_branch_probabilities): Ditto.
695         (compute_value_histograms): Ditto.
696         (branch_prob): Ditto.
697         (end_branch_prob): Ditto.
698         * coverage.c (read_counts_file): Ditto.
699         (get_coverage_counts): Ditto.
700         (tree_coverage_counter_addr): Ditto.
701         (coverage_checksum_string): Ditto.
702         (coverage_begin_output): Ditto.
703         (coverage_end_function): Ditto.
704         (build_fn_info_type): Ditto.
705         (build_fn_info_value): Ditto.
706         * libgcov.c (gcov_exit): Ditto.
707         * gcov-dump.c (tag_function): Ditto.
708         (compute_checksum): Remove.
709
710 2011-04-29  Alan Modra  <amodra@gmail.com>
711
712         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
713         unspec plus offset.  Tidy macho code.
714
715 2011-04-29  Martin Jambor  <mjambor@suse.cz>
716
717         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
718         node instead of a decl.  Update all callers.
719         * cgraph.h: Update declaration.
720
721 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
722
723         PR tree-optimization/48765
724         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
725         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
726         to indicate if loop aware SLP is being used.  Scan the statements
727         and update the vectorization factor according to the type of
728         vectorization before statement analysis.
729         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
730         pass it to vect_analyze_loop_operations.
731         (vectorizable_reduction): Set number of copies to 1 in case of pure
732         SLP statement.
733         * tree-vect-stmts.c (vectorizable_conversion,
734         vectorizable_assignment, vectorizable_shift,
735         vectorizable_operation, vectorizable_type_demotion,
736         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
737         Likewise.
738         (vectorizable_condition): Move the check that it is not SLP
739         vectorization before the number of copies check.
740         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
741         to vectorize the loop using SLP.
742
743 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
744
745         PR middle-end/48597
746         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
747         inline asm.
748
749 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
750
751         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
752         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
753         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
754         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
755         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
756         linux*.h headers.
757         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
758         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
759         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
760         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
761         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
762         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
763         REG_NAME.
764         * config/i386/linux.h (REG_NAME): Don't define.
765         * config/i386/linux64.h (REG_NAME): Don't define.
766         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
767         Undefine before defining.
768
769 2011-04-28  Jan Hubicka  <jh@suse.cz>
770
771         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
772         nonconstant_names array.
773         (estimate_function_body_sizes): Build nonconstant_names array; handle
774         BUILT_IN_CONSTANT_P.
775
776 2011-04-28  Richard Guenther  <rguenther@suse.de>
777
778         PR bootstrap/48804
779         Revert
780         2011-04-28  Richard Guenther  <rguenther@suse.de>
781
782         * tree-ssa-structalias.c (solve_constraints): Build succ graph
783         as late as possible.
784
785 2011-04-28  Richard Guenther  <rguenther@suse.de>
786
787         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
788         (debug_constraint): Do it here.
789         (dump_constraints): And here.
790         (rewrite_constraints): And here.
791         (dump_constraint_edge): Remove.
792         (dump_constraint_graph): Rewrite to produce DOT output.
793         (solve_constraints): Build succ graph as late as possible.
794         Dump constraint graphs before and after solving.
795
796 2011-04-28  Richard Guenther  <rguenther@suse.de>
797
798         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
799         New function split out from ...
800         (find_func_aliases): ... here.  Call it.
801         (find_func_aliases_for_call): Likewise.
802
803 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
804
805         * internal-fn.h (internal_fn_name_array): Declare.
806         (internal_fn_flags_array): Likewise.
807
808 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
809
810         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
811         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
812         Move from sse.md.
813         (ssemodefsuffix): Remove.
814         (ssevecmodesuffix): New mode attribute.
815         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
816         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
817         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
818         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
819         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
820         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
821         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
822         ssemodesuffix mode attribute.
823         (float splitters): Use ssevecmodesuffix mode attribute.
824         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
825         (sseinsmode): Rename from avxvecmode.
826         (avxsizesuffix): Rename from avxmodesuffix.
827         (sseintvecmode): Rename from avxpermvecmode.
828         (ssedoublevecmode): Rename from ssedoublesizemode.
829         (ssehalfvecmode): Rename from avxhalfvecmode.
830         (ssescalarmode): Rename from avxscalarmode.
831         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
832         templates for ssemodesuffix mode attribute.
833         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
834         mode attribute.
835
836         Adjust RTX patterns globally for renamed mode attributes.
837
838 2011-04-27  Jan Hubcika  <jh@suse.cz>
839
840         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
841         * ipa-inline-analysis.c: Include alloc-pool.h.
842         (edge_predicate_pool): New.
843         (trye_predicate_p): New function
844         (false_predicate_p): New function.
845         (add_clause): Sanity check that false clauses are "optimized";
846         never add clauses to predicate that is already known to be false.
847         (and_predicate): Use flase_predicate_p.
848         (evaulate_predicate): Rename to ...
849         (evaluate_predicate): ... this one; update all callers; assert
850         that false is not listed among possible truths.
851         (dump_predicate): Use true_predicate_p.
852         (account_size_time): Use false_predicate_p.
853         (evaulate_conditions_for_edge): Rename to ...
854         (evaluate_conditions_for_edge) ... this one.
855         (edge_set_predicate): New function.
856         (inline_edge_duplication_hook): Duplicate edge predicates.
857         (inline_edge_removal_hook): Free edge predicates.
858         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
859         (dump_inline_summary): Update.
860         (estimate_function_body_sizes): Set edge predicates.
861         (estimate_calls_size_and_time): Handle predicates.
862         (estimate_callee_size_and_time): Update.
863         (remap_predicate): Add toplev_predicate; update comment.
864         (remap_edge_predicates): New function.
865         (inline_merge_summary): Compute toplev predicate; update.
866         (read_predicate): New function.
867         (read_inline_edge_summary): Use it.
868         (inline_read_section): Likewise.
869         (write_predicate): New function.
870         (write_inline_edge_summary): Use it.
871         (inline_write_summary): Likewise.
872         (inline_free_summary): Free alloc pool and edge summary vec.
873
874 2011-04-27  Richard Guenther  <rguenther@suse.de>
875
876         * tree-ssa-structalias.c (changed_count): Remove.
877         (changed): Use a bitmap.
878         (unify_nodes): Adjust.
879         (do_sd_constraint): Likewise.
880         (do_ds_constraint): Likewise.
881         (do_complex_constraint): Likewise.
882         (solve_graph): Likewise.
883
884 2011-04-27  Jan Hubicka  <jh@suse.cz>
885
886         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
887
888 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
889
890         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
891         (avx_vperm2f128_*_operand): Ditto.
892         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
893         Use avx_vpermilp_parallel in insn condition.
894         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
895         Use avx_vperm2f128_parallel in insn condition.
896
897 2011-04-27  Richard Guenther  <rguenther@suse.de>
898
899         * Makefile.in (tree-ssa-structalias.o): Remove
900         gt-tree-ssa-structalias.h dependency.
901         (GTFILES): Remove tree-ssa-structalias.c.
902         * tree.c (allocate_decl_uid): New function.
903         (make_node_stat): Use it.
904         (copy_node_stat): Likewise.
905         * tree.h (allocate_decl_uid): Declare.
906         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
907         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
908         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
909         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
910         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
911         (struct heapvar_map): Likewise.
912         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
913         heapvar_insert): Likewise.
914         (make_heapvar_for): Rename to ...
915         (make_heapvar): ... this.  Simplify.
916         (fake_var_decl_obstack): New global var.
917         (build_fake_var_decl): New function.
918         (make_constraint_from_heapvar): Adjust.
919         (handle_lhs_call): Likewise.
920         (create_function_info_for): Likewise.
921         (intra_create_variable_infos): Likewise.
922         (init_alias_vars): Allocate fake_var_decl_obstack.
923         (init_alias_heapvars, delete_alias_heapvars): Remove.
924         (compute_points_to_sets): Do not call init_alias_heapvars.
925         (ipa_pta_execute): Likewise.
926         (delete_points_to_sets): Free fake_var_decl_obstack.
927
928 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
929
930         * config/spu/divmovti4.c (union qword_UTItype): New data type.
931         (si_from_UTItype, si_to_UTItype): New functions.
932         (__udivmodti4): Use them to implement type-punning.
933         * config/spu/multi3.c (union qword_TItype): New data type.
934         (si_from_TItype, si_to_TItype): New functions.
935         (__multi3): Use them to implement type-punning.
936
937 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
938
939         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
940
941 2011-04-27  Jan Hubicka  <jh@suse.cz>
942
943         * ipa-prop.c (function_insertion_hook_holder): New holder.
944         (ipa_add_new_function): New function.
945         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
946         Register/deregister holder.
947
948 2011-04-27  Richard Guenther  <rguenther@suse.de>
949
950         PR tree-optimization/48772
951         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
952
953 2011-04-27  Richard Guenther  <rguenther@suse.de>
954
955         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
956         TARGET_MEM_REF handling.
957
958 2011-04-27  Nick Clifton  <nickc@redhat.com>
959
960         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
961         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
962         (REG_CLASS_NAMES): Likewise.
963         (REG_CLASS_CONTENTS): Likewise.
964         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
965         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
966         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
967         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
968         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
969         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
970         duplicate register classes.
971         (frv_class_likely_spilled_p): Likewise.
972         (frv_register_move_cost): Likewise.
973
974         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
975         end of the regno_reg_class array.
976
977 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
978
979         PR c/48742
980         * c-typeck.c (build_binary_op): Don't wrap arguments if
981         int_operands is true.
982
983 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
984
985         PR target/48767
986         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
987         targetm.calls.must_pass_in_stack for void type.
988
989 2011-04-26  Jan Hubicka  <jh@suse.cz>
990
991         * cgraphbuild.c (build_cgraph_edges): Update call
992         of cgraph_create_edge and cgraph_create_indirect_edge.
993         * cgraph.c (cgraph_create_edge_including_clones,
994         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
995         cgraph_update_edges_for_call_stmt_node): Do not take nest
996         argument; do not initialize call_stmt_size/time.
997         (dump_cgraph_node): Do not dump nest.
998         (cgraph_clone_edge): Do not take loop_nest argument;
999         do not propagate it; do not clone call_stmt_size/time.
1000         (cgraph_clone_node): Likewise.
1001         (cgraph_create_virtual_clone): Update.
1002         * cgraph.h (struct cgraph_edge): Remove
1003         call_stmt_size/call_stmt_time/loop_nest.
1004         (cgraph_create_edge, cgraph_create_indirect_edge,
1005         cgraph_create_edge_including_clones, cgraph_clone_node): Update
1006         prototype.
1007         * tree-emutls.c (gen_emutls_addr): Update.
1008         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1009         loop_nest; handle indirect calls, too.
1010         (clone_inlined_nodes): Do not care about updating inline summaries.
1011         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1012         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1013         stream call_stmt_size/call_stmt_time/loop_nest.
1014         * ipa-inline.c (edge_badness): Update.
1015         (ipa_inline): dump summaries after inlining.
1016         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
1017         New.
1018         (inline_edge_summary): New function.
1019         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1020         (inline_edge_removal_hook): Handle edge summaries.
1021         (inline_edge_duplication_hook): New hook.
1022         (inline_summary_alloc): Alloc hooks.
1023         (initialize_growth_caches): Do not register removal hooks.
1024         (free_growth_caches); Do not free removal hook.
1025         (dump_inline_edge_summary): New function.
1026         (dump_inline_summary): Use it.
1027         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1028         (inline_update_callee_summaries): New function.
1029         (inline_merge_summary): Use it.
1030         (do_estimate_edge_time, do_estimate_edge_growth): Update.
1031         (read_inline_edge_summary): New function.
1032         (inline_read_section): Use it.
1033         (write_inline_edge_summary): New function.
1034         (inline_write_summary): Use it.
1035         (inline_free_summary): Free edge new holders.
1036         * tree-inline.c (copy_bb): Update.
1037
1038 2011-04-26  Jason Merrill  <jason@redhat.com>
1039
1040         * tree-eh.c (lower_try_finally_switch): Create the label along with
1041         the CASE_LABEL_EXPR.
1042
1043 2011-04-26  David S. Miller  <davem@davemloft.net>
1044             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1045
1046         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1047         * configure: Regenerate.
1048
1049 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
1050
1051         PR target/48258
1052         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1053         reduction.
1054         (VEC_reduc): New code iterator and splitters for vector reduction.
1055         (VEC_reduc_name): Ditto.
1056         (VEC_reduc_rtx): Ditto.
1057         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1058         (reduc_<VEC_reduc_name>_v4sf): Ditto.
1059
1060         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1061         support for extracting SF on VSX.
1062
1063         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1064         generating xscvspdp.
1065         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1066         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1067         double add, minimum, maximum vector reduction.
1068         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1069         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1070         optimize double vector reduction.
1071         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1072
1073 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
1074
1075         * config/fr30/fr30.h (inhibit_libc): Don't define.
1076         * config/m32r/m32r-protos.h: Correct comment.
1077         * config/v850/v850.h (GHS_default_section_names,
1078         GHS_current_section_names): Use tree, not union tree_node *.
1079
1080 2011-04-26  Xinliang David Li  <davidxl@google.com>
1081
1082         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
1083         * c-family/c-opts.c (c_common_handle_option): Set
1084         warn_maybe_uninitialized.
1085         * opts.c (common_handle_option): Ditto.
1086         * common.opt:  New option.
1087         * tree-ssa.c (warn_uninit): Add one more parameter.
1088         (warn_uninitialized_var): Pass warning code.
1089         * tree-flow.h: Interface change.
1090
1091
1092 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1093
1094         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
1095         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1096         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1097
1098 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1099
1100         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1101         * config/mips/mips.opt (mmips-tfile): Remove.
1102
1103         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1104         mips-tdump reference to ...
1105         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
1106         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1107         reference by Tru64 UNIX.
1108
1109 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
1110
1111         PR debug/48768
1112         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1113         is error_mark_node, set value to NULL.
1114
1115         PR tree-optimization/48734
1116         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1117         if return value from maybe_fold_*_comparsions isn't something
1118         the code is prepared to handle.
1119
1120 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
1121
1122         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1123         mode check.
1124         (ext_QIreg_nomode_operands): Remove.
1125         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1126         (*andsi_1): Ditto.
1127         (*andhi_1): Ditto.
1128
1129 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
1130
1131         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1132
1133 2011-04-26  Richard Guenther  <rguenther@suse.de>
1134
1135         * c-typeck.c (build_unary_op): Do not expand array-refs via
1136         pointer arithmetic.  Only adjust qualifiers for function types.
1137
1138 2011-04-26  Richard Guenther  <rguenther@suse.de>
1139
1140         PR middle-end/48694
1141         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1142         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
1143         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
1144         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
1145
1146 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
1147
1148         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
1149         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
1150         * doc/extend.texi: Document __underlying_type.
1151
1152 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
1153
1154         * config/rs6000/titan.md (automata_option "progress"): Remove.
1155
1156 2011-04-25  Jeff Law  <law@redhat.com>
1157
1158         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1159
1160 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
1161
1162         * system.h (ENUM_BITFIELD): Remove.
1163
1164 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
1165             Eric Botcazou  <ebotcazou@adacore.com>
1166
1167         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1168         for STORE_FLAG_VALUE==-1 case.
1169
1170 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
1171
1172         PR target/43804
1173         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1174         LEGITIMATE_PIC_OPERAND_P.
1175
1176 2011-04-24  Jan Hubicka  <jh@suse.cz>
1177
1178         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1179         WPA hack.
1180         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1181         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1182         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
1183         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1184         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1185         Sanity check predicate length.
1186         (remap_predicate): Likewise; sanity check jump functions.
1187         (inline_read_section, inline_write_summary): Sanity check
1188         predicate length.
1189
1190 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
1191
1192         PR other/48748
1193         * doc/extend.texi (Type Traits): Document __is_standard_layout,
1194         __is_literal_type, and __is_trivial; update throughout about
1195         possibly cv-qualified void types.
1196
1197 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1198
1199         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1200         testsuite and make it version agnostic.
1201
1202 2011-04-22  Jan Hubicka  <jh@suse.cz>
1203
1204         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1205
1206 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
1207
1208         PR c/48685
1209         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1210         to VOID_TYPE even around MODIFY_EXPR.
1211
1212 2011-04-22  Mike Stump  <mikestump@comcast.net>
1213
1214         * gensupport.c (read_md_rtx): Fix typo in comment.
1215         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1216         comment.
1217
1218 2011-04-22  Jan Hubicka  <jh@suse.cz>
1219
1220         * gengtype.c (open_base_files): Add ipa-inline.h include.
1221         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1222         ipa-prop.c; update all uses.
1223         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
1224         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1225         merge summary of inlined function into former caller.
1226         * ipa-inline.c (max_benefit): Remove.
1227         (edge_badness): Compensate for removal of benefits.
1228         (update_caller_keys): Use
1229         reset_node_growth_cache/reset_edge_growth_cache.
1230         (update_callee_keys): Likewise.
1231         (update_all_callee_keys): Likewise.
1232         (inline_small_functions): Do not collect max_benefit; do not reset
1233         estimated_growth; call free_growth_caches and initialize_growth_caches.
1234         * ipa-inline.h (struct condition, type clause_t, struct predicate,
1235         struct size_time_entry): New structures.
1236         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
1237         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1238         and estimated_growth.
1239         (edge_growth_cache_entry): New structure.
1240         (node_growth_cache, edge_growth_cache): New global vars.
1241         (estimate_growth): Turn into inline.
1242         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1243         initialize_growth_caches, free_growth_caches): Declare.
1244         (estimate_edge_growth): Rewrite.
1245         (estimate_edge_time): Implement as inline cache lookup.
1246         (reset_node_growth_cache, reset_edge_growth_cache): New inline
1247         functions.
1248         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1249         (NUM_CONDITIONS): New constant.
1250         (predicate_conditions): New enum.
1251         (IS_NOT_CONSTANT): New constant.
1252         (edge_removal_hook_holder): New var.
1253         (node_growth_cache, edge_growth_cache): New global vars.
1254         (true_predicate, single_cond_predicate, false_predicate,
1255         not_inlined_predicate, add_condition, add_clause, and_predicates,
1256         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1257         dump_clause, dump_predicate, account_size_time,
1258         evaulate_conditions_for_edge): New functions.
1259         (inline_summary_alloc): Move to heap.
1260         (inline_node_removal_hook): Clear condition and entry vectors.
1261         (inline_edge_removal_hook): New function.
1262         (initialize_growth_caches, free_growth_caches): New function.
1263         (dump_inline_summary): Update.
1264         (edge_execution_predicate): New function.
1265         (will_be_nonconstant_predicate): New function.
1266         (estimate_function_body_sizes): Compute BB and constantness predicates.
1267         (compute_inline_parameters): Do not clear estimated_growth.
1268         (estimate_edge_size_and_time): New function.
1269         (estimate_calls_size_and_time): New function.
1270         (estimate_callee_size_and_time): New function.
1271         (remap_predicate): New function.
1272         (inline_merge_summary): New function.
1273         (do_estimate_edge_time): New function based on...
1274         (estimate_edge_time): ... this one.
1275         (do_estimate_edge_growth): New function.
1276         (do_estimate_growth): New function based on....
1277         (estimate_growth): ... this one.
1278         (inline_analyze_function): Analyze after deciding on jump functions.
1279         (inline_read_section): New function.
1280         (inline_read_summary): Use it.
1281         (inline_write_summary): Write all the new data.
1282         * ipa-prop.c (ipa_get_param_decl_index): Export.
1283         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
1284         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1285         Declare.
1286         (ipa_get_lattice): Move here from ipa-cp.c
1287         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1288         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1289         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1290         cgraph_edge_inlinable_p): Remove.
1291         * cgraphunit.c: Include ipainline.h
1292         (cgraph_process_new_functions): Update call of
1293         compute_inline_parameters.
1294
1295 2011-04-22  Richard Guenther  <rguenther@suse.de>
1296
1297         * tree.c (build_int_cst): Properly create canonicalized integer
1298         constants.
1299         (build_int_cst_type): Remove scary comments.
1300
1301 2011-04-22  Xinliang David Li  <davidxl@google.com>
1302
1303         * toplev.c (process_options): Enable -Werror=coverage-mismatch
1304         by default when -Wno-error is not specified.
1305         * opts-global.c (decode_options): Remove call to
1306         control_warning_options.
1307
1308 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
1309
1310         PR tree-optimization/48717
1311         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1312         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1313
1314 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
1315
1316         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
1317         definition where used.
1318
1319 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
1320
1321         PR c/48716
1322         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1323         TREE_STATIC variables declared inside of some OpenMP construct.
1324
1325 2011-04-22  Martin Jambor  <mjambor@suse.cz>
1326
1327         PR middle-end/48585
1328         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
1329
1330 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
1331
1332         PR c/36750
1333         * c-typeck.c (pop_init_level): Do not warn about initializing
1334         with ` = {0}'.
1335
1336 2011-04-22  Alan Modra  <amodra@gmail.com>
1337
1338         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
1339         when returning call_cookie.
1340         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
1341         pointers, to functions with no more vector args than the current
1342         function, and some non-local calls for ABI_V4.
1343         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
1344         sibcall_nonlocal_aix64): Combine to ..
1345         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
1346         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
1347         (sibcall_value_nonlocal_aix<mode>): ..likewise.
1348         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
1349         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
1350         operand.
1351         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
1352         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
1353         sibcall_value_symbolic_64): Delete.
1354
1355 2011-04-21  Xinliang David Li  <davidxl@google.com>
1356
1357         * cgraph.h: Remove pid.
1358         * cgraph.c: Remove pid.
1359         * value-prof.c (init_node_map): New function.
1360         (del_node_map): New function.
1361         (find_func_by_funcdef_no): New function.
1362         (gimple_ic_transform): Call new function.
1363         * cgraphunit.c (cgraph_finalize_function): Remove pid.
1364         * function.c (get_last_funcdef_no): New function.
1365         * function.h (get_last_funcdef_no): New function.
1366         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1367         to libgcov function.
1368         (tree-profiling): Call node map init and delete function.
1369
1370 2011-04-21  Ian Lance Taylor  <iant@google.com>
1371
1372         * godump.c (go_format_type): Use exported Go name for anonymous
1373         field name.
1374
1375 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
1376
1377         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
1378         Call builtin_function_type_list instead of builtin_function_type.
1379         (UNARY, BINARY, TRINARY, QUAD): Likewise.
1380
1381 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
1382
1383         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
1384         build_function_type_list instead of build_function_type.
1385         Delete variable `endlink'.
1386
1387 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
1388
1389         * config/s390/s390.c (s390_init_builtins): Call
1390         build_function_type_list instead of build_function_type.
1391
1392 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
1393
1394         * config/ia64/ia64.c (ia64_init_builtins): Call
1395         build_function_type_list instead of builtin_function_type.
1396
1397 2011-04-21  Easwaran Raman  <eraman@google.com>
1398
1399         * cfgexpand.c (stack_var): Remove OFFSET...
1400         (add_stack_var): ...and its reference here...
1401         (expand_stack_vars): ...and here.
1402         (stack_var_cmp): Sort by descending order of size.
1403         (partition_stack_vars): Change heuristic.
1404         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
1405         (dump_stack_var_partition): Add newline after each partition.
1406
1407 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
1408             Jeff Law  <law@redhat.com>
1409
1410         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
1411         * gengtype.c (matching_file_name_substitute): Likewise.
1412
1413 2011-04-21  Richard Guenther  <rguenther@suse.de>
1414
1415         PR lto/48703
1416         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
1417
1418 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
1419
1420         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
1421
1422 2011-04-21  Richard Guenther  <rguenther@suse.de>
1423
1424         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
1425         file name.
1426
1427 2011-04-21  Richard Guenther  <rguenther@suse.de>
1428
1429         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1430         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
1431         Use DECL_P, not SSA_VAR_P.
1432         (ptr_derefs_may_alias_p): Likewise.
1433         (ptr_deref_may_alias_ref_p_1): Likewise.
1434         (decl_refs_may_alias_p): Likewise.
1435         (refs_may_alias_p_1): Likewise.
1436         (ref_maybe_used_by_call_p_1): Likewise.
1437         (call_may_clobber_ref_p_1): Likewise.
1438         (indirect_ref_may_alias_decl_p): Assume indirect refrences
1439         are either MEM_REF or TARGET_MEM_REF.
1440         (indirect_refs_may_alias_p): Likewise.
1441         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
1442         for MEM_EXPR of indirect calls.
1443
1444 2011-04-21  Tristan Gingold  <gingold@adacore.com>
1445
1446         * vmsdbgout.c (write_srccorr): Compute file length from the string.
1447         (dst_file_info_struct): Remove flen field.
1448         (lookup_filename): Remove code that set flen field.
1449
1450 2011-04-21  Tristan Gingold  <gingold@adacore.com>
1451
1452         * config/ia64/ia64.c (ia64_start_function): Add a guard.
1453
1454 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
1455
1456         PR target/48708
1457         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
1458         vec_extract and vec_concat for non-SSE4_1 targets.
1459
1460 2011-04-21  Richard Guenther  <rguenther@suse.de>
1461
1462         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
1463         return statements.
1464
1465 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
1466
1467         * config/i386/cygming.h (union tree_node, TREE): Don't define or
1468         undefine.
1469         (FILE): Don't undefine.
1470
1471 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
1472
1473         * config/alpha/alpha.c (struct machine_function): Use rtx, not
1474         struct rtx_def *.
1475         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
1476         struct rtx_def *.
1477         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
1478         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
1479         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
1480         rtx_def *.
1481         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
1482         definitions where used.
1483         * config/microblaze/microblaze.h (struct microblaze_args): Use
1484         rtx, not struct rtx_def *.
1485         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
1486         rtx_def *.
1487         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
1488         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
1489         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
1490         not struct rtx_def *.
1491         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
1492         struct rtx_def *.
1493         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
1494         rtx_def *.
1495         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
1496
1497 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
1498
1499         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
1500         operand_equal_p to compare DR_BASE_ADDRESSes.
1501         (vect_check_interleaving): Likewise.
1502
1503 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
1504
1505         PR target/46329
1506         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
1507         for all Neon struct constants.
1508
1509 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
1510
1511         * target.def (legitimate_constant_p): New hook.
1512         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
1513         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
1514         * doc/tm.texi: Regenerate.
1515         * hooks.h (hook_bool_mode_rtx_true): Declare.
1516         * hooks.c (hook_bool_mode_rtx_true): Define.
1517         * system.h (LEGITIMATE_CONSTANT_P): Poison.
1518         * calls.c (precompute_register_parameters): Replace uses of
1519         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
1520         (emit_library_call_value_1): Likewise.
1521         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
1522         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
1523         * ira-costs.c (scan_one_insn): Likewise.
1524         * recog.c (general_operand, immediate_operand): Likewise.
1525         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
1526         * reload1.c (init_eliminable_invariants): Likewise.
1527
1528         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
1529         mode argument.
1530         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
1531         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
1532         argument.
1533         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1534         * config/alpha/predicates.md (input_operand): Update call to
1535         alpha_legitimate_constant_p.
1536
1537         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
1538         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
1539         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
1540         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1541         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
1542         (arm_legitimate_constant_p): New functions.
1543         (arm_cannot_force_const_mem): Make static.
1544
1545         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
1546
1547         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
1548         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
1549         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
1550         instead of bfin_legitimate_constant_p.
1551         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
1552         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1553
1554         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
1555
1556         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
1557
1558         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
1559         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
1560         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1561         (frv_legitimate_constant_p): Make static.  Add a mode argument.
1562
1563         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
1564         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
1565         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
1566
1567         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
1568         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
1569         * config/i386/i386.c (legitimate_constant_p): Rename to...
1570         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
1571         argument.
1572         (ix86_cannot_force_const_mem): Update accordingly.
1573         (ix86_legitimate_address_p): Likewise.
1574         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1575         * config/i386/i386.md: Update commentary.
1576
1577         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
1578         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
1579         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1580         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
1581
1582         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
1583
1584         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
1585         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
1586         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1587         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
1588
1589         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
1590         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
1591         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
1592
1593         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
1594         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1595         (m32r_legitimate_constant_p): New function.
1596
1597         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
1598         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
1599         LEGITIMATE_CONSTANT_P.
1600         (LEGITIMATE_CONSTANT_P): Delete.
1601         * config/m68k/m68k.c (m68k_expand_prologue): Call
1602         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
1603         (m68k_legitimate_constant_p): New function.
1604         * config/m68k/m68k.md: Update comments.
1605
1606         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
1607         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1608         (mcore_legitimate_constant_p): New function.
1609
1610         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
1611         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
1612         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
1613         Add a mode argument.
1614         (mep_legitimate_address): Update accordingly.
1615         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1616
1617         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
1618         Delete.
1619         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
1620         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
1621         static.  Check OP's mode for VOIDmode.
1622         (microblaze_legitimate_constant_p): New function.
1623         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1624
1625         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
1626         * config/mips/mips.c (mips_legitimate_constant_p): New function.
1627         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
1628         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1629         * config/mips/predicates.md: Update comments.
1630
1631         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
1632         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
1633         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1634         (mmix_legitimate_constant_p): Make static, return a bool, and take
1635         a mode argument.
1636         (mmix_print_operand_address): Update accordingly.
1637
1638         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
1639         Delete.
1640         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
1641         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
1642         static.  Add a mode argument.
1643         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1644
1645         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
1646
1647         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
1648         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1649         (pa_legitimate_constant_p): New function.
1650
1651         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
1652
1653         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
1654         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1655         (pdp11_legitimate_constant_p): New function.
1656
1657         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
1658         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1659         (rs6000_legitimate_constant_p): New function.
1660
1661         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
1662         (rx_legitimate_constant_p): ...this.
1663         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
1664         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
1665         (rx_legitimate_constant_p): ...this.
1666         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1667         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
1668
1669         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
1670         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
1671         * config/s390/s390.c (legitimate_constant_p): Rename to...
1672         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
1673         and add a mode argument.
1674         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1675
1676         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
1677
1678         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
1679         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1680         (sh_legitimate_constant_p): New function.
1681
1682         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
1683         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
1684         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1685         (legitimate_constant_p): Rename to...
1686         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
1687         argument.
1688         (constant_address_p): Update accordingly.
1689
1690         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
1691         argument and return a bool.
1692         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
1693         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1694         (spu_legitimate_constant_p): Add a mode argument and return a bool.
1695         (spu_rtx_costs): Update accordingly.
1696         * config/spu/predicates.md (vec_imm_operand): Likewise.
1697
1698         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
1699
1700         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
1701         * config/v850/v850.c (v850_legitimate_constant_p): New function.
1702         (TARGET_LEGITIMATE_CONSTANT_P): Define.
1703
1704         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
1705         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
1706         * config/vax/vax.c (legitimate_constant_p): Likewise.
1707
1708         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
1709         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1710         (xtensa_legitimate_constant_p): New function.
1711
1712 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
1713
1714         * target.def (cannot_force_const_mem): Add a mode argument.
1715         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
1716         * doc/tm.texi: Regenerate.
1717         * hooks.h (hook_bool_mode_rtx_false): Declare.
1718         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
1719         (hook_bool_mode_const_rtx_true): Likewise.
1720         (hook_bool_mode_rtx_false): New function.
1721         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
1722         to be non-VOID.  Update call to cannot_force_const_mem.
1723         (find_reloads): Update accordingly.
1724         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
1725         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
1726         argument.
1727         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
1728         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
1729         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
1730         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
1731         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
1732         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
1733         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
1734         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1735         (m68k_cannot_force_const_mem): ...this new function.
1736         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
1737         argument.
1738         (mips_const_insns, mips_legitimize_const_move): Update calls.
1739         (mips_secondary_reload_class): Likewise.
1740         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1741         (pa_cannot_force_const_mem): ...this new function.
1742         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
1743         (rs6000_cannot_force_const_mem): ...this new function.
1744         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
1745         argument.
1746         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
1747         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
1748         to...
1749         (xtensa_cannot_force_const_mem): ...this new function.
1750
1751 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1752
1753         * config/mips/mips.c (mips16_build_function_stub): Call
1754         build_function_type_list instead of build_function_type.
1755         (mips16_build_call_stub): Likewise.
1756
1757 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1758
1759         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
1760         instead of build_function_type.
1761
1762 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
1763
1764         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
1765         instead of build_function_type.
1766
1767 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
1768
1769         PR target/48678
1770         * config/i386/i386.md (insv): Change operand 0 constraint to
1771         "register_operand".  Change operand 1 and 2 constraint to
1772         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
1773         * config/i386/sse.md (sse4_1_pinsrb): Export.
1774         (sse2_pinsrw): Ditto.
1775         (sse4_1_pinsrd): Ditto.
1776         (sse4_1_pinsrq): Ditto.
1777         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
1778         * config/i386/i386.c (ix86_expand_pinsr): New.
1779
1780 2011-04-20  Easwaran Raman  <eraman@google.com>
1781
1782         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
1783         containing union type only with -fstrict-aliasing.
1784
1785 2011-04-20  Jim Meyering  <meyering@redhat.com>
1786
1787         Remove useless if-before-free tests.
1788         * calls.c (expand_call, save_area): Likewise.
1789         * cfgcleanup.c (try_forward_edges): Likewise.
1790         * collect2.c (collect_execute): Likewise.
1791         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
1792         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
1793         * coverage.c (coverage_checksum_string): Likewise.
1794         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
1795         * cselib.c (cselib_init): Likewise.
1796         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
1797         (df_set_clean_cfg): Likewise.
1798         * function.c (free_after_compilation): Likewise.
1799         * gcc.c (do_spec_1, main): Likewise.
1800         * gcov.c (create_file_names): Likewise.
1801         * gensupport.c (identify_predicable_attribute): Likewise.
1802         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
1803         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
1804         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
1805         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
1806         * ipa-pure-const.c (local_pure_const): Likewise.
1807         * ipa-reference.c (propagate): Likewise.
1808         * ira-costs.c (free_ira_costs): Likewise.
1809         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
1810         * matrix-reorg.c (mat_free): Likewise.
1811         * prefix.c (get_key_value): Likewise.
1812         * profile.c (compute_value_histograms): Likewise.
1813         * reload1.c (free_reg_equiv): Likewise.
1814         * sched-deps.c (free_deps): Likewise.
1815         * sel-sched-ir.c (fence_clear): Likewise.
1816         * sese.c (set_rename, if_region_set_false_region): Likewise.
1817         * tree-data-ref.c (free_rdg): Likewise.
1818         * tree-eh.c (lower_try_finally): Likewise.
1819         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
1820         * tree-ssa-live.c (delete_var_map): Likewise.
1821         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
1822         * tree-ssa-pre.c (phi_trans_add): Likewise.
1823
1824 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
1825
1826         PR tree-optimization/48611
1827         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
1828         beyond ERT_MUST_NOT_THROW region.
1829
1830 2011-04-20  Catherine Moore  <clm@codesourcery.com>
1831
1832         * config/mips/mips.opt (mfix-24k): New.
1833         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
1834         * config/mips/mips.md (length): Increase by 4 for stores if
1835         fixing 24K errata.
1836         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
1837         all noreorder if fixing 24K errata.
1838         * doc/invoke.texi: Document mfix-24k.
1839
1840 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
1841
1842         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
1843         quad-word modes, reduce to 9-bit index range when above 1016 limit.
1844
1845 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
1846
1847         * config/arm/arm.c (arm_gen_constant): Move movw support ....
1848         (const_ok_for_op): ... to here.
1849
1850 2011-04-20  Kai Tietz  <ktietz@redhat.com>
1851
1852         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
1853         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
1854
1855 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
1856
1857         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
1858
1859 2011-04-20  Richard Guenther  <rguenther@suse.de>
1860
1861         PR tree-optimization/47892
1862         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
1863         are if-convertible.
1864
1865 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
1866
1867         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
1868
1869 2011-04-20  Tristan Gingold  <gingold@adacore.com>
1870
1871         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
1872
1873 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
1874
1875         PR target/18145
1876
1877         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
1878         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1879         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1880         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1881         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
1882
1883         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
1884         New prototype.
1885
1886         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
1887         (avr_asm_named_section, avr_asm_output_aligned_common,
1888         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
1889         New functions to update...
1890         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
1891         (avr_asm_init_sections): Overwrite section callbacks for
1892         data_section, bss_section.
1893         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
1894         from here to...
1895         (avr_file_end): ...here.
1896
1897 2011-04-20  Richard Guenther  <rguenther@suse.de>
1898
1899         PR middle-end/48695
1900         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
1901         objects and types here.  Adjust for their offset before comparing.
1902
1903 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1904
1905         * tree-vect-stmts.c (vectorizable_store): Only chain one related
1906         statement per copy.
1907
1908 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1909
1910         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
1911         (GIMPLE_H): Include $(INTERNAL_FN_H).
1912         (OBJS-common): Add internal-fn.o.
1913         (internal-fn.o): New rule.
1914         * internal-fn.def: New file.
1915         * internal-fn.h: Likewise.
1916         * internal-fn.c: Likewise.
1917         * gimple.h: Include internal-fn.h.
1918         (GF_CALL_INTERNAL): New gf_mask.
1919         (gimple_statement_call): Put fntype into a union with a new
1920         internal_fn field.
1921         (gimple_build_call_internal): Declare.
1922         (gimple_build_call_internal_vec): Likewise.
1923         (gimple_call_same_target_p): Likewise.
1924         (gimple_call_internal_p): New function.
1925         (gimple_call_internal_fn): Likewise.
1926         (gimple_call_fntype): Return null for internal calls.
1927         (gimple_call_set_fntype): Assert that the function is not internal.
1928         (gimple_call_set_fn): Likewise.
1929         (gimple_call_set_fndecl): Likewise.
1930         (gimple_call_set_internal_fn): New function.
1931         (gimple_call_addr_fndecl): Handle null functions.
1932         (gimple_call_return_type): Likewise null types.
1933         * gimple.c (gimple_build_call_internal_1): New function.
1934         (gimple_build_call_internal): Likewise.
1935         (gimple_build_call_internal_vec): Likewise.
1936         (gimple_call_same_target_p): Likewise.
1937         (gimple_call_flags): Handle calls to internal functions.
1938         (gimple_call_fnspec): New function.
1939         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
1940         (gimple_has_side_effects): Handle null functions.
1941         (gimple_rhs_has_side_effects): Likewise.
1942         (gimple_call_copy_skip_args): Handle calls to internal functions.
1943         * cfgexpand.c (expand_call_stmt): Likewise.
1944         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
1945         * gimple-fold.c (gimple_fold_call): Handle null functions.
1946         (gimple_fold_stmt_to_constant_1): Don't fold
1947         calls to internal functions.
1948         * gimple-low.c (gimple_check_call_args): Handle calls to internal
1949         functions.
1950         * gimple-pretty-print.c (dump_gimple_call): Likewise.
1951         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
1952         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
1953         (do_warn_unused_result): Likewise.
1954         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
1955         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
1956         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
1957         the target of a call.
1958         (initialize_hash_element): Update accordingly.
1959         (hashable_expr_equal_p): Use gimple_call_same_target_p.
1960         (iterative_hash_hashable_expr): Handle calls to internal functions.
1961         (print_expr_hash_elt): Likewise.
1962         * tree-ssa-pre.c (can_value_number_call): Likewise.
1963         (eliminate): Handle null functions.
1964         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
1965         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
1966         (find_func_aliases): Likewise.
1967         * value-prof.c (gimple_ic_transform): Likewise.
1968         (gimple_indirect_call_to_profile): Likewise.
1969         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1970         * lto-streamer-out.c (output_gimple_stmt): Likewise.
1971
1972 2011-04-19  Jan Hubicka  <jh@suse.cz>
1973
1974         * ipa-inline-transform.c (save_inline_function_body): Add comments.
1975         * ipa-inline.c (inline_small_functions): Compute summaries first,
1976         populate heap later.
1977
1978 2011-04-19  Jan Hubicka  <jh@suse.cz>
1979
1980         * cgraph.h (save_inline_function_body): Remove.
1981         * ipa-inline-transform.c: New file, broke out of...
1982         * ipa-inline.c: ... this one; Update toplevel comment.
1983         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
1984         make global.
1985         (update_noncloned_frequencies): Move to ipa-inline-transform.c
1986         (cgraph_mark_inline_edge): Rename to inline_call; move to
1987         ipa-inline-transform.c.
1988         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
1989         move to ipa-inline-transform.c
1990         (recursive_inlining, inline_small_functions, flatten_function,
1991         ipa_inline, inline_always_inline_functions,
1992         early_inline_small_functions): Update.
1993         (inline_transform): Move to ipa-inline-transform.c.
1994         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
1995         Declare.
1996         * Makefile.in (ipa-inline-transform.o): New file.
1997         * cgraphunit.c (save_inline_function_body): Move to
1998         ipa-inline-transform.c
1999
2000 2011-04-19  DJ Delorie  <dj@redhat.com>
2001
2002         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2003         registers if we already know there aren't any.
2004         (m32c_emit_epilogue): Don't emit a barrier here.
2005         (m32c_emit_eh_epilogue): Likewise.
2006         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2007         operands at expand time.
2008         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2009         int" wchar type.
2010         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2011         duplicates.  Provide aliases instead.
2012         * config/m32c/prologue.md (eh_return): Emit a barrier here.
2013         (eh_epilogue): Add a "(return)" here as a hint to other parts of
2014         the compiler.
2015
2016 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
2017
2018         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2019         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2020         (general_or_i64_p, sparc_register_move_cost): New function.
2021
2022 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2023
2024         * doc/install.texi (Configuration, --enable-threads): Remove mach.
2025         Add lynx, mipssde.  Sort table.
2026
2027 2011-04-19  Xinliang David Li  <davidxl@google.com>
2028
2029         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2030         not negative.
2031
2032 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR target/48678
2035         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2036         is a SUBREG with non-MODE_INT mode inside of it.
2037
2038 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2039
2040         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2041         also according to actual contants.
2042         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2043         (gimple_fold_call): Use it.
2044         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2045
2046 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2047
2048         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2049         non-pointer assignments.
2050
2051 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2052
2053         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2054         account anc_offset and otr_type from the indirect edge info.
2055         * ipa-prop.c (get_ancestor_addr_info): New function.
2056         (compute_complex_ancestor_jump_func): Assignment analysis moved to
2057         get_ancestor_addr_info, call it.
2058         (ipa_note_param_call): Do not initialize information about polymorphic
2059         calls, return the indirect call graph edge.  Remove the last
2060         parameter, adjust all callers.
2061         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2062         parameters.  Initialize polymorphic information in the indirect edge.
2063
2064 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2065
2066         PR lto/48148
2067         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2068         the types if they have different enumeration identifiers.
2069
2070 2011-04-19  Jan Hubicka  <jh@suse.cz>
2071
2072         * cgraph.h (cgraph_optimize_for_size_p): Declare.
2073         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2074         * predict.c (cgraph_optimize_for_size_p): Break out from ...
2075         (optimize_function_for_size_p) ... here.
2076
2077 2011-04-19  Richard Guenther  <rguenther@suse.de>
2078
2079         PR lto/48207
2080         * tree.c (free_lang_data): Do not reset the decl-assembler-name
2081         langhook.
2082
2083 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2084
2085         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2086         if DECL_NO_INLINE_WARNING_P is set on the function.
2087
2088 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
2089
2090         PR fortran/47976
2091         * reload1.c (inc_for_reload): Return void. All callers changed.
2092         (emit_input_reload_insns): Don't try to delete previous output
2093         reloads to a register, or record spill_reg_store for autoincs.
2094
2095 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
2096
2097         * gengtype.h: Updated copyright year.
2098         (struct input_file_st): Add inpisplugin field.
2099         (type_fileloc): New function.
2100         * gengtype.c
2101         (write_typed_struct_alloc_def): Add gcc_assert.
2102         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2103         (write_typed_alloc_defns): Don't output for plugin files.
2104         (input_file_by_name): Clear inpisplugin field.
2105         (main): Set inpisplugin field for plugin files.
2106
2107 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2108
2109         * gengtype-state.c (string_eq): New.
2110         (read_state): Use string_eq instead of strcmp when creating the
2111         state_ident_tab.
2112
2113 2011-04-19  Wei Guozhi  <carrot@google.com>
2114
2115         PR target/47855
2116         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2117         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2118         linkage.
2119         * config/arm/constraints.md (Uu): New constraint.
2120         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2121
2122 2011-04-19  Tristan Gingold  <gingold@adacore.com>
2123
2124         * config.gcc (-*-*-*vms): Added.
2125         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2126         definitions moved.
2127         * config/vms/vms-ld.c: New file.
2128         * config/vms/vms-ar.c: New file.
2129         * config/vms/t-vmsnative: New file.
2130
2131 2011-04-18  Xinliang David Li  <davidxl@google.com>
2132
2133         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2134
2135 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
2136
2137         PR middle-end/48661
2138         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2139         if TREE_TYPE (v) is non-NULL.
2140
2141         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2142         gimple_get_virt_mehtod_for_binfo.
2143         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2144         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2145         callers.
2146         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2147
2148 2011-04-18  Michael Matz  <matz@suse.de>
2149             Steve Ellcey  <sje@cup.hp.com>
2150
2151         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2152         use its mode as source mode if it isn't VOIDmode.
2153
2154 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
2155
2156         * doc/passes.texi: Fill crossref nodes.
2157
2158 2011-04-18  Jim Meyering  <meyering@redhat.com>
2159
2160         Fix doubled-word typos in comments and strings
2161         * config/alpha/vms-unwind.h: s/for for/for/
2162         * config/arm/unwind-arm.h: Likewise.
2163         * config/microblaze/microblaze.c: Likewise.
2164         * config/sh/constraints.md: s/in in/in/
2165         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2166
2167 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
2168
2169         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2170         (AVX_FLOAT_MODE_P): Ditto.
2171         (AVX128_VEC_FLOAT_MODE_P): Ditto.
2172         (AVX256_VEC_FLOAT_MODE_P): Ditto.
2173         (AVX_VEC_FLOAT_MODE_P): Ditto.
2174         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2175         (UNSPEC_MASKSTORE): Ditto.
2176         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2177         Merge from <sse>_movmsk<ssemodesuffix> and
2178         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
2179         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
2180         iterator.
2181         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2182         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2183         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2184
2185 2011-04-18  Jan Hubicka  <jh@suse.cz>
2186
2187         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2188
2189         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2190         (want_inline_function_called_once_p): Break out the logic from
2191         ipa_inline.
2192         (edge_badness): Ensure that profile is not misupdated.
2193         (lookup_recursive_calls): Prioritize by call frequencies.
2194         (inline_small_functions): Move program size estimates here;
2195         actually process whole queue even when unit growth has been
2196         met. (to properly compute inline_failed reasons and for the
2197         case unit size decrease.) Revisit comments on recursive inlining.
2198         (ipa_inline): Remove unit summary code; first inline hot calls
2199         of functions called once, cold calls next.
2200         (order, nnodes): Remove unused variables.
2201         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2202         (GTFILES): Remove ipa-inline.c
2203         * sel-sched.c (fill_insns): Silence uninitialized var warning.
2204
2205 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2206
2207         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2208
2209 2011-04-18  Jie Zhang  <jie@codesourcery.com>
2210             Richard Earnshaw  <rearnsha@arm.com>
2211
2212         * arm.c (neon_builtin_type_bits): Remove.
2213         (typedef enum neon_builtin_mode): New.
2214         (T_MAX): Don't define.
2215         (typedef enum neon_builtin_datum): Remove bits, codes[],
2216         num_vars and base_fcode.  Add mode, code and fcode.
2217         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2218         VAR10): Change accordingly.
2219         (neon_builtin_data[]): Change accordingly
2220         (arm_init_neon_builtins): Change accordingly.
2221         (neon_builtin_compare): Remove.
2222         (locate_neon_builtin_icode): Remove.
2223         (arm_expand_neon_builtin): Change accordingly.
2224
2225         * arm.h (enum arm_builtins): Move to ...
2226         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2227
2228         * arm.c (arm_builtin_decl): Declare.
2229         (TARGET_BUILTIN_DECL): Define.
2230         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2231         (arm_builtin_decls[]): New.
2232         (arm_init_neon_builtins): Store builtin declarations in
2233         arm_builtin_decls[].
2234         (arm_init_tls_builtins): Likewise.
2235         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
2236         (arm_builtin_decl): New.
2237
2238 2011-04-18  Richard Guenther  <rguenther@suse.de>
2239
2240         * tree.c (upper_bound_in_type): Build properly canonicalized
2241         INTEGER_CSTs.
2242         (lower_bound_in_type): Likewise.
2243
2244 2011-04-18  Richard Guenther  <rguenther@suse.de>
2245
2246         * gimple.h (gimple_call_addr_fndecl): New function.
2247         (gimple_call_fndecl): Use it.
2248         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2249         for direct calls.
2250         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2251         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2252
2253 2011-04-18  Richard Guenther  <rguenther@suse.de>
2254
2255         PR middle-end/48650
2256         * tree.c (build_string): STRING_CST is now derived from tree_typed.
2257
2258 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2259
2260         PR lto/48492
2261         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2262         DECL_IN_CONSTANT_POOL without RTL.
2263
2264 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
2265             Ira Rosen  <ira.rosen@linaro.org>
2266
2267         PR target/48252
2268         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2269         to match neon_vzip/vuzp/vtrn_internal.
2270         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2271         outputs explicitly dependent on both inputs.
2272         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2273
2274 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
2275
2276         PR tree-optimization/48616
2277         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2278         whether the shift is by scalar or vector based on whether all SLP
2279         scalar stmts have the same rhs.
2280
2281 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
2282
2283         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2284         memory operands.
2285
2286 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
2287
2288         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2289         registers.
2290
2291 2011-04-17  Jan Hubicka  <jh@suse.cz>
2292
2293         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
2294         * cgrpahunit.c (cgraph_finalize_function): Do not set
2295         finalized_by_frontend.
2296         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2297         finalized_by_frontend.
2298
2299 2011-04-17  Jan Hubicka  <jh@suse.cz>
2300
2301         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2302         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2303         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
2304         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2305         method.
2306         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2307         gimple-fold.c
2308         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2309
2310 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2311
2312         PR lto/48538
2313         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2314         is non-null before accessing it.
2315         (input_cgraph): Remove trailing spaces.
2316
2317 2011-04-17  Revital Eres  <revital.eres@linaro.org>
2318
2319         * params.def (sms-min-sc): New param flag.
2320         * modulo-sched.c (sms_schedule): Use it.
2321         * doc/invoke.texi (sms-min-sc): Document it.
2322
2323 2011-04-17  Jan Hubicka  <jh@suse.cz>
2324
2325         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2326         present, also set gimple_call_set_cannot_inline.
2327         * ipa-inline.c: Update toplevel comment.
2328         (MAX_TIME): Remove.
2329         (cgraph_clone_inlined_nodes): Fix linebreaks.
2330         (cgraph_check_inline_limits): Restructure to ...
2331         (caller_growth_limits): ... this one; be more tolerant
2332         on growth in nested inline chains; add explanatory comment;
2333         fix stack accounting thinko introduced by previous patch.
2334         (cgraph_default_inline_p): Remove.
2335         (report_inline_failed_reason): New function.
2336         (can_inline_edge_p): New function.
2337         (can_early_inline_edge_p): New function.
2338         (leaf_node_p): Move upwards in file.
2339         (want_early_inline_function_p): New function.
2340         (want_inline_small_function_p): New function.
2341         (want_inline_self_recursive_call_p): New function.
2342         (cgraph_edge_badness): Rename to ...
2343         (edge_badness) ... this one; fix linebreaks.
2344         (update_edge_key): Update call of edge_baddness; add
2345         detailed dump about queue updates.
2346         (update_caller_keys): Use can_inline_edge_p and
2347         want_inline_small_function_p.
2348         (cgraph_decide_recursive_inlining): Rename to...
2349         (recursive_inlining): Use can_inline_edge_p and
2350         want_inline_self_recursive_call_p; simplify and remove no longer
2351         valid FIXME.
2352         (cgraph_set_inline_failed): Remove.
2353         (add_new_edges_to_heap): Use can_inline_edge_p and
2354         want_inline_small_function_p.
2355         (cgraph_decide_inlining_of_small_functions): Rename to ...
2356         (inline_small_functions): ... this one; cleanup; use
2357         can/want predicates; cleanup debug ouput; work edges till fibheap
2358         is exhausted and do not stop once unit growth is reached; remove
2359         later loop processing remaining edges.
2360         (cgraph_flatten): Rename to ...
2361         (flatten_function): ... this one; use can_inline_edge_p
2362         and can_early_inline_edge_p predicates.
2363         (cgraph_decide_inlining): Rename to ...
2364         (ipa_inline): ... this one; remove unreachable nodes before
2365         inlining functions called once; simplify the pass.
2366         (cgraph_perform_always_inlining): Rename to ...
2367         (inline_always_inline_functions): ... this one; use
2368         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
2369         (cgraph_decide_inlining_incrementally): Rename to ...
2370         (early_inline_small_functions): ... this one; simplify
2371         using new predicates; cleanup; make dumps prettier.
2372         (cgraph_early_inlining): Rename to ...
2373         (early_inliner): newer inline regular functions into always-inlines;
2374         fix updating of call stmt summaries.
2375         (pass_early_inline): Update for new names.
2376         (inline_transform): Fix formating.
2377         (gate_cgraph_decide_inlining): Rename to ...
2378         (pass_ipa_inline): ... this one.
2379         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
2380         * ipa-inline-analysis.c (dump_inline_summary): Update.
2381         (compute_inline_parameters): Do not compute disregard_inline_limits;
2382         look for mismatching arguments.
2383         (estimate_growth): Fix handlig of non-trivial self recursion.
2384         (inline_read_summary): Do not read info->disregard_inline_limits.
2385         (inline_write_summary): Do not write info->disregard_inline_limits.
2386         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
2387         and move all checks into can_inline_edge_p predicate; re-enable code
2388         comparing optimization levels.
2389         (expand_call_inline): Do not test inline_forbidden_into_p.
2390         * Makefile.in (ipa-inline.o): Update arguments.
2391
2392 2011-04-17  Revital Eres  <revital.eres@linaro.org>
2393
2394         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
2395
2396 2011-04-17  Revital Eres  <revital.eres@linaro.org>
2397
2398         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
2399
2400 2011-04-17  Michael Matz  <matz@suse.de>
2401
2402         PR tree-optimization/48622
2403         PR lto/48645
2404         * ipa-inline-analysis.c (inline_read_summary): Read size/time
2405         in same order as they're written.
2406
2407 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2408
2409         * config/pa/predicates.md: Reorganize and simplify predicates.
2410         Eliminate duplicate code checks.
2411         (arith_operand): Rename to arith14_operand
2412         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
2413         * config/pa/pa.md: Use renamed operands.
2414         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
2415         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
2416         arith11_operand, adddi3_operand, indexed_memory_operand,
2417         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
2418         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
2419         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
2420         move_dest_operand, move_src_operand, prefetch_cc_operand,
2421         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
2422         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
2423         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
2424         div_operand, int5_operand, movb_comparison_operator,
2425         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
2426         arith_double_operand, ireg_operand, lhs_lshift_operand,
2427         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
2428         integer_store_memory_operand): Likewise.
2429         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
2430         (integer_store_memory_operand, read_only_operand,
2431         function_label_operand, borx_reg_operand,
2432         non_hard_reg_operand): Likewise.
2433         (eq_neq_comparison_operator): Delete unused operator.
2434         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
2435         function_label_operand.
2436         (emit_move_sequence): Likewise.
2437
2438 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
2439
2440         * config/i386/sse.md (sseunpackmode): New mode attribute.
2441         (ssepackmode): Ditto.
2442         (vec_pack_trunc_<mode>): Macroize expander from
2443         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
2444         (vec_unpacks_lo_<mode>): Macroize expander from
2445         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2446         (vec_unpacks_hi_<mode>): Macroize expander from
2447         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2448         (vec_unpacku_lo_<mode>): Macroize expander from
2449         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2450         (vec_unpacku_hi_<mode>): Macroize expander from
2451         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2452         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
2453         ix86_expand_sse4_unpack.
2454         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
2455
2456 2011-04-16  Jan Hubicka  <jh@suse.cz>
2457
2458         * cgraphbuild.c: Include ipa-inline.h.
2459         (reset_inline_failed): Use initialize_inline_failed.
2460         * cgraph.c: Include ipa-inline.h.
2461         (cgraph_create_node_1): Do not initialize estimated_growth.
2462         (initialize_inline_failed): More to ipa-inline-analysis.c
2463         (dump_cgraph_node): Do not dump inline flags.
2464         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
2465         and disregard_inline_limits flags.
2466         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
2467         time, size, estimated_growth.
2468         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
2469         Update.
2470         * cgraphunit.c (cgraph_decide_is_function_needed): Use
2471         DECL_DISREGARD_INLINE_LIMITS.
2472         (cgraph_analyze_function): Do not initialize
2473         node->local.disregard_inline_limits.
2474         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2475         inlinable, versionable and disregard_inline_limits.
2476         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
2477         cgraph_check_inline_limits, cgraph_default_inline_p,
2478         cgraph_edge_badness, update_caller_keys, update_callee_keys,
2479         add_new_edges_to_heap): Update.
2480         (cgraph_decide_inlining_of_small_function): Update; set
2481         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
2482         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
2483         cgraph_decide_inlining_incrementally): Update.
2484         * ipa-inline.h (inline_summary): Add inlinable, versionable,
2485         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
2486         time, size and estimated_growth parameters.
2487         (estimate_edge_growth): Update.
2488         (initialize_inline_failed): Declare.
2489         * ipa-split.c: Include ipa-inline.h
2490         (execute_split_functions): Update.
2491         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
2492         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
2493         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
2494         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
2495         estimated_growth to INT_MIN.
2496         (inline_node_duplication_hook): Likewise.
2497         (dump_inline_summary): Dump new fields.
2498         (compute_inline_parameters): Update.
2499         (estimate_edge_time, estimate_time_after_inlining,
2500         estimate_size_after_inlining, estimate_growth, inline_read_summary,
2501         inline_write_summary):
2502         (initialize_inline_failed): Move here from cgraph.c.
2503         * tree-sra.c: Include ipa-inline.h.
2504         (ipa_sra_preliminary_function_checks): Update.
2505         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
2506         ipa-inline.h.
2507
2508 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
2509
2510         * config/i386/sse.md (V16): New mode iterator.
2511         (VI1, VI8): Ditto.
2512         (AVXMODEQI, AVXMODEDI): Remove.
2513         (sse2, sse3): New mode attribute.
2514         (mov<mode>): Use V16 mode iterator.
2515         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
2516         (push<mode>1): Use V16 mode iterator.
2517         (movmisalign<mode>): Ditto.
2518         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2519         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
2520         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2521         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
2522         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
2523         avx_movdqu<avxmodesuffix>.
2524         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
2525         *avx_movdqu<avxmodesuffix>.
2526         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
2527         avx_lddqu<avxmodesuffix>.
2528         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
2529         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
2530         avx_movnt<AVXMODEDI:mode>.
2531         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
2532         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
2533
2534 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2535
2536         PR target/48629
2537         * haifa-sched.c (prune_ready_list, schedule_block): Use
2538         sched_pressure_p rather than flag_sched_pressure.
2539
2540 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
2541
2542         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2543         cgraph_get_node instead of cgraph_get_create_node.
2544
2545 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
2546
2547         * cfgexpand.c (expand_debug_expr): Use
2548         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
2549
2550 2011-04-15  Michael Matz  <matz@suse.de>
2551
2552         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
2553         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
2554         * function.c (gimplify_parameters): Ditto.
2555         * gimplify.c (gimplify_vla_decl): Ditto.
2556
2557         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
2558         (gimple_call_set_alloca_for_var): New inline function.
2559         (gimple_call_alloca_for_var_p): Ditto.
2560         * gimple.c (gimple_build_call_from_tree): Remember
2561         CALL_ALLOCA_FOR_VAR_P state.
2562         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
2563
2564         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
2565         calls if they were for VLA objects.
2566
2567 2011-04-15  Martin Jambor  <mjambor@suse.cz>
2568
2569         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
2570         of ADR_EXPRs.
2571
2572 2011-04-15  Martin Jambor  <mjambor@suse.cz>
2573
2574         PR middle-end/48601
2575         * tree-emutls.c (lower_emutls_function_body): Call
2576         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
2577         result is non-NULL.
2578
2579 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2580
2581         * c-decl.c (detect_field_duplicates): Call
2582         objc_detect_field_duplicates instead of objc_get_interface_ivars.
2583
2584 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
2585
2586         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
2587         * gimple.c (gimple_asm_clobbers_memory_p): Define.
2588         * ipa-pure-const.c (check_stmt): Call it.
2589         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
2590
2591 2011-04-15  Richard Guenther  <rguenther@suse.de>
2592
2593         PR tree-optimization/48290
2594         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
2595         Properly decide inhibiting propagation based on the valueized
2596         operand.  Do loop-closed SSA form preserving here ...
2597         (init_copy_prop): ... not here.
2598
2599 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2600
2601         PR target/48612
2602         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
2603         (*ieee_smax<mode>3): Likewise.
2604
2605 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2606
2607         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
2608         Replace match_operand with match_dup for the third operand in
2609         these expanders.
2610
2611 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2612
2613         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
2614         to track processing of conditionals.  Update all callers.
2615         (try_combine, simplify_if_then_else): Update.
2616
2617 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2618
2619         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
2620         -fsched-pressure.
2621
2622 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
2623
2624         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
2625         instead of match_operand for operand 3.
2626
2627 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
2628
2629         * recog.h (insn_operand_data): Add an "allows_mem" field.
2630         * genoutput.c (output_operand_data): Initialize it.
2631         * optabs.c (maybe_legitimize_operand_same_code): New function.
2632         (maybe_legitimize_operand): Use it when matching the original
2633         op->value.
2634
2635 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2636
2637         * gimplify.c: Fix issues in comments throughout.
2638         (voidify_wrapper_expr): Fix long line.
2639         (build_stack_save_restore): Likewise.
2640         (gimplify_loop_expr): Likewise.
2641         (gimplify_compound_lval): Likewise.
2642         (gimplify_init_ctor_eval): Likewise.
2643         (gimplify_modify_expr_rhs): Likewise.
2644         (omp_notice_threadprivate_variable): Likewise.
2645
2646 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
2647
2648         * cfgexpand.c (expand_call_stmt): Convert the function type to the
2649         original one if this is not a builtin function.
2650
2651 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
2652
2653         PR target/48605
2654         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
2655         offset it as needed based on top 2 bits in operands[3], change
2656         MEM mode to SFmode and mask those 2 bits away from operands[3].
2657
2658 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
2659
2660         * c-parser.c (c_parser_objc_protocol_definition): Updated for
2661         change from objc_declare_protocols() to objc_declare_protocol().
2662
2663 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
2664
2665         * config/i386/sse.md (sse4_1): New mode attribute.
2666         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
2667         avx_blend<ssemodesuffix><avxmodesuffix> and
2668         sse4_1_blend<ssemodesuffix> using VF mode iterator.
2669         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
2670         avx_blendv<ssemodesuffix><avxmodesuffix> and
2671         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
2672         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
2673         avx_dp<ssemodesuffix><avxmodesuffix> and
2674         sse4_1_dp<ssemodesuffix> using VF mode iterator.
2675         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
2676         (sse4_1_packusdw): Merge with *avx_packusdw.
2677         (sse4_1_pblendvb): Merge with *avx_pblendvb.
2678         (sse4_1_pblendw): Merge with *avx_pblendw.
2679         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
2680         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
2681         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
2682         VF mode iterator.
2683         (sse4_1_round<ssescalarmodesuffix>): Merge with
2684         *avx_round<ssescalarmodesuffix>.
2685         (aesenc): Merge with *avx_aesenc.
2686         (aesenclast): Merge with *avx_aesenclast.
2687         (aesdec): Merge with *avx_aesdec.
2688         (aesdeclast): Merge with *avx_aesdeclast.
2689         (pclmulqdq): Merge with *pclmulqdq.
2690         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
2691         New predicate.
2692         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2693
2694 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
2695
2696         PR middle-end/48608
2697         * cfgexpand.c (get_decl_align_unit): Renamed to ...
2698         (align_local_variable): This.  Update DECL_ALIGN.
2699         (add_stack_var): Updated.
2700         (expand_one_stack_var): Likewise.
2701
2702 2011-04-14  Richard Guenther  <rguenther@suse.de>
2703
2704         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
2705         Remove.
2706         (dse_initialize_block_local_data, dse_leave_block,
2707         record_voperand_set, get_stmt_uid): Likewise.
2708         (dse_possible_dead_store_p): Allow any kind of killing stmt.
2709         (dse_optimize_stmt): Remove voperand set handling code.
2710         Simplify and improve to handle any kind of killing stmt.
2711         (dse_record_phi): Remove.
2712         (dse_enter_block): Simplify.
2713         (tree_ssa_dse): Likewise.
2714         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
2715
2716 2011-04-14  Jan Hubicka  <jh@suse.cz>
2717
2718         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
2719         * cgraph.h (struct inline_summary): Move to ipa-inline.h
2720         (cgraph_local_info): Remove inline_summary.
2721         * ipa-cp.c: Include ipa-inline.h.
2722         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
2723         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
2724         accesor.
2725         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
2726         (input_overwrite_node): Do not set inline summary.
2727         (input_node): Do not stream inline summary.
2728         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
2729         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
2730         growth; we do not have inline parameters computed for that anyway.
2731         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
2732         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
2733         (inline_summary_t): New type and VECtor.
2734         (debug_inline_summary, dump_inline_summaries): Declare.
2735         (inline_summary): Use VOCtor.
2736         (estimate_edge_growth): Kill hack computing call stmt size directly.
2737         * lto-section-in.c (lto_section_name): Add inline section.
2738         * ipa-inline-analysis.c: Include lto-streamer.h
2739         (node_removal_hook_holder, node_duplication_hook_holder): New holders
2740         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
2741         (inline_summary_vec): Define.
2742         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
2743         dump_inline_summaries): New functions.
2744         (estimate_function_body_sizes): Properly compute size/time of outgoing
2745         calls.
2746         (compute_inline_parameters): Alloc inline_summary; do not compute
2747         size/time of incomming calls.
2748         (estimate_edge_time): Avoid missing time summary hack.
2749         (inline_read_summary): Read inline summary info.
2750         (inline_write_summary): Write inline summary info.
2751         (inline_free_summary): Free all hooks and inline summary vector.
2752         * lto-streamer.h: Add LTO_section_inline_summary section.
2753         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
2754         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
2755
2756 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2757
2758         * tree-vectorizer.h (vect_strided_store_supported): Add a
2759         HOST_WIDE_INT argument.
2760         (vect_strided_load_supported): Likewise.
2761         (vect_permute_store_chain): Return void.
2762         (vect_transform_strided_load): Likewise.
2763         (vect_permute_load_chain): Delete.
2764         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
2765         count argument.  Check that the count is a power of two.
2766         (vect_strided_load_supported): Likewise.
2767         (vect_permute_store_chain): Return void.  Update after above changes.
2768         Assert that the access is supported.
2769         (vect_permute_load_chain): Likewise.
2770         (vect_transform_strided_load): Return void.
2771         * tree-vect-stmts.c (vectorizable_store): Update calls after
2772         above interface changes.
2773         (vectorizable_load): Likewise.
2774         (vect_analyze_stmt): Don't check for strided powers of two here.
2775
2776 2011-04-14  Richard Guenther  <rguenther@suse.de>
2777
2778         PR tree-optimization/48590
2779         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2780         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2781         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
2782         BUILT_IN_STACK_SAVE.
2783         * tree-ssa-dce.c (propagate_necessity): Handle
2784         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2785
2786 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
2787
2788         * c-parser.c (c_parser_objc_class_declaration): Updated call to
2789         objc_declare_class.
2790
2791 2011-04-14  Richard Guenther  <rguenther@suse.de>
2792
2793         * tree.h (get_object_alignment_1): Declare.
2794         * builtins.c (get_object_alignment_1): Split out worker from ...
2795         (get_object_alignment): ... here.
2796         * fold-const.c (get_pointer_modulus_and_residue): Use
2797         get_object_alignment_1.
2798
2799 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2800
2801         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
2802         type parameter.
2803         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
2804         parameter.  Generalise code to handle arrays as well as vectors.
2805         (vect_setup_realignment): Update accordingly.
2806         * tree-vect-stmts.c (vectorizable_store): Likewise.
2807         (vectorizable_load): Likewise.
2808
2809 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2810
2811         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
2812         within the per-copy loop.
2813
2814 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2815
2816         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
2817         in the dump file.
2818
2819 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
2820
2821         * doc/options.texi (Negative): Explicitly mention that the
2822         Negative chain must be circular.
2823
2824 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
2825
2826         * function.h (block_chainon): Declare.
2827         * function.c (block_chainon): Define.
2828
2829 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
2830             Eric Weddington  <eric.weddington@atmel.com>
2831             Georg-Johann Lay <avr@gjlay.de>
2832
2833         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
2834         New Includes
2835         (avr_init_builtins, avr_expand_builtin,
2836         avr_expand_delay_cycles, avr_expand_unop_builtin,
2837         avr_expand_binop_builtin ): New functions.
2838         (avr_builtin_id): New enum
2839         (struct avr_builtin_description): New struct
2840         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
2841         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2842
2843         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
2844         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
2845         UNSPECV_DELAY_CYCLES): new enumeration values
2846         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
2847         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
2848         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
2849         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
2850         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
2851         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
2852         "fmulsu"): New insns
2853
2854         * config/avr/avr-c.c: fix line endings
2855         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
2856         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
2857         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
2858         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
2859         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
2860
2861         * doc/extend.texi (AVR Built-in Functions): New node
2862         (Target Builtins): Add documentation of AVR
2863         built-in functions.
2864
2865 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
2866
2867         PR target/44643
2868         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
2869         alone. Error if non-const data has attribute progmem.
2870
2871 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2872
2873         * tree.h (struct tree_constructor): Include tree_typed instead of
2874         tree_common.
2875         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
2876         TS_TYPED instead of TS_COMMON.
2877
2878 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
2879
2880         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
2881         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
2882         (sse2_psadbw): Merge with *avx_psadbw.
2883         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
2884         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
2885         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
2886         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
2887         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
2888         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
2889         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
2890         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
2891         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
2892         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
2893         (ssse3_palignrti): Merge with *avx_palignrti.
2894
2895 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2896
2897         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
2898         * tree-ssanames.c (fini_ssanames): VEC_free it.
2899         (make_ssa_name_fn): Update for VECness of free_ssanames.
2900         (release_ssa_name, release_dead_ssa_names): Likewise.
2901         * tree.h (struct tree_ssa_name): Include tree_typed instead of
2902         tree_common.
2903         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
2904         TS_TYPED instead of TS_COMMON.
2905
2906 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2907
2908         * postreload-gcse.c (gcse_after_reload_main): Add calls to
2909         statistics_counter_event.
2910         * tree-ssa-copyrename.c (stats): Define.
2911         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
2912         statistics_counter_event.
2913         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
2914         (bswap_stats, widen_mul_stats): Define.
2915         (insert_reciprocals): Increment rdivs_inserted.
2916         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
2917         rfuncs_inserted.  Add calls to statistics_counter_event.
2918         (execute_cse_sincos_1): Increment inserted.
2919         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
2920         statistics_counter_event.
2921         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
2922         of bswap_stats.  Add calls to statistics_counter_event.
2923         (convert_mult_to_widen): Increment widen_mults_inserted.
2924         (convert_plusminus_to_widen): Increment maccs_inserted.
2925         (convert_mult_to_fma): Increment fmas_inserted.
2926         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
2927         calls to statistics_counter_event.
2928
2929 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2930
2931         PR rtl-optimization/48455
2932         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
2933         `temp_costs->mem_cost'.
2934
2935 2011-04-13  Jan Hubicka  <jh@suse.cz>
2936
2937         * ipa-inline.h: New file.
2938         * ipa-inline-analysis.c: New file. Broken out of ...
2939         * ipa-inline.c: ... this file; update toplevel comment;
2940         include ipa-inline.h
2941         (inline_summary): Move to ipa-inline.h
2942         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
2943         ipa-inline-analysis.c.
2944         (cgraph_estimate_time_after_inlining): Rename to
2945         estiamte_time_after_inlining; move to ipa-inline-analysis.c
2946         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
2947         to estimate_edge_growth.
2948         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
2949         rename to estimate_size_after_inlining.
2950         (cgraph_mark_inline_edge): Update for new naming convention.
2951         (cgraph_check_inline_limits): Likewise.
2952         (cgraph_edge_badness): Likewise.
2953         (cgraph_decide_recursive_inlining): Likewise.
2954         (cgraph_decide_inlining_of_small_functions): Likewise.
2955         (cgraph_decide_inlining_incrementally): Likewise.
2956         (cgraph_estimate_growth): Rename to estimate_growth; move to
2957         ipa-inline-analysis.c.
2958         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
2959         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
2960         (compute_inline_parameters): Likewise.
2961         (compute_inline_parameters_for_current): Likewise.
2962         (pass_inline_parameters): Likewise.
2963         (inline_indirect_intraprocedural_analysis): Likewise.
2964         (analyze_function): Rename to inline_analyze_function; likewise.
2965         (add_new_function): Move to ipa-inline-analysis.c.
2966         (inline_generate_summary): Likewise.
2967         (inline_read_summary): Likewise.
2968         (inline_write_summary): Likewise.
2969         * Makefile.in (ipa-inline-analysis.c): New file.
2970
2971 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2972
2973         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
2974         * configure: Regenerate.
2975
2976 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2977
2978         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
2979         instead of tree_common.
2980         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
2981         Likewise.
2982         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
2983         TS_TYPED rather than TS_COMMON.
2984         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
2985
2986 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
2987
2988         PR target/45263
2989         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
2990         r20 around calls of __tablejump_elpm__
2991
2992 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
2993
2994         PR middle-end/48591
2995         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
2996         NULL.
2997         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
2998
2999 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
3000
3001         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3002         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3003         (cfi_vec): New typedef.
3004         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3005         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3006         (cie_cfi_vec): New static variable.
3007         (cie_cfi_head): Delete.
3008         (add_cfi): Accept a cfi_vec * as first argument. All callers and
3009         declaration changed. Use vector rather than list operations.
3010         (new_cfi): Don't initialize the dw_cfi_next field.
3011         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3012         rather than list operations.
3013         (lookup_cfa): Use vector rather than list operations.
3014         (output_cfis): New argument upto. Accept a cfi_vec rather than
3015         a dw_cfi_ref list head as argument. All callers changed.
3016         Iterate over the vector using upto as a maximum index.
3017         (output_all_cfis): New static function.
3018         (output_fde): Use vector rather than list operations. Use the
3019         new upto argument for output_cfis rather than manipulating a
3020         list.
3021         (dwarf2out_begin_prologue): Change initializations to match
3022         new struct members.
3023         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3024         from the vector length rather than searching for the end of a list.
3025         Use output_all_cfis.
3026         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3027
3028 2011-04-13  Nick Clifton  <nickc@redhat.com>
3029
3030         * config/rx/rx.md (movmemsi): Do not use this pattern when
3031         volatile pointers are involved.
3032
3033 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
3034
3035         * config/i386/sse.md (pinsrbits): Remove.
3036         (sse2_packsswb): Merge with *avx_packsswb.
3037         (sse2_packssdw): Merge with *avx_packssdw.
3038         (sse2_packuswb): Merge with *avx_packuswb.
3039         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3040         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3041         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3042         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3043         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3044         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3045         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3046         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3047         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3048         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3049         (sse2_loadld): Merge with *avx_loadld.
3050         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3051         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3052         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3053         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3054         (vec_concatv2di): Merge with *vec_concatv2di_avx.
3055
3056 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
3057
3058         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3059         calling TREE_CHAIN.
3060         * print-tree.c (print_node): Likewise.
3061         * tree-inline.c (copy_tree_r): Likewise.
3062         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3063         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3064         instead of TS_COMMON.
3065         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3066         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3067         (copy_node_stat): Zero TREE_CHAIN only if necessary.
3068         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3069         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3070         ...and these...
3071         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3072         * tree.h: ...here.
3073         (TREE_CHAIN): Check for a TS_COMMON structure.
3074         (TREE_TYPE): Check for a TS_TYPED structure.
3075
3076 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
3077
3078         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3079         cgraph_get_create_node instead of cgraph_node.
3080
3081 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
3082
3083         * c-parser.c (c_parser_initelt): Updated call to
3084         objc_build_message_expr.
3085         (c_parser_postfix_expression): Likewise.
3086
3087 2011-04-12  Kai Tietz  <ktietz@redhat.com>
3088
3089         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3090         MASK_MS_BITFIELD_LAYOUT bit.
3091
3092 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3093
3094         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3095         assert it is always true.
3096         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3097         moves.
3098
3099 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
3100
3101         * c-parser.c (c_lex_one_token): Rewritten conditional used when
3102         compiling Objective-C to be more efficient.
3103
3104 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
3105
3106         * opts-common.c (decode_cmdline_options_to_array): Remove variable
3107         argv_copied.
3108
3109 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3110
3111         * recog.h, genoutput.c, optabs.c: Revert last patch.
3112
3113 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3114
3115         PR target/48090
3116         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
3117
3118 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3119
3120         * recog.h (insn_operand_data): Add an "allows_mem" field.
3121         * genoutput.c (output_operand_data): Initialize it.
3122         * optabs.c (maybe_legitimize_operand_same_code): New function.
3123         (maybe_legitimize_operand): Use it when matching the original
3124         op->value.
3125
3126 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3127
3128         * genpreds.c (process_define_predicate): Move most processing
3129         to gensupport.c.  Continue to validate the expression.
3130         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3131         (process_define_predicate): Move processing to gensupport.c.
3132         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3133         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3134         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
3135         argument.
3136         (valid_predicate_name_p): New function, split out from old
3137         genpreds.c:process_define_predicate.
3138         (process_define_predicate): New function, combining code from
3139         old genpreds.c and genrecog.c functions.
3140         (process_rtx): Call it for DEFINE_PREDICATE and
3141         DEFINE_SPECIAL_PREDICATE.
3142
3143 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
3144
3145         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3146         size of a '%A' memory reference.
3147         (T_DREG, T_QREG): New neon_builtin_type_bits.
3148         (arm_init_neon_builtins): Assert that the load and store operands
3149         are neon_struct_operands.
3150         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3151         (NEON_ARG_MEMORY): New builtin_arg.
3152         (neon_dereference_pointer): New function.
3153         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3154         Handle NEON_ARG_MEMORY.
3155         (arm_expand_neon_builtin): Update after above interface changes.
3156         Use NEON_ARG_MEMORY for loads and stores.
3157         * config/arm/predicates.md (neon_struct_operand): New predicate.
3158         * config/arm/iterators.md (V_two_elem): Tweak formatting.
3159         (V_three_elem): Use BLKmode for accesses that have no associated mode.
3160         (V_four_elem): Tweak formatting.
3161         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3162         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3163         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3164         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3165         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3166         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3167         (neon_vst4<mode>): Replace pointer operand with a memory operand.
3168         Use %A in the output template.
3169         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3170         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3171         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3172         the width of the memory access.  Remove post-increment.
3173         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3174
3175 2011-04-12  Nick Clifton  <nickc@redhat.com>
3176
3177         * config/v850/v850.c (expand_prologue): Do not use the CALLT
3178         instruction for interrupt handlers if the target is the basic V850
3179         architecture.
3180         (expand_epilogue): Likewise.
3181
3182 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3183
3184         PR rtl-optimization/48549
3185         * combine.c (propagate_for_debug): Also stop after BB_END of
3186         this_basic_block.  Process LAST and just stop processing after it.
3187         (combine_instructions): If last_combined_insn has been deleted,
3188         set last_combined_insn to its PREV_INSN.
3189
3190 2011-04-12  Richard Guenther  <rguenther@suse.de>
3191
3192         PR tree-optimization/46076
3193         * gimple.h (struct gimple_statement_call): Add fntype field.
3194         (gimple_call_fntype): Adjust.
3195         (gimple_call_set_fntype): New function.
3196         * gimple.c (gimple_build_call_1): Set the call function type.
3197         * gimplify.c (gimplify_call_expr): Preserve the function
3198         type the frontend used for the call.
3199         (gimplify_modify_expr): Likewise.
3200         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3201         function type.
3202         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3203         function type.
3204         * tree-ssa.c (useless_type_conversion_p): Function pointer
3205         conversions are useless.
3206
3207 2011-04-12  Martin Jambor  <mjambor@suse.cz>
3208
3209         * cgraph.h (cgraph_node): Remove function declaration.
3210         (cgraph_create_node): Declare.
3211         (cgraph_get_create_node): Likewise.
3212         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3213         Updated all callers.
3214         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3215         the decl does not already exist.  Call cgraph_get_create_node instead
3216         of cgraph_node.
3217         (cgraph_get_create_node): New function.
3218         (cgraph_same_body_alias): Update comment.
3219         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3220         assert it does not return NULL.
3221         (cgraph_update_edges_for_call_stmt): Likewise.
3222         (cgraph_clone_edge): Likewise.
3223         (cgraph_create_virtual_clone): Likewise.
3224         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3225         instead of cgraph_node.
3226         (cgraph_add_new_function): Call cgraph_create_node or
3227         cgraph_get_create_node instead of cgraph_node.
3228         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3229         instead of cgraph_node.
3230         (record_eh_tables): Likewise.
3231         (mark_address): Likewise.
3232         (mark_load): Likewise.
3233         (build_cgraph_edges): Call cgraph_get_create_node instead
3234         of cgraph_node.
3235         (rebuild_cgraph_edges): Likewise.
3236         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3237         instead of cgraph_node.
3238         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3239         cgraph_node.
3240         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3241         cgraph_create_node instead of cgraph_node.
3242         * c-decl.c (finish_function): Call cgraph_get_create_node instead
3243         of cgraph_node.
3244         * lto-cgraph.c (input_node): Likewise.
3245         * lto-streamer-in.c (input_function): Likewise.
3246         * varasm.c (mark_decl_referenced): Likewise.
3247         (assemble_alias): Likewise.
3248
3249 2011-04-12  Martin Jambor  <mjambor@suse.cz>
3250
3251         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3252         instead of cgraph_node and assert it does not return NULL.
3253         * lto-streamer-in.c (lto_read_body): Likewise.
3254         * omp-low.c (new_omp_context): Likewise.
3255         (create_task_copyfn): Likewise.
3256         * tree-emutls.c (lower_emutls_function_body): Likewise.
3257         * matrix-reorg.c (transform_allocation_sites): Likewise.
3258
3259 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
3260
3261         PR c/48552
3262         * c-typeck.c (build_asm_expr): Error out on attempts to use
3263         void type outputs or inputs for constraints that allow reg or
3264         don't allow memory.
3265
3266 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
3267             Richard Earnshaw  <rearnsha@arm.com>
3268
3269         PR target/48250
3270         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3271         to use sign-magnitude offsets. Reject unsupported unaligned
3272         cases. Add detailed description in comments.
3273         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3274         condition from TARGET_32BIT to TARGET_ARM.
3275
3276 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
3277
3278         * tree.h (struct typed_tree): New.
3279         (struct tree_common): Include it instead of tree_base.
3280         (TREE_TYPE): Update for new location of type field.
3281         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3282         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3283         (union tree_node): Add typed field.
3284         * treestruct.def (TS_TYPED): New.
3285         * lto-streamer.c (check_handled_ts_structures): Handle it.
3286         * tree.c (MARK_TS_TYPED): New macro.
3287         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3288
3289 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
3290
3291         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3292         (force_nonfallthru): Do not alter the loop nest if no basic block
3293         was created.
3294
3295 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
3296
3297         * config/i386/sse.md (VI): New mode iterator.
3298         (SSEMODEI): Remove.
3299         (AVX256MODEI): Ditto.
3300         (AVXMODEF4P): Ditto.
3301         (avxvecpsmode): Ditto.
3302         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
3303         (sse2_andnot<mode>3): New expander.
3304         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3305         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
3306         (<any_logic:code><mode>3): Use VI mode iterator.
3307         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3308         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
3309         (*andnottf3): Handle AVX three-operand constraints.
3310         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3311
3312 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3313             Robert Millan  <rmh@gnu.org>
3314
3315         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3316         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3317         GNU_USER_DYNAMIC_LINKER64): Define.
3318         (REG_NAME): Don't undefine.
3319         (MD_UNWIND_SUPPORT): Undefine.
3320         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3321         (REG_NAME): Don't undefine.
3322         (MD_UNWIND_SUPPORT): Undefine.
3323         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
3324
3325 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3326
3327         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3328         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3329
3330 2011-04-11  Xinliang David Li  <davidxl@google.com>
3331
3332         * value-profile.c (check_ic_target): New function.
3333         (gimple_ic_transform): Sanity check indirect call target.
3334         * gimple-low.c (gimple_check_call_args): Interface change.
3335         (gimple_check_call_matching_types): New function.
3336         * tree-inline.c (tree_can_inline_p): Call new function.
3337
3338 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
3339
3340         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
3341         tree-pretty-print.h & realmpfr.h.
3342
3343 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
3344
3345         PR middle-end/48464
3346         * ira.c (setup_pressure_classes): Fix typo in loop condition.
3347         (setup_allocno_and_important_classes): Ditto.
3348
3349 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3350
3351         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
3352         GNU_USER_DYNAMIC_LINKER.
3353         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
3354         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3355         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
3356         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3357         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3358         GNU_USER_TARGET_OS_CPP_BUILTINS.
3359         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
3360         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3361         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3362         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3363         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
3364         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3365         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3366         GNU_USER_TARGET_OS_CPP_BUILTINS.
3367         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3368         GNU_USER_DYNAMIC_LINKER.
3369         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3370         GNU_USER_TARGET_OS_CPP_BUILTINS.
3371         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
3372         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3373         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
3374         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3375         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
3376         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
3377         GNU_USER_DYNAMIC_LINKER64): Remove.
3378         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
3379         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3380         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3381         GNU_USER_DYNAMIC_LINKER.
3382         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3383         GNU_USER_TARGET_OS_CPP_BUILTINS.
3384         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3385         GNU_USER_TARGET_OS_CPP_BUILTINS.
3386         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
3387         to GNU_USER_TARGET_OS_CPP_BUILTINS.
3388         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3389         GNU_USER_TARGET_OS_CPP_BUILTINS.
3390         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
3391         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
3392         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3393         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
3394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3395         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3396         GNU_USER_DYNAMIC_LINKER.
3397         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3398         GNU_USER_TARGET_OS_CPP_BUILTINS.
3399         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
3400         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3401         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3402         GNU_USER_DYNAMIC_LINKER.
3403         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3404         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3405         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
3406         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3407         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3408         GNU_USER_DYNAMIC_LINKER.
3409         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
3410         GNU_USER_DYNAMIC_LINKERN32.
3411         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
3412         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
3413         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
3414         GNU_USER_DYNAMIC_LINKER32.
3415         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
3416         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3417         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3418         GNU_USER_DYNAMIC_LINKER.
3419         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3420         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3421         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
3422         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3423         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3424         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
3425         GNU_USER_DYNAMIC_LINKER32.
3426         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3427         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
3428         GNU_USER_DYNAMIC_LINKER.
3429         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
3430         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3431         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3432         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
3433         GNU_USER_DYNAMIC_LINKER64.
3434         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
3435         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3436         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3437         GNU_USER_DYNAMIC_LINKER.
3438         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
3439         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3440         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3441         GNU_USER_DYNAMIC_LINKER.
3442         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
3443         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3444         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3445         GNU_USER_DYNAMIC_LINKER32.
3446         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3447         GNU_USER_DYNAMIC_LINKER64.
3448         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3449         GNU_USER_DYNAMIC_LINKER64.
3450         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
3451         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3452         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
3453         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3454         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3455
3456 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3457
3458         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
3459         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
3460         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
3461         GNU_USER_DYNAMIC_LINKER.
3462         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3463         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
3464         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
3465         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
3466         GNU_USER_DYNAMIC_LINKER64.
3467         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3468         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
3469         GNU_USER_LINK_EMULATION.
3470         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
3471         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
3472         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
3473         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
3474         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
3475         CPP_SPEC, CC1_SPEC): Remove.
3476         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
3477         (GNU_USER_DYNAMIC_LINKER): Define.
3478         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
3479         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
3480         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
3481         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
3482         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
3483         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
3484         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3485         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
3486         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
3487         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
3488         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
3489         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
3490         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
3491         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
3492         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
3493         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3494         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3495         GNU_USER_DYNAMIC_LINKER.
3496         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3497         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
3498         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3499         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
3500         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3501         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
3502         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
3503         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
3504         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
3505         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
3506
3507 2011-04-11  Kai Tietz  <ktietz@redhat.com>
3508
3509         PR target/9601
3510         PR target/11772
3511         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
3512         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
3513         comment.
3514         (ix86_is_msabi_thiscall): Removed.
3515         (ix86_is_type_thiscall): Likewise.
3516         (ix86_get_callcvt): New function.
3517         (ix86_comp_type_attributes): Simplify check.
3518         (ix86_function_regparm): Use ix86_get_callcvt for calling
3519         convention attribute checks.
3520         (ix86_return_pops_args): Likewise.
3521         (ix86_static_chain): Likewise.
3522         (x86_this_parameter): Likewise.
3523         (x86_output_mi_thunk): Likewise.
3524         (ix86_function_type_abi): Optimize check for types without attributes.
3525         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
3526         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
3527         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
3528         by flag-values.
3529         (IX86_BASE_CALLCVT): Helper macro.
3530         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3531         Use ix86_get_callcvt for calling convention attribute checks and avoid
3532         symbol-decoration for stdcall in TARGET_RTD case.
3533         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3534         Likewise.
3535         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
3536         for declaration.
3537
3538 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
3539
3540         * config/i386/sse.md (VI_128): New mode iterator.
3541         (VI12_128): Rename from SSEMODE12.
3542         (VI14_128): Rename from SSEMODE14.
3543         (VI124_128): New mode iterator.
3544         (VI24_128): Rename from SSEMODE248.
3545         (VI248_128): Rename from SSEMODE248.
3546         (SSEMODE124C8): Remove.
3547         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3548         (*sse2_<plusminus_insn><mode>3): Merge with
3549         *avx_<plusminus_insn><mode>3.
3550         (*mulv8hi3): Merge with *avx_mulv8hi3.
3551         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
3552         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
3553         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
3554         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
3555         (ashr<mode>3): Merge with *avx_ashr<mode>3.
3556         (lshr<mode>3): Merge with *avx_lshr<mode>3.
3557         (ashl<mode>3): Merge with *avx_ashl<mode>3.
3558         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
3559         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
3560         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3561         (*<smaxmin:code>v8hi3): Ditto.
3562         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
3563         (*<smaxmin:code>v16qi3): Ditto.
3564         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
3565         (*sse2_eq<mode>3): Ditto.
3566         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
3567         (*sse2_gt<mode>3): Ditto.
3568         (vcondv2di): Split out of vcond<mode>.
3569         (vconduv2di): Split out of vcondu<mode>.
3570
3571 2011-04-11  Richard Guenther  <rguenther@suse.de>
3572
3573         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
3574         before calling tree_low_cst.
3575
3576 2011-04-11  Richard Guenther  <rguenther@suse.de>
3577
3578         * stor-layout.c (layout_type): Compute all array index size operations
3579         in the original type.
3580         (initialize_sizetypes): Add comment.
3581         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
3582
3583 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
3584
3585         * common.opt (Tbss=, Tdata=, Ttext=): New options.
3586
3587 2011-04-11  Martin Jambor  <mjambor@suse.cz>
3588
3589         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
3590         of cgraph_node, handle NULL return value.
3591         (cgraph_global_info): Likewise.
3592         (cgraph_rtl_info): Likewise.
3593         * tree-inline.c (estimate_num_insns): Likewise.
3594         * gimplify.c (unshare_body): Likewise.
3595         (unvisit_body): Likewise.
3596         (gimplify_body): Likewise.
3597         * predict.c (optimize_function_for_size_p): Likewise.
3598         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
3599         (call_may_clobber_ref_p_1): Likewise.
3600         * varasm.c (function_section_1): Likewise.
3601         (assemble_start_function): Likewise.
3602
3603 2011-04-11  Martin Jambor  <mjambor@suse.cz>
3604
3605         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
3606         of cgraph_node.
3607         * final.c (rest_of_clean_state): Likewise.
3608         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
3609         * passes.c (pass_init_dump_file): Likewise.
3610         (execute_all_ipa_transforms): Likewise.
3611         (function_called_by_processed_nodes_p): Likewise.
3612         * predict.c (maybe_hot_frequency_p): Likewise.
3613         (probably_never_executed_bb_p): Likewise.
3614         (compute_function_frequency): Likewise.
3615         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
3616         (unnest_nesting_tree_1): Likewise.
3617         (lower_nested_functions): Likewise.
3618         * tree-optimize.c (execute_fixup_cfg): Likewise.
3619         (tree_rest_of_compilation): Likewise.
3620         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
3621         * tree-sra.c (ipa_early_sra): Likewise.
3622         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3623         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
3624         * ipa.c (record_cdtor_fn): Likewise.
3625         * ipa-inline.c (cgraph_early_inlining): Likewise.
3626         (compute_inline_parameters_for_current): Likewise.
3627         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3628         * ipa-pure-const.c (local_pure_const): Likewise.
3629         * ipa-split.c (split_function): Likewise.
3630         (execute_split_functions): Likewise.
3631         * cgraphbuild.c (build_cgraph_edges): Likewise.
3632         (rebuild_cgraph_edges): Likewise.
3633         (cgraph_rebuild_references): Likewise.
3634         (remove_cgraph_callee_edges): Likewise.
3635         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
3636         (verify_cgraph_node): Likewise.
3637         (cgraph_analyze_functions): Likewise.
3638         (cgraph_preserve_function_body_p): Likewise.
3639         (save_inline_function_body): Likewise.
3640         (save_inline_function_body): Likewise.
3641         * tree-inline.c (copy_bb): Likewise.
3642         (optimize_inline_calls): Likewise.
3643
3644 2011-04-11  Martin Jambor  <mjambor@suse.cz>
3645
3646         PR tree-optimization/48195
3647         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
3648         ipa_check_create_edge_args.
3649         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
3650         ipa_check_create_edge_args.
3651         * ipa-inline.c (inline_generate_summary): Do not call
3652         ipa_check_create_node_params and ipa_check_create_edge_args.
3653         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
3654         ipa_check_create_edge_args.
3655
3656 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
3657
3658         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
3659         instead of loop.
3660         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
3661         * function.c (record_hard_reg_sets): Likewise.
3662         * ira.c (compute_regs_asm_clobbered): Likewise.
3663         * sched-deps.c (sched_analyze_1): Likewise.
3664         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
3665
3666 2011-04-09  Xinliang David Li  <davidxl@google.com>
3667
3668         PR tree-optimization/PR48484
3669         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
3670         has_valid_pred lazily
3671
3672 2011-04-09  Duncan Sands  <baldrick@free.fr>
3673
3674         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
3675
3676 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3677
3678         * combine.c (combine_validate_cost): Adjust comments.  Set registered
3679         cost of I0 to zero at the end, if any.
3680
3681 2011-04-08  Xinliang David Li  <davidxl@google.com>
3682
3683         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
3684         to insane profile data.
3685
3686 2011-04-08  Xinliang David Li  <davidxl@google.com>
3687
3688         * ipa-cp.c (ipcp_update_profiling): Correct
3689          negative scale factor due to insane profile data.
3690
3691 2011-04-08  Xinliang David Li  <davidxl@google.com>
3692
3693         * final.c (dump_basic_block_info): New function.
3694         (final): Dump basic block.
3695         (final_scan_insn): Remove old dump.
3696
3697 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
3698
3699         PR target/47829
3700         * config.gcc (i386-*-freebsd): Disable unwind table generation for
3701         crtbegin/crtend.
3702
3703 2011-04-08  Michael Matz  <matz@suse.de>
3704
3705         PR middle-end/48389
3706         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
3707         functions.
3708         (rebuild_jump_labels): Call rebuild_jump_labels_1.
3709         * rtl.h (rebuild_jump_labels_chain): Declare.
3710         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
3711         insns inserted on edges.
3712
3713 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
3714
3715         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
3716         * config/arm/arm-arches.def: New.
3717         * config/arm/arm-opts.h: New.
3718         * config/arm/genopt.sh: New.
3719         * config/arm/arm-tables.opt: New (generated).
3720         * config/arm/arm.c (arm_handle_option, arm_target_help,
3721         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
3722         (all_architectures): Get most table contents from arm-arches.def.
3723         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
3724         arm_selected_tune here.
3725         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
3726         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
3727         (march=, mcpu=, mtune=): Use Enum and Var.
3728         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
3729         (arm.o): Update dependencies.
3730
3731 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
3732
3733         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
3734         of header_file.
3735         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
3736         (write_typed_alloc_defns): Likewise.
3737         (main): Calls write_typed_alloc_defns with output_header.
3738
3739 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
3740
3741         PR inline-asm/48435
3742         * ira-color.c (setup_profitable_hard_regs): Add comments.
3743         Don't take prohibited hard regs into account.
3744         (setup_conflict_profitable_regs): Rename to
3745         get_conflict_profitable_regs.
3746         (check_hard_reg_p): Check prohibited hard regs.
3747
3748 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
3749
3750         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
3751         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
3752         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
3753
3754 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3755
3756         PR target/48366
3757         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
3758         move from floating point to shift amount register.
3759         (emit_move_sequence): Remove secondary reload support for floating
3760         point to shift amount amount register copies.
3761         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
3762         amount register copies.
3763         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
3764         register, return false if mode isn't a scalar integer mode.
3765         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
3766
3767 2011-04-08  Richard Guenther  <rguenther@suse.de>
3768
3769         * gimple.c (gimple_call_flags): Remove kludge.
3770
3771 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3772
3773         * sel-sched.c (sel_region_init): Move call to
3774         sel_setup_region_sched_flags after setup_current_loop_nest.
3775
3776 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
3777
3778         PR rtl-optimization/48272
3779         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
3780         init_insn_reg_pressure_info.  Adjust a caller.
3781         * sched-int.h (init_insn_reg_pressure_info): Declare.
3782         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
3783         when sched-pressure is enabled.
3784
3785 2011-04-08  Richard Guenther  <rguenther@suse.de>
3786
3787         * gimple.c (gimple_set_modified): Do not queue calls to
3788         MODIFIED_NORETURN_CALLS here ...
3789         * tree-ssa-operands.c (update_stmt_operands): ... but here.
3790
3791 2011-04-08  Richard Guenther  <rguenther@suse.de>
3792
3793         PR lto/48467
3794         * toplev.c (lang_dependent_init): Do not open asm_out_file
3795         in WPA mode, nor perform debug machinery initialization.
3796         (finalize): Do not unlink asm_out_file in WPA mode.
3797
3798 2011-04-08  Richard Guenther  <rguenther@suse.de>
3799
3800         * gimple.h (gimple_call_fntype): New function.
3801         (gimple_call_return_type): Use it.
3802         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
3803         * gimple-low.c (gimple_check_call_args): Likewise.
3804         * gimple.c (gimple_call_flags): Likewise.
3805         (gimple_call_arg_flags): Likewise.
3806         (gimple_call_return_flags): Likewise.
3807         * tree-cfg.c (verify_gimple_call): Likewise.
3808         (do_warn_unused_result): Likewise.
3809         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
3810         * value-prof.c (gimple_ic_transform): Fix fndecl check.
3811
3812 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
3813
3814         PR rtl-optimization/48235
3815         * sel-sched.c (code_motion_process_successors): Recompute the last
3816         insn in basic block if control flow changed.
3817         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
3818         Update condition for ilist_remove.
3819
3820 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3821
3822         PR rtl-optimization/48302
3823         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
3824         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
3825         it to record added preheader blocks.
3826         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
3827         on to sel_add_loop_preheaders.
3828         (sel_region_init): Move call to setup_current_loop_nest after
3829         sel_init_bbs.
3830
3831 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3832
3833         PR target/48273
3834         * cfgloop.h (loop_has_exit_edges): New helper.
3835         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
3836         non-clonable.
3837         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
3838         that have no exit edges.
3839
3840 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
3841
3842         PR rtl-optimization/48442
3843         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
3844         all callers.  Adjust assert.
3845
3846 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
3847
3848         PR tree-optimization/48377
3849         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
3850         is_packed to true even for types with smaller TYPE_ALIGN than
3851         TYPE_SIZE.
3852
3853 2011-04-08  Richard Guenther  <rguenther@suse.de>
3854
3855         PR bootstrap/48513
3856         * doc/tm.texi: Re-generate.
3857
3858 2011-04-08  Wei Guozhi  <carrot@google.com>
3859
3860         PR target/47855
3861         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
3862         * config/arm/arm.c (arm_attr_length_push_multi): New function.
3863         * config/arm/arm.md (*push_multi): Change the length computation to
3864         call a C function.
3865
3866 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
3867
3868         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
3869         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
3870         * doc/tm.texi: Regenerate.
3871         * system.h (ASM_OUTPUT_BSS): Poison.
3872         * varasm.c (asm_output_bss): Remove function.
3873         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
3874
3875         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
3876         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
3877         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
3878         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3879         Likewise.
3880         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3881         Likewise.
3882         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3883         Likewise.
3884         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3885
3886 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3887
3888         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
3889         EnumValue lines.
3890
3891 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3892
3893         * config/m68k/m68k.c (m68k_handle_option): Don't handle
3894         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
3895         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
3896         OPT_mcpu32.
3897         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3898         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
3899         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
3900         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
3901         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
3902         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
3903         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3904         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
3905         options.  Don't map other m68k options manually.  Don't handle
3906         old-style options as canonical.
3907         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3908         * doc/install.texi (m68k-*-*): Document binutils version requirement.
3909
3910 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3911
3912         * basic-block.h (force_nonfallthru): Move to...
3913         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
3914         (force_nonfallthru): ...here.
3915         * cfghooks.c (force_nonfallthru): New function.
3916         * cfgrtl.c (force_nonfallthru): Rename into...
3917         (rtl_force_nonfallthru): ...this.
3918         (commit_one_edge_insertion): Do not set AUX field.
3919         (commit_edge_insertions): Do not discover new basic blocks.
3920         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
3921         (cfg_layout_rtl_cfg_hooks): Likewise.
3922         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
3923         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
3924         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
3925
3926 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
3927
3928         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3929         Remove macros.
3930
3931 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
3932
3933         * config/i386/sse.md: Update copyright year.
3934         (avxcvtvecmode): Remove.
3935         (sse_movhlps): Merge with *avx_movhlps.
3936         (sse_movlhps): Merge with *avx_movlhps.
3937         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
3938         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
3939         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
3940         (sse_loadhps): Merge with *avx_loadhps.
3941         (sse_storelps): Merge with *avx_storelps.
3942         (sse_loadlps): Merge with *avx_loadlps.
3943         (sse_movss): Merge with *avx_movss.
3944         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
3945         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
3946         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
3947         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
3948         (vec_set<mode>_0): Ditto.
3949         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
3950         (sse4_1_insertps): Merge with *avx_insertps.
3951         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
3952         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
3953         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
3954         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
3955         (sse2_storehpd): Merge with *avx_storehpd.
3956         (sse2_loadhpd): Merge with *avx_loadhpd.
3957         (sse2_loadlpd): Merge with *avx_loadlpd.
3958         (sse2_movsd): Merge with *avx_movsd.
3959         (*vec_concatv2df): Merge with *vec_concatv2df.
3960
3961 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
3962
3963         PR debug/48343
3964         * combine.c (combine_instructions): Add last_combined_insn,
3965         update it if insn is after it, pass it to all try_combine calls.
3966         (try_combine): Add last_combined_insn parameter, pass it instead of
3967         i3 to propagate_for_debug.
3968
3969 2011-04-07  Nick Clifton  <nickc@redhat.com>
3970
3971         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
3972         to handle MDR <-> data register transfers.
3973         (movhi_internal): Likewise.
3974
3975 2011-04-07  Alan Modra  <amodra@gmail.com>
3976
3977         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
3978         previous stack info.
3979
3980 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3981
3982         PR target/43920
3983         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
3984         flow_find_cross_jump.  Swap variables to implement backward replacement.
3985         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
3986
3987 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3988
3989         PR target/43920
3990         * cfgcleanup.c (walk_to_nondebug_insn): New function.
3991         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
3992         and bb2.
3993         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
3994         src1 or src2.  Redirect edges to the last basic block.  Update
3995         frequency and count on multiple basic blocks in case of fallthru.
3996
3997 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3998
3999         PR target/43920
4000         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
4001         function.
4002         (old_insns_match_p): Change return type.  Replace return false/true
4003         with return dir_none/dir_both.  Use can_replace_by.
4004         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
4005         direction from dir_p.  Register replacement direction in dir, last_dir
4006         and afterlast_dir.  Handle new return type of old_insns_match_p using
4007         merge_dir.  Return replacement direction in dir_p.
4008         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
4009         return type of old_insns_match_p.
4010         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
4011         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
4012         flow_find_cross_jump.
4013         * basic-block.h (enum replace_direction): New type.
4014         (flow_find_cross_jump): Add parameter to declaration.
4015
4016 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
4017
4018         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
4019         (AVXMODEDCVTPS2DQ): Ditto.
4020         (VEC_FLOAT_MODE): Ditto.
4021         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
4022         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4023         (<any_logic:code><mode>3): Use VF mode iterator.
4024         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
4025         Use VF mode iterator.
4026         (copysign<mode>3): Use VF mode iterator.
4027         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
4028         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4029         (*<any_logic:code><MODEF:mode>3): Merge with
4030         *avx_<any_logic:code><MODEF:mode>3.
4031         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
4032         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
4033         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
4034         (avx_cvtdq2ps<avxmodesuffix>): Remove.
4035         (sse2_cvtdq2ps): Use %v modifier.
4036         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
4037         (avx_cvtps2dq<avxmodesuffix>): Remove.
4038         (sse2_cvtps2dq): Use %v modifier.
4039         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
4040         (avx_cvttps2dq<avxmodesuffix>): Remove.
4041         (sse2_cvttps2dq): Use %v modifier.
4042         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
4043         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
4044         (sse2_cvtsd2siq): Fix insn template.
4045         (sse2_cvtsd2siq_2): Ditto.
4046         (sse2_cvttsd2siq): Ditto.
4047         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
4048         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
4049
4050 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
4051
4052         * gcov-io.c: Use GCC Runtime Library Exception.
4053
4054 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
4055
4056         PR debug/48466
4057         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
4058         as base_reg whatever register reg has been eliminated to, instead
4059         of hardcoding STACK_POINTER_REGNUM.
4060
4061 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
4062
4063         * doc/tm.texi.in: Document C target hooks as separate from general
4064         target hooks.
4065         * doc/tm.texi: Regenerate.
4066         * genhooks.c (struct hook_desc): Add docname field.
4067         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
4068         docname field.
4069         (hook_array): Include c-target.def.
4070         (emit_documentation): Use docname field in output.
4071         (emit_init_macros): Take docname argument.  Only emit definitions
4072         for hooks matching docname.
4073         (main): Expect additional arguments in all cases.  Pass argument
4074         to emit_init_macros.
4075         * target.def: Move initial macro definitions and comments to
4076         target-hooks-macros.h.
4077         (gcc_targetcm): Move to c-family/c-target.def.
4078         * target.h (targetcm): Move declaration to c-family/c-target.h.
4079         * targhooks.c (default_handle_c_option): Move to
4080         c-family/c-opts.c.
4081         * targhooks.h (default_handle_c_option): Move declaration to
4082         c-family/c-common.h.
4083         * target-hooks-macros.h: New file.
4084         * config.gcc (target_has_targetcm): Define and use to add to
4085         c_target_objs and cxx_target_objs.
4086         * config/default-c.c: New file.
4087         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
4088         of target.h and target-def.h.
4089         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
4090         (darwin_objc_construct_string, darwin_cfstring_ref_p,
4091         darwin_check_cfstring_format_arg): Make static.
4092         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4093         TARGET_STRING_OBJECT_REF_TYPE_P,
4094         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
4095         * config/darwin-protos.h (darwin_objc_construct_string,
4096         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
4097         declare.
4098         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4099         TARGET_STRING_OBJECT_REF_TYPE_P,
4100         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
4101         * config/t-darwin (darwin-c.o): Update dependencies.
4102         * system.h (TARGET_HAS_TARGETCM): Poison.
4103         * Makefile.in (TARGET_H): Update.
4104         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
4105         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
4106         (default-c.o): New target.
4107         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
4108         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
4109         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
4110         c-target.def.
4111         (build/genhooks.o): Update dependencies.
4112
4113 2011-04-06  Richard Guenther  <rguenther@suse.de>
4114
4115         * ipa-inline.c (enum inlining_mode): Remove.
4116         (cgraph_flatten): Use some other token.
4117         (cgraph_edge_early_inlinable_p): New function, split out from ...
4118         (cgraph_perform_always_inlining): New function, split out from ...
4119         (cgraph_decide_inlining_incrementally): ... here.
4120         (cgraph_mark_inline_edge): Adjust.
4121         (cgraph_early_inlining): Re-structure.
4122         (pass_early_inline): Require SSA form.
4123
4124 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
4125             Julian Brown  <julian@codesourcery.com>
4126             Mark Shinwell  <shinwell@codesourcery.com>
4127
4128         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
4129         LO_REGS only for Thumb-1.
4130         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
4131         be used in short instructions when optimising for size on Thumb-2.
4132
4133 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4134
4135         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
4136         associated with user returns to be preserved.
4137
4138 2011-04-06  Tristan Gingold  <gingold@adacore.com>
4139
4140         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
4141         symbol_queue_size, DBXOUT_DECR_NESTING,
4142         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
4143         if XCOFF_DEBUGGING_INFO.
4144
4145 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
4146
4147         * config/i386/i386.md (attribute isa): New.
4148         (attribute enabled): New.
4149         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
4150         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
4151         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
4152         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
4153         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
4154         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4155         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
4156         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
4157
4158         * config/i386/sse.md (VF): New mode iterator.
4159         (VF1): Ditto.
4160         (VF2): Ditto.
4161         (VF_128): Ditto.
4162         (SSEMODEF4): Remove.
4163         (attribute sse): Handle V8SF and V4DF modes.
4164         (<absneg:code><mode>2): Use VF mode iterator.
4165         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
4166         mode iterator.
4167         (<plusminus_insn><mode>3): Use VF mode iterator.
4168         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4169         Use VF mode iterator.
4170         (<sse>_vm<plusminus_insn><mode>3): Merge with
4171         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
4172         (mul<mode>3): Use VF mode iterator.
4173         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
4174         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
4175         mode iterator.
4176         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
4177         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
4178         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
4179         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
4180         mode iterator.
4181         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
4182         Use VF1 mode iterator.
4183         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
4184         (sqrt<VF2:mode>2): New expander.
4185         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
4186         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
4187         and sqrtv2df2.  Use VF mode iterator.
4188         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
4189         mode iterator.
4190         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
4191         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
4192         Use VF1 mode iterator.
4193         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
4194         (<smaxmin:code><mode>3): Use VF mode iterator.
4195         (*<smaxmin:code><mode>3_finite): Merge with
4196         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
4197         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4198         (<sse>_vm<smaxmin:code><mode>2): Merge with
4199         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
4200         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
4201         mode iterator.
4202         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
4203         mode iterator.
4204         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
4205         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
4206         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
4207         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
4208         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
4209         VF mode iterator.
4210         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
4211         Use VF_128 mode iterator.
4212         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
4213         mode iterator.
4214         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
4215         VF_128 mode iterator.
4216         (vcond<mode>): Use VF mode iterator.
4217         * config/i386/predicates.md (sse_comparison_operator): Merge with
4218         avx_comparison_float_operator.  Do not declare as special_predicate.
4219         * config/i386/i386.c (struct builtin_description): Update for renamed
4220         compare patterns.
4221         (ix86_expand_args_builtin): Ditto.
4222         (ix86_expand_sse_compare_mask): Ditto.
4223
4224 2011-04-06  Richard Guenther  <rguenther@suse.de>
4225
4226         * tree-inline.c (estimate_num_insns): For calls simply account
4227         for all passed arguments and a used return value.
4228
4229 2011-04-06  Richard Guenther  <rguenther@suse.de>
4230
4231         PR tree-optimization/47663
4232         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
4233         call_stmt_time fields.
4234         (cgraph_edge_inlinable_p): Declare.
4235         (cgraph_edge_recursive_p): New inline function.
4236         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
4237         (cgraph_clone_edge): Copy it.
4238         * ipa-inline.c (cgraph_estimate_edge_time): New function.
4239         Account for call stmt time.
4240         (cgraph_estimate_time_after_inlining): Take edge argument.
4241         (cgraph_estimate_edge_growth): Account call stmt size.
4242         (cgraph_estimate_size_after_inlining): Take edge argument.
4243         (cgraph_mark_inline_edge): Adjust.
4244         (cgraph_check_inline_limits): Likewise.
4245         (cgraph_recursive_inlining_p): Remove.
4246         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
4247         (cgraph_decide_recursive_inlining): Take edge argument and
4248         adjust.
4249         (cgraph_decide_inlining_of_small_functions): Do not avoid
4250         diags for recursive inlining here.
4251         (cgraph_flatten): Adjust.
4252         (cgraph_decide_inlining_incrementally): Likewise.
4253         (estimate_function_body_sizes): Remove call cost handling.
4254         (compute_inline_parameters): Initialize caller edge call costs.
4255         (cgraph_estimate_edge_growth): New function.
4256         (cgraph_estimate_growth): Use it.
4257         (cgraph_edge_badness): Likewise.
4258         (cgraph_check_inline_limits): Take an edge argument.
4259         (cgraph_decide_inlining_of_small_functions): Adjust.
4260         (cgraph_decide_inlining): Likewise.
4261         * tree-inline.c (estimate_num_insns): Only account for call
4262         return value if it is used.
4263         (expand_call_inline): Avoid diagnostics on recursive inline
4264         functions here.
4265         * lto-cgraph.c (lto_output_edge): Output edge call costs.
4266         (input_edge): Input edge call costs.
4267
4268 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4269
4270         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4271
4272 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
4273
4274         * doc/invoke.texi (Spec Files): Fix typo.
4275
4276 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4277
4278         * profile.c (branch_prob): Move declaration of local variable.  Remove
4279         obsolete ??? comment.  Expand the location explicitly instead of using
4280         the LOCATION_FILE and LOCATION_LINE macros.
4281
4282 2011-04-06  Wei Guozhi  <carrot@google.com>
4283
4284         PR target/47855
4285         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4286         (arm_cond_branch): Likewise.
4287         (arm_cond_branch_reversed): Likewise.
4288         (arm_jump): Likewise.
4289         (push_multi): Likewise.
4290         * config/arm/constraints.md (Py): New constraint.
4291
4292 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4293
4294         PR bootstrap/48471
4295         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4296         Move these...
4297         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4298         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4299         #ifdef DBX_DEBUGGING_INFO.
4300
4301 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
4302
4303         PR bootstrap/48403
4304         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4305         if old and new states differ.
4306
4307 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
4308
4309         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4310         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4311         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4312         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4313         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4314         mcfv4e): Use Alias.
4315         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4316         ColdFire options to -mcpu= options.
4317
4318 2011-04-05  Jeff Law  <law@redhat.com>
4319
4320         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4321         check if BB is a successor of LOOP->header and return
4322         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4323
4324 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
4325
4326         * cprop.c (struct reg_use): Remove.
4327         (reg_use_table): Make an array of RTX.
4328         (find_used_regs, constprop_register, local_cprop_pass,
4329         bypass_block): Simplify users of reg_use_table.
4330         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
4331         on one of the uses found by find_used_regs.
4332
4333 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4334
4335         PR bootstrap/48469
4336         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
4337         declaration.
4338
4339 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4340
4341         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
4342         as an rtx.
4343         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
4344
4345 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
4346
4347         PR middle-end/48441
4348         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
4349
4350 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4351
4352         * combine.c: Include obstack.h.
4353         (struct insn_link): Define.
4354         (uid_log_links): Adjust type.
4355         (FOR_EACH_LOG_LINK): New macro.
4356         (insn_link_obstack): Declare.
4357         (alloc_insn_link): Define.
4358         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
4359         type of link variables.
4360         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
4361         (try_combine, record_promoted_values, distribute_notes): Likewise.
4362         (distribute_links): Likewise.  Tweak prototype.
4363         (clear_log_links): Delete.
4364         (adjust_for_new_dest): Call alloc_insn_link.
4365         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
4366
4367 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4368
4369         * gcse.c (modify_mem_list): Convert to an array of VECs.
4370         (canon_modify_mem_list, compute_transp): Tweak formatting.
4371         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
4372         (load_killed_in_block_p): Likewise.
4373         (record_last_mem_set_info): Likewise.
4374         (clear_modify_mem_tables): Likewise.
4375
4376 2011-04-05  Tom de Vries  <tom@codesourcery.com>
4377
4378         PR middle-end/48461
4379         * function.c (emit_use_return_register_into_block): Only define if
4380         HAVE_return.
4381
4382 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
4383
4384         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
4385
4386 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
4387
4388         * config/rx/rx-opts.h: New.
4389         * config/rx/rx.c (rx_cpu_type): Remove.
4390         (rx_handle_option): Don't assert that global structures are in
4391         use.  Access variables via opts pointer.  Defer most handling of
4392         OPT_mint_register_.  Use error_at.
4393         (rx_option_override): Handle deferred OPT_mint_register_ here.
4394         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
4395         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
4396         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
4397         (rx_cpu_types): New Enum and EnumValue entries.
4398         (mint-register=): Use Defer and use Var accordingly.
4399
4400 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4401
4402         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
4403         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
4404         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
4405         Move these...
4406         (debug_free_queue, debug_nesting, symbol_queue_index):
4407         ...and these...
4408         * dbxout.c: ...to here.  Make static.
4409
4410 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
4411
4412         * gcse.c (modify_pair): Define.  Define a VEC of it.
4413         (canon_modify_mem_list): Convert to an array of VECs.
4414         (free_insn_expr_list_list): Delete.
4415         (clear_modify_mem_tables): Call VEC_free instead.
4416         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
4417         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
4418         (canon_list_insert, compute_transp): Likewise.
4419
4420 2011-04-05  Tom de Vries  <tom@codesourcery.com>
4421
4422         PR target/43920
4423         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
4424         for size.
4425
4426 2011-04-05  Tom de Vries  <tom@codesourcery.com>
4427
4428         PR target/43920
4429         * function.c (emit_use_return_register_into_block): New function.
4430         (thread_prologue_and_epilogue_insns): Use
4431         emit_use_return_register_into_block.
4432
4433 2011-04-05  Tom de Vries  <tom@codesourcery.com>
4434
4435         PR target/43920
4436         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
4437         insn.
4438
4439 2011-04-05  Tom de Vries  <tom@codesourcery.com>
4440
4441         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
4442
4443 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
4444
4445         * config/arm/arm.md (define_constants for unspec): Replace with
4446         define_c_enum.
4447         (define_constants for unspecv): Replace with define_c_enum.
4448         * config/arm/neon.md (define_constants for unspec): Replace with
4449         define_c_enum.
4450
4451 2011-04-04  Richard Henderson  <rth@redhat.com>
4452
4453         PR bootstrap/48400
4454         * dwarf2out.c (output_line_info): Always emit line info from
4455         at least one section.
4456         (dwarf2out_init): Create text_section_line_info here ...
4457         (set_cur_line_info_table): ... not here.
4458
4459 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
4460
4461         PR target/48380
4462         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
4463         not called.
4464
4465         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
4466
4467 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
4468
4469         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
4470         (expr_equiv_p): Remove.
4471         (insert_set_in_table): Look at <dest, src> pair instead of expr.
4472         (hash_scan_set): Update call to insert_set_in_table.
4473         (dump_hash_table): Dump <dest, src> pair.
4474         (lookup_set): Simplify.  Lookup <dest, src> pair.
4475         (compute_transp): Remove, fold heavily simplified code into...
4476         (compute_local_properties): ...here.  Expect COMP and TRANSP
4477         unconditionally.
4478         (find_avail_set): Take set directly from struct expr.
4479         (find_bypass-set): Likewise.
4480         (bypass_block): Likewise.
4481         (cprop_insn): Likewise.  Remove redundant INSN_P test.
4482
4483         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
4484         checks on form of COND from find_implicit_sets to here.
4485         (find_implicit_sets): Cleanup control flow. Split critical edges
4486         if it exposes implicit sets.  Allocate/resize implicit_sets as
4487         necessary.
4488         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
4489         changed something.  Run df_analyze after find_implicit_sets if any
4490         edges were split.  Do not allocate implicit_sets here.
4491
4492         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
4493         (gcse_obstack): Renamed to cprop_obstack.
4494         (GNEW, GNEWVEC, GNEWVAR): Remove.
4495         (gmalloc): Remove.
4496         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
4497         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
4498         (gcse_alloc): Likewise, and rename to cprop_alloc.
4499         (alloc_gcse_men, free_gcse_mem): Remove.
4500         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
4501         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
4502         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
4503
4504         * cprop.c (oprs_not_set_p): Remove.
4505         (mark_set, mark_clobber): Remove.
4506         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
4507         (reg_not_set_p): New function.
4508         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
4509         (cprop_insn): Likewise.
4510         (cprop_jump): Use FOR_EACH_EDGE.
4511
4512 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
4513
4514         PR bootstrap/48403
4515         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
4516         (rank_for_schedule): Use scheduled_insns vector instead of
4517         last_scheduled_insn.
4518         (ok_for_early_queue_removal): Likewise.
4519         (queue_to_ready): Search forward in nonscheduled_insns_begin if
4520         we have a dbg_cnt.
4521         (choose_ready): Likewise.
4522         (commit_schedule): Use VEC_iterate.
4523         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
4524         a dbg_cnt, use it and ensure the first insn is in the ready list.
4525         (haifa_sched_init): Allocate scheduled_insns.
4526         (sched_extend_ready_list): Don't allocate it; reserve space.
4527         (haifa_sched_finish): Free it.
4528
4529 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
4530
4531         * optc-gen.awk: Always remove type from Variable entry before
4532         recording in var_seen.
4533
4534 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
4535
4536         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
4537         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
4538         call to tidy_fallthru_edges.
4539
4540 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
4541
4542         * doc/options.texi (ToLower): Document.
4543         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
4544         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
4545         * opts.h (cl_option): Add cl_tolower field.
4546         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
4547         arguments with lowercase strings.
4548         * config/rx/rx.opt (mcpu=): Add ToLower.
4549         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
4550         argument.
4551
4552 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
4553
4554         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
4555
4556 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
4557
4558         * config/vax/vax.c: Include reload.h.
4559
4560 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
4561
4562         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
4563         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4564         (sparc_preferred_reload_class): New function.
4565
4566 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
4567
4568         PR debug/48401
4569         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4570         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
4571
4572 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
4573
4574         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
4575         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
4576
4577 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
4578
4579         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
4580         (ASM_OUTPUT_ALIGNED_BSS): Define.
4581
4582 2011-04-03  Michael Matz  <matz@suse.de>
4583
4584         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
4585         and next_slot members.
4586         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
4587         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
4588         (lto_streamer_cache_append): Declare.
4589         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
4590         unsigned index, remove offset parameter, ensure that we append
4591         or update existing entries.
4592         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
4593         parameter, update next_slot for append.
4594         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
4595         parameter.
4596         (lto_streamer_cache_insert_at): Likewise.
4597         (lto_streamer_cache_append): New function.
4598         (lto_streamer_cache_lookup): Use unsigned index.
4599         (lto_streamer_cache_get): Likewise.
4600         (lto_record_common_node): Don't test tree_node_can_be_shared.
4601         (preload_common_node): Adjust call to lto_streamer_cache_insert.
4602         (lto_streamer_cache_delete): Don't free offsets member.
4603         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
4604         (lto_output_string_with_length): Use lto_output_data_stream.
4605         (lto_output_tree_header): Remove ix parameter, don't write it.
4606         (lto_output_builtin_tree): Likewise.
4607         (lto_write_tree): Adjust callers to above, don't track and write
4608         offset, write unsigned index.
4609         (output_unreferenced_globals): Don't emit all global vars.
4610         (write_global_references): Use unsigned indices.
4611         (lto_output_decl_state_refs): Likewise.
4612         (write_symbol): Likewise.
4613         * lto-streamer-in.c (lto_input_chain): Move earlier.
4614         (input_function): Use unsigned index.
4615         (input_alias_pairs): Don't read and then ignore all global vars.
4616         (lto_materialize_tree): Remove ix_p parameter, don't read index,
4617         don't pass it back, use lto_streamer_cache_append.
4618         (lto_register_var_decl_in_symtab): Use unsigned index.
4619         (lto_register_function_decl_in_symtab): Likewise.
4620         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
4621         index.
4622         (lto_get_builtin_tree): Don't read index, use
4623         lto_streamer_cache_append.
4624         (lto_read_tree): Adjust call to lto_materialize_tree.
4625
4626         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
4627         don't use function calls in arguments to MIN.
4628
4629         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
4630         twice.
4631
4632         * gimple.c (gimple_type_leader_entry): Mark deletable.
4633
4634 2011-04-03  Alan Modra  <amodra@gmail.com>
4635
4636         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
4637
4638 2011-04-03  Michael Matz  <matz@suse.de>
4639
4640         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
4641         an integer.
4642         * tree.h (tree_decl_non_common.vindex): Adjust comment.
4643
4644 2011-04-03  Michael Matz  <matz@suse.de>
4645
4646         * cgraphbuild.c (record_reference): Canonicalize constructor values.
4647         * gimple-fold.c (canonicalize_constructor_val): Accept being called
4648         without function context.
4649         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
4650         current_function_decl and cfun.
4651
4652 2011-04-03  Michael Matz  <matz@suse.de>
4653
4654         * tree.c (decl_init_priority_insert): Don't create entry for
4655         default priority.
4656         (decl_fini_priority_insert): Ditto.
4657         (fields_compatible_p, find_compatible_field): Remove.
4658         * tree.h (fields_compatible_p, find_compatible_field): Remove.
4659         * gimple.c (gimple_compare_field_offset): Adjust block comment.
4660
4661 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
4662
4663         * combine.c (try_combine): Remove useless local variable.
4664
4665 2011-04-03  Richard Guenther  <rguenther@suse.de>
4666             Ira Rosen  <ira.rosen@linaro.org>
4667
4668         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
4669         non-variable offsets and compare the remaining bases of the two
4670         accesses instead of looking for exact same data-ref.
4671
4672 2011-04-02  Kai Tietz  <ktietz@redhat.com>
4673
4674         PR target/48416
4675         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
4676
4677         * i386.c (ix86_is_msabi_thiscall): New helper function.
4678         (ix86_is_type_thiscall): New helper function.
4679         (ix86_comp_type_attributes): Handle thiscall for method-functions
4680         special.
4681         (init_cumulative_args): Likewise.
4682         (find_drap_reg): Likewise.
4683         (ix86_static_chain): Likewise.
4684         (x86_this_parameter): Likewise.
4685         (x86_output_mi_thunk): Likewise.
4686
4687 2011-04-01  Olivier Hainque  <hainque@adacore.com>
4688             Nicolas Setton  <setton@adacore.com>
4689             Eric Botcazou  <ebotcazou@adacore.com>
4690
4691         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
4692         (add_gnat_descriptive_type_attribute): New function.
4693         (gen_array_type_die): Call it.
4694         (gen_enumeration_type_die): Likewise.
4695         (gen_struct_or_union_type_die): Likewise.
4696         (modified_type_die): Likewise.
4697         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
4698         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
4699         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
4700
4701 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
4702
4703         PR bootstrap/48148
4704         * dwarf2out.c (resolve_addr): Don't call force_decl_die
4705         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
4706
4707         Revert:
4708         2011-03-17  Richard Guenther  <rguenther@suse.de>
4709
4710         PR bootstrap/48148
4711         * lto-cgraph.c (input_overwrite_node): Clear the abstract
4712         origin for decls in other ltrans units.
4713         (input_varpool_node): Likewise.
4714
4715 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
4716
4717         PR middle-end/48335
4718         * expr.c (expand_assignment): Handle all possibilities
4719         if TO_RTX is CONCAT.
4720         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
4721         (store_split_bit_field): If SUBREG_REG (op0) or
4722         op0 itself has smaller mode than word, return it
4723         for offset 0 and const0_rtx for out-of-bounds stores.
4724         If word is const0_rtx, skip it.
4725
4726 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
4727
4728         * config/h8300/h8300.c (print_operand_address): Rename to...
4729         (h8300_print_operand_address): ...this. Make static. Adjust comments.
4730         Call h8300_print_operand and h8300_print_operand_address instead of
4731         print_operand and print_operand_address. Declare.
4732         (print_operand): Renake to...
4733         (h8300_print_operand): ...this. Make static. Adjust comments.
4734         Call h8300_print_operand instead of print_operand. Declare.
4735         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
4736         (h8300_register_move_cost): Likewise.
4737         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
4738         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
4739         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
4740         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
4741         * config/h8300/h8300-protos.h (print_operand): Delete.
4742         (print_operand_address): Delete.
4743
4744 2011-04-01  Richard Henderson  <rth@redhat.com>
4745
4746         PR 48400
4747         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
4748         in strict mode before dwarf4.  Re-order tests to early out
4749         before switching sections.
4750
4751 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
4752
4753         * config/h8300/constraints.md: New file.
4754         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
4755         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
4756         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
4757         * config/h8300/predicates.md (bit_operand): Likewise.
4758         (incdec_operand): Use satisfies_constraint_M and
4759         satisfies_constraint_O.  Don't use C code block.
4760         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
4761         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
4762         (compute_mov_length): Use satisfies_constraint_G.
4763         (fix_bit_operand): Use satisfies_constraint_U.
4764         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
4765         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
4766         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
4767         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
4768         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
4769         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
4770         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4771         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
4772         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
4773         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
4774         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
4775         (EXTRA_MEMORY_CONSTRAINT): Delete.
4776
4777 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
4778             Michael Meissner  <meissner@linux.vnet.ibm.com>
4779
4780         PR target/48262
4781         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
4782         operands, as per the specifications.
4783
4784         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
4785         (vec_extract_evenv4sf): Ditto.
4786         (vec_extract_evenv8hi): Ditto.
4787         (vec_extract_evenv16qi): Ditto.
4788         (vec_extract_oddv4si): Ditto.
4789
4790 2011-03-31  Mark Wielaard  <mjw@redhat.com>
4791
4792         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
4793         high_pc attribute if the CU has no associated code. Only output
4794         DW_AT_entry_pc for CU if not generating strict dwarf and
4795         dwarf_version < 4.
4796
4797 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
4798
4799         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
4800         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
4801         out of ...
4802         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
4803         * final.c (final_start_function): Call the new function rather
4804         than using a NULL argument for dwarf2out_frame_debug.
4805
4806         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
4807         that contains the prologue.
4808
4809         * haifa-sched.c (queue_insn): New arg REASON.  All callers
4810         changed.  Print it in debugging output.
4811
4812         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
4813
4814         * sched-ebb.c (begin_schedule_ready): Remove second argument.
4815         Split most of the code into...
4816         (begin_move_insn): ... here.  New function.
4817         (ebb_sched_info): Add a pointer to it.
4818         * haifa-sched.c (scheduled_insns): New static variable.
4819         (sched_extend_ready_list): Allocate it.
4820         (schedule_block): Use it to record the order of scheduled insns.
4821         Perform RTL changes to move insns only after all scheduling
4822         decisions have been made.
4823         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
4824         begin_move_insn field.
4825         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4826         * sched-int.h (struct haifa_sched_info): Remove second argument
4827         from begin_schedule_ready hook.  Add new member begin_move_insn.
4828         * sched-rgn.c (begin_schedule_ready): Remove second argument.
4829         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
4830
4831         * haifa-sched.c (prune_ready_list): New function, broken out of
4832         schedule_block.
4833         (schedule_block): Use it.
4834
4835 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4836
4837         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
4838
4839 2011-04-01  Kai Tietz  <ktietz@redhat.com>
4840
4841         * config.gcc (*-*-mingw*): Allow as option the
4842         posix threading model.
4843         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
4844         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
4845         definition.
4846         (CPP_SPEC): Add pthread/no-pthread handling.
4847         (LIB_SPEC): Likewise.
4848         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
4849         (LIB_SPEC): Likewise.
4850         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
4851         flag to pass -pthread option for shared libgcc build.
4852         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
4853         for shared libgcc build.
4854         * config/i386/t-mingw-pthread: New file.
4855         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
4856         New define to enable use of library pthread by default.
4857         * config/i386/mingw.opt (pthread): New driver option.
4858         (no-pthread): New driver option.
4859         * config/i386/cygming.opt: Make sure trailing empty line is retained.
4860         * config/i386/mingw-w64.opt: Likewise.
4861
4862 2011-04-01  Gary Funck <gary@intrepid.com>
4863
4864         * c-decl.c (grokdeclarator): Fix formatting.
4865
4866 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
4867
4868         * expr.c (emit_block_move_via_movmem): Use n_generator_args
4869         instead of n_operands.
4870         (set_storage_via_setmem): Likewise.
4871         * optabs.c (maybe_gen_insn): Likewise.
4872         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
4873         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
4874         (mips_expand_builtin_direct): Likewise.
4875         * config/spu/spu.c (expand_builtin_args): Likewise.
4876
4877 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
4878
4879         * recog.h (insn_data_d): Add n_generator_args.
4880         * genoutput.c (data): Likewise.
4881         (output_insn_data): Print it.
4882         (max_opno, num_dups): Delete.
4883         (scan_operands): Just fill in "d->operand[...]".
4884         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
4885
4886 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
4887
4888         * gensupport.h (pattern_stats): New structure.
4889         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
4890         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
4891         (max_operand_1, max_operand_vec): Delete.
4892         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
4893
4894 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
4895
4896         * emit-rtl.c (emit_pattern_after_setloc): New function.
4897         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
4898         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
4899         (emit_pattern_after): New function.
4900         (emit_insn_after, emit_jump_insn_after): Call it.
4901         (emit_call_insn_after, emit_debug_insn_after): Likewise.
4902         (emit_pattern_before_setloc): New function.
4903         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
4904         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
4905         Likewise.
4906         (emit_pattern_before): New function.
4907         (emit_insn_before, emit_jump_insn_before): Call it.
4908         (emit_call_insn_before, emit_debug_insn_before): Likewise.
4909
4910 2011-03-31  Richard Henderson  <rth@redhat.com>
4911
4912         * dwarf2out.c (dw_separate_line_info_ref): Remove.
4913         (dw_separate_line_info_entry): Remove.
4914         (enum dw_line_info_opcode): New.
4915         (dw_line_info_entry): Use it.
4916         (dw_line_info_table, dw_line_info_table_p): New.
4917         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
4918         (line_info_table, line_info_label_num): Remove.
4919         (line_info_table_in_use): Remove.
4920         (separate_line_info_table): Remove.
4921         (separate_line_info_table_allocated): Remove.
4922         (separate_line_info_table_in_use): Remove.
4923         (LINE_INFO_TABLE_INCREMENT): Remove.
4924         (line_info_label_num): New.
4925         (cur_line_info_table): New.
4926         (text_section_line_info, cold_text_section_line_info): New.
4927         (separate_line_info): New.
4928         (SEPARATE_LINE_CODE_LABEL): Remove.
4929         (print_dwarf_line_table): Remove.
4930         (debug_dwarf): Don't dump it.
4931         (output_one_line_info_table): New.
4932         (output_line_info): Use it.
4933         (new_line_info_table): New.
4934         (set_cur_line_info_table): New.
4935         (dwarf2out_switch_text_section): Use it.
4936         (dwarf2out_begin_function): Likewise.
4937         (push_dw_line_info_entry): New.
4938         (dwarf2out_source_line): Rewrite for new line info tables.
4939         (dwarf2out_init): Remove dead initailizations.
4940
4941 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
4942
4943         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
4944         various flags.
4945         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
4946         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
4947         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
4948         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
4949         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
4950         * opt-functions.awk (flag_init, switch_bit_fields): New.
4951         (switch_flags): Don't handle flags moved to bit-fields.  Don't
4952         generate CL_MISSING_OK or CL_SAVE.
4953         * optc-gen.awk: Update to generate bit-field output as well as
4954         flags field.
4955         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
4956         bit-field instead of CL_REJECT_DRIVER flag.
4957         * opts-common.c (generate_canonical_option,
4958         decode_cmdline_option): Use bit-fields instead of CL_* flags.
4959         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
4960         instead of CL_REJECT_NEGATIVE flag.
4961         * toplev.c (print_switch_values): Use cl_report bit-field instead
4962         of CL_REPORT flag.
4963
4964 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4965
4966         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
4967         a zero minimum index only if it is redundant.
4968
4969 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
4970
4971         PR rtl-optimization/48381
4972         * ira-color.c (assign_hard_reg): Use hard reg set intersection
4973         instead of ira_class_hard_reg_index for calculating conflicting
4974         hard registers.
4975
4976 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
4977
4978         * cprop.c: Clean up hash table building.
4979         (reg_avail_info): Remove.
4980         (oprs_available_p): Remove.
4981         (record_last_reg_set_info): Remove.
4982         (record_last_set_info): Remove.
4983         (reg_available_p): New function.
4984         (gcse_constant_p): Do not treat unfolded conditions as constants.
4985         (make_set_regs_unavailable): New function.
4986         (hash_scan_set): Simplify with new reg_available_p.
4987         (compute_hash_table_work): Traverse insns stream only once.
4988         Do not compute reg_avail_info. Traverse insns in reverse order.
4989         Record implicit sets after recording explicit sets from the block.
4990
4991 2011-03-31  Michael Matz  <matz@suse.de>
4992
4993         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
4994
4995 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
4996
4997         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
4998         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
4999         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5000         (h8300_mode_dependent_address_p): New function.
5001         (h8300_get_index): Make static.
5002
5003 2011-03-31  Jeff Law  <law@redhat.com>
5004
5005         * reload1.c (elimination_effects): Fix typo in recent change.
5006
5007         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
5008         typo potentially leading to null pointer dereference.
5009
5010         * caller-save.c (new_saved_hard_reg): Eliminate return value.
5011         (setup_save_areas): Corresponding changes to avoid useless
5012         assignments.
5013
5014         * jump.c (reversed_comparison_code_parts): Avoid successive return
5015         statements when REVERSE_CONDITION is defined.
5016
5017         * expr.c (expand_assignment): Avoid useless assignments.
5018         (expand_expr_real_1): Likewise.
5019         (expand_expr_real_2): Avoid useless statements.
5020
5021         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
5022
5023         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5024
5025         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
5026         statements.
5027
5028         * stmt.c (expand_expr_stmt): Avoid useless assignment.
5029
5030 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
5031
5032         PR target/47109
5033         * doc/tm.texi.in (TARGET_VERSION): Remove.
5034         * doc/tm.texi: Regenerate.
5035         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
5036         * collect2.c (main): Don't use TARGET_VERSION.
5037         * mips-tdump.c (main): Don't use TARGET_VERSION.
5038         * mips-tfile.c (main): Don't use TARGET_VERSION.
5039         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
5040         * config/rs6000/vxworksae.h: Remove.
5041         * config/alpha/alpha.h (TARGET_VERSION): Remove.
5042         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
5043         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
5044         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
5045         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5046         * config/arm/arm.h (TARGET_VERSION): Remove.
5047         * config/arm/coff.h (TARGET_VERSION): Remove.
5048         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
5049         * config/arm/elf.h (TARGET_VERSION): Remove.
5050         * config/arm/freebsd.h (TARGET_VERSION): Remove.
5051         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
5052         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
5053         * config/arm/pe.h (TARGET_VERSION): Remove.
5054         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
5055         * config/arm/semi.h (TARGET_VERSION): Remove.
5056         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
5057         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
5058         * config/arm/vxworks.h (TARGET_VERSION): Remove.
5059         * config/avr/avr.h (TARGET_VERSION): Remove.
5060         * config/bfin/bfin.h (TARGET_VERSION): Remove.
5061         * config/fr30/fr30.h (TARGET_VERSION): Remove.
5062         * config/frv/frv.h (TARGET_VERSION): Remove.
5063         * config/h8300/h8300.h (TARGET_VERSION): Remove.
5064         * config/i386/cygwin.h (TARGET_VERSION): Remove.
5065         * config/i386/darwin.h (TARGET_VERSION): Remove.
5066         * config/i386/darwin64.h (TARGET_VERSION): Remove.
5067         * config/i386/djgpp.h (TARGET_VERSION): Remove.
5068         * config/i386/freebsd.h (TARGET_VERSION): Remove.
5069         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
5070         * config/i386/gnu.h (TARGET_VERSION): Remove.
5071         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
5072         * config/i386/i386elf.h (TARGET_VERSION): Remove.
5073         * config/i386/linux.h (TARGET_VERSION): Remove.
5074         * config/i386/linux64.h (TARGET_VERSION): Remove.
5075         * config/i386/lynx.h (TARGET_VERSION): Remove.
5076         * config/i386/mingw32.h (TARGET_VERSION): Remove.
5077         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
5078         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
5079         * config/i386/netware.h (TARGET_VERSION): Remove.
5080         * config/i386/nto.h (TARGET_VERSION): Remove.
5081         * config/i386/openbsd.h (TARGET_VERSION): Remove.
5082         * config/i386/vxworks.h (TARGET_VERSION): Remove.
5083         * config/ia64/elf.h (TARGET_VERSION): Remove.
5084         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
5085         * config/ia64/hpux.h (TARGET_VERSION): Remove.
5086         * config/ia64/linux.h (TARGET_VERSION): Remove.
5087         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5088         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
5089         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5090         * config/lm32/lm32.h (TARGET_VERSION): Remove.
5091         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
5092         * config/m32c/m32c.h (TARGET_VERSION): Remove.
5093         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
5094         * config/m32r/m32r.h (TARGET_VERSION): Remove.
5095         * config/m68k/linux.h (TARGET_VERSION): Remove.
5096         * config/m68k/m68k.h (TARGET_VERSION): Remove.
5097         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
5098         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
5099         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
5100         * config/mep/mep.h (TARGET_VERSION): Remove.
5101         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
5102         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5103         * config/mips/iris6.h (MACHINE_TYPE): Remove.
5104         * config/mips/linux.h (TARGET_VERSION): Remove.
5105         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
5106         * config/mips/vxworks.h (TARGET_VERSION): Remove.
5107         * config/mmix/mmix.h (TARGET_VERSION): Remove.
5108         * config/mn10300/linux.h (TARGET_VERSION): Remove.
5109         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
5110         * config/pa/pa.h (TARGET_VERSION): Remove.
5111         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
5112         * config/picochip/picochip.h (TARGET_VERSION): Remove.
5113         * config/rs6000/aix.h (TARGET_VERSION): Remove.
5114         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
5115         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
5116         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
5117         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
5118         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
5119         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
5120         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
5121         * config/rs6000/linux.h (TARGET_VERSION): Remove.
5122         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
5123         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
5124         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
5125         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
5126         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
5127         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
5128         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
5129         * config/s390/linux.h (TARGET_VERSION): Remove.
5130         * config/s390/s390.h (TARGET_VERSION): Remove.
5131         * config/s390/tpf.h (TARGET_VERSION): Remove.
5132         * config/score/score.h (TARGET_VERSION): Remove.
5133         * config/sh/linux.h (TARGET_VERSION): Remove.
5134         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
5135         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
5136         * config/sh/sh.h (TARGET_VERSION): Remove.
5137         * config/sh/sh64.h (TARGET_VERSION): Remove.
5138         * config/sh/superh.h (TARGET_VERSION): Remove.
5139         * config/sh/vxworks.h (TARGET_VERSION): Remove.
5140         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
5141         * config/sparc/linux.h (TARGET_VERSION): Remove.
5142         * config/sparc/linux64.h (TARGET_VERSION): Remove.
5143         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
5144         TARGET_NAME32, TARGET_NAME): Remove.
5145         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
5146         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
5147         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
5148         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
5149         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
5150         * config/spu/spu.h (TARGET_VERSION): Remove.
5151         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
5152         * config/v850/v850.h (TARGET_VERSION): Remove.
5153         * config/vax/linux.h (TARGET_VERSION): Remove.
5154         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
5155         * config/xtensa/elf.h (TARGET_VERSION): Remove.
5156         * config/xtensa/linux.h (TARGET_VERSION): Remove.
5157
5158 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
5159
5160         PR target/48142
5161         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
5162         frame-related from frame-unrelated adjustments to the stack pointer.
5163
5164 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
5165
5166         * common.opt (fdebug-types-section): Move earlier.
5167         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
5168
5169 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
5170
5171         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
5172         var.
5173
5174 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
5175
5176         * tree.h (CASE_CHAIN): Define.
5177         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
5178         (gimple_redirect_edge_and_branch): Likewise.
5179
5180 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5181
5182         PR middle-end/48367
5183         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
5184         calculation.
5185
5186 2011-03-30  Jeff Law  <law@redhat.com>
5187
5188         * PR bootstrap/48371
5189         * reload1.c (reload): Fix botch in last change.
5190
5191         * reload.h (struct reload): Fix typo introduced in last change.
5192
5193 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
5194
5195         * config/arm/arm.opt (mhard-float, msoft-float): Mark
5196         Undocumented.  Remove help text.
5197         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
5198         -mhard-float.
5199
5200 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
5201
5202         * doc/options.texi (NegativeAlias): Document.
5203         (Alias): Mention NegativeAlias.
5204         * opt-functions.awk: Handle NegativeAlias.
5205         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
5206         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
5207         * opts.h (CL_NEGATIVE_ALIAS): Define.
5208         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
5209         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
5210         OPT_mspe_.
5211         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
5212         Alias entries.
5213         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5214         mno-spe and mno-isel instead of mspe=no and -misel=no.
5215
5216 2011-03-29  Mark Wielaard  <mjw@redhat.com>
5217
5218         * common.opt (fdebug-types-section): New flag.
5219         * doc/invoke.texi: Document new -fno-debug-types-section flag.
5220         * dwarf2out.c (use_debug_types): New define.
5221         (struct die_struct): Mark die_id with GTY desc use_debug_types.
5222         (print_die): Guard output of type unit signatures using
5223         use_debug_types.
5224         (build_abbrev_table): Replace assert of dwarf_version >= 4
5225         with assert on use_debug_types.
5226         (size_of_die): Likewise.
5227         (unmark_dies): Likewise.
5228         (value_format): Decide AT_ref_external form on use_debug_types.
5229         (output_die): Replace dwarf_version version check guard with
5230         use_debug_types where appropriate.
5231         (modified_type_die): Likewise.
5232         (gen_reference_type_die): Likewise.
5233         (dwarf2out_start_source_file): Likewise.
5234         (dwarf2out_end_source_file): Likewise.
5235         (prune_unused_types_walk_attribs): Likewise.
5236         (dwarf2out_finish): Likewise.
5237
5238 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5239
5240         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
5241
5242 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
5243
5244         PR rtl-optimization/48332
5245         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
5246         mode of input operand N and modeN to its actual mode.
5247
5248 2011-03-30  Jeff Law  <law@redhat.com>
5249
5250         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
5251         define accessor macro.
5252         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
5253         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
5254         (reg_equiv_init): Likewise.
5255         (reg_equivs_size): New variable.
5256         (reg_equiv_init_size): Remove.
5257         (allocate_initial_values): Move prototype to here from....
5258         * integrate.h (allocate_initial_values): Remove prototype.
5259         * integrate.c: Include reload.h.
5260         (allocate_initial_values): Corresponding changes.
5261         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
5262         (fix_reg_equiv_init, no_equiv): Corresponding changes.
5263         (update_equiv_regs): Corresponding changes.
5264         (ira): Corresponding changes.
5265         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5266         (push_secondary_reload): Corresponding changes.
5267         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5268         (make_memloc, find_reloads_address): Corresponding changes.
5269         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5270         (find_reloads_address_1): Corresponding changes.
5271         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5272         (refers_to_regno_for_reload_p): Corresponding changes.
5273         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5274         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5275         * reload1.c: Include ggc.h.
5276         (grow_reg_equivs): New function.
5277         (replace_pseudos_in, reload): Corresponding changes.
5278         (calculate_needs_all_insns, alter_regs): Corresponding changes.
5279         (eliminate_regs_1, elimination_effects): Corresponding changes.
5280         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5281         (delete_output_reload): Likewise.
5282         * caller-save.c (mark_referenced_regs): Corresponding changes.
5283         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5284         * frv/predicates.md (frv_load_operand): Corresponding changes.
5285         * microblaze/microblaze.c (double_memory_operand): Corresponding
5286         changes.
5287         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5288         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
5289         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
5290         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5291         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5292         changes.
5293         * pa/pa.c (emit_move_sequence): Corresponding changes.
5294         * vax/vax.c (nonindexed_address_p): Corresponding changes.
5295
5296 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
5297
5298         PR target/47551
5299         * config/arm/arm.c (coproc_secondary_reload_class): Handle
5300         structure modes.  Don't check neon_vector_mem_operand for
5301         vector or structure modes.
5302
5303 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
5304             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5305
5306         PR target/43590
5307         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5308         operand 1 and reshuffle the operands to match.
5309         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5310
5311 2011-03-30  Christian Schüler  <cschueler@gmx.de>
5312
5313         PR driver/48208
5314         * config/c.opt (F): Added 'Driver' to -F option.
5315
5316         PR driver/48260
5317         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5318           handler function.
5319         * config/darwin.opt: Added '-arch' option.
5320
5321 2011-03-30  Nick Clifton  <nickc@redhat.com>
5322
5323         * config/rx/rx.md: Add peepholes and patterns to combine
5324         extending loads and simple arithmetic instructions.
5325         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
5326         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5327         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
5328         modes to use pre-decrement and post-increment addressing.
5329         (rx_is_restricted_memory_address): Add range checking of REG+INT
5330         addresses.
5331         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
5332         (rx_memory_move_cost): Adjust cost of stores.
5333         (rx_adjust_insn_length): New function.
5334
5335 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
5336
5337         PR c/48305
5338         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5339         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
5340         matching arg00/arg01 types.
5341
5342 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5343
5344         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
5345         last_location to UNKNOWN_LOCATION.
5346
5347 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5348
5349         PR target/48349
5350         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
5351         FLOAT_SSE_REGS.
5352
5353 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
5354             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5355
5356         PR bootstrap/48337
5357         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
5358         Init(PROCESSOR_V7).
5359         (sparc_cpu): Likewise.
5360         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
5361         PROCESSOR_V7.
5362
5363 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5364
5365         PR target/48336
5366         PR middle-end/48342
5367         PR rtl-optimization/48345
5368         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
5369         hard regs for given mode from profitable regs when doing secondary
5370         allocation.
5371
5372 2011-03-29  Jeff Law  <law@redhat.com>
5373
5374         PR bootstrap/48327
5375         * tree-ssa-threadupdate.c (struct redirection_data): Remove
5376         do_not_duplicate field.
5377         (lookup_redirection_data): Corresponding changes.
5378         (create_duplicates): Always create a template block.
5379         (redirect_edges): Remove code which reused the original block
5380         when it was going to become unreachable code.
5381         (thread_block): Don't set do_not_duplicate field.
5382
5383 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
5384
5385         * lto-opts.c (register_user_option_p, lto_register_user_option):
5386         Make type argument unsigned.
5387         * lto-streamer.h (lto_register_user_option): Make type argument
5388         unsigned.
5389         * opth-gen.awk: Make CL_* macros unsigned.
5390         * opts-common.c (find_opt): Make lang_mask argument unsigned.
5391         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
5392         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
5393         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
5394         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
5395         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
5396         (find_opt): Make lang_mask argument unsigned.
5397
5398 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5399
5400         PR rtl-optimization/48331
5401         PR rtl-optimization/48334
5402         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
5403         for any used algorithm.
5404
5405 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5406
5407         * ira-conflicts.c (build_object_conflicts): Add unused attribute
5408         to parent_max.
5409
5410 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
5411
5412         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
5413         (alpha_option_override): Don't set alpha_sr_alias_set.
5414         (emit_frame_store_1): Use gen_frame_mem rather than calling
5415         set_mem_alias_set.
5416         (alpha_expand_epilogue): Ditto.
5417
5418 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
5419
5420         PR tree-optimization/48290
5421         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
5422         vectorization, check that relevant phis in the basic block after
5423         the inner loop are really inner loop's exit phis.
5424
5425 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
5426
5427         PR debug/48190
5428         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
5429         (cached_dw_loc_list_def): New structure.
5430         (cached_dw_loc_list): New typedef.
5431         (cached_dw_loc_list_table): New variable.
5432         (cached_dw_loc_list_table_hash): New function.
5433         (cached_dw_loc_list_table_eq): Likewise.
5434         (add_location_or_const_value_attribute): Take a bool cache_p.
5435         Cache the list when the parameter is true.
5436         (gen_formal_parameter_die): Update caller.
5437         (gen_variable_die): Likewise.
5438         (dwarf2out_finish): Likewise.
5439         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
5440         while generating debug info for the decl.
5441         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
5442         (dwarf2out_init): Initialize cached_dw_loc_list_table.
5443         (resolve_addr): Cache the result of resolving a chain of
5444         location lists.
5445
5446 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
5447
5448         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
5449         conflict object hard regset nodes have intersecting hard reg sets.
5450
5451         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
5452         after regstat_init_n_sets_and_refs.
5453
5454         * ira.c: Add more comments at the top.
5455         (setup_stack_reg_pressure_class, setup_pressure_classes):
5456         Add comments how we compute the register pressure classes.
5457         (setup_allocno_and_important_classes): Add more comments.
5458         (setup_class_translate_array, reorder_important_classes)
5459         (setup_reg_class_relations): Add comments.
5460
5461         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
5462         start of the file.
5463
5464         * ira-color.c: Add 2011 to the Copyright line.
5465         (assign_hard_reg):  Add more comments.
5466         (improve_allocation): Ditto.
5467
5468         * ira-costs.c: Add 2011 to the Copyright line.
5469         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
5470         comments.
5471         (setup_regno_cost_classes_by_mode): Ditto.
5472
5473         Initial patches from ira-improv branch:
5474
5475         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
5476
5477         * ira-build.c (ira_create_object): Remove initialization of
5478         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
5479         (ira_create_allocno): Remove initialization of
5480         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
5481         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
5482         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5483         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
5484         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
5485         Initialize ALLOCNO_ADD_DATA.
5486         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
5487         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
5488         ALLOCNO_REG.
5489         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
5490         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
5491
5492         * ira.c (ira_reallocate): Remove.
5493         (setup_pressure_classes): Call
5494         ira_init_register_move_cost_if_necessary.  Use
5495         ira_register_move_cost instead of ira_get_register_move_cost.
5496         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
5497         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
5498
5499         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
5500         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5501         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
5502         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
5503         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
5504         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
5505         Fix formatting.
5506         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
5507         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
5508         (struct allocno_color_data): New.
5509         (allocno_color_data_t): New typedef.
5510         (allocno_color_data): New definition.
5511         (ALLOCNO_COLOR_DATA): New macro.
5512         (struct object_color_data): New.
5513         (object_color_data_t): New typedef.
5514         (object_color_data): New definition.
5515         (OBJECT_COLOR_DATA): New macro.
5516         (update_copy_costs, calculate_allocno_spill_cost): Call
5517         ira_init_register_move_cost_if_necessary.  Use
5518         ira_register_move_cost instead of ira_get_register_move_cost.
5519         (move_spill_restore, update_curr_costs): Ditto.
5520         (allocno_spill_priority): Make it inline.
5521         (color_pass): Allocate and free allocno_color_dat and object_color_data.
5522         (struct coalesce_data, coalesce_data_t): New.
5523         (allocno_coalesce_data): New definition.
5524         (ALLOCNO_COALESCE_DATA): New macro.
5525         (merge_allocnos, coalesced_allocno_conflict_p): Use
5526         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
5527         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
5528         (coalesce_allocnos): Ditto.
5529         (setup_coalesced_allocno_costs_and_nums): Ditto.
5530         (collect_spilled_coalesced_allocnos): Ditto.
5531         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
5532         (setup_slot_coalesced_allocno_live_ranges): Ditto.
5533         (coalesce_spill_slots): Ditto.
5534         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
5535         free allocno_coalesce_data.
5536
5537         * ira-conflicts.c: Fix formatting.
5538         (process_regs_for_copy): Call
5539         ira_init_register_move_cost_if_necessary.  Use
5540         ira_register_move_cost instead of ira_get_register_move_cost.
5541         (build_object_conflicts): Optimize.
5542
5543         * ira-costs.c (record_reg_classes): Optimize.  Call
5544         ira_init_register_move_cost_if_necessary.  Use
5545         ira_register_move_cost, ira_may_move_in_cost, and
5546         ira_may_move_out_cost instead of ira_get_register_move_cost and
5547         ira_get_may_move_cost.
5548         (record_address_regs): Ditto.
5549         (scan_one_insn): Optimize.
5550         (find_costs_and_classes): Optimize.
5551         (process_bb_node_for_hard_reg_moves): Call
5552         ira_init_register_move_cost_if_necessary.  Use
5553         ira_register_move_cost instead of ira_get_register_move_cost.
5554
5555         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
5556         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
5557         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
5558         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
5559         definitions.
5560         (ira_initiate_emit_data, ira_finish_emit_data)
5561         (create_new_allocno): New functions.
5562         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
5563         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
5564         Use ira_register_move_cost instead of ira_get_register_move_cost.
5565
5566         * ira-int.h: Fix some comments.
5567         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
5568         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
5569         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
5570         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
5571         add_data.
5572         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
5573         bitfield after mode.  Make hard_regno a short int.  Make
5574         hard_regno short.  Remove first_coalesced_allocno and
5575         next_coalesced_allocno.  Move mem_optimized_dest_p,
5576         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
5577         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
5578         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
5579         temp, colorable_p.  Add new member add_data.
5580         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
5581         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
5582         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
5583         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
5584         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
5585         (ALLOCNO_ADD_DATA): New macro.
5586         (ira_emit_data_t): New typedef.
5587         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
5588         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
5589         from struct ira_allocno.
5590         (ALLOCNO_EMIT_DATA): New macro.
5591         (ira_allocno_emit_data, allocno_emit_reg): New.
5592         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
5593         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
5594         (OBJECT_ADD_DATA): New macro.
5595         (ira_reallocate): Remove.
5596         (ira_initiate_emit_data, ira_finish_emit_data): New.
5597         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
5598         (ira_init_register_move_cost_if_necessary): New.
5599         (ira_object_conflict_iter_next): Merge into
5600         ira_object_conflict_iter_cond.
5601         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
5602
5603         * ira-live.c (process_single_reg_class_operands): Call
5604         ira_init_register_move_cost_if_necessary.  Use
5605         ira_register_move_cost instead of ira_get_register_move_cost.
5606
5607         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
5608
5609         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
5610
5611         * ira-costs.c: Fix formatting.
5612         (cost_classes, cost_classes_num): Remove.
5613         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
5614         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
5615         (cost_classes_del, cost_classes_htab): New.
5616         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
5617         (initiate_regno_cost_classes, setup_cost_classes): New.
5618         (setup_regno_cost_classes_by_aclass): New.
5619         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
5620         (record_reg_classes): Use regno_cost_classes instead of
5621         cost_classes.  Move checking opposite operand up.
5622         (record_address_regs): Use regno_cost_classes
5623         instead of cost_classes.
5624         (scan_one_insn): Ditto.  Use always general register.
5625         (print_allocno_costs): Use regno_cost_classes instead of
5626         cost_classes.
5627         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
5628         (find_costs_and_classes): Set up cost classes for each registers.
5629         Use also their mode for this.  Use regno_cost_classes instead of
5630         cost_classes.
5631         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
5632         cost_classes.
5633         (free_ira_costs, ira_init_costs): Don't use cost_classes.
5634         (ira_costs, ira_set_pseudo_classes): Call
5635         initiate_regno_cost_classes and finish_regno_cost_classes.
5636
5637         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
5638
5639         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
5640
5641         * target.def (ira_cover_classes): Remove.
5642
5643         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
5644
5645         * doc/tm.texi.in: Ditto.
5646
5647         * ira-conflicts.c: Remove mentioning cover classes from the file.
5648         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
5649         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
5650
5651         * targhooks.c (default_ira_cover_classes): Remove.
5652
5653         * targhooks.h (default_ira_cover_classes): Ditto.
5654
5655         * haifa-sched.c: Remove mentioning cover classes from the file.
5656         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
5657         ira_pressure_classes and ira_pressure_classes_num instead of
5658         ira_reg_class_cover_size and ira_reg_class_cover.  Use
5659         sched_regno_pressure_class instead of sched_regno_cover_class.
5660         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
5661         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5662
5663         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
5664         classes from the file.
5665         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
5666         (struct object_hard_regs, struct object_hard_regs_node): New.
5667         (struct ira_object): New members profitable_hard_regs,
5668         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
5669         (struct ira_allocno): Rename cover_class to aclass.  Rename
5670         cover_class_cost and updated_cover_class_cost to class_cost and
5671         updated_class_cost.  Remove splay_removed_p and
5672         left_conflict_size.  Add new members colorable_p.
5673         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
5674         (ALLOCNO_COLORABLE_P): New macro.
5675         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
5676         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
5677         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
5678         (OBJECT_...): Rename parameter C to O.
5679         (OBJECT_PROFITABLE_HARD_REGS): New macro.
5680         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
5681         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
5682         (struct target_ira_int): New members x_ira_max_memory_move_cost,
5683         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
5684         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
5685         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
5686         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
5687         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
5688         x_ira_reg_class_subunion.
5689         (ira_max_memory_move_cost, ira_max_register_move_cost)
5690         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
5691         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
5692         (ira_important_class_nums, ira_reg_class_superunion): New macros.
5693         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
5694         (ira_reg_class_union): Rename to ira_reg_class_subunion.
5695         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5696         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5697         (ira_tune_allocno_costs_and_cover_classes): Rename to
5698         ira_tune_allocno_costs.
5699         (ira_debug_hard_regs_forest): New.
5700         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
5701         (ira_object_conflict_iter_next): Fix comments.
5702         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
5703         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
5704         cover_class to aclass.
5705         (ira_allocate_and_accumulate_costs): Ditto.
5706         (ira_allocate_and_set_or_copy_costs): Ditto.
5707
5708         * opts.c (decode_options): Remove ira_cover_class check.
5709
5710         * ira-color.c: Remove mentioning cover classes from the file.  Use
5711         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
5712         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
5713         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
5714         (splay-tree.h): Remove include.
5715         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
5716         before copy_freq_compare_func.
5717         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
5718         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
5719         New definitions.
5720         (hard_regs_roots, hard_regs_node_vec): Ditto.
5721         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
5722         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
5723         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
5724         (create_new_object_hard_regs_node): Ditto.
5725         (add_new_object_hard_regs_node_to_forest): Ditto.
5726         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
5727         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
5728         Ditto.
5729         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
5730         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
5731         (remove_unused_object_hard_regs_nodes): Ditto.
5732         (enumerate_object_hard_regs_nodes): Ditto.
5733         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
5734         (object_hard_regs_subnode_t): Ditto.
5735         (struct object_hard_regs_subnode): Ditto.
5736         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
5737         (setup_object_hard_regs_subnode_index): Ditto.
5738         (get_object_hard_regs_subnodes_num): Ditto.
5739         (form_object_hard_regs_nodes_forest): Ditto.
5740         (finish_object_hard_regs_nodes_tree): Ditto.
5741         (finish_object_hard_regs_nodes_forest): Ditto.
5742         (allocnos_have_intersected_live_ranges_p): Rename to
5743         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
5744         (pseudos_have_intersected_live_ranges_p): Rename to
5745         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
5746         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
5747         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
5748         (update_copy_costs): Remove assert.  Skip cost update if the hard
5749         reg does not belong the class.
5750         (assign_hard_reg): Process only profitable hard regs.
5751         (uncolorable_allocnos_num): Make it scalar.
5752         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
5753         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
5754         and ira_reg_class_max_nregs.
5755         (bucket_allocno_compare_func): Check frequency first.
5756         (sort_bucket): Add compare function as a parameter.
5757         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
5758         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
5759         (push_allocno_to_stack): Rewrite for checking new allocno
5760         colorability.
5761         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
5762         (push_only_colorable): Pass new parameter to sort_bucket.
5763         (push_allocno_to_spill): Remove.
5764         (allocno_spill_priority_compare): Make it inline and rewrite.
5765         (splay_tree_allocate, splay_tree_free): Remove.
5766         (allocno_spill_sort_compare): New function.
5767         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
5768         build and use splay tree.  Choose first allocno in uncolorable
5769         allocno bucket to spill.  Remove setting spill cost.
5770         (all_conflicting_hard_regs): Remove.
5771         (setup_allocno_available_regs_num): Check only profitable hard
5772         regs.  Print info about hard regs nodes.
5773         (setup_allocno_left_conflicts_size): Remove.
5774         (put_allocno_into_bucket): Don't call
5775         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
5776         (improve_allocation): New.
5777         (color_allocnos): Call setup_profitable_hard_regs,
5778         form_object_hard_regs_nodes_forest, improve_allocation,
5779         finish_object_hard_regs_nodes_forest.  Setup spill cost.
5780         (print_loop_title): Use pressure classes.
5781         (color_allocnso): Ditto.
5782         (do_coloring): Remove allocation and freeing splay_tree_node_pool
5783         and allocnos_for_spilling.
5784         (ira_sort_regnos_for_alter_reg): Don't setup members
5785         {first,next}_coalesced_allocno.
5786         (color): Remove allocating and freeing removed_splay_allocno_vec.
5787         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
5788         prohibited_class_mode_regs.
5789
5790         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
5791         formatting.
5792         (update_allocno_pressure_excess_length): Use pressure classes.
5793         (inc_register_pressure, dec_register_pressure): Check for pressure
5794         class.
5795         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
5796         pressure class.  Use ira_reg_class_nregs instead of
5797         ira_reg_class_max_nregs.
5798         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
5799         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
5800         (single_reg_class): Use ira_reg_class_nregs instead of
5801         ira_reg_class_max_nregs.
5802         (process_bb_node_lives): Use pressure classes.
5803
5804         * ira-emit.c: Remove mentioning cover classes from the file.  Use
5805         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
5806         (change_loop): Use pressure classes.
5807         (modify_move_list): Call ira_set_allocno_class instead of
5808         ira_set_allocno_cover_class.
5809
5810         * ira-build.c: Remove mentioning cover classes from the file.  Use
5811         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
5812         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
5813         ALLOCNO_UPDATED_CLASS_COST instead of
5814         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
5815         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
5816         (ira_create_allocno): Remove initialization of
5817         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
5818         ALLOCNO_COLORABLE_P.
5819         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5820         Update conflict regs for the objects.
5821         (create_cap_allocno): Remove assert.  Don't propagate
5822         ALLOCNO_AVAILABLE_REGS_NUM.
5823         (ira_free_allocno_costs): New function.
5824         (finish_allocno): Change a part of code into call of
5825         ira_free_allocno_costs.
5826         (low_pressure_loop_node_p): Use pressure classes.
5827         (object_range_compare_func): Don't compare classes.
5828         (setup_min_max_conflict_allocno_ids): Ditto.
5829
5830         * loop-invariant.c: Remove mentioning cover classes from the file.
5831         Use ira_pressure_classes and ira_pressure_classes_num instead of
5832         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
5833         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
5834         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5835         Use reg_allocno_class instead of reg_cover_class.
5836         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
5837         STACK_REG_COVER_CLASS.
5838         (get_regno_cover_class): Rename to get_regno_pressure_class.
5839         (move_loop_invariants): Initialize and finalize regstat.
5840
5841         * ira.c: Remove mentioning cover classes from the file.  Add
5842         comments about coloring without cover classes.  Use ALLOCNO_CLASS
5843         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
5844         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
5845         setup_class_subset_and_memory_move_costs.
5846         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
5847         (setup_cover_and_important_classes): Rename to
5848         setup_allocno_and_important_classes.
5849         (setup_class_translate_array): New.
5850         (setup_class_translate): Call it for allocno and pressure classes.
5851         (cover_class_order): Rename to allocno_class_order.
5852         (comp_reg_classes_func): Use ira_allocno_class_translate instead
5853         of ira_class_translate.
5854         (reorder_important_classes): Set up ira_important_class_nums.
5855         (setup_reg_class_relations): Set up ira_reg_class_superunion.
5856         (print_class_cover): Rename to print_classes.  Add parameter.
5857         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5858         Print pressure classes too.
5859         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
5860         setup_reg_subclasses.
5861         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
5862         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5863         (setup_prohibited_class_mode_regs): Use
5864         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
5865         (clarify_prohibited_class_mode_regs): New function.
5866         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
5867         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
5868         (ira_init_once): Initialize them.
5869         (free_register_move_costs): Process them.
5870         (ira_init): Move calls of find_reg_classes and
5871         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
5872         Call clarify_prohibited_class_mode_regs.
5873         (ira_no_alloc_reg): Remove.
5874         (too_high_register_pressure_p): Use pressure classes.
5875
5876         * sched-deps.c: Remove mentioning cover classes from the file.
5877         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
5878         ira_pressure_classes and ira_pressure_classes_num instead of
5879         ira_reg_class_cover_size and ira_reg_class_cover.
5880         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
5881         sched_regno_pressure_class instead of sched_regno_cover_class.
5882         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
5883         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5884
5885         * ira.h: Add 2010 to Copyright.
5886         (ira_no_alloc_reg): Remove external.
5887         (struct target_ira): Rename x_ira_hard_regno_cover_class,
5888         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
5889         x_ira_class_translate to x_ira_hard_regno_allocno_class,
5890         x_ira_allocno_classes_num, x_ira_allocno_classes, and
5891         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
5892         x_ira_pressure_classes, x_ira_pressure_class_translate, and
5893         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
5894         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
5895         x_ira_no_alloc_regs.
5896         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
5897         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
5898         ira_allocno_classes_num and ira_allocno_classes.
5899         (ira_class_translate): Rename to ira_allocno_class_translate.
5900         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
5901         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
5902         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5903         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
5904         (ira_no_alloc_regs): New.
5905
5906         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
5907         classes from the file.  Use ALLOCNO_CLASS instead of
5908         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
5909         ALLOCNO_COVER_CLASS_COST.
5910         (regno_cover_class): Rename to regno_aclass.
5911         (record_reg_classes): Use ira_reg_class_subunion instead of
5912         ira_reg_class_union.
5913         (record_address_regs): Check overflow.
5914         (scan_one_insn): Ditto.
5915         (print_allocno_costs): Print total mem cost fore regional allocation.
5916         (print_pseudo_costs): Use REG_N_REFS.
5917         (find_costs_and_classes): Use classes intersected with them on the
5918         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
5919         ira_reg_class_union.  Use ira_allocno_class_translate and
5920         regno_aclass instead of ira_class_translate and regno_cover_class.
5921         Modify code for finding regno_aclass.  Setup preferred classes for
5922         the next pass.
5923         (setup_allocno_cover_class_and_costs): Rename to
5924         setup_allocno_class_and_costs.  Use regno_aclass instead of
5925         regno_cover_class.  Use ira_set_allocno_class instead of
5926         ira_set_allocno_cover_class.
5927         (init_costs, finish_costs): Use regno_aclass instead of
5928         regno_cover_class.
5929         (ira_costs): Use setup_allocno_class_and_costs instead of
5930         setup_allocno_cover_class_and_costs.
5931         (ira_tune_allocno_costs_and_cover_classes): Rename to
5932         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
5933         by processing objects.  Use ira_reg_class_max_nregs instead of
5934         ira_reg_class_nregs.
5935
5936         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
5937
5938         * sched-int.h: Remove mentioning cover classes from the file.
5939         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
5940
5941         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
5942         classes from the file.
5943         (struct reg_pref): Rename coverclass into allocnoclass.
5944         (reg_cover_class): Rename to reg_allocno_class.
5945
5946         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
5947
5948         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
5949
5950         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
5951
5952         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
5953
5954         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
5955
5956         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
5957
5958         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
5959
5960         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
5961
5962         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
5963
5964         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
5965
5966         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
5967         (i386_ira_cover_classes): Ditto.
5968
5969         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
5970
5971         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
5972
5973         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
5974
5975         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
5976
5977         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
5978
5979         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
5980
5981         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
5982         (mips_ira_cover_classes): Ditto.
5983
5984         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
5985
5986         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
5987
5988         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
5989
5990         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
5991
5992         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
5993
5994         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
5995         (IRA_COVER_CLASSES_VSX): Ditto.
5996
5997         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
5998         (rs6000_ira_cover_classes): Ditto.
5999
6000         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
6001
6002         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
6003
6004         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
6005
6006         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
6007
6008         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
6009
6010         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
6011
6012         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
6013
6014         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
6015
6016         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
6017
6018         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
6019
6020 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
6021
6022         PR debug/48253
6023         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
6024         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
6025         dw_fde_unlikely_section_end_label, cold_in_std_section,
6026         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
6027         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
6028         fields.
6029         (output_fde): Use dw_fde_second_{begin,end} if second is
6030         true, otherwise dw_fde_{begin,end}.
6031         (output_call_frame_info): Test dw_fde_second_begin != NULL
6032         instead of dw_fde_switched_sections.
6033         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
6034         fields, initialize new fields.  Initialize in_std_section
6035         unconditionally from the first partition.
6036         (dwarf2out_end_epilogue): Don't override dw_fde_end when
6037         dw_fde_second_begin is non-NULL.
6038         (dwarf2out_switch_text_section): Stop initializing removed
6039         dw_fde_struct fields, initialize new fields, initialize
6040         also dw_fde_end here.  Set dw_fde_switch_cfi even when
6041         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
6042         (struct var_loc_list_def): Add last_before_switch field.
6043         (arange_table, arange_table_allocated, arange_table_in_use,
6044         ARANGE_TABLE_INCREMENT, add_arange): Removed.
6045         (size_of_aranges): Count !in_std_section and !second_in_std_section
6046         hunks in fdes, instead of looking at arange_table_in_use.
6047         (output_aranges): Add aranges_length argument, don't call
6048         size_of_aranges here.  Instead of using aranges_table*
6049         emit ranges for fdes when !in_std_section resp.
6050         !second_in_std_section.
6051         (dw_loc_list): Break ranges crossing section switch.
6052         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
6053         use dw_fde_second_end instead of dw_fde_end as end of last range.
6054         (gen_subprogram_die): Don't call add_arange.  Use
6055         dw_fde_{begin,end} for first partition and if switched
6056         section dw_fde_second_{begin,end} for the second.
6057         (var_location_switch_text_section_1,
6058         var_location_switch_text_section): New functions.
6059         (dwarf2out_begin_function): Initialize cold_text_section even
6060         when function_section () isn't text_section.
6061         (prune_unused_types): Don't walk arange_table.
6062         (dwarf2out_finish): Don't needlessly test
6063         flag_reorder_blocks_and_partition when testing cold_text_section_used.
6064         If info_section_emitted, call size_of_aranges and if it indicates
6065         non-empty .debug_aranges, call output_aranges with the computed
6066         size.  Stop using removed dw_fde_struct fields, use
6067         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
6068         for second.
6069
6070         PR debug/48203
6071         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
6072         create ENTRY_VALUE if incoming or address of incoming's MEM
6073         is a hard REG.
6074         * dwarf2out.c (mem_loc_descriptor): Don't emit
6075         DW_OP_GNU_entry_value of DW_OP_fbreg.
6076         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
6077         on ENTRY_VALUE is able to find the canonical parameter VALUE.
6078         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
6079         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
6080         ENTRY_VALUE_EXPs.
6081         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
6082         is a REG_P or MEM_P with REG_P address, compute hash directly
6083         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
6084         (preserve_only_constants): Don't clear VALUES forwaring
6085         ENTRY_VALUE to some other VALUE.
6086
6087 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
6088
6089         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
6090         instead of GEN_INT.
6091
6092 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
6093
6094         * cfgexpand.c (expand_gimple_cond): Always set the source location and
6095         block before expanding the statement.
6096         (expand_gimple_stmt_1): Likewise.  Set them here...
6097         (expand_gimple_stmt): ...and not here.  Tidy.
6098         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
6099         unknown.
6100
6101 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
6102
6103         * Makefile.in: New rule for cprop.o.
6104         * gcse.c: Move constant/copy propagation to cprop.c.
6105         (compute_local_properties): Only handle expression tables.
6106         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
6107         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
6108         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
6109         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
6110         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
6111         compute_cprop_data, find_used_regs, try_replace_reg,
6112         find_avail_set, cprop_jump, constprop_register, cprop_insn,
6113         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
6114         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
6115         find_bypass_set, reg_killed_on_edge, bypass_block,
6116         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
6117         execute_rtl_cprop, pass_rtl_cprop): Move to...
6118         * cprop.c: ...here.  New file, constant/copy propagation for RTL
6119         moved from gcse.c to here with minor cleanups in duplicated code.
6120
6121 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
6122
6123         * config/i386/i386.c (flag_opts): Fix a typo in
6124         -mavx256-split-unaligned-store.
6125
6126 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
6127
6128         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6129         LIBCALL_VALUE): Remove macros.
6130         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6131         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6132         (h8300_function_value, h8300_libcall_value,
6133         h8300_function_value_regno_p): New functions.
6134
6135 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
6136
6137         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
6138
6139 2011-03-28  Jeff Law  <law@redhat.com>
6140
6141         * tree-ssa-threadupdate.c (redirect_edges): Call
6142         create_edge_and_update_destination_phis as needed.
6143         (create_edge_and_update_destination_phis): Accept new BB argument.
6144         All callers updated.
6145         (thread_block): Do not update the profile when threading around
6146         intermediate blocks.
6147         (thread_single_edge): Likewise.
6148         (determine_bb_domination_status): If BB is not a successor of the
6149         loop header, return NONDOMINATING.
6150         (register_jump_thread): Note when we register a jump thread around
6151         an intermediate block.
6152         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
6153         (thread_across_edge): Use it.
6154
6155 2011-03-28  Tristan Gingold  <gingold@adacore.com>
6156
6157         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
6158         when for_return is 2.
6159
6160 2011-03-28  Jeff Law  <law@redhat.com>
6161
6162         * var-tracking.c (canonicalize_values_mark): Delete unused
6163         lhs assignment.
6164         (canonicalize_values_star, set_variable_part): Likewise.
6165         (clobber_variable_part, delete_variable_part): Likewise.
6166
6167 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
6168
6169         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
6170
6171 2011-03-28  Martin Jambor  <mjambor@suse.cz>
6172
6173         * tree-inline.c (expand_call_inline): Do not check that destination
6174         node is analyzed.
6175         (optimize_inline_calls): Assert that destination node is analyzed.
6176         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
6177         not call tree_lowering_passes.
6178         * cgraph.h (cgraph_analyze_function): Declare.
6179         * cgraphunit.c (cgraph_analyze_function): Make public.
6180
6181 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
6182
6183         * config/sparc/sparc-opts.h: New.
6184         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
6185         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
6186         (sparc_option_override): Store processor_type enumeration rather
6187         than string in cpu_default.  Remove name and enumeration from
6188         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
6189         without using sparc_select.  Use target_flags_explicit instead of
6190         fpu_option_set.
6191         * config/sparc/sparc.h (enum processor_type): Move to
6192         sparc-opts.h.
6193         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
6194         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
6195         HeaderInclude entry.
6196         (mcpu=, mtune=): Use Var and Enum.
6197         (sparc_processor_type): New Enum and EnumValue entries.
6198
6199 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6200             Iain Sandoe  <iains@gcc.gnu.org>
6201
6202         PR target/48245
6203         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
6204
6205 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
6206
6207         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
6208         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
6209         Insert new statements at it in lieu of STMT.
6210         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
6211         * tree-vect-stmts.c (vectorizable_store): Likewise.
6212         (vectorizable_load): Likewise.
6213
6214 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
6215
6216         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
6217         (divtf3): Ditto.
6218         (multf3): Ditto.
6219         (subtf3): Ditto.
6220
6221 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6222
6223         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
6224         unaligned 256bit load/store.
6225         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
6226         (*avx_movdqu<avxmodesuffix>): Likewise.
6227
6228 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6229
6230         PR target/48288
6231         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
6232         * config/pa/pa.md (iordi3): Use new predicate in expander.
6233         (iorsi3): Likewise.
6234
6235 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
6236
6237         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
6238         FUNCTION_VALUE_REGNO_P): Remove macros.
6239         * config/mips/mips-protos.h (mips_function_value): Remove.
6240         * config/mips/mips.c (mips_function_value): Rename to...
6241         (mips_function_value_1): ... this. Make static.  Handle receiving
6242         the function type in 'fn_decl_or_type' argument.
6243         (mips_function_value, mips_libcall_value,
6244         mips_function_value_regno_p): New function.
6245         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6246         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6247
6248 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6249
6250         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
6251         and -mavx256-split-unaligned-store.
6252         (ix86_option_override_internal): Split 32-byte AVX unaligned
6253         load/store by default.
6254         (ix86_avx256_split_vector_move_misalign): New.
6255         (ix86_expand_vector_move_misalign): Use it.
6256
6257         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
6258         -mavx256-split-unaligned-store.
6259
6260         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
6261         256bit load/store.  Generate unaligned store on misaligned memory
6262         operand.
6263         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
6264         256bit load/store.
6265         (*avx_movdqu<avxmodesuffix>): Likewise.
6266
6267         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6268         -mavx256-split-unaligned-store.
6269
6270 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
6271
6272         PR target/38598
6273         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6274         Update commentary.
6275
6276 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
6277
6278         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6279         opno arguments with an expand_operand.  Use create_input_operand.
6280         (mips_prepare_builtin_target): Delete.
6281         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6282         functions.
6283         (mips_expand_builtin_direct): Use create_output_operand and
6284         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
6285         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
6286         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6287
6288 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
6289
6290         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6291         function.
6292         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6293
6294 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
6295
6296         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6297         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
6298         basic blocks and call commit_edge_insertions directly.
6299         (fixup_abnormal_edges): Move from here to...
6300         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
6301         on the edges and return whether some have actually been inserted.
6302         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6303         compensation code.
6304
6305 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
6306
6307         PR rtl-optimization/48144
6308         * sel-sched-ir.c (merge_history_vect): Factor out from ...
6309         (merge_expr_data): ... here.
6310         (av_set_intersect): Rename to av_set_code_motion_filter.
6311         Update all callers.  Call merge_history_vect when an expression
6312         is found in both sets.
6313         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6314
6315 2011-03-26  Alan Modra  <amodra@gmail.com>
6316
6317         * config/rs6000/predicates.md (word_offset_memref_op): Handle
6318         cmodel medium addresses.
6319         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6320         64-bit gpr loads and stores.
6321         (rs6000_secondary_reload_ppc64): New function.
6322         * config/rs6000/rs6000-protos.h: Declare it.
6323         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6324
6325 2011-03-26  Alan Modra  <amodra@gmail.com>
6326
6327         PR target/47487
6328         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6329         GNU Go in traceback table.
6330
6331 2011-03-25  Richard Henderson  <rth@redhat.com>
6332
6333         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6334         if there are exactly 6 operands.
6335         (set_storage_via_setmem): Similarly.
6336
6337 2011-03-25  Kai Tietz  <ktietz@redhat.com>
6338
6339         * collect2.c (write_c_file_stat): Handle backslash
6340         as right-hand directory separator.
6341         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
6342         checking just for slash.
6343         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
6344         instead of checking for trailing slash.
6345         * gcc.c (record_temp_file): Use filename_cmp instead
6346         of strcmp.
6347         (do_spec_1): Likewise.
6348         (replace_outfile_spec_function): Likewise.
6349         (is_directory): Use filename_ncmp instead of strncmp.
6350         (print_multilib_info): Likewise.
6351         * gcov.c (find_source): Use filename_cmp instead
6352         instead of strcmp.
6353         (make_gcov_file_name): Fix order of slash/backslash
6354         checks.
6355         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
6356         (add_standard_paths): Likewise.
6357         * mips-tfile.c (saber_stop): Handle backslash.
6358         * prefix.c (update_path): Use filename_ncmp instead of
6359         strncmp.
6360         * profile.c (output_location): Use filename_cmp instead
6361         of strcmp.
6362         * read-md.c (handle_toplevel_file): Handle backslash.
6363         * tlink.c (frob_extension):  Likewise.
6364         * tree-cfg.c (same_line_p): Use filename_cmp instead of
6365         strcmp.
6366         * tree-dump.c (dequeue_and_dump): Handle backslash.
6367         * tree.c (get_file_function_name): Likewise.
6368         * gengtype.c (read_input_list): Likewise.
6369         (get_file_realbasename): Likewise.
6370         (get_output_file_with_visibility): Use filename_cmp
6371         instead of strcmp.
6372
6373 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
6374
6375         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
6376         case to VFPv1.
6377
6378 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
6379
6380         * fold-const.c (expr_location_or): New function.
6381         (fold_truth_not_expr): Call it.
6382
6383 2011-03-25  Jeff Law  <law@redhat.com>
6384
6385         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
6386         va_end.
6387         * c-family/c-common.c (def_fn_type): Likewise.
6388         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
6389         * emit-rtl.c (gen_rtvec): Likewise.
6390         * lto/lto-lang.c (def_fn_type): Likewise.
6391
6392 2011-03-25  Richard Guenther  <rguenther@suse.de>
6393
6394         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
6395         also generate copies.
6396         (fini_copy_prop): Handle constant values properly.
6397
6398 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
6399
6400         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
6401         mode size instead of bitsize with DWARF2_ADDR_SIZE.
6402         (hash_loc_operands, compare_loc_operands): Handle
6403         DW_OP_GNU_entry_value.
6404
6405 2011-03-25  Kai Tietz  <ktietz@redhat.com>
6406
6407         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
6408         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
6409         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
6410         comment and use macro TARGET_64BIT_MS_ABI instead.
6411         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
6412         and change default behavior for 32-bit MS_ABI.
6413         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
6414         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
6415         32-bit, too.
6416         (ix86_cfun_abi): Likewise.
6417         (ix86_maybe_switch_abi): Adjust comment.
6418         (init_cumulative_args): Check for bit-ness in MS_ABI case.
6419         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
6420         instead of checking for SYSV_ABI.
6421         (ix86_nsaved_sseregs): Likewise.
6422         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
6423         to 16 bytes.
6424         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
6425         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
6426         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
6427         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
6428         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
6429
6430 2011-03-25  Richard Guenther  <rguenther@suse.de>
6431
6432         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
6433         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6434         (verify_gimple): Remove.
6435         * tree-cfg.c (verify_gimple_call): Merge verification
6436         from verify_stmts.
6437         (verify_gimple_phi): Merge verification from verify_stmts.
6438         (verify_gimple_label): New function.
6439         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
6440         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6441         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
6442         (verify_stmts): Rename to verify_gimple_in_cfg.
6443         (verify_gimple_in_cfg): New function.
6444         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
6445         * tree-ssa.c (verify_ssa): Likewise.
6446         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
6447
6448 2011-03-25  Richard Guenther  <rguenther@suse.de>
6449
6450         * passes.c (init_optimization_passes): Add FRE pass after
6451         early SRA.
6452
6453 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
6454             Andrew Stubbs  <ams@codesourcery.com>
6455
6456         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
6457         for Cortex-A8.
6458         (arm_movdi_vfp_cortexa8): New pattern.
6459         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
6460         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
6461         instructions when tuning for Cortex-A8.  Set attribute "arch".
6462         * config/arm/arm.md: Move include arm-tune.md up a bit.
6463         (define_attr "arch"): Add "onlya8" and "nota8" values.
6464         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
6465
6466 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
6467
6468         PR bootstrap/48282
6469         Revert:
6470         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
6471
6472         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6473         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
6474         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6475         * passes.c (init_optimization_passes): Move
6476         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6477
6478 2011-03-25  Kai Tietz  <ktietz@redhat.com>
6479
6480         * c-typeck.c (comptypes_internal): Replace target
6481         hook call of comp_type_attributes by version in tree.c file.
6482         * gimple.c (gimple_types_compatible_p_1): Likewise.
6483         * tree-ssa.c (useless_type_conversion_p): Likewise.
6484         * tree.c (build_type_attribute_qual_variant): Likewise.
6485         (attribute_value_equal): New static helper function.
6486         (comp_type_attributes): New function.
6487         (merge_attributes): Use attribute_value_equal for comparison.
6488         (attribute_list_contained): Likewise.
6489         * tree.h (comp_type_attributes): New prototype.
6490
6491 2011-03-25  Richard Guenther  <rguenther@suse.de>
6492
6493         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
6494         of complex types at -O0.
6495         (verify_gimple_assign_binary): Likewise.
6496         (verify_gimple_assign_ternary): Likewise.
6497
6498 2011-03-24  Mark Wielaard  <mjw@redhat.com>
6499
6500         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
6501         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
6502
6503 2011-03-24  Mark Wielaard  <mjw@redhat.com>
6504
6505         PR debug/48041
6506         * dwarf2out.c (output_abbrev_section): Only write table when
6507         abbrev_die_table_in_use > 1.
6508
6509 2011-02-24  Richard Henderson  <rth@redhat.com>
6510
6511         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
6512         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
6513         (alpha_expand_unaligned_load_words): Use extql.
6514         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
6515         (emit_insxl): Handle all modes for consistency.
6516
6517 2011-02-24  Richard Henderson  <rth@redhat.com>
6518
6519         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
6520         (alpha_expand_unaligned_load): Likewise.
6521         (alpha_expand_unaligned_store): Likewise.
6522         (alpha_expand_unaligned_load_words): Likewise.
6523         (alpha_expand_unaligned_store_words): Likewise.
6524         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
6525         (alpha_split_lock_test_and_set_12): Likewise.
6526         (print_operand, alpha_fold_builtin_extxx): Likewise.
6527         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
6528         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
6529         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
6530         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
6531         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
6532         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
6533         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
6534         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
6535         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
6536         (extwl, extll, extql): Similarly.
6537         (inswh, inslh, insqh): Similarly.
6538         (mskbl, mskwl, mskll, mskql): Similarly.
6539         (mskwh, msklh, mskqh): Similarly.
6540
6541 2011-02-24  Richard Henderson  <rth@redhat.com>
6542
6543         * config/alpha/alpha.md (attribute isa): Add er, ner.
6544         (attribute enabled): Handle them.
6545         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
6546
6547 2011-02-24  Richard Henderson  <rth@redhat.com>
6548
6549         * config/alpha/alpha.md (attribute isa): Add vms.
6550         (attribute enabled): Handle it.
6551         (*movsf): Merge *movsf_{nofix,fix,nofp}.
6552         (*movdf): Merge *movdf_{nofix,fix,nofp}.
6553         (*movtf): Rename from *movtf_internal for consistency.
6554         (*movsi): Merge with *movsi_nt_vms.
6555         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
6556         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
6557         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
6558         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
6559
6560 2011-02-24  Richard Henderson  <rth@redhat.com>
6561
6562         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
6563         (extendqisi2, extendhisi2): Likewise.
6564         (extendqidi2): Simplify BWX/non-BWX expansions.
6565         (extendhidi2): Similarly.
6566
6567 2011-02-24  Richard Henderson  <rth@redhat.com>
6568
6569         * config/alpha/alpha.md (attribute isa): New.
6570         (attribute enabled): New.
6571         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
6572         (zero_extendqisi2, zero_extendqidi2): Similarly.
6573         (zero_extendhisi2, zero_extendhidi2): Similarly.
6574         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
6575
6576 2011-02-24  Richard Henderson  <rth@redhat.com>
6577
6578         * config/alpha/predicates.md (input_operand): Revert last change;
6579         update comment to mention 32-bit VMS rather than Windows.
6580
6581 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
6582
6583         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6584         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
6585         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6586         * passes.c (init_optimization_passes): Move
6587         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6588
6589 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
6590
6591         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
6592
6593 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
6594
6595         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
6596         correctly.
6597
6598 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
6599
6600         PR debug/48204
6601         * simplify-rtx.c (simplify_const_unary_operation): Call
6602         real_convert when changing mode class with FLOAT_EXTEND.
6603
6604 2011-03-24  Nick Clifton  <nickc@redhat.com>
6605
6606         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
6607         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6608         * config/rx/rx.c (rx_option_override): Set align_jumps,
6609         align_loops and align_labels if not set by the user.
6610         (rx_align_for_label): New function.
6611         (rx_max_skip_for_label): New function.
6612         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
6613         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
6614         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
6615         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
6616         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
6617
6618 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
6619
6620         PR rtl-optimization/48263
6621         * optabs.c (expand_binop_directly): Reinstate convert_modes code
6622         and original commutative_p handling.  Use maybe_gen_insn.
6623
6624 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6625
6626         * reload.c (find_reloads_subreg_address): Add address_reloaded
6627         parameter and return true there if the full address has been
6628         reloaded.
6629         (find_reloads_toplev): Pass address_reloaded flag.
6630         (find_reloads_address_1): Don't use address_reloaded parameter.
6631
6632 2011-03-24  Jeff Law  <law@redhat.com>
6633
6634         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
6635         unused variable "ann".
6636         (remove_unused_locals): Likewise.
6637
6638         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
6639         statement.
6640
6641         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
6642         after it is freed.
6643
6644 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6645
6646         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
6647         for invalid symbolic addresses.
6648         (s390_secondary_reload): Don't use s390_check_symref_alignment for
6649         larl operands.
6650
6651 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
6652
6653         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
6654         the argument in calls to fold_truth_not_expr.
6655
6656 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
6657
6658         * tree.c (record_node_allocation_statistics): New function.
6659         (make_node_stat, copy_node_stat, build_string): Call it.
6660         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
6661         (build1_stat, build_omp_clause): Likewise.
6662
6663 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
6664
6665         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
6666         last commit.
6667
6668 2011-03-24  Richard Guenther  <rguenther@suse.de>
6669
6670         PR tree-optimization/48271
6671         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
6672         blocks that still exist.
6673
6674 2011-03-24  Richard Guenther  <rguenther@suse.de>
6675
6676         PR tree-optimization/48270
6677         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
6678         not free datarefs before ddrs.
6679
6680 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
6681
6682         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
6683         from the address built for a reference with variable offset.
6684
6685 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
6686
6687         PR target/48237
6688         * config/i386/i386.md (*movdf_internal_rex64): Do not split
6689         alternatives that can be handled with movq or movabsq insn.
6690         (*movdf_internal): Disable for !TARGET_64BIT.
6691         (*movdf_internal_nointeger): Ditto.
6692         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
6693
6694 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
6695
6696         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6697         (FUNCTION_ARG_ADVANCE): Likewise.
6698         * tm.texi.in: Change references to them to hook references.
6699         * tm.texi: Regenerate.
6700         * targhooks.c (default_function_arg): Eliminate check for target macro.
6701         (default_function_incoming_arg): Likewise.
6702         (default_function_arg_advance): Likewise.
6703         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
6704         (function_arg_advance): Likewise.
6705         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6706
6707 2011-03-24  Richard Guenther  <rguenther@suse.de>
6708
6709         PR middle-end/48269
6710         * tree-object-size.c (addr_object_size): Do not double-account
6711         for MEM_REF offsets.
6712
6713 2011-03-24  Diego Novillo  <dnovillo@google.com>
6714
6715         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
6716         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
6717         (lto_input_data_block): Move from lto-opts.c.  Make extern.
6718         Update all users.
6719         (lto_input_string): Rename from input_string.  Make extern.
6720         Update all users.
6721         * lto-streamer-out.c (lto_output_string_with_length): Rename from
6722         output_string_with_length.
6723         Output 0 to indicate a non-NULL string.  Update all callers to
6724         not emit 0.
6725         (lto_output_string): Rename from output_string.  Make extern.
6726         Update all users.
6727         (lto_output_decl_state_streams): Make extern.
6728         (lto_output_decl_state_refs): Make extern.
6729         * lto-streamer.h (lto_input_string): Declare.
6730         (lto_input_data_block): Declare.
6731         (lto_output_string): Declare.
6732         (lto_output_string_with_length): Declare.
6733         (lto_output_decl_state_streams): Declare.
6734         (lto_output_decl_state_refs): Declare.
6735
6736 2011-03-24  Richard Guenther  <rguenther@suse.de>
6737
6738         PR tree-optimization/46562
6739         * tree.c (build_invariant_address): New function.
6740         * tree.h (build_invariant_address): Declare.
6741         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
6742         a renamed function moved ...
6743         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
6744         Take valueization callback parameter.
6745         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
6746         * gimple-fold.h: New file.
6747         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
6748         (ccp_fold, fold_const_aggregate_ref,
6749         fold_ctor_reference, fold_nonarray_ctor_reference,
6750         fold_array_ctor_reference, fold_string_cst_ctor_reference,
6751         get_base_constructor): Move ...
6752         * gimple-fold.c: ... here.
6753         (gimple_fold_stmt_to_constant_1): New function
6754         split out from ccp_fold.  Take a valueization callback parameter.
6755         Valueize all operands.
6756         (gimple_fold_stmt_to_constant): New wrapper function.
6757         (fold_const_aggregate_ref_1): New function split out from
6758         fold_const_aggregate_ref.  Take a valueization callback parameter.
6759         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
6760         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
6761         invariant POINTER_PLUS_EXPRs to invariant form.
6762         (vn_valueize): New function.
6763         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
6764         * tree-vrp.c (vrp_valueize): New function.
6765         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
6766         to fold statements to constants.
6767         * tree-ssa-pre.c (eliminate): Properly guard propagation of
6768         function declarations.
6769         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
6770         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
6771
6772 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
6773
6774         * config/h8300/predicates.md (jump_address_operand): Fix register
6775         mode check.
6776
6777 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
6778
6779         * doc/invoke.texi (max-stores-to-sink): Document.
6780         * params.h (MAX_STORES_TO_SINK): Define.
6781         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
6782         if either vectorization or if-conversion is disabled.
6783         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
6784         tree-vect-data-refs.c vect_equal_offsets.
6785         (dr_equal_offsets_p): New function.
6786         (find_data_references_in_bb): Remove static.
6787         * tree-data-ref.h (find_data_references_in_bb): Declare.
6788         (dr_equal_offsets_p): Likewise.
6789         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
6790         (vect_drs_dependent_in_basic_block): Update calls to
6791         vect_equal_offsets.
6792         (vect_check_interleaving): Likewise.
6793         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
6794         (cond_if_else_store_replacement): Rename to...
6795         (cond_if_else_store_replacement_1): ... this.  Change arguments and
6796         documentation.
6797         (cond_if_else_store_replacement): New function.
6798         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
6799         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
6800
6801 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
6802
6803         PR target/46934
6804         * config/arm/arm.md (casesi): Use the gen_int_mode() function
6805         to subtract lower bound instead of GEN_INT().
6806
6807 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
6808
6809         PR other/48179
6810         PR other/48221
6811         PR other/48234
6812         * doc/extend.texi (Alignment): Move section to match order in TOC.
6813         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
6814         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
6815
6816 2011-03-23  Jeff Law  <law@redhat.com>
6817
6818         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
6819         before removing the edge.
6820
6821         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
6822         it may have been freed by redirect_branch_edge or
6823         redirect_edge_succ_nodup.
6824
6825 2011-03-23  Richard Guenther  <rguenther@suse.de>
6826
6827         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
6828         (check_va_list_escapes): Likewise.
6829         (check_all_va_list_escapes): Likewise.
6830
6831 2011-03-23  Richard Guenther  <rguenther@suse.de>
6832
6833         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
6834         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
6835         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
6836         (alias.o): Likewise.
6837         (ipa-type-escape.o): Remove.
6838         (ipa-struct-reorg.o): Likewise.
6839         (GTFILES): Remove ipa-struct-reorg.c.
6840         * alias.c: Do not include ipa-type-escape.h.
6841         * tree-ssa-alias.c: Likewise.
6842         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
6843         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
6844         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
6845         and ipa-type-escape passes.
6846         * tree-pass.h (pass_ipa_type_escape): Remove.
6847         (pass_ipa_struct_reorg): Likewise.
6848         * ipa-struct-reorg.h: Remove.
6849         * ipa-struct-reorg.c: Likewise.
6850         * ipa-type-escape.h: Likewise.
6851         * ipa-type-escape.c: Likewise.
6852         * doc/invoke.texi (-fipa-struct-reorg): Remove.
6853         (--param struct-reorg-cold-struct-ratio): Likewise.
6854         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6855         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6856         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
6857
6858 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6859
6860         * config/s390/2084.md: Enable all insn reservations also for z9_ec
6861         cpu attribute value.
6862         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
6863         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
6864         * config/s390/s390.c (processor_flags_table): New constant array.
6865         (s390_handle_arch_option): Remove.
6866         (s390_handle_option): Remove s390_handle_arch_option invocations
6867         and OPT_mwarn_framesize_ handling.
6868         (s390_option_override): Remove s390_handle_arch_option invocation.
6869         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
6870         warnings.
6871         * config/s390/s390.md (cpu attribute): Add z9_ec value.
6872         * config/s390/s390.opt (s390_tune, s390_arch)
6873         (march=): Replace s390_arch_option enum and values with
6874         processor_type.  Set variable name to s390_arch.  Set
6875         initialization value.
6876         (mtune=): Replace s390_arch_option with processor_type.  Set
6877         variable name to s390_tune.  Set initialization value.
6878
6879 2011-03-23  Julian Brown  <julian@codesourcery.com>
6880
6881         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
6882         accesses which are not naturally aligned.
6883
6884 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
6885
6886         PR target/47553
6887         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
6888
6889 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
6890
6891         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
6892         parameter from "int" to "enum insn_code".
6893         (expand_operand_type): New enum.
6894         (expand_operand): New structure.
6895         (create_expand_operand): New function.
6896         (create_fixed_operand, create_output_operand): Likewise
6897         (create_input_operand, create_convert_operand_to): Likewise.
6898         (create_convert_operand_from, create_address_operand): Likewise.
6899         (create_integer_operand): Likewise.
6900         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
6901         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6902         (expand_insn, expand_jump_insn): Likewise.
6903         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
6904         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
6905         (expand_movstr, expand_builtin___clear_cache): Likewise.
6906         (expand_builtin_lock_release): Likewise.
6907         * explow.c (allocate_dynamic_stack_space): Likewise.
6908         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
6909         and use the default handling in that case.
6910         * expmed.c (check_predicate_volatile_ok): Delete.
6911         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
6912         (emit_cstore): Likewise.
6913         * expr.c (emit_block_move_via_movmem): Likewise.
6914         (set_storage_via_setmem, expand_assignment): Likewise.
6915         (emit_storent_insn, try_casesi): Likewise.
6916         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
6917         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
6918         (expand_vec_shift_expr, expand_binop_directly): Likewise.
6919         (expand_twoval_unop, expand_twoval_binop): Likewise.
6920         (expand_unop_direct, emit_indirect_jump): Likewise.
6921         (emit_conditional_move, vector_compare_rtx): Likewise.
6922         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
6923         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
6924         (expand_sync_lock_test_and_set): Likewise.
6925         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
6926         (emit_unop_insn): Likewise.
6927         (expand_copysign_absneg): Change icode to an insn_code.
6928         (create_convert_operand_from_type): New function.
6929         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
6930         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6931         (expand_insn, expand_jump_insn): Likewise.
6932         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
6933         than const_int_operand for operand 2.
6934
6935 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6936
6937         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
6938         if possible.
6939
6940 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6941
6942         * emit-rtl.c (emit_pattern_before_noloc): New function.
6943         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
6944         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
6945         (emit_pattern_after_noloc): New function.
6946         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
6947         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
6948
6949 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6950
6951         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
6952         (__ffsDI2): Likewise.
6953
6954 2011-03-22  Richard Henderson  <rth@redhat.com>
6955
6956         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
6957         of !TARGET_ABI_OPEN_VMS.
6958         (alpha_trampoline_init, alpha_start_function): Likewise.
6959         (alpha_expand_epilogue, alpha_file_start): Likewise.
6960         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
6961         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
6962         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
6963         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
6964         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
6965
6966 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6967
6968         * config/s390/s390-opts.h: New.
6969         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
6970         s390_arch_flags, s390_warn_framesize, s390_stack_size,
6971         s390_stack_guard): Remove.
6972         (s390_handle_arch_option): Return void.  Take enum
6973         s390_arch_option value instead of string and searching array.
6974         (s390_handle_option): Don't assert that global structures are in
6975         use.  Access variables via opts pointer.  Use error_at.  Don't use
6976         sscanf for -mstack-guard= or -mstack-size=.  Update call to
6977         s390_handle_arch_option.
6978         (s390_option_override): Update call to s390_handle_arch_option.
6979         (s390_emit_prologue): Use %d format for s390_stack_size in
6980         diagnostic.  Use %wd for HOST_WIDE_INT.
6981         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
6982         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
6983         * config/s390/s390.opt (config/s390/s390-opts.h): New
6984         HeaderInclude entry.
6985         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
6986         s390_arch_flags, s390_warn_framesize): New Variable entries.
6987         (s390_arch_option): New Enum and EnumValue entries.
6988         (march=): Use Enum instead of Var.
6989         (mstack-guard=, mstack-size=): Use UInteger and Var.
6990         (mtune=): Use Enum.
6991
6992 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6993
6994         * config/score/score.c (score_handle_option): Don't assert that
6995         global structures are in use.  Access target_flags via opts
6996         pointer.  Use value of -march= option to determine target_flags
6997         settings.
6998         * config/score/score.opt (march=): Use Enum.
6999         (score_arch): New Enum and EnumValue entries.
7000
7001 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7002
7003         * config/mep/mep.c (option_mtiny_specified): Remove.
7004         (mep_option_override): Move register handling for -mivc2 from
7005         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
7006         instead of option_mtiny_specified.
7007         (mep_handle_option): Access target_flags via opts pointer.  Don't
7008         assert that global structures are in use.  Defer part of -mivc2
7009         handling and move it to mep_option_override.
7010         * config/mep/mep.opt (IVC2): New Mask entry.
7011         (mivc2): Use Var and Defer instead of Mask.
7012
7013 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7014
7015         * config/v850/v850-opts.h: New.
7016         * config/v850/v850.c (small_memory): Replace with
7017         small_memory_physical_max array.  Make that array static const.
7018         (v850_handle_memory_option): Take integer value of argument.  Take
7019         gcc_options pointer, option text and location.  Return void.
7020         Update for changes to small memory structures.
7021         (v850_handle_option): Access target_flags via opts pointer.  Don't
7022         assert that global structures are in use.  Update calls to
7023         v850_handle_memory_option.
7024         (v850_encode_data_area): Update references to small memory settings.
7025         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
7026         (enum small_memory_type): Move to v850-opts.h.
7027         * config/v850/v850.opt (config/v850/v850-opts.h): New
7028         HeaderInclude entry.
7029         (small_memory_max): New Variable entry.
7030         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
7031         (mtda, mzda): Likewise.
7032
7033 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7034
7035         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
7036         pointer.  Don't assert that global structures are in use.
7037
7038 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7039
7040         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
7041         via opts pointer.  Don't assert that global structures are in use.
7042
7043 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7044
7045         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
7046         (munix=93): Use Var.
7047         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
7048         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
7049         * config/pa/pa-opts.h: New.
7050         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
7051         (pa_handle_option): Don't assert that global structures are in
7052         use.  Access target_flags via opts pointer.  Don't handle
7053         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
7054         OPT_munix_98 here.
7055         (pa_option_override): Handle deferred OPT_mfixed_range_.
7056
7057 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7058
7059         * config/mn10300/mn10300-opts.h: New.
7060         * config/mn10300/mn10300.c (mn10300_processor,
7061         mn10300_tune_string): Remove.
7062         (mn10300_handle_option): Don't assert that global structures are
7063         in use.  Access mn10300_processor via opts pointer.  Don't handle
7064         OPT_mtune_ here.
7065         * config/mn10300/mn10300.h (enum processor_type): Move to
7066         mn10300-opts.h.
7067         (mn10300_processor): Remove.
7068         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
7069         HeaderInclude entry.
7070         (mn10300_processor): New Variable entry.
7071         (mtune=): Use Var.
7072
7073 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7074
7075         * config/microblaze/microblaze.c: Don't include opts.h.
7076         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
7077         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
7078         (mno-clearbss): Use Var and Warn.
7079
7080 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7081
7082         * config/m32r/m32r-opts.h: New.
7083         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
7084         (m32r_handle_option): Don't assert that global structures are in
7085         use.  Access target_flags and m32r_cache_flush_func via opts
7086         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
7087         OPT_mno_flush_trap here.
7088         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
7089         include of m32r-opts.h.
7090         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
7091         HeaderInclude entry.
7092         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
7093         (mmodel=): Use Enum and Var.
7094         (m32r_model): New Enum and EnumValue entries.
7095         (mno-flush-trap): Use Var.
7096         (msdata=): Use Enum and Var.
7097         (m32r_sdata): New Enum and EnumValue entries.
7098
7099 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7100
7101         * config/m32c/m32c.c: Don't include opts.h.
7102         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
7103         m32c_handle_option): Remove.
7104         (m32c_option_override): Check global_options_set.x_target_memregs
7105         instead of target_memregs_set.
7106         * config/m32c/m32c.h (target_memregs): Remove.
7107         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
7108         variable.
7109
7110 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7111
7112         * config/iq2000/iq2000-opts.h: New.
7113         * config/iq2000/iq2000.c: Don't include opts.h.
7114         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
7115         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
7116         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
7117         HeaderInclude entry.
7118         (iq2000_tune): New Variable entry.
7119         (march=): Add comment.  Use Enum.
7120         (iq2000_arch): New Enum and EnumValue entries.
7121         (mcpu=): Use Enum and Var.
7122         (iq2000_tune): New Enum and EnumValue entries.
7123
7124 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7125
7126         * config/ia64/ia64-opts.h: New.
7127         * config/ia64/ia64.c (ia64_tune): Remove.
7128         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
7129         here.  Use error_at.
7130         (ia64_option_override): Handle deferred OPT_mfixed_range_.
7131         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
7132         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
7133         HeaderInclude entry.
7134         (ia64_tune): New Variable entry.
7135         (mfixed-range=): Use Defer and Var.
7136         (mtune=): Use Enum and Var.
7137         (ia64_tune): New Enum and EnumValue entries.
7138
7139 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7140
7141         * config/frv/frv-opts.h: New.
7142         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
7143         frv-opts.h.
7144         (frv_cpu_type): Remove.
7145         * config/frv/frv.c: Don't include opts.h.
7146         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
7147         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
7148         (frv_cpu_type): New Variable entry.
7149         (frv_cpu): New Enum and EnumValue entries.
7150
7151 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7152
7153         * config/cris/cris.c (cris_handle_option): Access target_flags via
7154         opts pointer.  Don't assert that global structures are in use.
7155         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
7156         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
7157
7158 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7159
7160         * config/bfin/bfin-opts.h: New.
7161         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
7162         bfin_si_revision, bfin_workarounds): Remove.
7163         (bfin_cpus): Make static const.
7164         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
7165         not bfin_lib_id_given.
7166         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
7167         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
7168         pointer. Use error_at.  Don't assert that global structures are in use.
7169         * config/bfin/bfin.h: Include bfin-opts.h.
7170         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
7171         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
7172         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
7173         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
7174         entries.
7175
7176 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7177
7178         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
7179         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
7180         or -msoft-float here.
7181         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
7182         -msoft-float and -mhard-float.
7183         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
7184         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7185         msoft-float.
7186         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
7187         -msoft-float.
7188         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
7189         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
7190         not mhard-float.
7191         (LIBGCC_SPEC): Don't handle -msoft-float.
7192         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
7193         -mhard-float.
7194         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7195         msoft-float.
7196         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
7197         -mfloat-abi=*, not -msoft-float and -mhard-float.
7198         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
7199         -msoft-float.
7200         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
7201         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
7202         mhard-float and msoft-float.
7203         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
7204         mfloat-abi=soft in comments, not mhard-float and msoft-float.
7205         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7206         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
7207         mhard-float.
7208         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
7209         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
7210         msoft-float.
7211         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
7212         not mhard-float.
7213         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
7214         not msoft-float.
7215
7216 2011-03-22  Richard Henderson  <rth@redhat.com>
7217
7218         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
7219         TARGET_ABI_WINDOWS_NT.
7220         (alpha_output_function_end_prologue): Likewise.
7221         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
7222         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7223         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
7224         (trap, *movsi_nt_vms): Likewise.
7225         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
7226         (*tablejump_osf_nt_internal): Remove.
7227         * config/alpha/predicates.md (input_operand): Only test Pmode.
7228
7229 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7230
7231         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
7232         via opts pointer.  Use error_at.  Don't assert that global
7233         structures are in use.
7234
7235 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7236
7237         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
7238         (ix86_handle_option): Access ix86_isa_flags and
7239         ix86_isa_flags_explicit via opts pointer.  Don't assert that
7240         global structures are in use.
7241         (ix86_function_specific_save, ix86_function_specific_restore):
7242         Update ix86_isa_flags_explicit field name.
7243         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
7244         (ix86_isa_flags_explicit): Rename TargetSave entry to
7245         x_ix86_isa_flags_explicit.
7246
7247 2011-03-22  Richard Henderson  <rth@redhat.com>
7248
7249         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
7250         (alpha_option_override, direct_return): Likewise.
7251         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
7252         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
7253         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
7254         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7255         (alpha_expand_epilogue, alpha_end_function): Likewise.
7256         (alpha_init_libfuncs): Likewise.
7257         (struct machine_function): Remove unicosmk members.
7258         (print_operand) ['t']: Remove.
7259         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
7260         unicosmk_output_module_name, unicosmk_output_common,
7261         current_section_align, unicosmk_output_text_section_asm_op,
7262         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
7263         unicosmk_section_type_flags, unicosmk_unique_section,
7264         unicosmk_asm_named_section, unicosmk_insert_attributes,
7265         unicosmk_output_align, unicosmk_defer_case_vector,
7266         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7267         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7268         unicosmk_output_ssib, unicosmk_add_call_info_word,
7269         unicosmk_extern_head, unicosmk_output_default_externs,
7270         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7271         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7272         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7273         * config/alpha/alpha-protos.h: Update.
7274         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7275         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7276         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7277         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7278         (*mulsi_se, mulvsi3): Likewise.
7279         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7280         (*divmodsi_internal, call, call_value, realign): Likewise.
7281         (moddi3, umoddi3): Likewise; remove duplicate expander.
7282         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7283         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7284         (*movdi_nofix): Remove r/U alternative.
7285         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7286         * config/alpha/constraints.md ("U"): Remove.
7287         * config/alpha/predicates.md (call_operand"): Don't test
7288         TARGET_ABI_UNICOSMK.
7289
7290 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7291
7292         * target.def (handle_option): Take gcc_options and
7293         cl_decoded_option pointers and location_t.
7294         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7295         * doc/tm.texi: Regenerate.
7296         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7297         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7298         * lto-opts.c (lto_reissue_options): Generate option structure for
7299         targetm.handle_option call.
7300         * opts.c (target_handle_option): Update call to
7301         targetm.handle_option.  Remove assertions about values now passed
7302         down to hook.
7303         * targhooks.c (default_target_handle_option): New.
7304         * targhooks.h (default_target_handle_option): Declare.
7305         * config/alpha/alpha.c: Include opts.h.
7306         (alpha_handle_option): Update to new hook interface.
7307         * config/arm/arm.c: Include opts.h.
7308         (arm_handle_option): Update to new hook interface.
7309         * config/arm/t-arm (arm.o): Update dependencies.
7310         * config/bfin/bfin.c: Include opts.h.
7311         (bfin_handle_option): Update to new hook interface.
7312         * config/cris/cris.c: Include opts.h.
7313         (cris_handle_option): Update to new hook interface.
7314         * config/frv/frv.c: Include opts.h.
7315         (frv_handle_option): Update to new hook interface.
7316         * config/i386/i386.c: Include opts.h.
7317         (ix86_handle_option): Update to new hook interface.
7318         (ix86_valid_target_attribute_inner_p): Generate option structure
7319         for call to ix86_handle_option.
7320         * config/i386/t-i386 (i386.o): Update dependencies.
7321         * config/ia64/ia64.c: Include opts.h.
7322         (ia64_handle_option): Update to new hook interface.
7323         * config/ia64/t-ia64 (ia64.o): Update dependencies.
7324         * config/iq2000/iq2000.c: Include opts.h.
7325         (iq2000_handle_option): Update to new hook interface.
7326         * config/m32c/m32c.c: Include opts.h.
7327         (m32c_handle_option): Update to new hook interface.
7328         * config/m32r/m32r.c: Include opts.h.
7329         (m32r_handle_option): Update to new hook interface.
7330         * config/m68k/m68k.c: Include opts.h.
7331         (m68k_handle_option): Update to new hook interface.
7332         * config/mep/mep.c: Include opts.h.
7333         (mep_handle_option): Update to new hook interface.
7334         * config/microblaze/microblaze.c: Include opts.h.
7335         (microblaze_handle_option): Update to new hook interface.
7336         * config/mips/mips.c: Include opts.h.
7337         (mips_handle_option): Update to new hook interface.
7338         * config/mn10300/mn10300.c: Include opts.h.
7339         (mn10300_handle_option): Update to new hook interface.
7340         * config/pa/pa.c: Include opts.h.
7341         (pa_handle_option): Update to new hook interface.
7342         * config/pdp11/pdp11.c: Include opts.h.
7343         (pdp11_handle_option): Update to new hook interface.
7344         * config/rs6000/rs6000.c: Include opts.h.
7345         (rs6000_handle_option): Update to new hook interface.
7346         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7347         * config/rx/rx.c: Include opts.h.
7348         (rx_handle_option): Update to new hook interface.
7349         * config/s390/s390.c: Include opts.h.
7350         (s390_handle_option): Update to new hook interface.
7351         * config/score/score.c: Include opts.h.
7352         (score_handle_option): Update to new hook interface.
7353         * config/sh/sh.c: Include opts.h.
7354         (sh_handle_option): Update to new hook interface.
7355         * config/sparc/sparc.c: Include opts.h.
7356         (sparc_handle_option): Update to new hook interface.
7357         * config/v850/v850.c: Include opts.h.
7358         (v850_handle_option): Update to new hook interface.
7359
7360 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7361
7362         * gcc.c (driver_unknown_option_callback): Only permit and save
7363         unknown -Wno- options.
7364         (driver_wrong_lang_callback): Save options directly instead of via
7365         driver_unknown_option_callback.
7366
7367 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
7368
7369         * combine.c (simplify_set): Try harder to find the best CC mode when
7370         simplifying a nested COMPARE on the RHS.
7371
7372 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
7373
7374         * config/alpha/gnu.h: Remove.
7375         * config/arc: Remove directory.
7376         * config/arm/netbsd.h: Remove.
7377         * config/arm/t-pe: Remove.
7378         * config/crx: Remove directory.
7379         * config/i386/netbsd.h: Remove.
7380         * config/m68hc11: Remove directory.
7381         * config/m68k/uclinux-oldabi.h: Remove.
7382         * config/mcore/mcore-pe.h: Remove.
7383         * config/mcore/t-mcore-pe: Remove.
7384         * config/netbsd-aout.h: Remove.
7385         * config/rs6000/gnu.h: Remove.
7386         * config/sh/sh-symbian.h: Remove.
7387         * config/sh/symbian-base.c: Remove.
7388         * config/sh/symbian-c.c: Remove.
7389         * config/sh/symbian-cxx.c: Remove.
7390         * config/sh/symbian-post.h: Remove.
7391         * config/sh/symbian-pre.h: Remove.
7392         * config/sh/t-symbian: Remove.
7393         * config/svr3.h: Remove.
7394         * config/vax/netbsd.h: Remove.
7395         * config.build: Don't handle i[34567]86-*-pe.
7396         * config.gcc: Remove handling of deprecations for most deprecated
7397         targets.
7398         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
7399         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
7400         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
7401         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
7402         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
7403         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
7404         Remove cases.
7405         * config.host: Don't handle i[34567]86-*-pe.
7406         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
7407         (ASM_SPEC32): Don't handle -mcall-gnu.
7408         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
7409         -mcall-gnu.
7410         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
7411         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
7412         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7413         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
7414         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
7415         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
7416         conditional on SYMBIAN.
7417         * configure.ac: Don't handle powerpc*-*-gnu*.
7418         * configure: Regenerate.
7419         * doc/extend.texi (interrupt attribute): Don't mention CRX.
7420         * doc/install-old.texi (m6811, m6812): Don't mention.
7421         * doc/install.texi (arc-*-elf*): Don't document multilib option.
7422         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
7423         (m68k-uclinuxoldabi): Don't mention.
7424         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
7425         Remove.
7426         (-mcall-gnu): Remove.
7427         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
7428         families): Remove constraint documentation.
7429
7430 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
7431
7432         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
7433         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
7434         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
7435
7436 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
7437
7438         PR target/48226
7439         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
7440         vector when peeking at the next token for vector, don't expand the
7441         keywords.
7442
7443 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
7444
7445         * config/avr/avr-protos.h (expand_epilogue): Change prototype
7446         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
7447         * config/avr/avr.c (init_cumulative_args)
7448         (avr_function_arg_advance): Use it.
7449         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
7450         sibcall epilogues.
7451         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
7452         (avr_function_ok_for_sibcall): ...this new function.
7453         (avr_lookup_function_attribute1): New static Function.
7454         (avr_naked_function_p, interrupt_function_p)
7455         (signal_function_p, avr_OS_task_function_p)
7456         (avr_OS_main_function_p): Use it.
7457         * config/avr/avr.md ("sibcall", "sibcall_value")
7458         ("sibcall_epilogue"): New expander.
7459         ("*call_insn", "*call_value_insn"): New insn.
7460         ("call_insn", "call_value_insn"): Remove
7461         ("call", "call_value", "epilogue"): Change expander to handle
7462         sibling calls.
7463
7464 2011-03-21  Nick Clifton  <nickc@redhat.com>
7465
7466         * doc/invoke.texi (Overall Options): Move closing brace to end of
7467         options list.
7468         (Optimization Options): Add missing @gol.
7469         (Directory Options): Likewise.
7470         (i386 and x86-64 Options): Likewise.
7471         (RS6000 and PowerPC Options): Likewise.
7472         (i386 and x86-64 Windows Options): Likewise.
7473         (V850 Options): Add text missing from descriptions.
7474
7475 2011-03-22  Richard Henderson  <rth@redhat.com>
7476
7477         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
7478         (avr_incoming_return_addr_rtx): New.
7479         (emit_push_byte): New.
7480         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
7481         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
7482         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
7483         (emit_pop_byte): New.
7484         (expand_epilogue): Use it.  Pop frame pointer by bytes.
7485         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
7486         (INCOMING_RETURN_ADDR_RTX): New.
7487         (INCOMING_FRAME_SP_OFFSET): New.
7488         (ARG_POINTER_CFA_OFFSET): New.
7489         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
7490         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
7491         (pophi): Remove.
7492
7493         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
7494
7495 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
7496
7497         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7498         (FUNCTION_ARG_ADVANCE): Likewise.
7499         * tm.texi.in: Change references to them to hook references.
7500         * tm.texi: Regenerate.
7501         * targhooks.c (default_function_arg): Eliminate check for target
7502         macro.
7503         (default_function_incoming_arg): Likewise.
7504         (default_function_arg_advance): Likewise.
7505         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
7506         (function_arg_advance): Likewise.
7507         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7508
7509 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
7510
7511         * tree.c (build_call_1): New function.
7512         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
7513
7514 2011-03-22  Richard Guenther  <rguenther@suse.de>
7515
7516         PR tree-optimization/48228
7517         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
7518         for single-arg PHIs.
7519
7520 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
7521
7522         PR rtl-optimization/48143
7523         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
7524         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
7525         sse2_cvtps2pd): Likewise.
7526
7527 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7528
7529         * recog.c (canonicalize_change_group): Use validate_unshare_change.
7530
7531 2011-03-22  Richard Guenther  <rguenther@suse.de>
7532
7533         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
7534         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
7535         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
7536         and REALIGN_LOAD_EXPR.
7537         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
7538         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
7539         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
7540         DOT_PROD_EXPR case ...
7541         (expand_expr_real_2): ... here.
7542         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
7543         and REALIGN_LOAD_EXPR.
7544         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
7545         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
7546         (vect_create_epilog_for_reduction): Likewise.
7547         (vectorizable_reduction): Likewise.
7548         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
7549         * tree-vect-stmts.c (vectorizable_load): Likewise.
7550
7551 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
7552
7553         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
7554
7555 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7556
7557         * config/s390/s390.c (s390_delegitimize_address): Fix offset
7558         handling for PLTOFF/GOTOFF.
7559
7560 2011-03-22  Nick Clifton  <nickc@redhat.com>
7561
7562         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7563         trailing backslash from the end of the macro definition.
7564
7565 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7566
7567         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
7568         and PLT unspecs.
7569
7570 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
7571
7572         * expr.h (prepare_operand): Move to...
7573         * optabs.h (prepare_operand): ...here and change the insn code
7574         parameter from "int" to "enum insn_code".
7575         (insn_operand_matches): Declare.
7576         * expr.c (init_expr_target): Use insn_operand_matches.
7577         (compress_float_constant): Likewise.
7578         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
7579         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
7580         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
7581         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
7582         Likewise.
7583         (gen_cond_trap): Likewise.
7584         (prepare_operand): Likewise.  Change icode to an insn_code.
7585         (insn_operand_matches): New function.
7586         * reload.c (find_reloads_address_1): Use insn_operand_matches.
7587         * reload1.c (gen_reload): Likewise.
7588         * targhooks.c (default_secondary_reload): Likewise.
7589
7590 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
7591
7592         * config/alpha/alpha.md (unspec): New define_c_enum.
7593         (unspecv): Ditto.
7594
7595 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
7596
7597         PR debug/48214
7598         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
7599         between a call and its CALL_ARG_LOCATION note.
7600
7601 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7602
7603         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
7604
7605 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
7606
7607         PR c/42544
7608         PR c/48197
7609         * c-common.c (shorten_compare): If primopN is first sign-extended
7610         to opN and then zero-extended to result type, set primopN to opN.
7611
7612 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
7613
7614         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
7615         for barrier handlers.
7616
7617 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
7618
7619         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
7620         UNSPEC constants to be in the unspec enumeration, and redefine
7621         all UNSPECV constants to be in the unspecv enumeration, so that
7622         dumps print which unspec/unspec_volatile this is.
7623         * config/rs6000/vector.md (UNSPEC_*): Ditto.
7624         * config/rs6000/paired.md (UNSPEC_*): Ditto.
7625         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
7626         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
7627         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
7628
7629         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
7630         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
7631         UNSPECV_LWSYNC, since these are used as unspec_volatile.
7632         * config/rs6000/sync.md (isync, lwsync): Ditto.
7633
7634 2011-03-21  Richard Guenther  <rguenther@suse.de>
7635
7636         * params.def (lto-min-partition): Fix typo.
7637
7638 2011-03-21  Richard Guenther  <rguenther@suse.de>
7639
7640         PR c/47939
7641         * c-decl.c (grokdeclarator): Drop to the main variant only
7642         for array types.  Drop flag_gen_aux_info check.
7643
7644 2011-03-21  Richard Guenther  <rguenther@suse.de>
7645
7646         PR translation/47911
7647         * params.def (lto-partitions): Fix typo.
7648         (lto-min-partition): Fix wording.
7649
7650 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
7651
7652         * config/rs6000/t-freebsd: Remove duplication from file.
7653
7654 2011-03-21  Richard Guenther  <rguenther@suse.de>
7655
7656         PR middle-end/47661
7657         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
7658
7659 2011-03-21  Richard Guenther  <rguenther@suse.de>
7660
7661         PR lto/48210
7662         * params.def (lto-partitions): Require at least 1 partition.
7663
7664 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7665
7666         * gthr-solaris.h: Remove.
7667         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
7668         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
7669         (LIB_SPEC): Likewise.
7670         * config/sol2.opt (threads): Remove.
7671         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
7672         (sparc*-*-solaris2*): Likewise.
7673         * configure.ac (enable_threads): Enable solaris support.
7674         * configure: Regenerate.
7675         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
7676         * doc/install.texi (Configuration, --enable-threads=lib): Remove
7677         solaris.
7678
7679 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7680
7681         * config.gcc: Obsolete *-*-solaris2.8*.
7682         * doc/install.texi (Specific, *-*-solaris2*): Document it.
7683
7684 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7685
7686         PR bootstrap/48135
7687         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
7688         reference.  Solaris 8 perl works.
7689
7690 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7691
7692         PR bootstrap/48135
7693         * doc/install.texi (Prerequisites): Move jar etc. up.
7694         Explain support library version requirements.
7695
7696 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7697
7698         PR bootstrap/48135
7699         * doc/install.texi (Prerequisites): Move Perl to build
7700         requirements.  Always necessary on Solaris 2 with Sun ld.
7701
7702 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7703
7704         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
7705         binutils 2.21.
7706         (Specific, i?86-*-solaris2.[89]): Likewise.
7707         (Specific, i?86-*-solaris2.10): Likewise.
7708         (Specific, mips-sgi-irix6): Likewise.
7709         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
7710         Update for binutils 2.21.
7711
7712 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7713
7714         * configure.ac (gcc_cv_lto_plugin): Fix typo.
7715         Allow -fuse-linker-plugin for non-default plugin linker.
7716         * configure: Regenerate.
7717
7718 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7719
7720         PR bootstrap/48167
7721         * gengtype.c (files_rules): Added rule for cp/parser.h.
7722
7723 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
7724
7725         PR target/48213
7726         * config/s390/s390.c (s390_delegitimize_address): Don't call
7727         lowpart_subreg if orig_x has BLKmode.
7728
7729 2011-03-21  Kai Tietz  <ktietz@redhat.com>
7730
7731         PR target/12171
7732         * doc/plugins.texi: Adjust documentation for plugin register_callback.
7733         * tree.h (attribute_spec): Add new member affects_type_identity.
7734         * attribs.c (empty_attribute_table): Adjust attribute_spec
7735         initializers.
7736         * config/alpha/alpha.c: Likewise.
7737         * config/arc/arc.c: Likewise.
7738         * config/arm/arm.c: Likewise.
7739         * config/avr/avr.c: Likewise.
7740         * config/bfin/bfin.c: Likewise.
7741         * config/crx/crx.c: Likewise.
7742         * config/darwin.h: Likewise.
7743         * config/h8300/h8300.c: Likewise.
7744         * config/i386/cygming.h: Likewise.
7745         * config/i386/i386.c: Likewise.
7746         * config/ia64/ia64.c: Likewise.
7747         * config/m32c/m32c.c: Likewise.
7748         * config/m32r/m32r.c: Likewise.
7749         * config/m68hc11/m68hc11.c: Likewise.
7750         * config/m68k/m68k.c: Likewise.
7751         * config/mcore/mcore.c: Likewise.
7752         * config/mep/mep.c: Likewise.
7753         * config/microblaze/microblaze.c: Likewise.
7754         * config/mips/mips.c: Likewise.
7755         * config/rs6000/rs6000.c: Likewise.
7756         * config/rx/rx.c: Likewise.
7757         * config/sh/sh.c: Likewise.
7758         * config/sol2.h: Likewise.
7759         * config/sparc/sparc.c: Likewise.
7760         * config/spu/spu.c: Likewise.
7761         * config/stormy16/stormy16.c: Likewise.
7762         * config/v850/v850.c: Likewise.
7763
7764 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
7765
7766         * simplify-rtx.c (simplify_binary_operation_1): Handle
7767         (xor (and A B) C) case when B and C are both constants.
7768
7769 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
7770
7771         * tree-dfa.c (add_referenced_var): Fix typo in comment.
7772
7773 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
7774
7775         PR bootstrap/48168
7776         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
7777
7778 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
7779
7780         PR rtl-optimization/48156
7781         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
7782         assume df and df_lr are not NULL.
7783
7784 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7785
7786         PR debug/48023
7787         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
7788         between a call and its CALL_ARG_LOCATION note.
7789
7790 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
7791
7792         PR debug/48178
7793         * config/sh/sh.c (find_barrier): Don't emit a constant pool
7794         between a call and its corresponding CALL_ARG_LOCATION note.
7795
7796 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
7797
7798         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
7799         instead of loop. Use HARD_REGISTER_NUM_P predicate.
7800         * haifa-sched.c (setup_ref_regs): Ditto.
7801         * caller-save.c (add_used_regs_1): Ditto.
7802         * dse.c (look_for_hardregs): Ditto.
7803         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
7804         * sched-rgn.c (check_live_1): Ditto.
7805
7806 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
7807
7808         * c-decl.c (diagnose_mismatched_decls): Give an error for
7809         redefining a typedef with variably modified type.
7810
7811 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
7812
7813         * c-decl.c (grokfield): Don't allow typedefs for structures or
7814         unions with no tag by default.
7815         * doc/extend.texi (Unnamed Fields): Update.
7816
7817 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
7818
7819         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7820         Rewrite using indirect functions.
7821         (lwp_slwpcb): Ditto.
7822         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
7823         (avx_vinsertf128<mode>): Ditto.
7824
7825 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7826
7827         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
7828         unspecs.
7829
7830 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7831
7832         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
7833         splitting between a call and its corresponding CALL_ARG_LOCATION note.
7834
7835 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7836
7837         PR rtl-optimization/48170
7838         * gcse.c (hoist_code): Remove bogus asserts.
7839
7840 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
7841
7842         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
7843         computation for prologue/epilogue.
7844
7845 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7846
7847         * Makefile.in (check-consistency): Remove.
7848
7849 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
7850
7851         PR debug/48176
7852         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
7853         arange_table_in_use is 0, but either text_section_used or
7854         cold_text_section_used is true.  Don't call it if
7855         !info_section_emitted.
7856
7857 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
7858
7859         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
7860         FUNCTION_VALUE_REGNO_P): Remove.
7861         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
7862         Remove.
7863         * config/avr/avr.c (avr_ret_register): Make static inline.
7864         (avr_function_value_regno_p): New function.
7865         (avr_libcall_value): Make static. Add 'func' argument.
7866         (avr_function_value): Make static. Rename 'func' argument to
7867         'fn_decl_or_type', forward it to avr_libcall_value. Call
7868         avr_ret_register function instead of RET_REGISTER macro.
7869         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7870
7871 2011-03-18  Jason Merrill  <jason@redhat.com>
7872
7873         PR c++/23372
7874         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
7875
7876 2011-03-18  Richard Guenther  <rguenther@suse.de>
7877
7878         * doc/install.texi (--enable-gold): Remove.
7879         (--with-plugin-ld): Document.
7880         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
7881
7882 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
7883
7884         PR middle-end/47790
7885         * expr.c (optimize_bitfield_assignment_op): Revamp to work
7886         again after expansion changes.
7887
7888 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
7889
7890         * combine.c (try_combine): Do simplification only call of
7891         subst() on i2 even when i1 is present. Update comments.
7892
7893 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7894
7895         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
7896         and UNSPEC_PCREL_SYMOFF.
7897
7898 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7899
7900         * config/s390/s390.md: Use define_c_enum for the unspec constant
7901         definitions.
7902
7903 2011-03-18  Richard Henderson  <rth@redhat.com>
7904             Jakub Jelinek  <jakub@redhat.com>
7905
7906         PR bootstrap/48161
7907         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
7908         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
7909
7910 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7911
7912         PR middle-end/47725
7913         * combine.c (cant_combine_insn_p): Don't check zero/sign
7914         extended hard registers.
7915
7916 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7917
7918         PR middle-end/47725
7919         * combine.c (cant_combine_insn_p): Check zero/sign extended
7920         hard registers.
7921
7922 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
7923
7924         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7925         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
7926         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
7927         Change return type to bool.
7928         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7929
7930 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
7931
7932         PR debug/48163
7933         * var-tracking.c (prepare_call_arguments): If CALL target
7934         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
7935         pc instead of looking it up using cselib_lookup and use
7936         Pmode for it if x has VOIDmode.
7937         * dwarf2out.c (gen_subprogram_die): If also both first and
7938         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
7939
7940         PR debug/48163
7941         * function.c (assign_parms): For data.passed_pointer parms
7942         use MEM of data.entry_parm instead of data.entry_parm itself
7943         as DECL_INCOMING_RTL.
7944         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
7945         also when passed and declared mode is the same, DECL_RTL
7946         is a MEM with pseudo as address and DECL_INCOMING_RTL is
7947         a MEM too.
7948
7949 2011-03-16  Jeff Law  <law@redhat.com>
7950
7951         PR rtl-optimization/37273
7952         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7953         handle them like argument loads from stack slots.  Do not double
7954         count memory for memory constants and argument loads from stack slots.
7955
7956 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7957
7958         PR debug/48160
7959         * var-tracking.c (prepare_call_arguments): Check SUBREG.
7960
7961 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7962
7963         PR target/48171
7964         * config/i386/i386.opt: Add Save to -mavx and -mfma.
7965
7966 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
7967
7968         PR bootstrap/48153
7969         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
7970         if dwarf_strict.
7971         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
7972         Clear call_arg_locations and call_arg_loc_last always.
7973
7974         PR middle-end/48152
7975         * var-tracking.c (prepare_call_arguments): If argument needs to be
7976         passed by reference, adjust argtype and mode.
7977
7978 2011-03-17  Richard Guenther  <rguenther@suse.de>
7979
7980         PR middle-end/48134
7981         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
7982         a value make sure to fold the statement.
7983
7984 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
7985
7986         PR target/43872
7987         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
7988         return condition with !cfun->calls_alloca.
7989
7990 2011-03-17  Richard Guenther  <rguenther@suse.de>
7991
7992         PR bootstrap/48148
7993         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7994         origin for decls in other ltrans units.
7995         (input_varpool_node): Likewise.
7996
7997 2011-03-17  Richard Guenther  <rguenther@suse.de>
7998
7999         PR middle-end/48165
8000         * tree-object-size.c (compute_object_offset): Properly return
8001         the offset operand of MEM_REFs as sizetype.
8002
8003 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
8004
8005         PR rtl-optimization/48141
8006         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
8007         * dse.c: Include params.h.
8008         (active_local_stores_len): New variable.
8009         (add_wild_read, dse_step1): Clear it when setting active_local_stores
8010         to NULL.
8011         (record_store, check_mem_read_rtx): Decrease it when removing
8012         from the chain.
8013         (scan_insn): Likewise.  Increase it when adding to chain, if it
8014         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
8015         set active_local_stores to NULL before the addition.
8016         * Makefile.in (dse.o): Depend on $(PARAMS_H).
8017
8018         PR rtl-optimization/48141
8019         * dse.c (record_store): If no positions are needed in an insn
8020         that cannot be deleted, at least unchain it from active_local_stores.
8021
8022 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
8023
8024         PR debug/47510
8025         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
8026         (lookup_type_die_strip_naming_typedef): ... here.
8027         (get_context_die): Use it.
8028         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
8029         the anonymous struct named by the naming typedef.
8030
8031 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
8032
8033         PR target/48154
8034         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
8035         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8036
8037 2011-03-16  Jeff Law  <law@redhat.com>
8038
8039         * tree-vrp.c (identify_jump_threads): Slightly simplify type
8040         check for operands of conditional.  Allow type to be a pointer.
8041
8042 2011-03-16  Richard Guenther  <rguenther@suse.de>
8043
8044         PR tree-optimization/48149
8045         * fold-const.c (fold_binary_loc): Fold
8046         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
8047
8048 2011-03-16  Richard Guenther  <rguenther@suse.de>
8049
8050         PR tree-optimization/26134
8051         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
8052         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
8053         (non_rewritable_mem_ref_base): Handle complex type component
8054         accesses, constrain offsets for vector and complex extracts
8055         more properly.
8056
8057 2011-03-16  Richard Guenther  <rguenther@suse.de>
8058
8059         PR tree-optimization/48146
8060         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
8061         operands avoiding the need for renaming.
8062
8063 2011-03-16  Richard Guenther  <rguenther@suse.de>
8064
8065         * gimple-fold.c (maybe_fold_reference): Open-code relevant
8066         constant folding.  Move MEM_REF canonicalization first.
8067         Rely on fold_const_aggregate_ref for initializer folding.
8068         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
8069
8070 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
8071
8072         PR middle-end/48136
8073         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8074         arg0/arg1 or their arguments are always fold converted to matching
8075         types.
8076
8077         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
8078         to nargs.
8079
8080 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8081
8082         PR lto/46944
8083         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
8084         Handle in-tree gold.
8085         (ld_vers): Extract binutils version for gold.
8086         (gcc_cv_ld_hidden): Handle gold here.
8087         (gcc_cv_lto_plugin): Determine level of linker plugin support.
8088         * configure: Regenerate.
8089         * config.in: Regenerate.
8090         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
8091         -fuse-linker-plugin otherwise.
8092         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
8093         (LINK_COMMAND_SPEC): Use it.
8094         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
8095
8096 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
8097
8098         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
8099         * calls.c: Remove debug.h include.
8100         (emit_call_1): Don't call virtual_call_token debug hook.
8101         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
8102         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
8103         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
8104         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
8105         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
8106         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
8107         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
8108         dwarf2out_virtual_call): Remove.
8109         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
8110         copy_call_info and virtual_call hooks.
8111         (dwarf2out_init): Don't initialize vcall_insn_table,
8112         debug_dcall_section and debug_vcall_section.
8113         (prune_unused_types): Don't mark nodes from dcall_table.
8114         (dwarf2out_finish): Don't output dcall or vcall tables.
8115         * final.c (final_scan_insn): Don't call direct_call or
8116         virtual_call debug hooks.
8117         * debug.h (struct gcc_debug_hooks): Remove direct_call,
8118         virtual_call_token, copy_call_info and virtual_call hooks.
8119         (debug_nothing_uid): Remove prototype.
8120         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
8121         copy_call_info and virtual_call hooks.
8122         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8123         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
8124         * debug.c (do_nothing_debug_hooks): Likewise.
8125         (debug_nothing_uid): Remove.
8126         * doc/invoke.texi (-fenable-icf-debug): Remove.
8127         * common.opt (-fenable-icf-debug): Likewise.
8128
8129         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
8130         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
8131         call's MEM.  Handle functions returning aggregate through a hidden
8132         first pointer.  For virtual calls add clobbered pc to call arguments
8133         chain.
8134         * dwarf2out.c (gen_subprogram_die): Emit
8135         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
8136         can't be emitted.
8137
8138         PR debug/45882
8139         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
8140         * rtl.h (ENTRY_VALUE_EXP): Define.
8141         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
8142         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
8143         * print-rtl.c (print_rtx): Likewise.
8144         * gengtype.c (adjust_field_rtx_def): Likewise.
8145         * var-tracking.c (vt_add_function_parameter): Adjust
8146         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
8147         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
8148         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
8149         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
8150         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
8151
8152         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
8153         Call var_location debug hook even on CALL_INSNs.
8154         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
8155         * rtl.def (ENTRY_VALUE): New.
8156         * dwarf2out.c: Include cfglayout.h.
8157         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8158         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
8159         (struct call_arg_loc_node): New type.
8160         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
8161         tail_call_site_count): New variables.
8162         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
8163         DW_TAG_GNU_call_site_parameter.
8164         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
8165         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
8166         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
8167         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
8168         and DW_AT_GNU_all_source_call_sites.
8169         (mem_loc_descriptor): Handle ENTRY_VALUE.
8170         (add_src_coords_attributes): Don't add enything if
8171         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
8172         (dwarf2out_abstract_function): Save and clear call_arg_location,
8173         call_site_count and tail_call_site_count around dwarf2out_decl call.
8174         (gen_call_site_die): New function.
8175         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
8176         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
8177         (dwarf2out_function_decl): Clear call_arg_locations,
8178         call_arg_loc_last, set call_site_count and tail_call_site_count
8179         to -1 and free block_map.
8180         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
8181         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
8182         followed by any real instructions.
8183         (dwarf2out_begin_function): Set call_site_count and
8184         tail_call_site_count to 0.
8185         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
8186         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
8187         attempt to force a DIE for it and worst case remove the attribute.
8188         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
8189         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
8190         the decl itself.
8191         * var-tracking.c: Include tm_p.h.
8192         (vt_stack_adjustments): For calls call note_register_arguments.
8193         (argument_reg_set): New variable.
8194         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
8195         ensure the VALUE is resolved.
8196         (call_arguments): New variable.
8197         (prepare_call_arguments): New function.
8198         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
8199         (struct expand_loc_callback_data): Add ignore_cur_loc field.
8200         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
8201         always use the best expression.
8202         (vt_expand_loc): Add ignore_cur_loc argument.
8203         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
8204         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
8205         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
8206         note for all calls.
8207         (vt_add_function_parameter): Use cselib_lookup_from_insn.
8208         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
8209         argument.  Don't call cselib_preserve_only_values and
8210         cselib_reset_table.
8211         (note_register_arguments): New function.
8212         (vt_initialize): Compute argument_reg_set.  Call
8213         vt_add_function_parameters before processing basic blocks instead of
8214         afterwards.  For calls call prepare_call_arguments before calling
8215         cselib_process_insn.
8216         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
8217         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
8218         (var-tracking.o): Depend on $(TM_P_H).
8219         * cfglayout.h (insn_scope): New prototype.
8220         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
8221         * cfglayout.c (insn_scope): No longer static.
8222         * insn-notes.def (CALL_ARG_LOCATION): New.
8223         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
8224         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
8225         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
8226         nothing for DECL_EXTERNAL BLOCK_VARS.
8227
8228 2011-03-16  Alan Modra  <amodra@gmail.com>
8229
8230         PR target/45844
8231         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8232         create invalid offset address for vsx splat insn.
8233         * config/rs6000/predicates.md (splat_input_operand): New.
8234         * config/rs6000/vsx.md (vsx_splat_*): Use it.
8235
8236 2011-03-15  Xinliang David Li  <davidxl@google.com>
8237
8238         PR c/47837
8239         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
8240         (normalize_preds): New function.
8241         (is_use_properly_guarded): Normalize def predicates.
8242
8243 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8244
8245         PR target/46788
8246         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
8247         in the output template.
8248
8249 2011-03-15  Richard Guenther  <rguenther@suse.de>
8250
8251         PR middle-end/47650
8252         * tree-pretty-print.c (dump_function_declaration): Properly
8253         dump unprototyped and varargs function types.
8254
8255 2011-03-15  Richard Guenther  <rguenther@suse.de>
8256
8257         PR tree-optimization/13954
8258         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
8259         and friends.
8260
8261 2011-03-15  Richard Guenther  <rguenther@suse.de>
8262
8263         PR tree-optimization/48037
8264         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
8265         selects into BIT_FIELD_REFs.
8266         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8267         vector select.
8268
8269 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
8270
8271         PR tree-optimization/48129
8272         * builtins.c (fold_builtin_snprintf): Convert to type of
8273         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8274         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8275
8276 2011-03-15  Richard Guenther  <rguenther@suse.de>
8277
8278         PR tree-optimization/41490
8279         * tree-ssa-dce.c (propagate_necessity): Handle returns without
8280         value but with VUSE.
8281         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8282         return statements.
8283         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8284         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8285         * tree-tailcall.c (find_tail_calls): Ignore returns.
8286
8287 2011-03-15  Richard Guenther  <rguenther@suse.de>
8288
8289         PR middle-end/48031
8290         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8291         or variable-indexed array accesses when in gimple form.
8292
8293 2011-03-15  Richard Guenther  <rguenther@suse.de>
8294
8295         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
8296
8297 2011-03-15  Alan Modra  <amodra@gmail.com>
8298
8299         PR target/48032
8300         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8301         presume symbol_refs without a symbol_ref_decl are suitably
8302         aligned, nor other trees we may see here.  Handle anchor symbols.
8303         (legitimate_constant_pool_address_p): Comment.  Add mode param.
8304         Check cmodel=medium addresses.  Adjust all calls.
8305         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8306         creating cmodel=medium optimized access to locals.
8307         * config/rs6000/constraints.md (R): Pass QImode to
8308         legitimate_constant_pool_address_p.
8309         * config/rs6000/predicates.md (input_operand): Pass mode to
8310         legitimate_constant_pool_address_p.
8311         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8312         Update prototype.
8313
8314 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8315
8316         PR target/48053
8317         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8318         64-bit constants being loaded into registers other than GPRs such
8319         as loading 0 into a VSX register.
8320
8321 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8322
8323         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
8324
8325 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
8326
8327         PR middle-end/47917
8328         * builtins.c (fold_builtin_snprintf): New function.
8329         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8330         (fold_builtin_4): Likewise.
8331
8332         PR middle-end/38878
8333         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8334         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
8335         and C - X == X also strip nops from +/-/p+ operand.
8336         When optimizing -X == C, fold C to arg0's type.
8337
8338         PR debug/47946
8339         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
8340         emit it as add_AT_int instead of add_AT_unsigned.
8341
8342 2011-03-14  Tom Tromey  <tromey@redhat.com>
8343
8344         * unwind-dw2.c: Include sys/sdt.h if it exists.
8345         (_Unwind_DebugHook): Use STAP_PROBE2.
8346         * config.in, configure: Rebuild.
8347         * configure.ac: Check for sys/sdt.h.
8348
8349 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
8350
8351         * config/i386/i386.md (ROUND_FLOOR): New constant.
8352         (ROUND_CEIL): Ditto.
8353         (ROUND_TRUNC): Ditto.
8354         (ROUND_MXCSR): Ditto.
8355         (ROUND_NO_EXC): Ditto.
8356         (rint<mode>2): Use new defines instead of numerical constants.
8357         (floor<mode>2): Ditto.
8358         (ceil<mode>2): Ditto.
8359         (btrunc<mode>2): Ditto.
8360         * config/i386/i386-builtin-types.def: Define ROUND function type
8361         aliases.
8362         * config/i386/i386.c (enum ix86_builtins): Add
8363         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
8364         (struct builtin_description): Add
8365         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
8366         (ix86_expand_sse_round): New static function.
8367         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
8368         function types.
8369         (ix86_builtin_vectorized_function): Handle
8370         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8371
8372 2011-03-14  Tom Tromey  <tromey@redhat.com>
8373
8374         * c-parser.c (c_parser_asm_string_literal): Clear
8375         warn_overlength_strings.
8376
8377 2011-03-14  Tom Tromey  <tromey@redhat.com>
8378
8379         * c-parser.c (disable_extension_diagnostics): Save
8380         warn_overlength_strings.
8381         (restore_extension_diagnostics): Restore warn_overlength_strings.
8382
8383 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
8384
8385         * BASE-VER: Change to 4.7.0.
8386
8387 2011-03-14  Richard Guenther  <rguenther@suse.de>
8388
8389         PR middle-end/48098
8390         * tree.c (build_vector_from_val): Adjust assert to requirements
8391         and reality.
8392
8393 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
8394
8395         PR bootstrap/48102
8396         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
8397
8398 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
8399
8400         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
8401         terms of target_flags_explicit. Adjust copyright year.
8402
8403         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
8404         * config/rs6000/t-freebsd: New file. Add override for
8405         LIB2FUNCS_EXTRA.
8406
8407 2011-03-13  Chris Demetriou  <cgd@google.com>
8408
8409         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
8410         (-fno-diagnostics-show-option): this, to reflect current default.
8411         (-Werror=): Update text about -fno-diagnostics-show-option.
8412
8413 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
8414
8415         PR target/48053
8416         * config/rs6000/predicates.md (easy_vector_constant_add_self,
8417         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
8418         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
8419         mode is not V2DImode or V2DFmode.
8420         (vspltis_constant): Do not handle V2DImode and V2DFmode.
8421         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
8422         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
8423         registers to 0.
8424         (movdi_internal64): Likewise.
8425
8426 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
8427
8428         PR tree-optimization/47127
8429         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
8430         parameter.
8431         (set_cloog_options): Same.
8432         (scop_to_clast): Same.
8433         (print_clast_stmt): Do not call cloog_state_malloc and
8434         cloog_state_free.
8435         (print_generated_program): Same.
8436         (gloog): Same.
8437         * graphite-clast-to-gimple.h (cloog_state): Declared.
8438         (scop_to_clast): Adjust declaration.
8439         * graphite.c (cloog_state): Defined here.
8440         (graphite_initialize): Call cloog_state_malloc.
8441         (graphite_finalize): Call cloog_state_free.
8442
8443 2011-03-11  Jason Merrill  <jason@redhat.com>
8444
8445         * attribs.c (lookup_attribute_spec): Take const_tree.
8446         * tree.h: Adjust.
8447
8448 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
8449
8450         * config/sparc/sparc.c (sparc_option_override): Use
8451         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
8452
8453 2011-03-11  Richard Guenther  <rguenther@suse.de>
8454
8455         PR tree-optimization/48067
8456         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
8457         multiplication result will be only used once on the target
8458         stmt.
8459
8460 2011-03-11  Richard Guenther  <rguenther@suse.de>
8461
8462         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
8463
8464 2011-03-11  Richard Guenther  <rguenther@suse.de>
8465
8466         PR lto/48073
8467         * tree.c (find_decls_types_r): Do not walk types only reachable
8468         from IDENTIFIER_NODEs.
8469
8470 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
8471
8472         PR middle-end/48044
8473         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
8474         all vnode->force_output nodes as needed.
8475
8476 2011-03-11  Jason Merrill  <jason@redhat.com>
8477
8478         PR c++/48069
8479         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
8480         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
8481
8482 2011-03-11  Martin Jambor  <mjambor@suse.cz>
8483
8484         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
8485         cgraph_node.
8486
8487 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
8488
8489         PR tree-optimization/48063
8490         * ipa-inline.c (cgraph_decide_inlining): Don't try to
8491         inline functions called once if !tree_can_inline_p (node->callers).
8492
8493 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
8494
8495         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
8496         extra_objs.
8497         * config/score/score3.c: Delete.
8498         * config/score/score3.h: Delete.
8499         * config/score/mul-div.S: Delete.
8500         * config/score/sfp-machine.h: Add new file.
8501         * config/score/constraints.md: Add new file.
8502         * config/score/t-score-softfp: Add new file.
8503         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
8504         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
8505         (score7_extra_constraint): Delete.
8506         (score7_option_override): Remove unused code.
8507         * config/score/score.c: Remove score3 and score5 define and code.
8508         * config/score/score.h: Remove score3 and score5 define and code.
8509         * config/score/score.md: Remove score3 template and unusual insn.
8510         * config/score/score.opt: Remove score3 and score5 options.
8511
8512 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8513
8514         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
8515         when _HPUX_SOURCE is defined.
8516         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
8517
8518 2011-03-10  Jason Merrill  <jason@redhat.com>
8519
8520         PR c++/48029
8521         * stor-layout.c (layout_type): Don't set structural equality
8522         on arrays of incomplete type.
8523         * tree.c (type_hash_eq): Handle comparing them properly.
8524
8525 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
8526
8527         PR debug/48043
8528         * config/s390/s390.c (s390_delegitimize_address): Make sure the
8529         result mode matches original rtl mode.
8530
8531 2011-03-10  Nick Clifton  <nickc@redhat.com>
8532
8533         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
8534         (andsi3, andsi3_flags): Fix timings for three operand alternative.
8535
8536 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
8537
8538         PR rtl-optimization/47866
8539         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
8540         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
8541         if target wasn't scalar.
8542         * function.c (assign_stack_temp_for_type): Assert that neither
8543         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
8544         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
8545         macro.
8546         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
8547
8548 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8549
8550         * config/s390/s390-protos.h (s390_label_align): New prototype.
8551         * config/s390/s390.c (s390_label_align): New function.
8552         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
8553
8554 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
8555
8556         PR target/47755
8557         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
8558         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
8559         (output_vec_const_move): Ditto.
8560
8561 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
8562
8563         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
8564         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
8565         * config/mips/mips.c (mips_preferred_reload_class): Make static.
8566         Change 'rclass' argument and result type to reg_class_t.
8567         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8568
8569 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
8570
8571         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8572         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
8573         (TARGET_MEMORY_MOVE_COST): Define.
8574         (avr_register_move_cost, avr_memory_move_cost): New Functions.
8575
8576 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
8577
8578         PR debug/47881
8579         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
8580         removed anything.
8581
8582         PR tree-optimization/48022
8583         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
8584         for EQ/NE_EXPR.
8585
8586 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
8587
8588         PR debug/47991
8589         * var-tracking.c (find_use_val): Return NULL for
8590         cui->sets && cui->store_p BLKmode MEMs.
8591
8592 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
8593
8594         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
8595         Remove.
8596         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
8597         xstormy16_print_operand_address): Remove.
8598         * config/stormy16/stormy16.c (xstormy16_print_operand,
8599         xstormy16_print_operand_address): Make static.
8600         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8601
8602 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
8603
8604         PR target/47862
8605         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8606         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
8607         before definition.
8608
8609 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
8610
8611         PR bootstrap/48000
8612         * cfgloopmanip.c (fix_bb_placements): Return immediately
8613         if FROM is BASE_LOOP's header.
8614
8615 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
8616
8617         * gimplify.c (gimplify_function_tree): Fix building calls
8618         to __builtin_return_address.
8619
8620 2011-03-07  Alan Modra  <amodra@gmail.com>
8621
8622         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
8623         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
8624         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
8625         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
8626         return_mode args.
8627         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
8628         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
8629         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
8630         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
8631         * config/rs6000/rs6000.c
8632         (rs6000_elf_end_indicate_exec_stack): Rename to..
8633         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
8634         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
8635         (rs6000_file_start): ..here.
8636         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
8637         file scope variables.
8638         (call_ABI_of_interest): New function.
8639         (init_cumulative_args): Set above vars when function return value
8640         is a float, vector, or small struct.
8641         (rs6000_function_arg_advance_1): Likewise for function args.
8642         (rs6000_va_start): Set rs6000_passes_float if variable arg function
8643         references float args.
8644
8645 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
8646
8647         * doc/cfg.texi: Remove "See" before @ref.
8648         * doc/invoke.texi: Likewise.
8649
8650 2011-03-05  Jason Merrill  <jason@redhat.com>
8651
8652         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
8653
8654 2011-03-05  Anthony Green  <green@moxielogic.com>
8655
8656         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
8657
8658 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
8659
8660         PR rtl-optimization/47899
8661         * cfgloopmanip.c (fix_bb_placements): Fix first argument
8662         to flow_loop_nested_p when moving the loop upward.
8663
8664 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
8665
8666         PR target/47719
8667         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
8668
8669 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
8670
8671         PR tree-optimization/47967
8672         * ipa-cp.c (build_const_val): Return NULL instead of creating
8673         VIEW_CONVERT_EXPR for mismatching sizes.
8674         (ipcp_create_replace_map): Return NULL if build_const_val failed.
8675         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
8676         give up on versioning.
8677
8678 2011-03-05  Alan Modra  <amodra@gmail.com>
8679
8680         PR target/47986
8681         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8682         full cmodel medium/large lo_sum + high addresses.
8683
8684 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8685
8686         * config/s390/s390.c (s390_decompose_address): Reject non-literal
8687         pool references in UNSPEC_LTREL_OFFSET.
8688
8689 2011-03-04  Jan Hubicka  <jh@suse.cz>
8690
8691         PR lto/47497
8692         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
8693         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
8694         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
8695         Add node pointers.
8696         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
8697         cgraph_add_thunk): Add node pointers.
8698         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
8699         associated to right node.
8700         (input_node): Update use of cgraph_same_body_alias
8701         and cgraph_add_thunk.
8702
8703 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8704
8705         * config/i386/i386.opt (mprefer-avx128): New flag.
8706         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
8707         modes when the flag -mprefer-avx128 is on.
8708
8709 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
8710
8711         * dwarf2out.c (compare_loc_operands): Fix address handling.
8712
8713 2011-03-04  Alan Modra  <amodra@gmail.com>
8714
8715         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
8716
8717 2011-03-04  Richard Guenther  <rguenther@suse.de>
8718
8719         PR middle-end/47968
8720         * expmed.c (extract_bit_field_1): Prefer vector modes that
8721         vec_extract patterns can handle.
8722
8723 2011-03-04  Richard Guenther  <rguenther@suse.de>
8724
8725         PR middle-end/47975
8726         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
8727
8728 2011-03-04  Richard Henderson  <rth@redhat.com>
8729
8730         * explow.c (emit_stack_save): Remove 'after' parameter.
8731         (emit_stack_restore): Likewise.
8732         * expr.h: Update to match.
8733         * builtins.c, calls.c, stmt.c: Likewise.
8734         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
8735         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
8736         * function.c (expand_function_end): Insert the emit_stack_save
8737         sequence before parm_birth_insn instead of after.
8738
8739 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
8740
8741         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
8742         (ssse3_pmaddubsw128): Ditto.
8743         (ssse3_pmaddubsw): Ditto.
8744
8745 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
8746
8747         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
8748
8749 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
8750
8751         PR c/47963
8752         * gimplify.c (omp_add_variable): Only call omp_notice_variable
8753         on TYPE_SIZE_UNIT if it is a DECL.
8754
8755         PR debug/47283
8756         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
8757         first operand is not is_gimple_mem_ref_addr, try to fold it.
8758         If the operand still isn't is_gimple_mem_ref_addr, clear
8759         MEM_EXPR on op0.
8760
8761 2011-03-03  Richard Guenther  <rguenther@suse.de>
8762
8763         PR middle-end/47283
8764         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
8765         match comment.
8766         (refs_may_alias_p_1): For release branches return true if
8767         we are confused by our input.
8768
8769 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8770
8771         * config/s390/s390.c (s390_function_value): Rename to ...
8772         (s390_function_and_libcall_value): ... this.
8773         (s390_function_value): New function.
8774         (s390_libcall_value): New function.
8775         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
8776         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
8777         target macro definitions.
8778         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
8779
8780 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
8781
8782         * config/i386/freebsd64.h (CC1_SPEC): Define.
8783         * config/i386/linux64.h (CC1_SPEC): Define.
8784         * config/i386/x86-64.h (CC1_SPEC): Don't define.
8785
8786 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
8787
8788         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8789         Remove.
8790         * config/stormy16/stormy16.c: Include reload.h.
8791         (xstormy16_memory_move_cost): New function.
8792         (TARGET_MEMORY_MOVE_COST): Define.
8793
8794 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
8795
8796         PR rtl-optimization/47925
8797         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
8798         with side effects.  Remove the more-specific check for volatile asms.
8799
8800 2011-03-02  Alan Modra  <amodra@gmail.com>
8801
8802         PR target/47935
8803         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
8804         toc relative addresses for valid offsets.
8805
8806 2011-03-01  Richard Guenther  <rguenther@suse.de>
8807
8808         PR tree-optimization/47890
8809         * tree-vect-loop.c (get_initial_def_for_induction): Set
8810         related stmt properly.
8811
8812 2011-03-01  Richard Guenther  <rguenther@suse.de>
8813
8814         PR lto/47924
8815         * lto-streamer.c (lto_record_common_node): Also register
8816         the canonical type.
8817
8818 2011-03-01  Richard Guenther  <rguenther@suse.de>
8819
8820         PR lto/46911
8821         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8822         Do not stream DECL_ABSTRACT_ORIGIN.
8823         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8824         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8825         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8826         Do not stream DECL_ABSTRACT_ORIGIN.
8827         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8828         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8829
8830 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
8831
8832         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
8833         FUNCTION_VALUE_REGNO_P): Remove.
8834         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
8835         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
8836         Add 'outgoing' argument.
8837         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
8838         function.
8839         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8840         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8841
8842 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
8843
8844         PR debug/28047
8845         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
8846         (lookup_filename): Likewise.
8847         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
8848
8849 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
8850             Jakub Jelinek  <jakub@redhat.com>
8851
8852         PR middle-end/47893
8853         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
8854         (assign_stack_local_1): Change last argument type to int.
8855         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
8856         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
8857         don't record padding space into frame_space_list nor use those areas.
8858         (assign_stack_local): Adjust caller.
8859         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
8860         of assign_stack_local, pass 0 as last argument.
8861         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
8862         callers.
8863
8864 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
8865
8866         PR debug/47283
8867         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
8868         Use target address_mode and pointer_mode hooks instead of hardcoded
8869         Pmode and ptr_mode.  Handle some simple cases of extending if
8870         POINTERS_EXTEND_UNSIGNED < 0.
8871         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
8872         Call convert_debug_memory_address.
8873         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
8874         convert_debug_memory_address.
8875
8876         PR middle-end/46790
8877         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
8878         * configure: Regenerated.
8879         * config.in: Regenerated.
8880         * varasm.c (default_function_section): Return NULL
8881         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
8882
8883 2011-02-28  Martin Jambor  <mjambor@suse.cz>
8884
8885         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
8886         the description to match the printed values.
8887
8888 2011-02-28  Richard Guenther  <rguenther@suse.de>
8889
8890         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
8891         of the copied scope tree.
8892
8893 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8894
8895         * doc/extend.texi (Function Attributes): Avoid deeply (and
8896         wrongly) nested tables.
8897
8898 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
8899
8900         PR middle-end/47903
8901         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
8902         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
8903         r isn't op0 nor op1.
8904
8905 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
8906
8907         * config/avr/avr.md: Remove magic comment for emacs.
8908
8909 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
8910
8911         PR target/45261
8912         * config/avr/avr.c (avr_option_override): Use error on bad options.
8913         (avr_help): New function.
8914         (TARGET_HELP): Define.
8915
8916 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
8917
8918         PR target/42240
8919         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
8920         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
8921
8922 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
8923
8924         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
8925         (ARM Options): Ditto.
8926         (i386 and x86-64 Options): Ditto.
8927         (RX Options): Ditto.
8928         (SPARC Options): Ditto.
8929
8930 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
8931
8932         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
8933         FreeBSD 6 and later.  Generally use cpu generic.
8934
8935 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8936
8937         * doc/cpp.texi: Update copyright years.
8938
8939 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
8940
8941         PR target/46898
8942         * config/lm32/lm32.md (ashrsi3): Added needed variable.
8943
8944 2011-02-25  Jon Beniston  <jon@beniston.com>
8945
8946         PR target/46898
8947         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
8948         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
8949         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
8950         (lm32_block_move_inline): Add type cast to remove warning.
8951         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
8952         (gen_int_relational): Move declarations to start of function.
8953
8954 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8955
8956         PR tree-optimization/45470
8957         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
8958         can throw internally only.
8959         * tree-vect-stmts.c (vectorizable_call): Likewise.
8960
8961 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
8962
8963         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
8964         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8965         * config/stormy16/stormy16-protos.h
8966         (xstormy16_preferred_reload_class): Remove.
8967         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
8968         static. Change 'rclass' argument and return type to reg_class_t.
8969         (TARGET_PREFERRED_RELOAD_CLASS,
8970         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8971
8972 2011-02-24  Richard Guenther  <rguenther@suse.de>
8973
8974         * lto-streamer-in.c (input_bb): Do not find referenced vars
8975         in debug statements.
8976
8977 2011-02-23  Jason Merrill  <jason@redhat.com>
8978
8979         * common.opt (fabi-version): Document v5 and v6.
8980
8981 2011-02-23  Richard Guenther  <rguenther@suse.de>
8982
8983         PR tree-optimization/47849
8984         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
8985
8986 2011-02-23  Jie Zhang  <jie@codesourcery.com>
8987
8988         * opts-common.c (decode_cmdline_option): Print empty string
8989         argument as "" in decoded->orig_option_with_args_text.
8990         * gcc.c (execute): Print empty string argument as ""
8991         in the verbose output.
8992         (do_spec_1): Keep empty string argument.
8993
8994 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
8995
8996         * config.gcc: Declare score-* and crx-* obsolete.
8997
8998 2011-02-23  Jie Zhang  <jie@codesourcery.com>
8999
9000         PR rtl-optimization/47763
9001         * web.c (web_main): Ignore naked clobber when replacing register.
9002
9003 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
9004
9005         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9006         Remove.
9007
9008 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9009
9010         PR doc/47848
9011         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
9012
9013 2011-02-22  Mike Stump  <mikestump@comcast.net>
9014
9015         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
9016         assembler.
9017         * configure: Regenerate.
9018
9019 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
9020
9021         PR rtl-optimization/46002
9022         * ira-color.c (update_copy_costs): Change class intersection
9023         test to reg_class_contents[] test of 'hard_regno'.
9024
9025 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
9026
9027         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
9028         than Driver option.
9029         * config/hpux11.opt (mt): Likewise.
9030         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
9031         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
9032         * config/vax/elf.opt (mno-asm-pic): Likewise.
9033         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
9034
9035 2011-02-21  Mike Stump  <mikestump@comcast.net>
9036
9037         PR target/47822
9038         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
9039         tree so we can get save the type.
9040         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
9041         for CFString instead of trying to use past the end of the builtins.
9042         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
9043         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
9044         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
9045         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
9046         Rename to darwin_builtin_cfstring.
9047         (darwin_init_cfstring_builtins): Return the built type.
9048
9049 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
9050
9051         PR target/47840
9052         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
9053         (_mm256_insert_epi64): Use _mm_insert_epi64.
9054
9055 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
9056
9057         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9058         * config/stormy16/stormy16-protos.h
9059         (xstormy16_mode_dependent_address_p): Remove.
9060         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
9061         Make static. Change return type to bool. Change argument type to
9062         const_rtx. Remove dead code.
9063         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9064
9065 2011-02-21  Richard Guenther  <rguenther@suse.de>
9066
9067         PR lto/47820
9068         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9069         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9070         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
9071         TUs context.
9072         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9073         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9074
9075 2011-02-20  Richard Guenther  <rguenther@suse.de>
9076
9077         PR lto/47822
9078         * tree.c (free_lang_data_in_decl): Clean builtins from
9079         the TU decl BLOCK_VARS.
9080
9081 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
9082
9083         PR debug/47620
9084         PR debug/47630
9085         * haifa-sched.c (fix_tick_ready): Skip tick computation
9086         for debug insns.
9087
9088 2011-02-19  Richard Guenther  <rguenther@suse.de>
9089
9090         PR lto/47647
9091         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9092         Remove lazy BLOCK_VARS streaming.
9093         (lto_input_ts_block_tree_pointers): Likewise.
9094         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9095
9096 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
9097
9098         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
9099
9100 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
9101
9102         * config/i386/biarch32.h, config/i386/mach.h,
9103         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
9104
9105 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
9106
9107         PR target/47800
9108         * config/i386/i386.md (peephole2 for shift and plus): Use
9109         operands[1] original mode in the first insn.
9110
9111 2011-02-18  Mike Stump  <mikestump@comcast.net>
9112
9113         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
9114
9115 2011-02-18  Jan Hubicka  <jh@suse.cz>
9116
9117         PR middle-end/47788
9118         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
9119         to zero when the function is not inlinable at all.
9120
9121 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9122
9123         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
9124         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9125         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
9126         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
9127         * config/pa/t-pa64: Likewise.
9128         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9129
9130 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
9131
9132         PR driver/47787
9133         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
9134
9135 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9136
9137         PR target/47792
9138         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
9139
9140 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
9141
9142         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9143         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
9144         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
9145         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9146         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
9147         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
9148         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
9149         m32r_load_postinc_p, m32r_store_preinc_predec_p,
9150         m32r_legitimate_address_p): New functions.
9151         * config/m32r/constraints.md (constraint "S"): Don't use
9152         STORE_PREINC_PREDEC_P.
9153         (constraint "U"): Don't use LOAD_POSTINC_P.
9154
9155 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
9156
9157         PR rtl-optimization/46178
9158         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
9159         compute ira_hard_regno_cover_class[].
9160
9161 2011-02-18  Richard Guenther  <rguenther@suse.de>
9162
9163         PR lto/47798
9164         * lto-streamer.h (lto_global_var_decls): Declare.
9165         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
9166         statics for global var processing.
9167
9168 2011-02-18  Richard Guenther  <rguenther@suse.de>
9169
9170         PR tree-optimization/47737
9171         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
9172         edge dominance check.
9173
9174 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
9175
9176         PR debug/47780
9177         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
9178         avoid invalid rtx sharing.
9179
9180 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
9181
9182         * doc/cpp.texi (Obsolete Features): Add background on the
9183         origin of assertions.
9184
9185 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
9186
9187         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
9188         objc_abi == 2.
9189         * config/darwin.c (output_objc_section_asm_op): Added support for
9190         ABI v1 and v2.
9191         (is_objc_metadata): New.
9192         (darwin_objc2_section): New.
9193         (darwin_objc1_section): New.
9194         (machopic_select_section): Added support for ABI v1 and v2.
9195         (darwin_emit_objc_zeroed): New.
9196         (darwin_output_aligned_bss): Detect objc metadata and treat it
9197         appropriately.
9198         (darwin_asm_output_aligned_decl_common): Same.
9199         (darwin_asm_output_aligned_decl_local): Same.
9200         * config/darwin-sections.def: Updated for ABI v1 and v2.
9201         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
9202         compiling Objective-C code for the NeXT runtime, default to using
9203         ABI version 0 for 32-bit, and version 2 for 64-bit.
9204
9205 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
9206
9207         * common.opt (optimize_fast): New Variable.
9208         * opts.c (default_options_optimization): Use opts->x_optimize_fast
9209         instead of local variable ofast.
9210
9211 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9212
9213         * doc/invoke.texi (fobjc-abi-version): Documented.
9214         (fobjc-nilcheck): Documented.
9215         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
9216         version.
9217
9218 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
9219
9220         PR driver/47390
9221         * common.opt (export-dynamic): New Driver option.
9222         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
9223
9224 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
9225
9226         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
9227
9228 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
9229             Jan Hubicka  <jh@suse.cz>
9230
9231         PR debug/47106
9232         PR debug/47402
9233         * cfgexpand.c (account_used_vars_for_block): Remove.
9234         (estimated_stack_frame_size): Use referenced vars.
9235         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
9236         that were referenced in the original function.  Test src_fn
9237         rather than cfun.  Drop redundant get_var_ann.
9238         (setup_one_parameter): Drop redundant get_var_ann.
9239         (declare_return_variable): Likewise.
9240         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
9241         (copy_arguments_for_versioning): Drop redundant get_var_ann.
9242         * ipa-inline.c (compute_inline_parameters): Do not compute
9243         disregard_inline_limits here.
9244         (compute_inlinable_for_current, pass_inlinable): New.
9245         (pass_inline_parameters): Require PROP_referenced_vars.
9246         * cgraphunit.c (cgraph_process_new_functions): Don't run
9247         compute_inline_parameters explicitly unless function is in SSA form.
9248         (cgraph_analyze_function): Set .disregard_inline_limits.
9249         * tree-sra.c (convert_callers): Compute inliner parameters
9250         only for functions already in SSA form.
9251
9252 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
9253
9254         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
9255         -mlittle-endian-data.
9256
9257 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
9258
9259         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
9260         -mno-fpu, not -fpu and -no-fpu.
9261         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
9262         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
9263
9264 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
9265
9266         PR target/43653
9267         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9268         input reload with PLUS RTX.
9269
9270 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9271
9272         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9273         of InverseVar(MDMX).
9274
9275 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9276
9277         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9278         --m4-340.
9279
9280 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9281
9282         * config/mn10300/mn10300.opt (mno-crt0): New.
9283
9284 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9285
9286         * config/m68k/uclinux.opt (static-libc): New Driver option.
9287
9288 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9289
9290         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9291
9292 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
9293
9294         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9295         %{muser-extend-enabled}.
9296
9297 2011-02-16  Richard Guenther  <rguenther@suse.de>
9298
9299         PR tree-optimization/47738
9300         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9301         the TODO from tree_predictive_commoning.
9302
9303 2011-02-15  Jeff Law  <law@redhat.com>
9304
9305         Revert
9306         2011-01-25  Jeff Law  <law@redhat.com>
9307
9308         PR rtl-optimization/37273
9309         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9310         handle them like argument loads from stack slots.  Do not double
9311         count memory for memory constants and argument loads from stack slots.
9312
9313 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9314
9315         PR middle-end/47725
9316         * combine.c (cant_combine_insn_p): Revert the last change.
9317
9318 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
9319
9320         PR target/47755
9321         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9322         mode for vector constants.  Remove code that checks for TImode.
9323
9324 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
9325
9326         PR debug/47106
9327         PR debug/47402
9328         * cgraph.h (compute_inline_parameters): Return void.
9329         * ipa-inline.c (compute_inline_parameters): Adjust.
9330
9331 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
9332
9333         PR debug/47106
9334         PR debug/47402
9335         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
9336         rather than decl.
9337         * cfgexpand.c (estimated_stack_frame_size): Likewise.
9338         * ipa-inline.c (compute_inline_parameters): Adjust.
9339
9340 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
9341
9342         PR debug/47106
9343         PR debug/47402
9344         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
9345         Adjust all users.  Pass FN to...
9346         * tree-flow-inline.h (first_referenced_var): ... this.  Add
9347         fn argument.
9348         * ipa-struct-reorg.c: Adjust.
9349         * tree-dfa.c: Adjust.
9350         * tree-into-ssa.c: Adjust.
9351         * tree-sra.c: Adjust.
9352         * tree-ssa-alias.c: Adjust.
9353         * tree-ssa-live.c: Adjust.
9354         * tree-ssa.c: Adjust.
9355         * tree-ssanames.c: Adjust.
9356         * tree-tailcall.c: Adjust.
9357
9358 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
9359
9360         PR debug/47106
9361         PR debug/47402
9362         * tree-flow.h (referenced_var_lookup): Add fn parameter.
9363         Adjust all callers.
9364         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
9365         * tree-flow-inline.h: Adjust.
9366         * gimple-pretty-print.c: Adjust.
9367         * tree-into-ssa.c: Adjust.
9368         * tree-ssa.c: Adjust.
9369         * cfgexpand.c: Adjust.
9370
9371 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
9372
9373         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
9374         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9375         (EXTRA_CONSTRAINT): Delete.
9376         * config/iq2000/constraints.md: New file.
9377         * config/iq2000/iq2000.md: Include it.
9378         (define_insn ""): Delete.
9379         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
9380         unsupported constraint letters from patterns.
9381         (call_value, call_value_internal1): Likewise.
9382         (call_value_multiple_internal1): Likewise.
9383
9384 2011-02-15  Nick Clifton  <nickc@redhat.com>
9385
9386         * config/mn10300/mn10300.c: Include tm-constrs.h.
9387         (struct liw_data): New data structure describing an LIW candidate
9388         instruction.
9389         (extract_bundle): Use struct liw_data.  Allow small integer
9390         operands for some instructions.
9391         (check_liw_constraints): Use struct liw_data.  Remove swapped
9392         parameter.  Add comments describing the checks.  Fix bug when
9393         assigning the source of liw1 to the source of liw2.
9394         (liw_candidate): Delete.  Code moved into extract_bundle.
9395         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
9396         before swapping.
9397         * config/mn10300/predicates.md (liw_operand): New predicate.
9398         Allows registers and small integer constants.
9399         * config/mn10300/constraints.md (O): New constraint.  Accetps
9400         integers in the range -8 to +7 inclusive.
9401         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
9402         for moving a small integer into a register.  Give this alternative
9403         LIW attributes.
9404         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
9405         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
9406         using the J,K,L and M constraints,
9407         (liw): Remove SI mode on second operands to allow for HI and QI
9408         mode values.
9409         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
9410         instruction.
9411
9412 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9413
9414         PR middle-end/47725
9415         * combine.c (cant_combine_insn_p): Check zero/sign extended
9416         hard registers.
9417
9418 2011-02-15  Richard Guenther  <rguenther@suse.de>
9419
9420         PR tree-optimization/47743
9421         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
9422         for a non-type-compatible VN lookup bail out.
9423
9424 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
9425
9426         * config/fr30/constraints.md: New file.
9427         * config/fr30/fr30.md: Include it.
9428         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
9429         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9430         (EXTRA_CONSTRAINT): Delete.
9431
9432 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
9433
9434         * config/frv/constraints.md: New file.
9435         * config/frv/predicates.md: Include it.
9436         * config/frv/frv.c (reg_class_from_letter): Delete.
9437         (frv_option_override): Don't initialize it.
9438         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
9439         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
9440         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
9441         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9442         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
9443         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9444         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
9445         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
9446         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
9447         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
9448         (REG_CLASS_FROM_CONSTRAINT): Delete.
9449
9450 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
9451
9452         PR middle-end/47581
9453         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
9454         if frame size is 0 in a leaf function.
9455
9456 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9457
9458         PR pch/14940
9459         * config/alpha/host-osf.c: New file.
9460         * config/alpha/x-osf: New file.
9461         * config.host (alpha*-dec-osf*): Use it.
9462
9463 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
9464
9465         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9466         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
9467         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
9468         (rx_mode_dependent_address_p): ...this. Make static. Change argument
9469         type to const_rtx.
9470         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9471
9472 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
9473
9474         * config/stormy16/constraints.md: New file.
9475         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
9476         Use satisfies_constraint_Q and satisfies_constraint_R.
9477         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
9478         Delete.
9479         (xstormy16_legitiamte_address_p): Declare.
9480         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
9481         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9482         (EXTRA_CONSTRAINT): Delete.
9483         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
9484         Un-staticize.
9485         (xstormy16_extra_constraint_p): Delete.
9486
9487 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
9488
9489         PR tree-optimization/46494
9490         * loop-unroll.c (split_edge_and_insert): Adjust comment.
9491         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
9492         (pass_rtl_loop_done): Add TODO_verify_flow.
9493         * fwprop.c (pass_rtl_fwprop): Likewise.
9494         * modulo-sched.c (pass_sms): Likewise.
9495         * tree-ssa-dom.c (pass_dominator): Likewise.
9496         * tree-ssa-loop-ch.c (pass_ch): Likewise.
9497         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
9498         (pass_tree_loop_done): Likewise.
9499         * tree-ssa-pre.c (execute_pre): Likewise.
9500         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9501         * tree-ssa-sink.c (pass_sink_code): Likewise.
9502         * tree-vrp.c (pass_vrp): Likewise.
9503
9504 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
9505
9506         * config/v850/constraints.md: New file.
9507         * config/v850/v850.md: Include it.
9508         * config/v850/predicates.md (reg_or_0_operand): Use
9509         satisfies_constraint_G.
9510         (special_symbolref_operand): Use satisfies_constraint_K.
9511         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
9512         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9513         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
9514         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9515         (EXTRA_CONSTRAINT): Delete.
9516         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
9517         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
9518         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
9519
9520 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
9521
9522         PR target/47696
9523         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
9524         description.
9525
9526 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
9527
9528         * config/mcore/constraints.md: New file.
9529         * config/mcore/mcore.md: Include it.
9530         * config/mcore/mcore.c (reg_class_from_letter): Delete.
9531         * config/mcore/mcore.h (reg_class_from_letter): Delete.
9532         (REG_CLASS_FROM_LETTER): Delete.
9533         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
9534         insn_const_int_ok_for_constraint.
9535         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
9536         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
9537         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9538         (EXTRA_CONSTRAINT): Delete.
9539
9540 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9541
9542         PR ada/41929
9543         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
9544         (IS_SIGHANDLER): Define.
9545         (sparc64_is_sighandler): New function, split off from
9546         sparc64_fallback_frame_state.
9547         (sparc_is_sighandler): New function, split off from
9548         sparc_fallback_frame_state.
9549         (sparc64_fallback_frame_state): Merge with ...
9550         (sparc_fallback_frame_state): ... this into ...
9551         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
9552         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
9553         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
9554         stack instead of hardcoded offsets.
9555
9556 2011-02-14  Andriy Gapon  <avg@freebsd.org>
9557
9558         PR target/45808
9559         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
9560
9561 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9562
9563         * configure: Regenerate.
9564
9565 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
9566
9567         PR driver/45731
9568         * gcc.c (asm_options): Correct spec matching --target-help.
9569
9570 2011-02-12  Martin Jambor  <mjambor@suse.cz>
9571
9572         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
9573         to gimple call error.
9574
9575 2011-02-12  Mike Stump  <mikestump@comcast.net>
9576
9577         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
9578         comments in backslash regions.
9579
9580 2011-02-12  Mike Stump  <mikestump@comcast.net>
9581             Jakub Jelinek  <jakub@redhat.com>
9582             Iain Sandoe  <iains@gcc.gnu.org>
9583
9584         PR target/47324
9585         * dwarf2out.c (output_cfa_loc): When required, apply the
9586         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
9587         (output_loc_sequence): Likewise.
9588         (output_loc_operands_raw): Likewise.
9589         (output_loc_sequence_raw): Likewise.
9590         (output_cfa_loc): Likewise.
9591         (output_loc_list): Suppress register number adjustment when
9592         calling output_loc_sequence()
9593         (output_die): Likewise.
9594
9595 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
9596
9597         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9598         Remove macros.
9599         * config/xtensa/xtensa.c (xtensa_register_move_cost,
9600         xtensa_memory_move_cost): New functions.
9601         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
9602
9603 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
9604
9605         PR lto/47225
9606         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
9607         in the current directory.
9608         * configure: Rebuilt.
9609
9610 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
9611
9612         * config/darwin.c (darwin_override_options): Add a hunk missed
9613         from the commit of r168571.  Trim comment line lengths and
9614         correct indents of the preceding block.
9615
9616 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
9617
9618         * gcc.c (driver_handle_option): Concatenate the argument to -F with
9619         the switch.
9620
9621 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
9622
9623         * common.opt (nostartfiles): New Driver option.
9624
9625 2011-02-11  Xinliang David Li  <davidxl@google.com>
9626
9627         PR tree-optimization/47707
9628         * tree-chrec.c (convert_affine_scev): Keep type precision.
9629
9630 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
9631
9632         PR tree-optimization/47420
9633         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
9634
9635 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
9636
9637         PR rtl-optimization/47614
9638         * rtl.h (check_for_inc_dec): Declare.
9639         * dse.c (check_for_inc_dec): Externalize...
9640         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
9641         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
9642
9643 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
9644
9645         PR driver/47678
9646         * gcc.c (main): Do not compile inputs if there were errors in
9647         option handling.
9648         * opts-common.c (read_cmdline_option): Check for wrong language
9649         after other error checks.
9650
9651 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
9652
9653         * cgraph.c: Fix comment typos.
9654         * cgraph.h: Likewise.
9655         * cgraphunit.c: Likewise.
9656         * ipa-cp.c: Likewise.
9657         * ipa-inline.c: Likewise.
9658         * ipa-prop.c: Likewise.
9659         * ipa-pure-const.c: Likewise.
9660         * ipa-ref.c: Likewise.
9661         * ipa-reference.c: Likewise.
9662
9663 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR debug/47684
9666         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
9667
9668 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9669
9670         PR testsuite/47400
9671         * doc/sourcebuild.texi (Require Support): Document
9672         dg-require-ascii-locale.
9673
9674 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
9675
9676         * doc/lto.texi (Write summary): Fix missing parentheses.
9677
9678 2011-02-10  DJ Delorie  <dj@redhat.com>
9679
9680         * config/m32c/m32c.c (m32c_option_override): Disable
9681         -fcombine-stack-adjustments until flag value tracking and compare
9682         optimization can be rewritten.
9683
9684 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
9685
9686         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
9687         PROCESSOR_POWER7.
9688         (PROCESSOR_DEFAULT64): Likewise.
9689
9690 2011-02-10  Richard Henderson  <rth@redhat.com>
9691
9692         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
9693         change from 2011-02-03.
9694         * config/rx/rx.c (flags_from_code): Likewise.
9695         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
9696         is valid, n/pz otherwise.
9697         (rx_select_cc_mode): Return CCmode if Y is not zero.
9698
9699 2011-02-10  Richard Guenther  <rguenther@suse.de>
9700
9701         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
9702
9703 2011-02-10  Richard Guenther  <rguenther@suse.de>
9704
9705         PR tree-optimization/47677
9706         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
9707
9708 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
9709
9710         PR target/47665
9711         * combine.c (make_compound_operation): Only change shifts into
9712         multiplication for SCALAR_INT_MODE_P.
9713
9714 2011-02-10  Jie Zhang  <jie@codesourcery.com>
9715
9716         PR testsuite/47622
9717         Revert
9718         2011-02-05  Jie Zhang  <jie@codesourcery.com>
9719         PR debug/42631
9720         * web.c (entry_register): Don't clobber the number of the
9721         first uninitialized reference in used[].
9722
9723 2011-02-09  Richard Guenther  <rguenther@suse.de>
9724
9725         PR tree-optimization/47664
9726         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
9727         all edges again.
9728
9729 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
9730
9731         PR target/46481
9732         PR target/47032
9733         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
9734         PROCESSOR_POWER7.
9735         (PROCESSOR_DEFAULT64): Same.
9736         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
9737
9738 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9739
9740         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
9741
9742 2011-02-09  Martin Jambor  <mjambor@suse.cz>
9743
9744         PR middle-end/45505
9745         * tree-sra.c (struct access): New flags grp_scalar_read and
9746         grp_scalar_write.  Changed description of assignment read and write
9747         flags.
9748         (dump_access): Dump new flags, reorder all of them.
9749         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
9750         to detect multiple scalar reads.
9751         (analyze_access_subtree): Use the new scalar read write flags instead
9752         of the old flags.  Adjusted comments.
9753
9754 2011-02-08  DJ Delorie  <dj@redhat.com>
9755
9756         PR target/47548
9757         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
9758         patterns.
9759
9760 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9761
9762         * config/m68k/uclinux.opt: New.
9763         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
9764
9765 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9766
9767         * config/cris/elf.opt (sim): New Driver option.
9768
9769 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9770
9771         * config/xtensa/elf.opt: New.
9772         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
9773
9774 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9775
9776         * config/vax/elf.opt: New.
9777         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
9778
9779 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9780
9781         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
9782
9783 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9784
9785         * config/gnu-user.opt: New.
9786         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
9787         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
9788         *-*-uclinux*): Use gnu-user.opt.
9789
9790 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
9791
9792         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
9793         * config/i386/gnu.h (CPP_SPEC): Likewise.
9794
9795 2011-02-08  Ian Lance Taylor  <iant@google.com>
9796
9797         * common.opt (fcx-limited-range): Add SetByCombined flag.
9798         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
9799         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
9800         (fassociative-math, freciprocal-math): Likewise.
9801         (funsafe-math-optimizations): Likewise.
9802         * opth-gen.awk: Handle SetByCombined.
9803         * optc-gen.awk: Likewise.
9804         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
9805         (set_unsafe_math_optimizations_flags): Likewise.
9806         * doc/options.texi (Option properties): Document SetByCombined.
9807
9808 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
9809
9810         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
9811         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
9812         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
9813         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
9814         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
9815
9816 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
9817
9818         PR tree-optimization/46834
9819         PR tree-optimization/46994
9820         PR tree-optimization/46995
9821         * graphite-sese-to-poly.c (used_outside_reduction): New.
9822         (detect_commutative_reduction): Call used_outside_reduction.
9823         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
9824         translate_scalar_reduction_to_array only when at least one
9825         loop-phi/close-phi tuple has been detected.
9826
9827 2011-02-08  Richard Guenther  <rguenther@suse.de>
9828
9829         PR middle-end/47639
9830         * tree-vect-generic.c (expand_vector_operations_1): Update
9831         stmts here ...
9832         (expand_vector_operations): ... not here.  Cleanup EH info
9833         and the CFG if required.
9834
9835 2011-02-08  Richard Guenther  <rguenther@suse.de>
9836
9837         PR tree-optimization/47641
9838         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
9839         require type compatibility.
9840
9841 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9842
9843         * gimple-low.c (lower_function_body): Don't remove the location of
9844         the return statement here.
9845         (lower_gimple_return): Do it here instead but only if the return
9846         statement is actually used twice.
9847
9848 2011-02-08  Richard Guenther  <rguenther@suse.de>
9849
9850         PR tree-optimization/47632
9851         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
9852         unused up_to_stmt parameter, return whether cfg-cleanup is
9853         necessary, remove EH info properly.
9854         (forward_propagate_into_gimple_cond): Adjust caller.
9855         (forward_propagate_into_cond): Likewise.
9856         (forward_propagate_comparison): Likewise.
9857         (tree_ssa_forward_propagate_single_use_vars): Make
9858         forward_propagate_comparison case similar to the two others.
9859
9860 2011-02-08  Nick Clifton  <nickc@redhat.com>
9861
9862         * config/mn10300/mn10300.opt (mliw): New command line option.
9863         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
9864         (liw_bundling): New automaton.
9865         (liw): New attribute.
9866         (liw_op): New attribute.
9867         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
9868         (movsi_internal): Add LIW attributes.
9869         (andsi3): Likewise.
9870         (iorsi3): Likewise.
9871         (xorsi3): Likewise.
9872         (addsi3): Separate register and immediate alternatives.
9873         Add LIW attributes.
9874         (subsi3): Likewise.
9875         (cmpsi): Likewise.
9876         (aslsi3): Likewise.
9877         (lshrsi3): Likewise.
9878         (ashrsi3): Likewise.
9879         (liw): New pattern.
9880         * config/mn10300/mn10300.c (liw_op_names): New
9881         (mn10300_print_operand): Handle 'W' operand descriptor.
9882         (extract_bundle): New function.
9883         (check_liw_constraints): New function.
9884         (liw_candidate): New function.
9885         (mn10300_bundle_liw): New function.
9886         (mn10300_reorg): New function.
9887         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9888         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
9889         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
9890         __LIW__ or __NO_LIW__.
9891         * doc/invoke.texi: Describe the -mliw command line option.
9892
9893 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9894
9895         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
9896         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9897         pthread_mutex_unlock): Remove.
9898         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
9899         * config/pa/t-pa64: Likewise.
9900         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
9901         shared libc if not linking against libpthread.
9902         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9903
9904 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
9905
9906         PR target/47558
9907         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
9908         on 10.6 and later to ensure that we always use the unwinder from
9909         the system.  Only add -no_compact_unwind when tarteting darwin
9910         10.6 or later.
9911
9912 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
9913
9914         PR target/46997
9915         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
9916         (vec_interleave_lowv2sf): Ditto.
9917         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
9918         (vec_extract_oddv2sf): Ditto.
9919
9920 2011-02-07  Mike Stump  <mikestump@comcast.net>
9921
9922         PR target/42333
9923         Add __ieee_divdc3 entry point.
9924         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
9925         entry point.
9926         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
9927         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
9928         * config/darwin.c (darwin_rename_builtins): Add.
9929         * config/darwin-protos.h (darwin_rename_builtins): Add.
9930
9931 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
9932
9933         PR target/47636
9934         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
9935         for the condition.
9936
9937 2011-02-07  Mike Stump  <mikestump@comcast.net>
9938
9939         * config/darwin.opt (mmacosx-version-min): Update default OS version.
9940
9941 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
9942
9943         PR target/47534
9944         * config/avr/libgcc.S (exit): Move .endfunc
9945
9946 2011-02-07  Richard Guenther  <rguenther@suse.de>
9947
9948         PR tree-optimization/47615
9949         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
9950         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
9951         (run_scc_vn): Initialize it.
9952         (visit_reference_op_load): Use it.
9953         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
9954
9955 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9956
9957         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
9958         DImode trapping arithmetic libfuncs.
9959
9960 2011-02-07  Richard Guenther  <rguenther@suse.de>
9961
9962         PR tree-optimization/47621
9963         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
9964         two duplicates ...
9965         (execute_update_addresses_taken): ... here.  Make it more
9966         conservative in what we accept.
9967
9968 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
9969
9970         * config/sparc/freebsd.h (ASM_SPEC): Define.
9971         * config/sparc/vxworks.h (ASM_SPEC): Define.
9972
9973 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
9974
9975         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9976
9977 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
9978
9979         * doc/invoke.texi: Remove reference to compiler internals from
9980         user documentation.
9981
9982         * reg-notes.def: Remove REG_VALUE_PROFILE.
9983         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
9984
9985 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
9986
9987         PR middle-end/47610
9988         * varasm.c (default_section_type_flags): If decl is NULL,
9989         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
9990
9991 2011-02-05  Jie Zhang  <jie@codesourcery.com>
9992
9993         PR debug/42631
9994         * web.c (entry_register): Don't clobber the number of the
9995         first uninitialized reference in used[].
9996
9997 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
9998
9999         PR tree-optimization/46194
10000         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
10001         (build_classic_dist_vector_1): Do not represent classic distance
10002         vectors when the access functions are variating in different loops.
10003
10004 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
10005
10006         * config/mips/iris6.opt: New.
10007         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
10008
10009 2011-02-04  Richard Henderson  <rth@redhat.com>
10010             Steve Ellcey  <sje@cup.hp.com>
10011
10012         PR target/46997
10013         * config/ia64/predicates.md (mux1_brcst_element): New.
10014         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
10015         * config/ia64/ia64.c (ia64_unpack_assemble): New.
10016         (ia64_unpack_sign): New.
10017         (ia64_expand_unpack): Rewrite using new routines.
10018         (ia64_expand_widen_sum): Ditto.
10019         (ia64_expand_dot_prod_v8qi): Ditto.
10020         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
10021         routines, add endian check.
10022         (pmpy2_even): Rename from pmpy2_r, add endian check.
10023         (pmpy2_odd): Rename from pmpy2_l, add endian check.
10024         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
10025         (vec_widen_smult_hi_v4hi): Ditto.
10026         (vec_widen_umult_lo_v4hi): Ditto.
10027         (vec_widen_umult_hi_v4hi): Ditto.
10028         (mulv2si3): Change endian checks.
10029         (sdot_prodv4hi): Rewrite with new calls.
10030         (udot_prodv4hi): New.
10031         (vec_pack_ssat_v4hi): Add endian check.
10032         (vec_pack_usat_v4hi): Ditto.
10033         (vec_pack_ssat_v2si): Ditto.
10034         (max1_even): Rename from max1_r, add endian check.
10035         (max1_odd): Rename from max1_l, add endian check.
10036         (*mux1_rev): Format change.
10037         (*mux1_mix): Ditto.
10038         (*mux1_shuf): Ditto.
10039         (*mux1_alt): Ditto.
10040         (*mux1_brcst_v8qi): Use new predicate.
10041         (vec_extract_evenv8qi): Remove endian check.
10042         (vec_extract_oddv8qi): Ditto.
10043         (vec_interleave_lowv4hi): Format change.
10044         (vec_interleave_highv4hi): Ditto.
10045         (mix2_even): Rename from mix2_r, add endian check.
10046         (mix2_odd): Rename from mux2_l, add endian check.
10047         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
10048         (vec_extract_evenodd_helper): Format change.
10049         (vec_extract_evenv4hi): Remove endian check.
10050         (vec_extract_oddv4hi): Remove endian check.
10051         (vec_interleave_lowv2si): Format change.
10052         (vec_interleave_highv2si): Format change.
10053         (vec_initv2si): Remove endian check.
10054         (vecinit_v2si): Add endian check.
10055         (reduc_splus_v2sf): Add endian check.
10056         (reduc_smax_v2sf): Ditto.
10057         (reduc_smin_v2sf): Ditto.
10058         (vec_initv2sf): Remove endian check.
10059         (fpack): Add endian check.
10060         (fswap): Add endian check.
10061         (vec_interleave_highv2sf): Add endian check.
10062         (vec_interleave_lowv2sf): Add endian check.
10063         (fmix_lr): Add endian check.
10064         (vec_setv2sf): Format change.
10065         (*vec_extractv2sf_0_be): Use shift to extract operand.
10066         (*vec_extractv2sf_1_be): New.
10067         (vec_pack_trunc_v4hi): Add endian check.
10068         (vec_pack_trunc_v2si): Format change.
10069
10070 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
10071
10072         PR inline-asm/23200
10073         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
10074         do bb, locus and block comparison and disallow loads if it is not set.
10075         (stmt_is_replaceable_p): New function.
10076         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
10077         callers.
10078         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
10079         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
10080         SSA_NAME_DEF_STMT.
10081         * tree-flow.h (stmt_is_replaceable_p): New prototype.
10082
10083 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
10084
10085         * config/rs6000/xilinx.opt: New.
10086         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
10087
10088 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
10089
10090         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
10091
10092 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
10093
10094         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
10095         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10096         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
10097         secondary_reload_info, xtensa_secondary_reload): Remove.
10098         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
10099         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10100         (xtensa_preferred_reload_class): Make static. Change return and
10101         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
10102         Use CONST_DOUBLE_P predicate.
10103         (xtensa_preferred_output_reload_class): New function.
10104         (xtensa_secondary_reload): Make static.
10105
10106 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
10107
10108         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
10109         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
10110         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
10111
10112 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
10113
10114         PR middle-end/31490
10115         * output.h (SECTION_RELRO): Define.
10116         (SECTION_MACH_DEP): Adjust.
10117         (get_variable_section): New prototype.
10118         * varpool.c (varpool_finalize_named_section_flags): New function.
10119         (varpool_assemble_pending_decls): Call it.
10120         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
10121         * cgraphunit.c (cgraph_output_in_order): Call
10122         varpool_finalize_named_section_flags.
10123         * varasm.c (get_section): Allow section flags conflicts between
10124         relro and read-only sections if the section hasn't been declared yet.
10125         Set SECTION_OVERRIDE after diagnosing section type conflict.
10126         (get_variable_section): No longer static.
10127         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
10128         readonly sections that need relocations.
10129         (decl_readonly_section_1): New function.
10130         (decl_readonly_section): Use it.
10131
10132         Revert:
10133         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
10134                     Steve Ellcey  <sje@cup.hp.com>
10135
10136         PR middle-end/31490
10137         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
10138         if section attribute used.
10139
10140 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
10141
10142         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
10143         * config/darwin.c (SECTION_NO_ANCHOR): Define.
10144         (darwin_init_sections): Remove assertion.
10145
10146 2011-02-03  Nick Clifton  <nickc@redhat.com>
10147
10148         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
10149         lt and ge.
10150         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
10151         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
10152         instead of "n" and "pz".
10153         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
10154         CC_FLAG_S.
10155
10156 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
10157
10158         PR target/47312
10159         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
10160         fma, expand FMA_EXPR as fma{,f,l} call.
10161
10162         PR lto/47274
10163         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
10164         copy them into a unsigned char variable and pass address of it to
10165         lto_output_data_stream.
10166
10167         PR target/47564
10168         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
10169         around backend_init_target and lang_dependent_init_target calls.
10170         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
10171         (verify_cgraph_node): Don't call set_cfun here.  Use
10172         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
10173         Set error_found for incorrectly represented calls to thunks.
10174
10175 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
10176
10177         PR debug/43092
10178         PR rtl-optimization/43494
10179         * rtl.h (for_each_inc_dec_fn): New type.
10180         (for_each_inc_dec): Declare.
10181         * rtlanal.c (struct for_each_inc_dec_ops): New type.
10182         (for_each_inc_dec_find_inc_dec): New fn.
10183         (for_each_inc_dec_find_mem): New fn.
10184         (for_each_inc_dec): New fn.
10185         * dse.c (struct insn_size): Remove.
10186         (replace_inc_dec, replace_inc_dec_mem): Remove.
10187         (emit_inc_dec_insn_before): New fn.
10188         (check_for_inc_dec): Use it, along with for_each_inc_dec.
10189         (canon_address): Pass mem modes to cselib_lookup.
10190         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
10191         (cselib_lookup_from_insn): Likewise.
10192         (cselib_subst_to_values): Likewise.
10193         * cselib.c (find_slot_memmode): New var.
10194         (cselib_find_slot): New fn.  Use it instead of
10195         htab_find_slot_with_hash everywhere.
10196         (entry_and_rtx_equal_p): Use find_slot_memmode.
10197         (autoinc_split): New fn.
10198         (rtx_equal_for_cselib_p): Rename and implement in terms of...
10199         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
10200         Deal with autoinc.  Special-case recursion into MEMs.
10201         (cselib_hash_rtx): Likewise.
10202         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
10203         address and MEM modes.
10204         (cselib_subst_to_values): Add memmode, pass it on.
10205         Deal with autoinc.
10206         (cselib_lookup): Add memmode argument, pass it on.
10207         (cselib_lookup_from_insn): Add memmode.
10208         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
10209         (struct cselib_record_autoinc_data): New.
10210         (cselib_record_autoinc_cb): New fn.
10211         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
10212         mode to cselib_lookup.  Reset autoinced REGs here instead of...
10213         (cselib_process_insn): ... here.
10214         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
10215         to cselib_lookup.
10216         (add_uses): Likewise, also to cselib_subst_to_values.
10217         (add_stores): Likewise.
10218         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
10219         cselib_subst_to_values.
10220         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
10221         * gcse.c (do_local_cprop): Adjusted.
10222         * postreload.c (reload_cse_simplify_set): Adjusted.
10223         (reload_cse_simplify_operands): Adjusted.
10224         * sel-sched-dump (debug_mem_addr_value): Pass mode.
10225
10226 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
10227
10228         PR tree-optimization/45122
10229         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
10230         unsafe assumptions when there's more than one loop exit.
10231
10232 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10233
10234         PR target/47272
10235         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10236         Document using vector double with the load/store builtins, and
10237         that the load/store builtins always use Altivec instructions.
10238
10239         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
10240         to use altivec memory instructions, even on VSX.
10241         (vector_altivec_store_<mode>): Ditto.
10242
10243         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
10244         function.
10245
10246         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10247         V2DF, V2DI support to load/store overloaded builtins.
10248
10249         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
10250         altivec load/store builtins for V2DF/V2DI types.
10251
10252         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10253         set avoid indexed addresses on power6 if -maltivec.
10254         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
10255         vector_altivec_load/vector_altivec_store builtins.
10256         (altivec_expand_st_builtin): Ditto.
10257         (altivec_expand_builtin): Add VSX memory builtins.
10258         (rs6000_init_builtins): Add V2DI types to internal types.
10259         (altivec_init_builtins): Add support for V2DF/V2DI altivec
10260         load/store builtins.
10261         (rs6000_address_for_altivec): Insure memory address is appropriate
10262         for Altivec.
10263
10264         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
10265         vec_vsx_ld and vec_vsx_st.
10266         (vsx_store_<mode>): Ditto.
10267
10268         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10269         variables to hold long long types for VSX vector memory builtins.
10270         (RS6000_BTI_unsigned_long_long): Ditto.
10271         (long_long_integer_type_internal_node): Ditti.
10272         (long_long_unsigned_type_internal_node): Ditti.
10273
10274         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10275         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10276         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10277
10278         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10279         short cuts.
10280         (vec_vsx_st): Ditto.
10281
10282 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
10283
10284         * config/pa/pa-hpux10.opt: New.
10285         * config/hpux11.opt (pthread): New Driver option.
10286         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10287         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10288
10289 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
10290
10291         * config/ia64/vms.opt: New.
10292         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10293
10294 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
10295
10296         PR target/47580
10297         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10298         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10299         generator functions.
10300         (vsx_floatuns<VSi><mode>2): Ditto.
10301         (vsx_fix_trunc<mode><VSi>2): Ditto.
10302         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10303
10304 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
10305
10306         * config/i386/djgpp.opt (posix): New Driver option.
10307
10308 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
10309
10310         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10311         Move to the unsupported targets list.
10312
10313 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
10314
10315         PR rtl-optimization/47525
10316         * df-scan.c: Update copyright years.
10317         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10318         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10319
10320 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10321
10322         * config/i386/sysv4.h (TARGET_VERSION): Remove.
10323         (SUBTARGET_RETURN_IN_MEMORY): Remove.
10324         (ASM_OUTPUT_ASCII): Remove.
10325         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10326
10327 2011-02-02  Jeff Law  <law@redhat.com>
10328
10329         PR middle-end/47543
10330         * reload.c (find_reloads_address): Handle reg+d address where both
10331         components are invalid by reloading the entire address.
10332
10333 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
10334             Richard Guenther  <rguenther@suse.de>
10335
10336         PR tree-optimization/40979
10337         PR bootstrap/47044
10338         * passes.c (init_optimization_passes): After LIM call copy_prop
10339         and DCE to clean up.
10340         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
10341
10342 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
10343
10344         PR tree-optimization/47576
10345         PR tree-optimization/47555
10346         * doc/invoke.texi (scev-max-expr-complexity): Documented.
10347         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10348         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
10349         * tree-scalar-evolution.c (follow_ssa_edge): Use
10350         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
10351
10352 2011-02-02  Richard Guenther  <rguenther@suse.de>
10353
10354         PR tree-optimization/47566
10355         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
10356
10357 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
10358
10359         PR debug/47106
10360         PR debug/47402
10361         * tree-inline.c (declare_return_variable): Remove unused caller
10362         variable.
10363
10364         PR debug/47106
10365         PR debug/47402
10366         * tree-flow-inline.h (clear_is_used, is_used_p): New.
10367         * cfgexpand.c (account_used_vars_for_block): Use them.
10368         * tree-nrv.c (tree_nrv): Likewise.
10369         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
10370         (dump_scope_block): Likewise.
10371         (remove_unused_locals): Likewise.
10372
10373         PR debug/47106
10374         PR debug/47402
10375         * tree-inline.c (declare_return_variable): Add result decl to
10376         local decls only once.
10377         * gimple-low.c (record_vars_into): Mark newly-created variables
10378         as referenced.
10379
10380 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
10381
10382         PR debug/47498
10383         PR debug/47501
10384         PR debug/45136
10385         PR debug/45130
10386         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10387         debug insns.
10388         (no_real_insns_p, schedule_block, set_priorities): Drop special
10389         treatment of boundary debug insns.
10390         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
10391         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
10392         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10393         (BOUNDARY_DEBUG_INSN_P): Likewise.
10394         (SCHEDULE_DEBUG_INSN_P): Likewise.
10395         * sched-rgn.c (init_ready_list): Drop special treatment of
10396         boundary debug insns.
10397         * final.c (rest_of_clean_state): Clear notes' BB.
10398
10399 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10400
10401         * config/openbsd.opt (assert=): New Driver option.
10402
10403 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10404
10405         * config/i386/nto.opt: New.
10406         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
10407
10408 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10409
10410         * config/i386/netware.opt: New.
10411         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
10412
10413 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10414
10415         * config/interix.opt (posix): New Driver option.
10416
10417 2011-02-01  DJ Delorie  <dj@redhat.com>
10418
10419         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
10420
10421         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
10422         class for A0/A1.
10423
10424 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
10425
10426         PR tree-optimization/47561
10427         * toplev.c (process_options): Print the Graphite flags.  Add
10428         flag_loop_flatten to the list of options requiring Graphite.
10429
10430 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10431
10432         * config/i386/cygming.opt (posix): New Driver option.
10433
10434 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10435
10436         * config/arm/vxworks.opt: New.
10437         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
10438
10439 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
10440
10441         * config/alpha/elf.opt: New.
10442         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
10443         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
10444
10445 2011-02-01  Richard Guenther  <rguenther@suse.de>
10446
10447         PR tree-optimization/47559
10448         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
10449         store-motion on references that can throw.
10450
10451 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
10452
10453         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
10454         * tree-pass.h (TDF_CSELIB): New macro.
10455         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
10456         cselib_lookup): Check for it rather than for TDF_DETAILS.
10457
10458 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
10459
10460         PR driver/47547
10461         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
10462         is HOST_BIT_BUCKET.
10463
10464         * opts.c (finish_options): Don't add x_aux_base_name if it is
10465         HOST_BIT_BUCKET.
10466
10467 2011-02-01  Richard Guenther  <rguenther@suse.de>
10468
10469         PR tree-optimization/47555
10470         Revert
10471         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
10472
10473         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10474
10475 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10476
10477         PR gcc/46692
10478         * config/lm32/t-lm32: Add multilib for all CPU options.
10479
10480 2011-02-01  Richard Guenther  <rguenther@suse.de>
10481
10482         PR tree-optimization/47541
10483         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10484         sure to have a field at offset zero.
10485
10486 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
10487
10488         * config/arc/arc.opt (EB, EL): New Driver options.
10489
10490 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
10491
10492         * config/alpha/osf5.opt: New.
10493         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
10494
10495 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
10496
10497         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
10498
10499 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
10500
10501         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
10502         -floop-interchange.
10503         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
10504         is an alias of -floop-interchange and that it requires the
10505         Graphite infrastructure.
10506         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
10507         flag_loop_interchange based on the value of flag_tree_loop_linear.
10508
10509 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
10510             Richard Guenther  <rguenther@suse.de>
10511
10512         PR tree-optimization/47538
10513         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
10514         type instead of r1type, except for comparisons.  For right
10515         shifts and comparisons punt if there are mismatches in
10516         sizetype vs. non-sizetype types.
10517
10518 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10519
10520         * doc/sourcebuild.texi (Effective-Target Keywords): Document
10521         avx_runtime.
10522
10523 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10524
10525         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
10526         version number.
10527         * configure: Regenerate.
10528
10529 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10530
10531         * configure.ac (gcc_cv_ld_static_option): Define.
10532         (gcc_cv_ld_dynamic_option): Define.
10533         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
10534         instead.
10535         (HAVE_LD_STATIC_DYNAMIC): Update message.
10536         (LD_STATIC_OPTION): Define.
10537         (LD_DYNAMIC_OPTION): Define.
10538         * configure: Regenerate.
10539         * config.in: Regenerate.
10540         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
10541         HAVE_LD_STATIC_DYNAMIC]: Use them.
10542
10543 2011-01-31  Nick Clifton  <nickc@redhat.com>
10544
10545         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
10546         registers inside interrupt handlers if the handler is not a leaf
10547         function.
10548
10549 2011-01-31  Nick Clifton  <nickc@redhat.com>
10550
10551         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
10552         reg_renumber returning an INVALID_REGNUM.
10553
10554 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
10555
10556         PR libgcj/44341
10557         * doc/install.texi: Document host options discarded when cross
10558         configuring target libraries.
10559
10560 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
10561
10562         Reverted:
10563         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
10564         PR debug/45136
10565         PR debug/45130
10566         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10567         debug insns.
10568         (no_real_insns_p, schedule_block, set_priorities): Drop special
10569         treatment of boundary debug insns.
10570         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
10571         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10572         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10573         (BOUNDARY_DEBUG_INSN_P): Likewise.
10574         (SCHEDULE_DEBUG_INSN_P): Likewise.
10575         * sched-rgn.c (init_ready_list): Drop special treatment of
10576         boundary debug insns.
10577         * final.c (rest_of_clean-state): Clear notes' BB.
10578
10579 2011-01-31  Alan Modra  <amodra@gmail.com>
10580
10581         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
10582         toc relative expressions as we do in print_operand_address.
10583
10584 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
10585
10586         * doc/extend.texi: Follow spelling conventions.
10587         * doc/invoke.texi: Fix a typo.
10588
10589 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
10590
10591         * config/hpux11.opt: New.
10592         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
10593         ia64*-*-hpux*): Use hpux11.opt.
10594
10595 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
10596
10597         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
10598         to tmake_file.
10599
10600 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
10601
10602         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
10603         support sites.
10604
10605 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
10606
10607         * doc/install.texi (Binaries): Remove outdated reference for
10608         Motorola 68HC11/68HC12 downloads.
10609
10610 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
10611
10612         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
10613         Drepper's paper.
10614
10615 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
10616
10617         PR bootstrap/47147
10618         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
10619         used by NetBSD.
10620
10621 2011-01-28  Ahmad Sharif  <asharif@google.com>
10622
10623         * value-prof.c (check_counter): Corrected error message.
10624
10625 2011-01-29  Jie Zhang  <jie@codesourcery.com>
10626
10627         * config/arm/arm.c (arm_legitimize_reload_address): New.
10628         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
10629         arm_legitimize_reload_address.
10630         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
10631
10632 2011-01-28  Ian Lance Taylor  <iant@google.com>
10633
10634         * godump.c (go_define): Ignore macros whose definitions include
10635         two adjacent operands.
10636
10637 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
10638
10639         PR target/42894
10640         * varasm.c (force_const_mem): Store copy of x in desc->constant
10641         instead of x itself.
10642         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
10643         itself into REG_EQUAL note.
10644
10645 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
10646
10647         * config/freebsd.opt (posix, rdynamic): New Driver options.
10648
10649 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10650
10651         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
10652         -Bstatic/-Bdynamic.
10653         * configure: Regenerate.
10654
10655 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
10656
10657         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
10658         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
10659
10660 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
10661
10662         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
10663         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
10664         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
10665         (s390_preferred_reload_class): Make static. Change return and
10666         'rclass' argument type to reg_class_t.
10667
10668 2011-01-27  Jan Hubicka  <jh@suse.cz>
10669
10670         PR middle-end/46949
10671         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
10672         (process_function_and_variable_attributes): Check defined weakrefs.
10673
10674 2011-01-27  Martin Jambor  <mjambor@suse.cz>
10675
10676         PR tree-optimization/47228
10677         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
10678         build_ref_for_offset.
10679
10680 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10681
10682         * config/spu/spu-elf.h (ASM_SPEC): Remove.
10683
10684 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
10685
10686         PR rtl-optimization/46856
10687         * postreload.c (reload_combine_recognize_const_pattern): Do not
10688         separate cc0 setter and user on cc0 targets.
10689
10690 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
10691
10692         PR c/43082
10693         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
10694         passed a VOID_TYPE expression, immediately emit an error and
10695         return error_mark_node.
10696
10697 2011-01-26  Jeff Law  <law@redhat.com>
10698
10699         PR rtl-optimization/47464
10700         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
10701         rather than may_trap_p as needed.
10702
10703 2011-01-26  DJ Delorie  <dj@redhat.com>
10704
10705         PR rtl-optimization/46878
10706         * combine.c (insn_a_feeds_b): Check for the implicit cc0
10707         setter/user dependency as well.
10708
10709 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
10710
10711         PR rtl-optimization/44469
10712         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
10713         after removing trivially dead basic blocks.
10714
10715 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
10716
10717         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
10718         * config/frv/frv.h (LINK_SPEC): Likewise.
10719         * config/i386/netware.h (LINK_SPEC): Likewise.
10720         * config/m68k/linux.h (ASM_SPEC): Likewise.
10721         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
10722         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10723         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10724         * config/sparc/linux.h (ASM_SPEC): Likewise.
10725         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10726         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10727
10728 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
10729
10730         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
10731         * config/frv/frv.h (ASM_SPEC): Likewise.
10732         * config/m68k/linux.h (ASM_SPEC): Likewise.
10733         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10734         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
10735         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10736         * config/sparc/linux.h (ASM_SPEC): Likewise.
10737         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10738         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10739
10740 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
10741
10742         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
10743         * config/frv/frv.h (LINK_SPEC): Likewise.
10744         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10745
10746 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
10747
10748         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
10749         * config/frv/frv.h (ASM_SPEC): Likewise.
10750         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
10751         * config/m68k/linux.h (ASM_SPEC): Likewise.
10752         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10753         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
10754         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10755         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
10756         * config/sparc/linux.h (ASM_SPEC): Likewise.
10757         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10758         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10759         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
10760
10761 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
10762
10763         PR target/46997
10764         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
10765         (*mux2): Ditto.
10766         (vec_extract_evenodd_help): Ditto.
10767         (vec_extract_evenv4hi): Ditto.
10768         (vec_extract_oddv4hi): Ditto.
10769         (vec_interleave_lowv2si): Ditto.
10770         (vec_interleave_highv2si): Ditto.
10771         (vec_extract_evenv2si): Ditto.
10772         (vec_extract_oddv2si: Ditto.
10773         (vec_pack_trunc_v2si): Ditto.
10774
10775 2011-01-22  Jan Hubicka  <jh@suse.cz>
10776
10777         PR target/47237
10778         * cgraph.h (cgraph_local_info): New field can_change_signature.
10779         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
10780         signature can change.
10781         (ipcp_estimate_growth): Call sequence simplify only if calle signature
10782         can change.
10783         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
10784         (cgraph_function_versioning): We can not change signature of functions
10785         that don't allow that.
10786         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
10787         (lto_input_node): Likewise.
10788         * ipa-inline.c (compute_inline_parameters): Compute
10789         local.can_change_signature.
10790         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
10791         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
10792         functions that can not change signature.
10793         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
10794         init_cumulative_args): Do not use local calling conventions
10795         for functions that can not change signature.
10796
10797 2011-01-22  Jan Hubicka  <jh@suse.cz>
10798
10799         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
10800
10801 2011-01-26  Richard Guenther  <rguenther@suse.de>
10802
10803         PR tree-optimization/47190
10804         * cgraphunit.c (process_common_attributes): New function.
10805         (process_function_and_variable_attributes): Use it.
10806
10807 2011-01-26  Richard Guenther  <rguenther@suse.de>
10808
10809         PR lto/47423
10810         * cgraphbuild.c (record_eh_tables): Record reference to personality
10811         function.
10812
10813 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
10814
10815         PR debug/45454
10816         * sel-sched.c (moveup_expr): Don't let debug insns prevent
10817         non-debug insns from moving up.
10818
10819 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
10820
10821         PR target/40125
10822         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
10823         t-dlldir{,-x} fragment for build and add it to tmake_file.
10824         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10825         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
10826         * config/i386/t-dlldir: New file.
10827         (SHLIB_DLLDIR): Define.
10828         * config/i386/t-dlldir-x: New file.
10829         (SHLIB_DLLDIR): Define.
10830         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
10831         (SHLIB_INSTALL): Use it.
10832
10833 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
10834
10835         PR target/47246
10836         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
10837         lower bound of the allowed Thumb-2 coprocessor load/store
10838         index range to -256. Add explaining comment.
10839
10840 2011-01-25  Ian Lance Taylor  <iant@google.com>
10841
10842         * godump.c (go_define): Improve lexing of macro expansion to only
10843         accept expressions which match Go spec.
10844
10845 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
10846
10847         PR c++/43601
10848         * tree.c (handle_dll_attribute): Handle it.
10849         * doc/extend.texi (@item dllexport): Mention it.
10850         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
10851
10852 2011-01-25  Ian Lance Taylor  <iant@google.com>
10853
10854         PR tree-optimization/26854
10855         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
10856         (decl_jump_unsafe): Move higher in file, with no other change.
10857         (bind): Set has_jump_unsafe_decl if appropriate.
10858         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
10859         (check_earlier_gotos): Likewise.
10860         (c_check_switch_jump_warnings): Likewise.
10861
10862 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
10863
10864         * doc/invoke.texi (Warning Options): Add missing hyphen.
10865         (-fprofile-dir): Minor grammatical fixes.
10866         (-fbranch-probabilities): Likewise.
10867
10868 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
10869
10870         PR debug/45136
10871         PR debug/45130
10872         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10873         debug insns.
10874         (no_real_insns_p, schedule_block, set_priorities): Drop special
10875         treatment of boundary debug insns.
10876         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
10877         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10878         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10879         (BOUNDARY_DEBUG_INSN_P): Likewise.
10880         (SCHEDULE_DEBUG_INSN_P): Likewise.
10881         * sched-rgn.c (init_ready_list): Drop special treatment of
10882         boundary debug insns.
10883         * final.c (rest_of_clean-state): Clear notes' BB.
10884
10885 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10886
10887         * Makefile.in (LAMBDA_H): Removed.
10888         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
10889         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
10890         lambda-trans.o, and tree-loop-linear.o.
10891         (lto-symtab.o): Remove dependence on LAMBDA_H.
10892         (tree-loop-linear.o): Remove rule.
10893         (lambda-mat.o): Same.
10894         (lambda-trans.o): Same.
10895         (lambda-code.o): Same.
10896         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
10897         (tree-vect-slp.o): Same.
10898         * hwint.h (gcd): Moved here.
10899         (least_common_multiple): Same.
10900         * lambda-code.c: Removed.
10901         * lambda-mat.c: Removed.
10902         * lambda-trans.c: Removed.
10903         * lambda.h: Removed.
10904         * tree-loop-linear.c: Removed.
10905         * lto-symtab.c: Do not include lambda.h.
10906         * omega.c (gcd): Removed.
10907         * passes.c (init_optimization_passes): Remove pass_linear_transform.
10908         * tree-data-ref.c (print_lambda_vector): Moved here.
10909         (lambda_vector_copy): Same.
10910         (lambda_matrix_copy): Same.
10911         (lambda_matrix_id): Same.
10912         (lambda_vector_first_nz): Same.
10913         (lambda_matrix_row_add): Same.
10914         (lambda_matrix_row_exchange): Same.
10915         (lambda_vector_mult_const): Same.
10916         (lambda_vector_negate): Same.
10917         (lambda_matrix_row_negate): Same.
10918         (lambda_vector_equal): Same.
10919         (lambda_matrix_right_hermite): Same.
10920         * tree-data-ref.h: Do not include lambda.h.
10921         (lambda_vector): Moved here.
10922         (lambda_matrix): Same.
10923         (dependence_level): Same.
10924         (lambda_transform_legal_p): Removed declaration.
10925         (lambda_collect_parameters): Same.
10926         (lambda_compute_access_matrices): Same.
10927         (lambda_vector_gcd): Same.
10928         (lambda_vector_new): Same.
10929         (lambda_vector_clear): Same.
10930         (lambda_vector_lexico_pos): Same.
10931         (lambda_vector_zerop): Same.
10932         (lambda_matrix_new): Same.
10933         * tree-flow.h (least_common_multiple): Removed declaration.
10934         * tree-parloops.c (lambda_trans_matrix): Moved here.
10935         (LTM_MATRIX): Same.
10936         (LTM_ROWSIZE): Same.
10937         (LTM_COLSIZE): Same.
10938         (LTM_DENOMINATOR): Same.
10939         (lambda_trans_matrix_new): Same.
10940         (lambda_matrix_vector_mult): Same.
10941         (lambda_transform_legal_p): Same.
10942         * tree-pass.h (pass_linear_transform): Removed declaration.
10943         * tree-ssa-loop.c (tree_linear_transform): Removed.
10944         (gate_tree_linear_transform): Removed.
10945         (pass_linear_transform): Removed.
10946         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
10947         flag_loop_interchange.
10948
10949 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
10950
10951         PR tree-optimization/47265
10952         PR tree-optimization/47443
10953         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
10954         if name still has some uses.
10955
10956 2011-01-25  Martin Jambor  <mjambor@suse.cz>
10957
10958         PR tree-optimization/47382
10959         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
10960         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
10961
10962 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
10963
10964         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
10965         sjlj_except_unwind_info.
10966
10967 2011-01-25  Richard Guenther  <rguenther@suse.de>
10968
10969         PR tree-optimization/47426
10970         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
10971         visible functions results escape.
10972
10973 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
10974
10975         PR target/45701
10976         * config/arm/arm.c (any_sibcall_uses_r3): New function.
10977         (arm_get_frame_offsets): Use it.
10978
10979 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10980             Jakub Jelinek  <jakub@redhat.com>
10981
10982         PR tree-optimization/47271
10983         * tree-if-conv.c (bb_postdominates_preds): New.
10984         (if_convertible_bb_p): Call bb_postdominates_preds.
10985         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
10986         (predicate_scalar_phi): Call bb_postdominates_preds.
10987
10988 2011-01-25  Nick Clifton  <nickc@redhat.com>
10989
10990         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
10991         * config/rx/rx.c (rx_function_value): Likewise.
10992         (rx_promote_function_mode): Likewise.
10993         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
10994         in order to make it legitimate.
10995         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
10996         make sure that the first operand is the same as the result register.
10997         (addsi3_unspec): Delete.
10998         (subdi3): Do not accept immediate operands.
10999         (subdi3_internal): Likewise.
11000
11001 2011-01-25  Jeff Law  <law@redhat.com>
11002
11003         PR rtl-optimization/37273
11004         * ira-costs.c (scan_one_insn): Detect constants living in memory and
11005         handle them like argument loads from stack slots.  Do not double
11006         count memory for memory constants and argument loads from stack slots.
11007
11008 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
11009
11010         PR tree-optimization/47427
11011         PR tree-optimization/47428
11012         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11013         coalesce if the new root var would be TREE_READONLY.
11014
11015 2011-01-25  Richard Guenther  <rguenther@suse.de>
11016
11017         PR middle-end/47414
11018         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
11019         correct type for TBAA.
11020
11021 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11022
11023         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
11024         (close_phi_written_to_memory): Call for_each_index with
11025         dr_indices_valid_in_loop.
11026
11027 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11028
11029         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
11030         when it is initialized.
11031
11032 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11033
11034         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
11035         call to graphite_find_data_references_in_stmt.
11036         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
11037         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
11038         call to graphite_find_data_references_in_stmt.
11039         (analyze_drs_in_stmts): Same.
11040         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
11041         in which the scalar analysis of indices is performed.
11042         (create_data_ref): Same.  Update call to dr_analyze_indices.
11043         (find_data_references_in_stmt): Update call to create_data_ref.
11044         (graphite_find_data_references_in_stmt): Same.
11045         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
11046         declaration.
11047         (create_data_ref): Same.
11048         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
11049         call to create_data_ref.
11050
11051 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11052
11053         * graphite-sese-to-poly.c (build_poly_scop): Move
11054         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
11055
11056 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11057
11058         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
11059         VAR_DECL, PARM_DECL, and RESULT_DECL.
11060
11061 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11062
11063         * graphite-dependences.c (reduction_dr_1): Allow several reductions
11064         in a reduction PBB.
11065         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
11066         that have already been marked as PBB_IS_REDUCTION.
11067
11068 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11069
11070         * graphite-scop-detection.c (same_close_phi_node): New.
11071         (remove_duplicate_close_phi): New.
11072         (make_close_phi_nodes_unique): New.
11073         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
11074
11075 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11076
11077         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
11078         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
11079         of both data references to be the same.
11080
11081 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11082
11083         * graphite-dependences.c (build_lexicographical_constraint): Remove
11084         the gdim parameter.
11085         (build_lexicographical_constraint): Adjust call to
11086         ppl_powerset_is_empty.
11087         (dependence_polyhedron): Same.
11088         (graphite_legal_transform_dr): Same.
11089         (graphite_carried_dependence_level_k): Same.
11090         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
11091         parameter.
11092         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
11093
11094 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11095
11096         * graphite-sese-to-poly.c
11097         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
11098         (close_phi_written_to_memory): New.
11099         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
11100         and unshare_expr.
11101
11102 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11103
11104         * doc/install.texi: Update the expected version number of PPL to 0.11.
11105         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
11106         #if PPL_VERSION_MINOR < 11.
11107
11108 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11109
11110         * graphite-dependences.c: Include graphite-cloog-util.h.
11111         (new_poly_ddr): Inlined into dependence_polyhedron.
11112         (free_poly_ddr): Moved close by new_poly_ddr.
11113         (dependence_polyhedron_1): Renamed dependence_polyhedron.
11114         Early return NULL when ppl_powerset_is_empty returns true.
11115         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
11116         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
11117         (graphite_legal_transform_dr): Call new_poly_ddr.
11118         (graphite_carried_dependence_level_k): Same.
11119         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
11120         (dot_transformed_deps_stmt_1): Removed.
11121         (dot_deps_stmt_1): Call dot_deps_stmt_2.
11122         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
11123         (dot_deps_1): Call dot_deps_2.
11124         * Makefile.in (graphite-dependences.o): Add missing dependence on
11125         graphite-cloog-util.h.
11126
11127 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11128
11129         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
11130         (build_lexicographical_constraint): Same.
11131         (dependence_polyhedron_1): Same.
11132         (graphite_legal_transform_dr): Same.
11133         (graphite_carried_dependence_level_k): Same.
11134         * graphite-ppl.c (ppl_powerset_is_empty): New.
11135         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
11136         * tree-data-ref.c (dump_data_reference): Print the basic block index.
11137
11138 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11139
11140         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
11141         the "a followed by b" relation and document it.
11142
11143 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11144
11145         * graphite-dependences.c (build_lexicographical_constraint): Stop the
11146         iteration when the bag of constraints is empty.
11147
11148 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11149
11150         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
11151
11152 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11153
11154         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
11155         nest and two loop depths as parameters.
11156         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
11157         lst_perfect_nestify.
11158
11159 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11160
11161         * graphite-dependences.c (print_pddr): Call
11162         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
11163
11164 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
11165
11166         * graphite-ppl.c (debug_gmp_value): New.
11167         * graphite-ppl.h (debug_gmp_value): Declared.
11168
11169 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
11170
11171         * doc/install.texi: Document availability of cloog-0.16.
11172
11173 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
11174
11175         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
11176         invalid postdominance info.
11177
11178 2011-01-24  Jan Hubicka  <jh@suse.cz>
11179
11180         PR c/21659
11181         * doc/extend.texi (weak pragma): Drop claim that it must
11182         appear before definition.
11183         * varasm.c (merge_weak, declare_weak): Only sanity check
11184         that DECL is not output at a time it is declared weak.
11185
11186 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
11187
11188         * machmode.def: Fixed comments.
11189
11190 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
11191
11192         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
11193
11194 2011-01-24  Paul Koning  <ni1d@arrl.net>
11195
11196         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
11197         WORDS_BIG_ENDIAN.
11198
11199 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11200
11201         PR target/46519
11202         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
11203         (block_info): Add scanned and prev.
11204         (move_or_delete_vzeroupper_2): Return if the basic block
11205         has been scanned and the upper 128bit state is unchanged
11206         from the last scan.
11207         (move_or_delete_vzeroupper_1): Return true if the exit
11208         state is changed.
11209         (move_or_delete_vzeroupper): Visit basic blocks using the
11210         work-list based algorithm based on vt_find_locations in
11211         var-tracking.c.
11212
11213         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
11214
11215 2011-01-24  Nick Clifton  <nickc@redhat.com>
11216
11217         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
11218         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
11219         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
11220         then define __v850e1__.
11221         * doc/invoke.texi: Document -mv850es.
11222
11223 2011-01-24  Richard Henderson  <rth@redhat.com>
11224
11225         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
11226         compound unordered comparisons.
11227         * config/rx/rx.c (rx_split_fp_compare): Remove.
11228         * config/rx/rx-protos.h: Update.
11229         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
11230         (cbranchsf4): Don't call rx_split_fp_compare.
11231         (*cbranchsf4): Use rx_split_cbranch.
11232         (*cmpsf): Don't accept "i" constraint.
11233         (*conditional_branch): Only valid after reload.
11234         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
11235
11236 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
11237
11238         PR target/47385
11239         * config/rs6000/altivec.md (vector constant splitters): Add
11240         support for creating vector single precision constants if -mvsx is
11241         used and we would create the constant using Altivec primitives.
11242
11243 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
11244             Richard Sandiford  <rdsandiford@googlemail.com>
11245
11246         PR rtl-optimization/47166
11247         * reload1.c (emit_reload_insns): Disable the spill_reg_store
11248         mechanism for PRE_MODIFY and POST_MODIFY.
11249         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
11250         reloadreg.
11251
11252 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
11253
11254         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
11255
11256 2011-01-22  Jan Hubicka  <jh@suse.cz>
11257
11258         PR lto/47333
11259         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
11260
11261 2011-01-22  Jan Hubicka  <jh@suse.cz>
11262
11263         PR tree-optimization/43884
11264         PR lto/44334
11265         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
11266         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11267
11268 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
11269
11270         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11271         * config/s390/s390.c (s390_register_move_cost,
11272         s390_memory_move_cost): New.
11273         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11274
11275 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11276
11277         PR middle-end/47401
11278         * except.c (sjlj_assign_call_site_values): Move setting the
11279         crtl->uses_eh_lsda flag to ...
11280         (sjlj_mark_call_sites): ... here.
11281         (sjlj_emit_function_enter): Support NULL dispatch label.
11282         (sjlj_build_landing_pads): In a function with no landing pads
11283         that still has must-not-throw regions, generate code to register
11284         a personality function with empty LSDA.
11285
11286 2011-01-21  Richard Henderson  <rth@redhat.com>
11287
11288         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11289
11290         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11291
11292         * compare-elim.c: New file.
11293         * Makefile.in (OBJS-common): Add it.
11294         (compare-elim.o): New.
11295         * common.opt (fcompare-elim): New.
11296         * opts.c (default_options_table): Add OPT_fcompare_elim.
11297         * tree-pass.h (pass_compare_elim_after_reload): New.
11298         * passes.c (init_optimization_passes): Add it.
11299         * recog.h: Protect against re-inclusion.
11300         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11301         * doc/invoke.texi (-fcompare-elim): Document it.
11302         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11303         * doc/tm.texi: Rebuild.
11304
11305 2011-01-22  Nick Clifton  <nickc@redhat.com>
11306
11307         * config/rx/rx.md (cstoresf4): Pass comparison operator to
11308         rx_split_fp_compare.
11309
11310 2011-01-22  Nick Clifton  <nickc@redhat.com>
11311
11312         * config/rx/rx.md (UNSPEC_CONST): New.
11313         (deallocate_and_return): Wrap the amount popped off the stack in
11314         an UNSPEC_CONST in order to stop it being rejected by
11315         -mmax-constant-size.
11316         (pop_and_return): Add a "(return)" rtx.
11317         (call): Drop the immediate operand.
11318         (call_internal): Likewise.
11319         (call_value): Likewise.
11320         (call_value_internal): Likewise.
11321         (sibcall_internal): Likewise.
11322         (sibcall_value_internal): Likewise.
11323         (sibcall): Likewise.  Generate an explicit call using
11324         sibcall_internal.
11325         (sibcall_value): Likewise.
11326         (mov<>): FAIL if a constant operand is not legitimate.
11327         (addsi3_unpsec): New pattern.
11328
11329         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
11330         (ok_for_max_constant): New function.
11331         (gen_safe_add): New function.
11332         (rx_expand_prologue): Use gen_safe_add.
11333         (rx_expand_epilogue): Likewise.
11334         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
11335         UNSPEC CONSTs.
11336
11337 2011-01-21  Jeff Law  <law@redhat.com>
11338
11339         PR tree-optimization/47053
11340         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
11341         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
11342         statements are deleted.
11343         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
11344         is nonempty, then purge dead edges and cleanup the CFG.
11345
11346 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
11347
11348         PR debug/47402
11349         Temporarily revert:
11350         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
11351         PR debug/47106
11352         * tree-dfa.c (create_var_ann): Mark variable as used.
11353
11354 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
11355
11356         PR middle-end/45566
11357         * except.c (convert_to_eh_region_ranges): Emit queued no-region
11358         notes from other section in hot/cold partitioning even if
11359         last_action is -3.  Increment call_site_base.
11360
11361         PR rtl-optimization/47366
11362         * fwprop.c (forward_propagate_into): Return bool.  If
11363         any changes are made, -fnon-call-exceptions is used and
11364         REG_EH_REGION note is present, call purge_dead_edges
11365         and return true if it purged anything.
11366         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
11367         any EH edges were purged.
11368
11369 2011-01-21  Jeff Law  <law@redhat.com>
11370
11371         PR rtl-optimization/41619
11372         * caller-save.c (setup_save_areas): Break out code to determine
11373         which hard regs are live across calls by examining the reload chains
11374         so that it is always used.
11375         Eliminate code which checked REG_N_CALLS_CROSSED.
11376
11377 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
11378
11379         PR tree-optimization/47355
11380         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
11381         NOP has non-debug uses beyond PHIs in new_bb.
11382
11383 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
11384
11385         PR debug/47106
11386         * cfgexpand.c (account_used_vars_for_block): Only account vars
11387         that are annotated as used.
11388         (estimated_stack_frame_size): Don't set TREE_USED.
11389         * tree-dfa.c (create_var_ann): Mark variable as used.
11390
11391 2011-01-21  Richard Guenther  <rguenther@suse.de>
11392
11393         PR middle-end/47395
11394         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
11395
11396 2011-01-21  Richard Guenther  <rguenther@suse.de>
11397
11398         PR tree-optimization/47365
11399         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
11400         (vn_reference_lookup_pieces): Adjust.
11401         (vn_reference_lookup): Likewise.
11402         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
11403         (vn_reference_lookup_3): Only look through kills if in
11404         VN_WALKREWRITE mode.
11405         (vn_reference_lookup_pieces): Adjust.
11406         (vn_reference_lookup): Likewise.
11407         (visit_reference_op_load): Likewise.
11408         (visit_reference_op_store): Likewise.
11409         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
11410         (compute_avail): Likewise.
11411         (eliminate): Likewise.
11412
11413 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
11414
11415         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
11416         DECL_IGNORED_P non-reg vars if they are used.
11417
11418         PR tree-optimization/47391
11419         * varpool.c (const_value_known_p): Return false if
11420         decl is volatile.
11421
11422 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
11423
11424         PR bootstrap/47215
11425         * config/i386/i386.c (ix86_local_alignment): Handle
11426         case for va_list_type_node is nil.
11427         (ix86_canonical_va_list_type): Likewise.
11428
11429 2011-01-21  Alan Modra  <amodra@gmail.com>
11430
11431         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
11432         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
11433
11434 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11435
11436         * config/arm/arm.md (define_attr type): Rename f_load
11437         and f_store to f_fpa_load and f_fpa_store. Update.
11438         (write_conflict): Deal with rename fallout.
11439         (*push_fp_multi): Likewise.
11440         * config/arm/fpa.md (f_load): Use f_fpa_load.
11441         (f_store): Use f_fpa_store.
11442         (*movsf_fpa): Likewise.
11443         (*movdf_fpa): Likewise.
11444         (*movxf_fpa): Likewise.
11445         (*thumb2_movsf_fpa): Likewise.
11446         (*thumb2_movdf_fpa): Likewise.
11447         (*thumb2_movxf_fpa): Likewise.
11448         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
11449         f_loadd and f_stored.
11450         (*thumb2_movdi_vfp): Likewise.
11451         (*thumb2_movsf_vfp): Fix attribute to f_loads.
11452         (*thumb2_movsi_vfp): Likewise.
11453         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
11454         Use f_loads instead of f_load.
11455         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
11456
11457 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
11458
11459         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11460         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
11461         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11462         (xtensa_mode_dependent_address_p): New function.
11463         (constantpool_address_p): Make static. Change return type to bool.
11464         Change argument type to const_rtx. Use CONST_INT_P predicate.
11465
11466 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
11467
11468         PR debug/46583
11469         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
11470
11471 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
11472
11473         PR debug/47283
11474         * cfgexpand.c (expand_debug_expr): Instead of generating
11475         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
11476         etc. handling.
11477
11478 2011-01-20  Richard Guenther  <rguenther@suse.de>
11479
11480         PR middle-end/47370
11481         * tree-inline.c (remap_gimple_op_r): Recurse manually for
11482         the pointer operand of MEM_REFs.
11483
11484 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
11485
11486         PR tree-optimization/46130
11487         * ipa-split.c (consider_split): If return_bb contains non-virtual
11488         PHIs other than for retval or if split_function would not adjust it,
11489         refuse to split.
11490
11491 2011-01-20  Richard Guenther  <rguenther@suse.de>
11492
11493         PR tree-optimization/47167
11494         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11495         Revert previous change, only avoid enumeral type changes.
11496
11497 2011-01-19  Mike Stump  <mikestump@comcast.net>
11498
11499         * doc/tm.texi.in (BRANCH_COST): Englishify.
11500         * doc/tm.texi (BRANCH_COST): Likewise.
11501
11502 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
11503
11504         PR c++/47291
11505         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
11506         (gen_scheduled_generic_parms_dies): New functions.
11507         (gen_struct_or_union_type_die): Schedule template parameters DIEs
11508         generation for the end of CU compilation.
11509         (dwarf2out_finish): Generate template parameters DIEs here.
11510
11511 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
11512
11513         PR debug/46240
11514         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
11515         debug bind stmt on merge edges.
11516
11517 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
11518
11519         PR debug/47079
11520         PR debug/46724
11521         * function.c (instantiate_expr): Instantiate incoming rtl of
11522         implicit arguments, and recurse on VALUE_EXPRs.
11523         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
11524         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
11525
11526 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
11527
11528         * c-parser.c (c_parser_for_statement): Initialize
11529         collection_expression.
11530
11531 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
11532
11533         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
11534
11535 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
11536
11537         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
11538         (LINK_SHLIB_SPEC): Don't use %(link_path).
11539         (SUBTARGET_EXTRA_SPECS): Remove link_path.
11540
11541 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
11542
11543         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
11544         (NO_SHARED_LIB_SUPPORT): Remove.
11545         (LINK_SHLIB_SPEC): Remove one conditional definition.
11546
11547 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
11548
11549         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
11550         %{call_shared}.
11551         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
11552         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
11553         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
11554         %{call_shared} and conditionals on these options not being passed.
11555         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
11556         %{call_shared}.
11557
11558 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
11559
11560         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
11561         simplify.
11562
11563         * ipa-split.c: Spelling fixes.
11564
11565 2011-01-19  Richard Henderson  <rth@redhat.com>
11566
11567         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
11568         (*mulsi3): Likewise.
11569
11570         * longlong.h [__mn10300__] (count_leading_zeros): New.
11571         [__mn10300__] (umul_ppmm, smul_ppmm): New.
11572         [__mn10300__] (add_ssaaaa, subddmmss): New.
11573         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
11574         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
11575
11576 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11577
11578         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
11579
11580 2011-01-19  Richard Henderson  <rth@redhat.com>
11581
11582         * config/mn10300/mn10300.md (addsi3_flags): New.
11583         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
11584         (subsi3_flags, subc_internal, subdi3): New.
11585         (subdi3_internal, *subdi3_degenerate): New.
11586         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
11587
11588         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
11589         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
11590         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
11591         * config/mn10300/mn10300-protos.h: Update.
11592         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
11593         (return_ret): Likewise.  Rename from return_internal_regs.
11594         (return_internal): Remove.
11595
11596         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
11597         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
11598         (mn10300_legitimate_constant_p): Likewise.
11599         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
11600         (mn10300_frame_size): New.
11601         (mn10300_expand_prologue): Use it.
11602         (mn10300_expand_epilogue): Likewise.
11603         (mn10300_initial_offset): Likewise.
11604         * config/mn10300/mn10300-protos.h: Update.
11605         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
11606         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
11607         (prologue, epilogue, return_internal): Tidy output code.
11608         (mn10300_store_multiple_operation, return): Likewise.
11609         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
11610         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
11611         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
11612         (load_pic, am33_load_pic): New.
11613         (mn10300_load_pic0, mn10300_load_pic1): New.
11614
11615         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
11616         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
11617         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
11618         (cc_flags_for_mode, cc_flags_for_code): New.
11619         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
11620         overflow flag is not valid.  Validate that the flags we need
11621         for the comparison are valid.
11622         (mn10300_output_cmp): Remove.
11623         (mn10300_output_add): New.
11624         (mn10300_select_cc_mode): Use cc_flags_for_code.
11625         (mn10300_split_cbranch): New.
11626         (mn10300_match_ccmode): New.
11627         (mn10300_split_and_operand_count): New.
11628         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
11629         to the function.
11630         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
11631         (addsi3): ... here.  Use mn10300_output_add.
11632         (*addsi3_flags): New.
11633         (*am33_subsi3, *mn10300_subsi3): Merge...
11634         (subsi3): ... here.  Use attribute isa.
11635         (*subsi3_flags): New.
11636         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
11637         when possible.
11638         (*am33_andsi3, *mn10300_andsi3): Merge...
11639         (andsi3): ... here.
11640         (*andsi3_flags): New.
11641         (andsi3 splitters): New.
11642         (*am33_iorsi3, *mn10300_iorsi3): Merge...
11643         (iorsi3): ... here.
11644         (*iorsi3_flags): New.
11645         (*am33_xorsi3, *mn10300_xorsi3): Merge...
11646         (xorsi3): ... here.
11647         (*xorsi3_flags): New.
11648         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
11649         (one_cmplsi2): ... here.
11650         (*one_cmplsi2_flags): New.
11651         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
11652         instead of "dax" in constraints.  Use mn10300_split_cbranch.
11653         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
11654         use matching constraints to eliminate a self-comparison.
11655         (*integer_conditional_branch): Rename from integer_conditional_branch.
11656         Use int_mode_flags to match CC_REG.
11657         (*cbranchsi4_btst, *btstsi): New.
11658         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
11659         mn10300_split_cbranch.
11660         (*am33_cmpsf): Rename from am33_cmpsf.
11661         (*float_conditional_branch): Rename from float_conditional_branch.
11662         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
11663         (zero_extendqisi2): ... here.
11664         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
11665         (zero_extendhisi2): ... here.
11666         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
11667         (extendqisi2): ... here.
11668         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
11669         (extendhisi2): ... here.
11670         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
11671         (ashlsi3): ... here.
11672         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
11673         (lshrsi3): ... here.
11674         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
11675         (ashrsi3): ... here.
11676         (consecutive add peephole): Remove.
11677         * config/mn10300/predicates.md (label_ref_operand): New.
11678         (int_mode_flags): New.
11679         (CCZN_comparison_operator): New.
11680
11681         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
11682         (throughput_42_latency_43): New reservation.
11683         (mulsidi3, umulsidi3): New expanders.
11684         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
11685         the MDR register to allocation; separately allocate the low and
11686         high parts of the DImode result.
11687         (umulsidi3_internal): Similarly.
11688         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
11689         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
11690         (udivsi3, umodsi3): Remove.
11691         (udivmodsi4, divmodsi4): New expanders.
11692         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
11693         (*divmodsi4): Simiarly.
11694         (ext_internal): New.
11695
11696         * config/mn10300/constraints.md ("z"): New constraint.
11697         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
11698         (FIXED_REGISTERS): Don't fix MDR.
11699         (CALL_USED_REGSITERS): Reformat nicely.
11700         (REG_ALLOC_ORDER): Add MDR.
11701         (enum regclass): Add MDR_REGS.
11702         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
11703         (IRA_COVER_CLASSES): Add MDR_REGS.
11704         (REGNO_REG_CLASS): Handle MDR_REG.
11705         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
11706         (mn10300_register_move_cost): Likewise.
11707         * config/mn10300/mn10300.md (MDR_REG): New.
11708         (*movsi_internal): Handle moves to/from MDR_REGS.
11709
11710         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
11711         POST_MODIFY.
11712         (mn10300_secondary_reload): Tidy combination reload classes.
11713         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
11714         addresses for AM33.  Allow symbolic offsets for reg+imm.
11715         (mn10300_regno_in_class_p): New.
11716         (mn10300_legitimize_reload_address): New.
11717         * config/mn10300/mn10300.h (enum reg_class): Remove
11718         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
11719         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
11720         SP_OR_GENERAL_REGS.
11721         (REG_CLASS_NAMES): Update to match.
11722         (REG_CLASS_CONTENTS): Likewise.
11723         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
11724         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
11725         (REGNO_IN_RANGE_P): Remove.
11726         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
11727         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
11728         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
11729         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
11730         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
11731         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
11732         (REGNO_GENERAL_P): New.
11733         (HAVE_POST_MODIFY_DISP): New.
11734         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
11735         (LEGITIMIZE_RELOAD_ADDRESS): New.
11736         * config/mn10300/mn10300-protos.h: Update.
11737
11738         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
11739         DATA_REGS for AM33 stack-pointer destination.
11740         (mn10300_preferred_output_reload_class): Likewise.
11741         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
11742         into a form appropriate for ...
11743         (TARGET_SECONDARY_RELOAD): New.
11744         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
11745         * config/mn10300/mn10300-protos.h: Update.
11746         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
11747         reload_insi; use the "A" constraint for the scratch; handle AM33
11748         moves of sp to non-address registers.
11749
11750         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
11751         (*movqi_internal): ... here.
11752         (*am33_movhi, *mn10300_movhi): Merge into...
11753         (*movhi_internal): ... here.
11754         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
11755         as the source/destination of moves from/to SP.
11756         (movsf): Only allow for AM33-2.
11757         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
11758         any integer constant constraint.  Only allow for AM33-2.  Tidy
11759         all of the alternative outputs.
11760         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
11761         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
11762         for MN103.
11763         (udivsi3, umodsi3): New patterns for MN103 only.
11764
11765 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
11766
11767         * doc/tm.texi.in: Spell out that a lack of register class unions
11768         can lead to ICEs.
11769         * doc/tm.texi: Regenerate.
11770
11771 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
11772
11773         PR rtl-optimization/47337
11774         * dce.c (check_argument_store): New function.
11775         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
11776
11777         PR tree-optimization/47290
11778         * tree-eh.c (infinite_empty_loop_p): New function.
11779         (cleanup_empty_eh): Use it.
11780
11781 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
11782
11783         PR target/46997
11784         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
11785         (a64_expand_widen_sum): Ditto.
11786         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
11787         (vec_extract_evenodd_help): Ditto.
11788         (vec_extract_evenv4hi): Ditto.
11789         (vec_extract_oddv4hi): Ditto.
11790         (vec_extract_evenv2si): Ditto.
11791         (vec_extract_oddv2si): Ditto.
11792         (vec_extract_evenv2sf): Ditto.
11793         (vec_extract_oddv2sf): Ditto.
11794         (vec_pack_trunc_v4hi: Ditto.
11795         (vec_pack_trunc_v2si): Ditto.
11796         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
11797         (vec_interleave_highv8qi): Ditto.
11798         (mix1_r): Ditto.
11799         (vec_extract_oddv8qi): Ditto.
11800         (vec_interleave_lowv4hi): Ditto.
11801         (vec_interleave_highv4hi): Ditto.
11802         (vec_interleave_lowv2si): Ditto.
11803         (vec_interleave_highv2si): Ditto.
11804
11805 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11806
11807         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
11808         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
11809         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
11810         (pa_c_mode_for_suffix): New.
11811         (TARGET_EXPAND_BUILTIN): Define.
11812         (TARGET_C_MODE_FOR_SUFFIX): Define.
11813         (pa_builtins): Define.
11814         (pa_init_builtins): Register __float128 type and init new support
11815         builtins.
11816         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
11817         * config/pa/quadlib.c (_U_Qfcopysign): New.
11818
11819 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
11820
11821         PR middle-end/46894
11822         * explow.c (allocate_dynamic_stack_space): Do not assume more than
11823         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
11824         are defined.
11825
11826 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11827
11828         PR tree-optimization/47179
11829         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
11830         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
11831
11832 2011-01-18  Richard Guenther  <rguenther@suse.de>
11833
11834         PR rtl-optimization/47216
11835         * emit-rtl.c: Include tree-flow.h.
11836         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
11837         of replicating it with different semantics.
11838         * Makefile.in (emit-rtl.o): Adjust.
11839
11840 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11841
11842         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
11843         (cortex_a9_dp): Handle neon types correctly.
11844
11845 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
11846
11847         PR rtl-optimization/47299
11848         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
11849         subtarget.  Use normal multiplication if both operands are constants.
11850         * expmed.c (expand_widening_mult): Don't try to optimize constant
11851         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
11852         before using it.
11853
11854 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11855
11856         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
11857         spacing after 'e.g.', typos, comma, hyphenation.
11858
11859 2011-01-17  Richard Henderson  <rth@redhat.com>
11860
11861         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
11862         (rx_restricted_mem_operand): New.
11863         (rx_shift_operand): Use register_operand.
11864         (rx_source_operand, rx_compare_operand): Likewise.
11865         * config/rx/rx.md (addsi3_flags): New expander.
11866         (adddi3): Rewrite as expander.
11867         (adc_internal, *adc_flags, adddi3_internal): New patterns.
11868         (subsi3_flags): New expander.
11869         (subdi3): Rewrite as expander.
11870         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
11871
11872         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
11873         (rx_init_builtins): Remove sat builtin.
11874         (rx_expand_builtin): Likewise.
11875         * config/rx/rx.md (ssaddsi3): New.
11876         (*sat): Rename from sat.  Represent the CC_REG input.
11877
11878         * config/rx/predicates.md (rshift_operator): New.
11879         * config/rx/rx.c (rx_expand_insv): Remove.
11880         * config/rx/rx-protos.h: Update.
11881         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
11882         operand to the canonical position.
11883         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
11884         (*bitclr, *bitclr_in_memory): Similarly.
11885         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
11886         (insv): Retain the zero_extract in the expansion.
11887
11888         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
11889         (bswaphi2, bitinvert, revw): Likewise.
11890
11891         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
11892         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
11893         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
11894         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
11895         (bitset, bitset_in_memory): Likewise.
11896         (bitinvert, bitinvert_in_memory): Likewise.
11897         (bitclr, bitclr_in_memory): Likewise.
11898         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
11899         (rx_strend, rx_cmpstrn): Likewise.
11900         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
11901         (bitop peep2 patterns): Remove.
11902
11903         * config/rx/rx.c (rx_match_ccmode): New.
11904         * config/rx/rx-protos.h: Update.
11905         * config/rx/rx.md (abssi2): Clobber, don't set flags.
11906         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
11907         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
11908         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
11909         (fix_truncsfsi2, floatsisf2): Likewise.
11910         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
11911         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
11912         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
11913         (*subsi3_flags, *xorsi3_flags): New.
11914
11915         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
11916
11917         * config/rx/rx.c (rx_print_operand): Remove workaround for
11918         unsplit comparison operations.
11919
11920         * config/rx/rx.md (movsicc): Split after reload.
11921         (*movsicc): Merge *movsieq and *movsine via match_operator.
11922         (*stcc): New pattern.
11923
11924         * config/rx/rx.c (rx_float_compare_mode): Remove.
11925         * config/rx/rx.h (rx_float_compare_mode): Remove.
11926         * config/rx/rx.md (cstoresi4): Split after reload.
11927         (*sccc): New pattern.
11928
11929         * config/rx/predicates.md (label_ref_operand): New.
11930         (rx_z_comparison_operator): New.
11931         (rx_zs_comparison_operator): New.
11932         (rx_fp_comparison_operator): New.
11933         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
11934         Validate that the flags are set properly for the comparison.
11935         (rx_gen_cond_branch_template): Remove.
11936         (rx_cc_modes_compatible): Remove.
11937         (mode_from_flags): New.
11938         (flags_from_code): Rename from flags_needed_for_conditional.
11939         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
11940         (rx_select_cc_mode): Likewise.
11941         (rx_split_fp_compare): New.
11942         (rx_split_cbranch): New.
11943         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
11944         (*cbranchsi4): Use match_operator and rx_split_cbranch.
11945         (*cbranchsf4): Similarly.
11946         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
11947         match_operator and rx_split_cbranch.
11948         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
11949         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
11950         (*cmpsi): Rename from cmpsi.
11951         (*tstsi): Rename from tstsi.
11952         (*cmpsf): Rename from cmpsf; use CC_Fmode.
11953         (*conditional_branch): Rename from conditional_branch.
11954         (*reveresed_conditional_branch): Remove.
11955         (b<code>): Remove expander.
11956         * config/rx/rx-protos.h: Update.
11957
11958         * config/rx/rx.c (rx_compare_redundant): Remove.
11959         * config/rx/rx.md (cmpsi): Don't use it.
11960         * config/rx/rx-protos.h: Update.
11961
11962         * config/rx/rx-modes.def (CC_F): New mode.
11963         * config/rx/rx.c (rx_select_cc_mode): New.
11964         * config/rx/rx.h (SELECT_CC_MODE): Use it.
11965         * config/rx/rx-protos.h: Update.
11966
11967 2011-01-17  Richard Henderson  <rth@redhat.com>
11968
11969         * except.c (dump_eh_tree): Fix stray ; after for statement.
11970
11971 2011-01-17  Richard Guenther  <rguenther@suse.de>
11972
11973         PR tree-optimization/47313
11974         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
11975         handling before copying the body.  Properly deal with
11976         by-reference result in SSA form.
11977
11978 2011-01-17  Ian Lance Taylor  <iant@google.com>
11979
11980         PR target/47219
11981         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
11982         (struct_value_alias_set): Don't define.
11983         (sparc_option_override): Don't set sparc_sr_alias_set and
11984         struct_value_alias_set.
11985         (save_or_restore_regs): Use gen_frame_mem rather than calling
11986         set_mem_alias_set.
11987         (sparc_struct_value_rtx): Likewise.
11988
11989 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
11990
11991         PR target/47318
11992         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
11993         (_mm_maskstore_pd): Likewise.
11994         (_mm_maskload_ps): Likewise.
11995         (_mm_maskstore_ps): Likewise.
11996         (_mm256_maskload_pd): Change mask to __m256i.
11997         (_mm256_maskstore_pd): Likewise.
11998         (_mm256_maskload_ps): Likewise.
11999         (_mm256_maskstore_ps): Likewise.
12000
12001         * config/i386/i386-builtin-types.def: Updated.
12002         (ix86_expand_special_args_builtin): Likewise.
12003
12004         * config/i386/i386.c (bdesc_special_args): Update
12005         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
12006         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
12007         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
12008         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
12009
12010         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
12011         Use <avxpermvecmode> on mask register.
12012         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
12013
12014 2011-01-17  Olivier Hainque  <hainque@adacore.com>
12015             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
12016             Eric Botcazou  <ebotcazou@adacore.com>
12017
12018         PR target/46655
12019         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
12020         if <= USHRT_MAX in 32-bit mode.
12021
12022 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12023
12024         * doc/install.texi (Configuration, Specific): Wrap long
12025         lines in examples.  Allow line wrapping in long options
12026         and URLs where beneficial for PDF output.
12027
12028 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
12029
12030         * config/mips/mips.c (mips_classify_symbol): Don't return
12031         SYMBOL_PC_RELATIVE for nonlocal labels.
12032
12033 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
12034
12035         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
12036
12037 2011-01-15  Jan Hubicka  <jh@suse.cz>
12038
12039         PR tree-optimization/47276
12040         * ipa.c (function_and_variable_visibility): Do not try to mark alias
12041         declarations as needed.
12042
12043 2011-01-15  Martin Jambor  <mjambor@suse.cz>
12044
12045         * common.opt (fdevirtualize): New flag.
12046         * doc/invoke.texi (Option Summary): Document it.
12047         * opts.c (default_options_table): Add devirtualize flag.
12048         * ipa-prop.c (detect_type_change): Return immediately if
12049         devirtualize flag is not set.
12050         (detect_type_change_ssa): Likewise.
12051         (compute_known_type_jump_func): Likewise.
12052         (ipa_analyze_virtual_call_uses): Likewise.
12053
12054 2011-01-14  Martin Jambor  <mjambor@suse.cz>
12055
12056         PR tree-optimization/45934
12057         PR tree-optimization/46302
12058         * ipa-prop.c (type_change_info): New type.
12059         (stmt_may_be_vtbl_ptr_store): New function.
12060         (check_stmt_for_type_change): Likewise.
12061         (detect_type_change): Likewise.
12062         (detect_type_change_ssa): Likewise.
12063         (compute_complex_assign_jump_func): Check for dynamic type change.
12064         (compute_complex_ancestor_jump_func): Likewise.
12065         (compute_known_type_jump_func): Likewise.
12066         (compute_scalar_jump_functions): Likewise.
12067         (ipa_analyze_virtual_call_uses): Likewise.
12068         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
12069
12070 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12071
12072         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
12073         * config/i386/i386.opt (msse5): New Alias.
12074
12075 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12076
12077         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12078         * config/sparc/linux64.h (CC1_SPEC): Likewise.
12079         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12080         * config/sparc/sparc.h (CC1_SPEC): Likewise.
12081
12082 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12083
12084         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
12085         -mcpu options.
12086         * config/sparc/linux64.h (CC1_SPEC): Likewise.
12087         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12088         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
12089         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
12090         Likewise.
12091         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
12092
12093 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12094
12095         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
12096
12097 2011-01-14  Mike Stump  <mikestump@comcast.net>
12098
12099         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
12100         * config/fr30/fr30.md: Likweise
12101         (movsi_push): Likewise.
12102         (movsi_pop): Likewise.
12103         (enter_func): Likewise.
12104         * config/moxie/moxie.md (movsi_push): Likewise.
12105         (movsi_pop): Likewise.
12106
12107 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12108
12109         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
12110         %{no_archive} %{exact_version}.
12111         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
12112         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
12113         %{no_archive} %{exact_version}.
12114         * config/mips/openbsd.h (LINK_SPEC): Likewise.
12115         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
12116         * config/mips/vxworks.h: Likewise.
12117
12118 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12119
12120         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
12121
12122 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12123
12124         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
12125         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
12126
12127 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12128
12129         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
12130         -nodefaultlib.
12131
12132 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12133
12134         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
12135         for mcpu not cpu.
12136         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
12137         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
12138         not cpu.
12139         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
12140         Don't handle -shlib.
12141
12142 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12143
12144         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
12145         (CC1_SPEC): Don't handle -profile.
12146
12147 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12148
12149         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
12150         * config/mips/mips.h (CC1_SPEC): Likewise.
12151
12152 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12153
12154         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
12155         * config/mips/mips.h (CC1_SPEC): Likewise.
12156
12157 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12158
12159         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
12160         * config/m32r/linux.h (LINK_SPEC): Likewise.
12161         * config/mips/linux.h (LINK_SPEC): Likewise.
12162         * config/mips/linux64.h (LINK_SPEC): Likewise.
12163         * config/sparc/linux.h (LINK_SPEC): Likewise.
12164         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12165         LINK_SPEC): Likewise.
12166         * config/xtensa/linux.h (LINK_SPEC): Likewise.
12167
12168 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12169
12170         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
12171         %{version:-v}.
12172         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
12173
12174 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12175
12176         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
12177         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12178
12179 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
12180
12181         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
12182
12183 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12184
12185         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
12186         supports -Bstatic/-Bdynamic.
12187         * configure: Regenerate.
12188
12189 2011-01-14  Jan Hubicka  <jh@suse.cz>
12190             Jack Howarth  <howarth@bromo.med.uc.edu>
12191
12192         PR target/46037
12193         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
12194         when checking debug_info_level. Test write_symbols instead of
12195         debug_hooks->var_location when setting flag_var_tracking_uninit.
12196
12197 2011-01-14  Richard Guenther  <rguenther@suse.de>
12198
12199         PR tree-optimization/47179
12200         * target.def (ref_may_alias_errno): New target hook.
12201         * targhooks.h (default_ref_may_alias_errno): Declare.
12202         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
12203         (default_ref_may_alias_errno): New function.
12204         * target.h (struct ao_ref_s): Declare.
12205         * tree-ssa-alias.c: Include target.h.
12206         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
12207         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
12208         (targhooks.o): Likewise.
12209         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
12210         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
12211
12212 2011-01-14  Richard Guenther  <rguenther@suse.de>
12213
12214         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
12215
12216 2011-01-14  Richard Guenther  <rguenther@suse.de>
12217
12218         PR tree-optimization/47280
12219         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
12220         return CFG changes.
12221         (tree_ssa_forward_propagate_single_use_vars): Deal with
12222         CFG changes from associate_plusminus.
12223
12224 2011-01-14  Richard Guenther  <rguenther@suse.de>
12225
12226         PR middle-end/47281
12227         Revert
12228         2011-01-11  Richard Guenther  <rguenther@suse.de>
12229
12230         PR tree-optimization/46076
12231         * tree-ssa.c (useless_type_conversion_p): Conversions from
12232         unprototyped to empty argument list function types are useless.
12233
12234 2011-01-14  Richard Guenther  <rguenther@suse.de>
12235
12236         PR tree-optimization/47286
12237         * tree-ssa-structalias.c (new_var_info): Register variables are global.
12238
12239 2011-01-14  Martin Jambor  <mjambor@suse.cz>
12240
12241         PR middle-end/46823
12242         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
12243
12244 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
12245
12246         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
12247         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12248         * config/xtensa/xtensa.c (xtensa_libcall_value,
12249         xtensa_function_value_regno_p): New functions.
12250         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12251
12252 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
12253
12254         PR c++/47213
12255         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
12256         PE specific hook.
12257         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
12258         New function prototype.
12259         * config/i386/winnt.c (i386_pe_assemble_visibility):
12260         Warn only if attribute was specified by user.
12261
12262 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
12263
12264         PR target/47251
12265         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12266         floating point.
12267         (floatunsdidf2_fcfidu): Ditto.
12268
12269 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12270
12271         * config/s390/s390.c (print_operand_address): Replace 'error' with
12272         'output_operand_lossage'.
12273         (print_operand): Likewise.
12274
12275 2011-01-13  Jeff Law  <law@redhat.com>
12276
12277         PR rtl-optimization/39077
12278         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12279         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12280         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12281         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12282         * gcse.c (prune_insertions_deletions): New function.
12283         (compute_pre_data): Use it.
12284
12285 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
12286
12287         PR debug/PR46973
12288         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12289         static function.
12290         (prune_unused_types_mark): Use it.
12291
12292 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
12293
12294         PR rtl-optimization/45352
12295         * sel-sched.c: Update copyright years.
12296         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
12297         in the advancing loop when we have issued issue_rate insns.
12298
12299 2011-01-12  Richard Henderson  <rth@redhat.com>
12300
12301         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12302         (TARGET_MD_ASM_CLOBBERS): New.
12303
12304         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12305         (TARGET_DELEGITIMIZE_ADDRESS): New.
12306
12307         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12308         (clzsi2, *bsch): New patterns.
12309
12310         * config/mn10300/mn10300.md (INT): New mode iterator.
12311         (*mov<INT>_clr): New pattern, and peep2 to generate it.
12312
12313         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12314         flag_split_wide_types.
12315
12316         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12317         (mn10300_trampoline_init): Rewrite without a template, an immediate
12318         load and a direct branch.
12319         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12320
12321 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
12322
12323         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12324         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12325         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12326         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12327
12328 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
12329
12330         PR debug/47209
12331         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12332         of type.
12333
12334 2011-01-12  Jan Hubicka  <jh@suse.cz>
12335
12336         PR driver/47244
12337         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
12338         (PLUGIN_COND_CLOSE): New macro.
12339         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
12340
12341 2011-01-12  Richard Guenther  <rguenther@suse.de>
12342
12343         PR lto/47259
12344         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
12345         register variables in a MEM_REF.
12346
12347 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
12348
12349         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
12350         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
12351         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
12352         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12353         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12354         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
12355         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
12356         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
12357         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
12358         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
12359         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
12360         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
12361         * config/gnu-user.h: New.  Copied from linux.h.
12362         (LINUX_TARGET_STARTFILE_SPEC): Rename to
12363         GNU_USER_TARGET_STARTFILE_SPEC.
12364         (LINUX_TARGET_ENDFILE_SPEC): Rename to
12365         GNU_USER_TARGET_ENDFILE_SPEC.
12366         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
12367         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
12368         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
12369         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
12370         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
12371         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
12372         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
12373         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
12374         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
12375         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
12376         * config/arm/linux-eabi.h (CC1_SPEC): Use
12377         GNU_USER_TARGET_CC1_SPEC.
12378         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
12379         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
12380         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
12381         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
12382         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
12383         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
12384         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
12385         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
12386
12387 2011-01-12  Richard Guenther  <rguenther@suse.de>
12388
12389         PR other/46946
12390         * doc/invoke.texi (ffast-math): Document it is turned on
12391         with -Ofast.
12392
12393 2011-01-12  Jan Hubicka  <jh@suse.cz>
12394
12395         PR tree-optimization/47233
12396         * opts.c (common_handle_option): Disable ipa-reference with profile
12397         feedback.
12398
12399 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
12400
12401         * c-parser.c (c_parser_objc_at_property_declaration): Improved
12402         error message.
12403
12404 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
12405
12406         * c-parser.c (c_lex_one_token): Updated and reindented some
12407         comments.  No changes in code.
12408
12409 2011-01-11  Ian Lance Taylor  <iant@google.com>
12410
12411         * godump.c (go_output_var): Don't output the variable if there is
12412         already a type with the same name.
12413
12414 2011-01-11  Ian Lance Taylor  <iant@google.com>
12415
12416         * godump.c (go_format_type): Don't generate float80.
12417
12418 2011-01-11  Richard Henderson  <rth@redhat.com>
12419
12420         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
12421         declaration.  Rewrite for both speed and size.
12422         (mn10300_address_cost_1): Remove.
12423         (mn10300_register_move_cost): New.
12424         (mn10300_memory_move_cost): New.
12425         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
12426         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
12427         extensions, shifts, BSWAP, CLZ.
12428         (mn10300_wide_const_load_uses_clr): Remove.
12429         (TARGET_REGISTER_MOVE_COST): New.
12430         (TARGET_MEMORY_MOVE_COST): New.
12431         * config/mn10300/mn10300-protos.h: Update.
12432         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
12433
12434         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
12435         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
12436         * config/mn10300/mn10300-protos.h: Update.
12437         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
12438         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
12439         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
12440         (*test_int_bitfield, *test_byte_bitfield): Remove.
12441         (*bit_test, *subreg_bit_test): Remove.
12442         * config/mn10300/predicates.md (const_8bit_operand): Remove.
12443
12444         * config/mn10300/constraints.md ("c"): Rename from "A".
12445         ("A", "D"): New constraint letters.
12446         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
12447         (fmssf4, fnmasf4, fnmssf4): Likewise.
12448
12449         * config/mn10300/mn10300.md (isa): New attribute.
12450         (enabled): New attribute.
12451
12452         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
12453         (abssf2, negsf2): Define only for hardware fp.
12454         (sqrtsf2): Reformat.
12455         (addsf3, subsf3, mulsf3): Merge expander and insn.
12456
12457         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
12458         (DEBUGGER_AUTO_OFFSET): Remove.
12459         (DEBUGGER_ARG_OFFSET): Remove.
12460
12461         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
12462         Emit register stores with the same offsets as the hardware.
12463         (mn10300_store_multiple_operation): Don't check that the register
12464         save offsets are monotonic.
12465         * config/mn10300/mn10300-protos.h: Update.
12466
12467         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
12468
12469         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
12470         in terms of the value on the stack, not the MDR register.
12471
12472 2011-01-11  Jan Hubicka  <jh@suse.cz>
12473
12474         PR lto/45721
12475         PR lto/45375
12476         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
12477         (symbol_alias_set_destroy, symbol_alias_set_contains,
12478         propagate_aliases_backward): Declare.
12479         * lto-streamer-out.c (struct sets): New sturcture.
12480         (trivally_defined_alias): New function.
12481         (output_alias_pair_p): Rewrite.
12482         (output_unreferenced_globals): Fix output of alias pairs.
12483         (produce_symtab): Likewise.
12484         * ipa.c (function_and_variable_visibility): Set weak alias destination
12485         as needed in lto.
12486         * varasm.c (symbol_alias_set_t): Remove.
12487         (symbol_alias_set_destroy): Export.
12488         (propagate_aliases_forward, propagate_aliases_backward): New functions
12489         based on ...
12490         (compute_visible_aliases): ... this one; remove.
12491         (trivially_visible_alias): New
12492         (trivially_defined_alias): New.
12493         (remove_unreachable_alias_pairs): Rewrite.
12494         (finish_aliases_1): Reorganize code checking if alias is defined.
12495         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
12496         in LTO mode.
12497
12498 2011-01-11  Richard Guenther  <rguenther@suse.de>
12499
12500         PR tree-optimization/46076
12501         * tree-ssa.c (useless_type_conversion_p): Conversions from
12502         unprototyped to empty argument list function types are useless.
12503
12504 2011-01-11  Richard Guenther  <rguenther@suse.de>
12505
12506         PR middle-end/45235
12507         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
12508         volatile MEMs as MEM_READONLY_P.
12509
12510 2011-01-11  Richard Guenther  <rguenther@suse.de>
12511
12512         PR tree-optimization/47239
12513         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
12514
12515 2011-01-11  Jeff Law  <law@redhat.com>
12516
12517         PR tree-optimization/47086
12518         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
12519         IVs from statements that might throw.
12520
12521 2011-01-10  Jan Hubicka  <jh@suse.cz>
12522
12523         PR lto/45375
12524         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
12525
12526 2011-01-10  Jan Hubicka  <jh@suse.cz>
12527
12528         PR lto/45375
12529         * profile.c (read_profile_edge_counts): Ignore profile inconistency
12530         when correcting profile.
12531
12532 2011-01-10  Jan Hubicka  <jh@suse.cz>
12533
12534         PR lto/46083
12535         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
12536         DECL_FINI_PRIORITY.
12537         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
12538         Restore DECL_FINI_PRIORITY.
12539
12540 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12541
12542         * doc/gimple.texi: Fix quoting of multi-word return values in
12543         @deftypefn statements.  Ensure presence of return value.  Wrap
12544         overlong @deftypefn lines.
12545         (is_gimple_operand, is_gimple_min_invariant_address): Remove
12546         descriptions of removed functions.
12547         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
12548         of multi-word return value in @deftypefn statement.
12549
12550 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12551
12552         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
12553         (Conditional Expressions, Logical Operators)
12554         (Statement and operand traversals): Do not indent smallexample
12555         code.  Fix duplicate function argument in example.
12556
12557 2011-01-10  Jeff Law  <law@redhat.com>
12558
12559         PR tree-optimization/47141
12560         * ipa-split.c (split_function): Handle case where we are
12561         returning a value and the return block has a virtual operand phi.
12562
12563 2011-01-10  Jan Hubicka  <jh@suse.cz>
12564
12565         PR tree-optimization/47234
12566         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
12567         (pass_feedback_split_functions): Declare.
12568         * passes.c (init_optimization_passes): Add ipa-split as subpass of
12569         tree-profile.
12570         * ipa-split.c (gate_split_functions): Update comments; disable
12571         split-functions for profile_arc_flag and branch_probabilities.
12572         (gate_feedback_split_functions): New function.
12573         (execute_feedback_split_functions): New function.
12574         (pass_feedback_split_functions): New global var.
12575
12576 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
12577
12578         PR lto/46760
12579         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
12580         calling gimple_call_set_cannot_inline.
12581
12582 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
12583
12584         * config/darwin-sections.def: Remove unused section.
12585
12586 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
12587
12588         PR c++/47218
12589         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
12590
12591 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
12592
12593         PR objc/47232
12594         * c-parser.c (c_parser_declaration_or_fndef): Improved
12595         error message.
12596
12597 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
12598
12599         * config/i386/winnt.c (i386_pe_start_function): Make sure
12600         to switch back to function's section.
12601
12602 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
12603
12604         PR gcc/46902
12605         PR testsuite/46912
12606         * plugin.c: Move include of dlfcn.h from here...
12607         * system.h: ... to here.
12608
12609 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12610
12611         * doc/cpp.texi (C++ Named Operators): Fix markup for header
12612         file name.
12613         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
12614         two extra empty pages in PDF output.
12615
12616 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
12617
12618         PR objc/47078
12619         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
12620         for error recovery purposes behave as if it was not specified so
12621         that the default type is usd.
12622
12623 2011-01-07  Jan Hubicka  <jh@suse.cz>
12624
12625         PR tree-optmization/46469
12626         * ipa.c (function_and_variable_visibility): Clear needed flags on
12627         nodes with external decls; handle weakrefs merging correctly.
12628
12629 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
12630
12631         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
12632         not false.
12633
12634 2011-01-07  Jan Hubicka  <jh@suse.cz>
12635
12636         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
12637         and no longer claim that gold is required for linker plugin.
12638         * configure: Regenerate.
12639         * gcc.c (PLUGIN_COND): New macro.
12640         (LINK_COMMAND_SPEC): Use it.
12641         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
12642         * config.in (HAVE_LTO_PLUGIN): New.
12643         * configure.ac (--with-lto-plugin): New parameter; autodetect
12644         HAVE_LTO_PLUGIN.
12645
12646 2011-01-07  Jan Hubicka  <jh@suse.cz>
12647
12648         PR tree-optimization/46367
12649         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
12650         when we can update original.
12651         (cgraph_mark_inline_edge): Sanity check.
12652         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
12653
12654 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12655
12656         * config/spu/spu.h (ASM_COMMENT_START): Define.
12657
12658 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
12659
12660         PR driver/42445
12661         * gcc.c (%>S): New.
12662         (SWITCH_KEEP_FOR_GCC): Likewise.
12663         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
12664         (do_spec_1): Handle "%>".
12665
12666         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
12667
12668 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
12669
12670         PR target/47201
12671         * config/i386/i386.c (ix86_delegitimize_address): If
12672         simplify_gen_subreg fails, return orig_x.
12673
12674         PR bootstrap/47187
12675         * value-prof.c (gimple_stringop_fixed_value): Handle
12676         lhs of the call properly.
12677
12678 2011-01-07  Jan Hubicka  <jh@suse.cz>
12679
12680         PR lto/45375
12681         * lto-opt.c (lto_reissue_options): Set flag_shlib.
12682
12683 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
12684
12685         * target.def (function_switched_text_sections): New hook.
12686         * doc/tm.texi: Regenerated.
12687         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
12688         * final.c (default_function_switched_text_sections): New.
12689         (final_scan_insn): Call function_switched_text_sections when a
12690         mid-function section change occurs.
12691         * output.h (default_function_switched_text_sections): Declare.
12692         * config/darwin-protos.h (darwin_function_switched_text_sections):
12693         Likewise.
12694         * config/darwin.c (darwin_function_switched_text_sections): New.
12695         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
12696
12697 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
12698
12699         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
12700         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
12701         the secondary code fragment when outputting for DWARF == 2.
12702
12703 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
12704
12705         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12706         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
12707         Remove.
12708         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
12709         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12710
12711 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
12712
12713         PR debug/46704
12714         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
12715         when it is not empty.
12716
12717 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
12718
12719         Bobcat Enablement
12720         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
12721         (case ${target}): Add btver1.
12722         * config/i386/driver-i386.c (host_detect_local_cpu): Let
12723         -march=native recognize btver1 processors.
12724         * config/i386/i386-c.c (ix86_target_macros_internal): Add
12725         btver1 def_and_undef
12726         * config/i386/i386.c (struct processor_costs btver1_cost): New
12727         btver1 cost table.
12728         (m_BTVER1): New definition.
12729         (m_AMD_MULTIPLE): Includes m_BTVER1.
12730         (initial_ix86_tune_features): Add btver1 tune.
12731         (processor_target_table): Add btver1 entry.
12732         (static const char *const cpu_names): Add btver1 entry.
12733         (software_prefetching_beneficial_p): Add btver1.
12734         (ix86_option_override_internal): Add btver1 instruction sets.
12735         (ix86_issue_rate): Add btver1.
12736         (ix86_adjust_cost): Add btver1.
12737         * config/i386/i386.h (TARGET_BTVER1): New definition.
12738         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
12739         (enum processor_type): Add PROCESSOR_BTVER1.
12740         * config/i386/i386.md (define_attr "cpu"): Add btver1.
12741
12742 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12743
12744         PR target/43309
12745         * config/i386/i386.c (legitimize_tls_address)
12746         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
12747         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
12748         (tls_initial_exec_64_sun): New pattern.
12749
12750 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
12751
12752         * doc/invoke.texi (Overall Options): Improve wording and markup
12753         of the description of -wrapper.
12754
12755 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
12756
12757         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
12758         rdynamic, threads): New Driver options.
12759
12760 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12761
12762         PR target/38118
12763         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
12764         if coming from .tdata.
12765         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
12766
12767 2011-01-06  Jan Hubicka  <jh@suse.cz>
12768
12769         PR lto/47188
12770         * collect2.c (main): Do not enable LTOmode when plugin is active.
12771
12772 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12773
12774         PR other/45915
12775         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
12776         --version output if supported.
12777         * configure: Regenerate.
12778
12779 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
12780
12781         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
12782         Driver options.
12783
12784 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
12785
12786         PR c/47150
12787         * c-convert.c (convert): When converting a complex expression
12788         other than COMPLEX_EXPR to a different complex type, ensure
12789         c_save_expr is called instead of save_expr, unless in_late_binary_op.
12790         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
12791         when converting COMPLEX_TYPE.
12792
12793 2011-01-06  Ira Rosen  <irar@il.ibm.com>
12794
12795         PR tree-optimization/47139
12796         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
12797         only the last reduction value is used outside the loop.  Update
12798         documentation.
12799
12800 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
12801
12802         * config/rtems.opt: New.
12803         * config.gcc (*-*-rtems*): Use rtems.opt.
12804
12805 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
12806
12807         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
12808         processors do not support 3DNow instructions.
12809
12810 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12811
12812         * config/spu/spu.c (spu_option_override): Set parameter
12813         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
12814
12815 2011-01-05  Jan Hubicka  <jh@suse.cz>
12816
12817         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
12818         at the command line.
12819
12820 2011-01-05  Martin Jambor  <mjambor@suse.cz>
12821
12822         PR lto/47162
12823         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
12824         deltas on streamed outgoing edges.
12825         (output_node_opt_summary): Output info for outgoing edges only when
12826         the node is in new parameter set.
12827         (output_cgraph_opt_summary): New parameter set, passed to the two
12828         aforementioned functions.  Update its forward declaration and its
12829         callee too.
12830
12831 2011-01-05  Tom Tromey  <tromey@redhat.com>
12832
12833         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
12834         operator to c_finish_omp_atomic.
12835         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
12836         (build_unary_op): Update.
12837         (build_modify_expr): Update.
12838         (build_asm_expr): Update.
12839
12840 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12841
12842         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
12843         newly inserted insns.
12844         (pad_bb): Likewise.
12845         (spu_emit_branch_hint): Likewise.
12846         (insert_hbrp_for_ilb_runout): Likewise.
12847         (spu_machine_dependent_reorg): Call df_finish_pass after
12848         schedule_insns returns.
12849
12850 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12851
12852         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
12853
12854 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12855
12856         PR tree-optimization/47005
12857         * tree-sra.c (struct access): Add 'non_addressable' bit.
12858         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
12859         (decide_one_param_reduction): Return 0 if the parameter is passed by
12860         reference and one of the accesses in the group is non_addressable.
12861
12862 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12863
12864         PR tree-optimization/47056
12865         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
12866         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
12867         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
12868
12869 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12870
12871         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
12872         initializer.  Skip view conversions from aggregate types.
12873
12874 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
12875
12876         PR bootstrap/47055
12877         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
12878
12879 2011-01-04  Philipp Thomas  <pth@suse.de>
12880
12881         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
12882         obvious typo.
12883
12884 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12885
12886         * function.c (thread_prologue_and_epilogue_insns): Do not crash
12887         on empty epilogue sequences.
12888
12889 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
12890
12891         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
12892         non-static): New Driver options.
12893
12894 2011-01-04  Jie Zhang  <jie@codesourcery.com>
12895
12896         PR driver/47137
12897         * gcc.c (default_compilers[]): Set combinable field to 0
12898         for all assembly languages.
12899
12900 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
12901
12902         * config/mips/loongson3a.md: New file.
12903         * config/mips/mips.md: Include loongson3a.md.
12904         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
12905         TUNE_LOONGSON_3A.
12906
12907 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
12908
12909         PR middle-end/47017
12910         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
12911         instead of convert_memory_address_addr_space on the base expression.
12912
12913 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12914
12915         * config/spu/spu.c (spu_option_override): Update error text
12916         for bad -march= / -mtune= values.
12917
12918 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12919
12920         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
12921         if branch-hint optimization will be performed.
12922
12923 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
12924
12925         PR tree-optimization/47148
12926         * ipa-split.c (split_function): Convert arguments to
12927         DECL_ARG_TYPE if possible.
12928
12929         PR tree-optimization/47155
12930         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
12931         when computing uns.
12932
12933         PR rtl-optimization/47157
12934         * combine.c (try_combine): If undobuf.other_insn becomes
12935         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
12936         and set *new_direct_jump_p too.
12937
12938 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12939
12940         PR tree-optimization/47021
12941         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
12942
12943 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
12944
12945         * gcc.c (process_command): Update copyright notice dates.
12946         * gcov.c (print_version): Likewise.
12947         * gcov-dump.c (print_version): Likewise.
12948         * mips-tfile.c (main): Likewise.
12949         * mips-tdump.c (main): Likewise.
12950
12951 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12952
12953         PR tree-optimization/46801
12954         * tree-sra.c (type_internals_preclude_sra_p): Check whether
12955         aggregate fields start at byte boundary instead of the bit-field flag.
12956
12957 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
12958
12959         PR driver/47137
12960         * gcc.c (main): Revert revision 168407.
12961
12962 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12963
12964         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
12965
12966 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12967
12968         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
12969         vector optab to expand vector/scalar shift, update gimple to vector.
12970
12971 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12972
12973         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
12974         a thunk.
12975
12976 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12977
12978         PR tree-optimization/46984
12979         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
12980         HOST_WIDE_INT.
12981         (cgraph_create_indirect_edge): Fixed line length.
12982         (cgraph_indirect_call_info): Declare.
12983         (cgraph_make_edge_direct) Update declaration.
12984         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
12985         (cgraph_create_indirect_edge): Use it.
12986         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
12987         callees.
12988         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
12989         the new thunk_delta representation.
12990         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
12991         HOST_WIDE_INT.
12992         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
12993         (ipa_read_indirect_edge_info): Likewise.
12994         * lto-cgraph.c (output_edge_opt_summary): New function.
12995         (output_node_opt_summary): Call it on all outgoing edges.
12996         (input_edge_opt_summary): New function.
12997         (input_node_opt_summary): Call it on all outgoing edges.
12998
12999 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
13000
13001         PR driver/47137
13002         * gcc.c (main): Don't check have_o when settting combine_inputs.
13003
13004 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
13005
13006         * regrename.c: Add general comment describing the pass.
13007         (struct du_head): Remove 'length' field.
13008         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
13009         (regrename_optimize): Do not sort chains.  Rework comments, add others.
13010         Force renaming to the preferred class (if any) in the first pass and do
13011         not consider registers that belong to it in the second pass.
13012         (create_new_chain): Do not set 'length' field.
13013         (scan_rtx_reg): Likewise.
13014
13015 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
13016
13017         PR tree-optimization/47140
13018         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
13019         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
13020         to bit_value_binop.
13021
13022         PR rtl-optimization/47028
13023         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
13024         parm_birth_insn instead of at the beginning of first bb.
13025
13026 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
13027
13028         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
13029         Remove the word "see" before "@pxref".
13030         * doc/rtl.texi: Remove the word "see" before "@pxref".
13031
13032 2011-01-01  Jan Hubicka  <jh@suse.cz>
13033
13034         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
13035         memory.
13036
13037 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
13038
13039         PR target/38662
13040         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
13041
13042 \f
13043 Copyright (C) 2011 Free Software Foundation, Inc.
13044
13045 Copying and distribution of this file, with or without modification,
13046 are permitted in any medium without royalty provided the copyright
13047 notice and this notice are preserved.