sparc.h (REG_OK_FOR_INDEX_P, [...]): Remove.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
2
3         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
4         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
5         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
6         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
7         RTX_OK_FOR_OLO10_P): ...here.
8         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9         SYMBOLIC_CONST.
10
11 2011-05-12  Kai Tietz  <ktietz@redhat.com>
12
13         * gimplify.c (gimple_boolify): Re-boolify expression
14         arguments even if expression type is of kind BOOLEAN_TYPE.
15         (gimplify_boolean_expr): Removed.
16         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
17         and XOR. Additional take care that we keep expression's type.
18         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
19         of TRUTH_AND|OR|XOR_EXPR.
20
21 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
22
23         PR tree-optimization/48975
24         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
25         on all bbs here and free and clear ifc_bbs at the end.
26
27 2011-05-12  Richard Guenther  <rguenther@suse.de>
28
29         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
30         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
31         until after simple checks.
32         (gimple_types_compatible_p): Likewise.
33         (iterative_hash_gimple_type): Always hash pointer targets
34         and function return and argument types.
35         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
36         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
37         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
38         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
39         completely in the simple compare section.
40         (gimple_register_canonical_type): Query the cache again after
41         registering.
42
43 2011-05-12  Richard Guenther  <rguenther@suse.de>
44
45         PR tree-optimization/48172
46         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
47         the number of iterations from the segment size calculation.
48         (vect_create_cond_for_alias_checks): Adjust.
49
50 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
51
52         PR debug/48967
53         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
54         if validate_subreg fails.
55
56 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
57
58         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
59         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
60         early.
61
62 2011-05-12  DJ Delorie  <dj@redhat.com>
63
64         (rx_builtins): New arrays - holds builtin functions.
65         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
66         created builtin into rx_builtins array.
67         (rx_builtin_decl): New function.
68         (TARGET_BUITLIN_DECL): Define.
69         Include gt-rx.h.
70
71 2011-05-12  DJ Delorie  <dj@redhat.com>
72             Nick Clifton  <nickc@redhat.com>
73
74         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
75         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
76         (rx_is_legitimate_address): Add pre-decrement and post-increment
77         addressing in HImode and QImode.  Fix test for out of range
78         REG+INT addressing.
79         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
80         (rx_align_for_label): Test label before extracting its usage
81         count.
82         (rx_adjust_insn_lengths): Fix selection of insn codes.
83         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
84
85 2011-05-11  Jason Merrill  <jason@redhat.com>
86
87         * tree.c (type_hash_canon): Use struct tree_type_non_common.
88
89 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
90
91         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
92         reindent the subsequent block.
93
94 2011-05-11  Satoru Takabayashi  <satorux@google.com>
95             Paul Pluzhnikov  <ppluzhnikov@google.com>
96
97         * doc/install.texi (Configuration): Document
98         --with-linker-hash-style.
99         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
100         * config.in: Add LINKER_HASH_STYLE.
101         * configure.ac: Add --with-linker-hash-style.
102         * configure: Regenerate.
103
104 2011-05-11  Richard Guenther  <rguenther@suse.de>
105
106         PR middle-end/48964
107         * gimple.c (iterative_hash_canonical_type): Fix typo.
108
109 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
110
111         * config/i386/i386.c (legitimize_tls_address)
112         <TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
113         expanders directly for TARGET_GNU2_TLS.  Determine pic and
114         __tls_get_addr symbol reference here.  Update call to
115         gen_tls_global_dynamic_{32,64} for added arguments.
116         <TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
117         expanders directly for TARGET_GNU2_TLS.  Determine
118         __tls_get_addr symbol reference here.  Update call to
119         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
120         unique UNSPEC REG_EQUIV to libcall block.
121         (ix86_tls_get_addr): Declare static.
122         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
123         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
124         Do not determine pic and __tls_get_addr symbol reference here. Do not
125         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
126         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
127         (tls_global_dynamic_64): Add operand 2.  Do not determine
128         __tls_get_addr symbol reference here.  Do not call
129         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
130         (tls_local_dynamic_base64): Ditto for operand 1.
131
132 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
133
134         * function.c (expand_function_start): Initialize stack_check_probe_note
135         only if the generic stack checking mechanism is used.
136
137 2011-05-11  Richard Guenther  <rguenther@suse.de>
138
139         PR tree-optimization/15256
140         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
141         (A & B) | C, combine (A op CST1) op CST2.
142         (tree_ssa_forward_propagate_single_use_vars): Only bother to
143         visit assigns that have uses.
144
145 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
146
147         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
148         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
149         (unpack_ts_type_common_value_fields): ...this.  Update comment.
150         (unpack_value_fields): Adjust for renaming.
151         (lto_input_ts_type_tree_pointers): Split into...
152         (lto_input_ts_type_common_tree_pointer): ...this and...
153         (lto_input_ts_type_non_common_tree_pointers): ...this.
154         (lto_input_tree_pointers): Adjust for above split.
155         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
156         (pack_ts_type_common_value_fields): ...this.  Update comment.
157         (lto_output_ts_type_tree_pointers): Split into...
158         (lto_output_ts_type_common_tree_pointers): ...this and...
159         (lto_output_ts_type_non_common_tree_pointers): ...this.
160         (lto_output_tree_pointers): Adjust for above split.
161         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
162         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
163         * stor-layout.c (vector_type_mode): Adjust location of mode field.
164         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
165         Define.
166         (struct tree_type): Split into...
167         (struct tree_type_common: ...this and...
168         (struct tree_type_with_lang_specific): ...this and...
169         (struct tree_type_non_common): ...this.  Adjust accessor macros
170         accordingly.
171         (TYPE_VALUES_RAW): Define.
172         (union tree_node): Update for above changes.
173         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
174         TS_TYPE_NON_COMMON.
175         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
176         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
177         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
178         * treestructu.def (TS_TYPE): Remove.
179         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
180         Define.
181
182 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
183
184         PR debug/48159
185         * tree-ssa.c (reset_debug_uses): New function.
186         * tree-flow.h (reset_debug_uses): New prototype.
187         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
188         * tree-loop-distribution.c (generate_loops_for_partition): Call
189         reset_debug_uses on the stmts that will be removed.  Keep around
190         all debug stmts, don't count them as bits in partition bitmap.
191         (generate_builtin): Don't count debug stmts or labels as bits in
192         partition bitmap.
193
194 2011-05-11  Richard Guenther  <rguenther@suse.de>
195
196         * gimple.c (gimple_type_hash_1): Merge with ...
197         (gimple_type_hash): ... this.
198         (gtc_visit): Remove mode parameter and simplify accordingly.
199         (gimple_types_compatible_p_1): Likewise.
200         (gimple_types_compatible_p): Likewise.
201         (iterative_hash_gimple_type): Likewise.
202         (visit): Likewise.
203         (gimple_type_eq): Adjust.
204
205 2011-05-11  Revital Eres  <revital.eres@linaro.org>
206
207         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
208         enters the branch create an anti edge in the opposite direction
209         to prevent the creation of reg-moves.
210         * modulo-sched.c: Adjust comment to reflect the fact we are
211         scheduling closing branch.
212         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
213         (stage_count): New field in struct partial_schedule.
214         (calculate_stage_count): New function.
215         (normalize_sched_times): Rename to reset_sched_times and handle
216         incrementing the sched time of the nodes by a constant value
217         passed as parameter.
218         (duplicate_insns_of_cycles): Skip closing branch.
219         (sms_schedule_by_order): Schedule closing branch.
220         (ps_insn_find_column): Handle closing branch.
221         (sms_schedule): Call reset_sched_times and adjust the code to
222         support scheduling of the closing branch.
223         (ps_insert_empty_row): Update calls to normalize_sched_times
224         and rotate_partial_schedule functions.
225
226 2011-05-11  Richard Guenther  <rguenther@suse.de>
227
228         PR middle-end/48953
229         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
230
231 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
232
233         * opts.c (finish_options): Move warning settings from process_options.
234         * toplev.c (process_options): Move warning settings to finish_options.
235
236 2011-05-11  Richard Guenther  <rguenther@suse.de>
237
238         PR tree-optimization/18041
239         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
240         (simplify_bitwise_binary): ... this.  Handle operand conversions
241         by applying them to the result instead.
242         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
243
244 2011-05-11  Richard Guenther  <rguenther@suse.de>
245
246         * gimple.c (gimple_canonical_types_compatible_p): Split out
247         from gimple_types_compatible_p and friends.  Do not recurse
248         to pointed-to types.
249         (gimple_canonical_type_eq): Use it.
250         (iterative_hash_canonical_type): Split out from
251         iterative_hash_gimple_type and friends.  Do not recurse
252         to pointed-to types.
253         (gimple_canonical_type_hash): Use it, allocate the hash here.
254
255 2011-05-11  Revital Eres  <revital.eres@linaro.org>
256
257         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
258         recognizing doloop.
259
260 2011-05-11  Revital Eres  <revital.eres@linaro.org>
261
262         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
263         instead of PREV_INSN.
264
265 2011-05-11  Revital Eres  <revital.eres@linaro.org>
266
267         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
268         * loop-doloop.c (doloop_condition_get): Likewise.
269         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
270         (doloop_end): New.
271         * config/arm/arm.md (*addsi3_compare0): Remove "*".
272
273 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
274
275         * tree.def (CASE_LABEL_EXPR): Add an operand.
276         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
277
278 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
279
280         * c-decl.c (c_override_global_bindings_to_false): Remove.
281         (global_bindings_p): Don't check
282         c_override_global_bindings_to_false.
283         * c-tree.h (c_override_global_bindings_to_false): Remove.
284         * c-typeck.c (composite_type): Don't set
285         c_override_global_bindings_to_false.
286
287 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
288
289         PR target/48857, 48495
290         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
291         (VSX_MODE): Ditto.
292         (VSX_MOVE_MODE): Ditto.
293         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
294         VSX vector types.  Add V2DImode.
295         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
296         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
297         (MODES_TIEABLE_P): Ditto.
298
299         * config/rs6000/rs6000.c (rs6000_emit_move): Use
300         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
301         VSX_VECTOR_MODE.
302         (init_cumulative_args): Ditto.
303         (rs6000_function_arg_boundary): Ditto.
304         (rs6000_function_arg_advance_1): Ditto.
305         (rs6000_function_arg): Ditto.
306         (rs6000_function_ok_for_sibcall): Ditto.
307         (emit_frame_save): Ditto.
308         (rs6000_function_value): Ditto.
309         (rs6000_libcall_value): Ditto.
310
311 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
312
313         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
314         i386/darwin-lib.h to $libgcc_tm_file.
315         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
316
317 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
318
319         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
320
321 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
322
323         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
324         * config/rs6000/rs6000-tables.opt: New file (generated).
325         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
326         rs6000/rs6000-tables.opt to extra_options.
327         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
328         * config/rs6000/rs6000.c (rs6000_select): Remove.
329         (processor_target_table): Move contents to rs6000-cpus.def.
330         (darwin_rs6000_override_options): Check
331         global_options_set.x_rs6000_cpu_index instead of
332         rs6000_select[1].string.
333         (rs6000_option_override_internal): Likewise.
334         (rs6000_handle_option): Don't assert that global structures are in
335         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
336         (rs6000_default_cpu): New variable.
337         (rs6000_file_start): Set it instead of local default_cpu.  Check
338         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
339         global_options_set.x_rs6000_tune_index instead of rs6000_select.
340         (rs6000_darwin_file_start): Check rs6000_default_cpu and
341         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
342         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
343         rs6000_select): Remove.
344         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
345         Remove.
346         (mcpu=, mtune=): Use Var, Init, Enum and Save.
347         * config/rs6000/t-rs6000
348         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
349         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
350         global_options_set.x_rs6000_cpu_index instead of
351         rs6000_select[1].string.
352         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
353         global_options_set.x_rs6000_cpu_index instead of
354         rs6000_select[1].string.
355
356 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
357
358         * config.gcc (libgcc_tm_file): Define instead of including files
359         from ../../libgcc/config/ in tm_file.
360         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
361         * configure: Regenerate.
362         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
363         libgcc_tm.h, cs-libgcc_tm.h): New.
364         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
365         (clean): Remove libgcc_tm.h.
366         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
367         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
368         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
369
370 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
371
372         PR target/48896
373         * config/avr/avr.c (avr_ret_register): Return unsigned int
374         instead of int.
375         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
376         it to avr_libcall_value.
377         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
378         expand_expr.
379         (avr_expand_binop_builtin): Ditto.
380         (avr_expand_unop_builtin): Ditto.
381
382 2011-05-10  DJ Delorie  <dj@redhat.com>
383
384         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
385         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
386         * config/rx/rx.c (rx_align_for_label): Add label and
387         uses_threshold parameters.  Do not align when the label is not
388         used enough.
389         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
390
391 2011-05-10  Richard Guenther  <rguenther@suse.de>
392
393         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
394         a series of conversions and apply foldings similar to what
395         fold-const does.
396         (tree_ssa_forward_propagate_single_use_vars): Call it.
397
398 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
399
400         PR tree-optimization/48611
401         PR tree-optimization/48794
402         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
403         referenced from RESX or EH_DISPATCH arguments.
404
405         PR debug/48928
406         * dfp.c (decimal_to_decnumber): Handle conversion from
407         dconst{1,2,m1,half}.
408
409 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
410
411         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
412         for !flag_prefer_avx128.
413         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
414
415 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
416
417         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
418         (fold_ternary_loc): Use expr_location_or.
419
420 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
421
422         PR debug/48853
423         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
424         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
425         Pmode and mem_mode is not VOIDmode.
426
427 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
428
429         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
430         TYPE_QUAL_RESTRICT): Convert to enum.
431
432 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
433
434         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
435         (const_pow2_1_to_8_operand): Ditto.
436         (const_pow2_1_to_128_operand): Ditto.
437         (const_pow2_1_to_32768_operand): Ditto.
438         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
439         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
440         in insn constraint to check integer value of operand 3.
441         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
442
443         (PINSR_MODE): New mode iterator.
444         (sse2p4_1): New mode attribute.
445         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
446         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
447         iterator.  Use const_int_operand instead of
448         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
449         exact_log2 in insn constraint to check integer value of operand 3.
450
451 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
452
453         * config/i386/sse.md (blendbits): Remove mode attribute.
454         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
455         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
456         Check integer value of operand 3 in insn constraint.
457
458 2011-05-09  Richard Guenther  <rguenther@suse.de>
459
460         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
461         for diagnostics.
462         (lto_symtab_merge): Likewise.  Do not register types here.
463         (lto_symtab_merge_decls_2): Likewise.
464         (lto_symtab_merge_decls_1): Likewise.
465         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
466         * gimple.c (enum gtc_mode): Declare.
467         (gimple_types_compatible_p): Make static.
468
469 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
470
471         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
472         temporary register to match Pmode.
473
474 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
475
476         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
477         and *vec_concatv4si_1_avx.
478
479 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
480
481         PR rtl-optimization/48927
482         * ira-conflicts.c (commutative_constraint_p): Use
483         recog_data.alternative_enabled_p to disable alternatives where
484         "enabled" attribute is false.
485         (get_dup_num): Ditto.
486         * ira-lives.c (single_reg_class): Ditto.
487         (ira_implicitly_set_insn_hard_regs): Ditto.
488
489 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
490
491         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
492         (dataflow_set_preserve_mem_locs): Likewise.
493
494 2011-05-09  Philipp Thomas  <pth@suse.de>
495
496         * config/mep/mep.c (mep_validate_vliw): Syntax description
497         should not be translated.
498
499 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
500
501         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
502         * config/mips/mips-tables.opt: New file (generated).
503         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
504         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
505         MIPS_ARCH_OPTION_NATIVE): Define.
506         * config/mips/mips.c (mips_cpu_info_table): Move contents to
507         mips-cpus.def.
508         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
509         mips_parse_cpu): Remove.
510         (mips_cpu_info_from_opt, mips_default_arch): New.
511         (mips_handle_option): Don't assert that global structures are in
512         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
513         (mips_option_override): Use new variables and functions to set
514         state of these options.  Use strcmp to check for individual CPU names.
515         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
516         definition.
517         * config/mips/mips.opt (march=): Use ToLower and Enum.
518         (mips): Use ToLower, Enum and Var.
519         (mtune=): Use ToLower and Enum.
520         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
521
522 2011-05-08  Jan Hubicka  <jh@suse.cz>
523
524         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
525         Arrange type pairs to be UID ordered.
526         (gimple_lookup_type_leader): Make inline.
527
528 2011-05-09  Nick Clifton  <nickc@redhat.com>
529
530         PR target/48899
531         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
532         PROCESSOR_DEFAULT.
533
534         PR target/48897
535         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
536         variable 's'.
537
538 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
539
540         * combine.c (simplify_comparison): Abstract out parts into...
541         (simplify_compare_const): ... new function.
542         (try_combine): Generalize parallel arithmetic/compare combining
543         to call simplify_compare_const() and CANONICALIZE_COMPARE().
544
545 2011-05-08  Jan Hubicka  <jh@suse.cz>
546
547         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
548         (cgraph_create_virtual_clone): Call hooks once virtual clone
549         is finished.
550         * cgraph.h (cgraph_clone_node): Update prototype.
551         * ipa-cp.c (ipcp_estimate_growth): Use
552         estimate_ipcp_clone_size_and_time.
553         * ipa-inline-transform.c (clone_inlined_nodes): Update.
554         * lto-cgraph.c (input_node): Update.
555         * ipa-inline.c (recursive_inlining): Update.
556         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
557         (evaluate_conditions_for_known_args): Break out from ...
558         (evaluate_conditions_for_edge): ... here.
559         (evaluate_conditions_for_ipcp_clone): New function.
560         (inline_node_duplication_hook): Update clone summary based
561         on parameter map.
562         (estimate_callee_size_and_time): Rename to ...
563         (estimate_node_size_and_time): take NODE instead of EDGE;
564         take POSSIBLE_TRUTHS as argument.
565         (estimate_callee_size_and_time): Update.
566         (estimate_ipcp_clone_size_and_time): New function.
567         (do_estimate_edge_time): Update.
568
569 2011-05-08  Richard Guenther  <rguenther@suse.de>
570
571         PR middle-end/48908
572         PR middle-end/48905
573         * expmed.c (expand_shift_1): Compute adjusted constant shift
574         amount manually.
575
576 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
577
578         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
579
580 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
581
582         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
583
584 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
585
586         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
587
588 2011-05-07  Jan Hubicka  <jh@suse.cz>
589
590         * ipa-inline-transform.c (inline_call): Account when program size
591         decreases.
592         * ipa-inline.c (relative_time_benefit): New function.
593         (edge_badness): Reorganize to be power 2 based; fix thinko when
594         computing badness for negative growth; update comments to match
595         reality; better dumps.
596
597 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
598
599         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
600         type to bool and adjust comment.
601         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
602         (fold_mathfn_compare): Remove calls to global_bindings_p.
603         (fold_inf_compare): Likewise.
604         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
605         * c-tree.h (global_bindings_p): Adjust prototype.
606         * c-decl.c (global_bindings_p): Return bool and simplify.
607
608 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
609
610         PR tree-optimization/48837
611         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
612         when accumulator transformation is performed.
613
614 2011-05-06  Jan Hubicka  <jh@suse.cz>
615
616         * i386.h (ix86_tune_indices): Add
617         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
618         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
619         * i386.c (initial_ix86_tune_features): Add
620         X86_SOFTARE_PREFETCHING_BENEFICIAL.
621         (software_prefetching_beneficial_p): Remove predicate.
622         (ix86_option_override_internal): Use new macro.
623
624 2011-05-06  Jan Hubicka  <jh@suse.cz>
625
626         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
627
628 2011-05-06  Jan Hubicka  <jh@suse.cz>
629
630         * cgraph.c (cgraph_add_thunk): Create real function node instead
631         of alias node; finalize it and mark needed/reachale; arrange visibility
632         to be right and add it into the corresponding same comdat group list.
633         (dump_cgraph_node): Dump thunks.
634         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
635         cgraph_function_with_gimple_body_p,
636         cgraph_first_function_with_gimple_body,
637         cgraph_next_function_with_gimple_body): New functions.
638         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
639         New macros.
640         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
641         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
642         * cgraphunit.c (cgraph_finalize_function): Only look into possible
643         devirtualization when optimizing.
644         (verify_cgraph_node): Verify thunks.
645         (cgraph_analyze_function): Analyze thunks.
646         (cgraph_mark_functions_to_output): Output thunks only in combination
647         with function they are assigned to.
648         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
649         alias into normal node.
650         (assemble_thunks): New functoin.
651         (cgraph_expand_function): Use it.
652         * lto-cgraph.c (lto_output_node): Stream thunks.
653         (input_overwrite_node): Stream in thunks.
654         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
655         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
656         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
657         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
658         (inline_analyze_function): Do not care about thunk jump functions.
659         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
660         * ipa-prop.c (ipa_prop_write_jump_functions): Use
661         cgraph_function_with_gimple_body_p.
662         * passes.c (do_per_function_toporder): Use
663         cgraph_function_with_gimple_body_p.
664         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
665         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
666         (function_called_by_processed_nodes_p): Likewise.
667
668 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
669
670         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
671         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
672         entries.
673         (mabi=): Replace with separate entries for mabi=altivec,
674         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
675         mabi=ieeelongdouble and mabi=ibmlongdouble.
676         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
677         check for -mabi=spe without SPE ABI support here.
678         (rs6000_handle_option): Replace OPT_mabi_ handling with
679         OPT_mabi_altivec and OPT_mabi_spe handling.
680
681 2011-05-06  Cary Coutant  <ccoutant@google.com>
682
683         * dwarf2out.c (contains_subprogram_definition): New function.
684         (should_move_die_to_comdat): Call it.
685
686 2011-05-06  Jeff Law  <law@redhat.com>
687
688         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
689         remove_ctrl_stmt_and_useless_edges.
690         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
691         (fixup_template_block, thread_single_edge): Likewise.
692         (mark_threaded_blocks): Use THREAD_TARGET.
693
694 2011-05-06  Alan Modra  <amodra@gmail.com>
695
696         PR target/48900
697         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
698         const0_rtx as the arg to the dummy __tls_get_addr libcall.
699
700 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
701
702         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
703         constraint modifier to "r".
704
705 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
706
707         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
708         fall through for OPT_mcmodel_.
709
710 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
711
712         * config/s390/s390.c (s390_asm_trampoline_template): Comment
713         instruction sizes.
714         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
715
716 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
717
718         PR target/47930
719         * config/arm/arm.opt (marm): Document it.
720         (mthumb): Reject negative variant.
721
722 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
723
724         PR target/48898
725         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
726         Fix typo in "ccvt" variable name.
727
728 2011-05-06  Tristan Gingold  <gingold@adacore.com>
729
730         PR target/48895
731         * config/vms/vms-ar.c (main): Remove cwd variable.
732
733 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
734
735         PR debug/48902
736         * var-tracking.c (prepare_call_arguments): Move else before #endif.
737
738 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
739
740         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
741         * gimplify.c (gimplify_switch_expr): Likewise.
742         * omp-low.c (expand_omp_sections): Likewise.
743         * tree-eh.c (lower_try_finally_switch): Likewise.
744         (lower_eh_dispatch): Likewise.
745         * tree.h (build_case_label): Declare.
746         * tree.c (build_case_label): Define.
747
748 2011-05-05  Jason Merrill  <jason@redhat.com>
749
750         PR c++/40975
751         * tree-inline.c (copy_tree_r): Use copy_statement_list.
752         (copy_statement_list): Don't recurse.
753         * stor-layout.c (copy_self_referential_tree_r): Don't allow
754         STATEMENT_LIST.
755
756 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
757
758         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
759         through from -mfpu= handling.
760         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
761
762 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
763
764         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
765         POST_MODIFY.
766
767 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
768
769         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
770         for 11.31.
771         (hppa[12]*-*-hpux11*): Ditto.
772         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
773         * config/ia64/hpux-unix2003.h: New.
774         * config/pa/pa-hpux1131.opt: New.
775         * config/pa/pa-hpux1131.h: New.
776         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
777         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
778         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
779
780 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
781
782         PR debug/48853
783         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
784         instead of mode as 3rd argument to recursive call.
785         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
786         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
787         VOIDmode.
788         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
789         don't give up if mode is Pmode and mem_mode is not VOIDmode.
790         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
791         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
792
793 2011-05-05  Julian Brown  <julian@codesourcery.com>
794
795         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
796         parenthesis in D-register case.
797
798 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
799
800         * opt-functions.awk (var_type_struct): Handle Enum options.
801         * optc-gen.awk: Don't check range of variables of character type.
802         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
803         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
804         rs6000_sdata_name, rs6000_explicit_options): Remove.
805         (rs6000_option_override_internal): Check for -malign-power here.
806         Use global_options_set instead of rs6000_explicit_options.
807         (rs6000_parse_fpu_option): Remove.
808         (rs6000_handle_option): Access variables via opts and opts_set
809         pointers.  Use error_at and warning_at.  Add fall-through
810         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
811         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
812         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
813         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
814         here.  Don't use rs6000_parse_fpu_option.
815         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
816         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
817         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
818         (mrecip=): Use Var.
819         (mspe): Use Var and Save.
820         (mtraceback=): Use Enum and Var.
821         (rs6000_traceback_type): New Enum and EnumValue entries.
822         (mfloat-gprs=): Use Enum, Var and Save.
823         (rs6000_float_gprs): New Enum and EnumValue entries.
824         (mlong-double-): use Var and Save.
825         (msched-costly-dep=, minsert-sched-nops=): Use Var.
826         (malign-): Use Enum and Var.
827         (rs6000_alignment_flags): New Enum and EnumValue entries.
828         (mfpu=): Use Enum.
829         (fpu_type_t): New Enum and EnumValue entries.
830         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
831         global_options_set instead of rs6000_explicit_options.
832         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
833         global_options_set instead of rs6000_explicit_options.
834         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
835         global_options_set instead of rs6000_explicit_options.
836         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
837         global_options_set instead of rs6000_explicit_options.
838         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
839         global_options_set instead of rs6000_explicit_options.
840         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
841         global_options_set instead of rs6000_explicit_options.
842         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
843         definition.
844         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
845         global_options_set instead of rs6000_explicit_options.
846         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
847         (rs6000_cmodel): New Enum and EnumValue entries.
848         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
849         global_options_set instead of rs6000_explicit_options.
850         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
851         (mtls-size=): Use Enum and Var.
852         (rs6000_tls_size): New Enum and EnumValue entries.
853
854 2011-05-05  Michael Matz  <matz@suse.de>
855
856         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
857         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
858         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
859         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
860         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
861         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
862         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
863         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
864         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
865         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
866         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
867         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
868         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
869         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
870         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
871         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
872
873 2011-05-05  Richard Guenther  <rguenther@suse.de>
874
875         * expmed.c (expand_variable_shift): Rename to ...
876         (expand_shift_1): ... this.  Take an expanded shift amount.
877         For rotates recurse directly not building trees for the shift amount.
878         (expand_variable_shift): Wrap around expand_shift_1.
879         (expand_shift): Adjust.
880
881 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
882
883         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
884
885 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
886
887         * tree.h (get_pending_sizes): Remove prototype.
888         (put_pending_size): Likewise.
889         (put_pending_sizes): Likewise.
890         * stor-layout.c (pending_sizes): Delete.
891         (get_pending_sizes): Likewise.
892         (put_pending_size): Likewise.
893         (put_pending_sizes): Likewise.
894         (variable_size): Do not call put_pending_size and tidy up.
895         * function.h (struct function): Remove dont_save_pending_sizes_p.
896         * lto-streamer-in.c (input_function): Do not stream it.
897         * lto-streamer-out.c (output_function): Likewise.
898         * tree-inline.c (initialize_cfun): Do not copy it.
899         * c-decl.c (store_parm_decls): Do not set it.
900         * omp-low.c (create_task_copyfn): Likewise.
901         * tree-optimize.c (tree_rest_of_compilation): Likewise.
902
903 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
904
905         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
906         conditions.
907         (*movdf_internal): Ditto.
908         (*movdf_internal_nointeger): Ditto.
909         (*movsf_internal): Ditto.
910
911 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
912
913         * c-decl.c (finish_decl): Don't call get_pending_sizes.
914         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
915         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
916         (c_variable_size): Remove.
917         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
918         call put_pending_sizes.
919         (get_parm_info): Add parameter expr.  Use it to set
920         arg_info->pending_sizes.
921         (store_parm_decls): Use arg_info->pending_sizes instead or calling
922         get_pending_sizes.
923         * c-parser.c (c_parser_parms_declarator): Update call to
924         c_parser_parms_list_declarator.
925         (c_parser_parms_list_declarator): Take parameter expr.  Update
926         call to push_parm_decl.  Update recursive call.  Don't call
927         get_pending_sizes.  Update calls to get_parm_info.
928         (c_parser_objc_method_definition): Update calls to
929         c_parser_objc_method_decl and objc_start_method_definition.
930         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
931         (c_parser_objc_method_decl): Add parameter expr.  Update call to
932         grokparm.
933         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
934         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
935         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
936
937 2011-05-05  Michael Hope  <michael.hope@linaro.org>
938
939         PR pch/45979
940         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
941         __ARM_EABI__ hosts.
942
943 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
944
945         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
946         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
947         (spu_output_mi_thunk): New function.
948
949 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
950
951         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
952         targetm.asm_out.print_operand.
953         * config/sol2.c: Include target.h.
954
955 2011-05-04  Jan Hubicka  <jh@suse.cz>
956
957         * ipa-inline.c (reset_edge_caches): New function.
958         (update_caller_keys): Add check_inlinablity_for; do not
959         reset edge caches; remove now unnecesary loop.
960         (update_callee_keys): Add comments; reset node_growth_cache of callee.
961         (update_all_callee_keys): Likewise.
962         (inline_small_functions): Sanity check cache; update code
963         recomputing it.
964
965 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
966
967         PR rtl-optimization/47612
968         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
969         as the last insn of the sequence to be moved.
970
971 2011-05-04  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/48864
974         * doc/invoke.texi (Ofast): Document that it
975         enables Fortran's -fno-protect-parens.
976
977 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
978
979         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
980
981 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
982
983         * stor-layout.c (variable_size): Do not issue errors.
984
985 2011-05-04  Richard Guenther  <rguenther@suse.de>
986
987         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
988         for array-ref indices.
989         (tree_coverage_counter_addr): Likewise.
990         (build_fn_info_type): Use size_int for index types.
991         (build_gcov_info): Likewise.
992
993 2011-05-04  Richard Guenther  <rguenther@suse.de>
994
995         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
996         to build_int_cst.
997         * c-typeck.c (really_start_incremental_init): Use bitsize_int
998         for constructor indices.
999         (push_init_level): Likewise.
1000
1001 2011-05-04  Richard Guenther  <rguenther@suse.de>
1002
1003         * explow.c (promote_mode): Move variable declarations before code.
1004
1005 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1006
1007         * tree.h (build_function_type_array): Declare.
1008         (build_varargs_function_type_array): Declare.
1009         (build_function_type_vec, build_varargs_function_type_vec): Define.
1010         * tree.c (build_function_type_array_1): New function.
1011         (build_function_type_array): New function.
1012         (build_varargs_function_type_array): New function.
1013
1014 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
1015
1016         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1017         before setting STMT_VINFO_TYPE.
1018
1019 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1020
1021         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1022         instead of spu_pass_by_reference.
1023
1024 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1025
1026         * calls.c (emit_library_call_value_1): Invoke
1027         promote_function_mode hook on libcall arguments.
1028         * explow.c (promote_function_mode, promote_mode): Handle TYPE
1029         argument being NULL.
1030         * targhooks.c (default_promote_function_mode): Lisewise.
1031         * config/s390/s390.c (s390_promote_function_mode): Likewise.
1032         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1033
1034         * doc/tm.texi: Document that TYPE argument might be NULL.
1035
1036 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1037
1038         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1039
1040 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1041
1042         From Bernd Schmidt
1043         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1044
1045 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1046
1047         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1048         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1049         Move ...
1050         * mips-tfile.c: ... here.
1051         Don't include coretypes.h, tm.h, filenames.h.
1052         (saber_stop): Remove definition and all calls.
1053         [__SABER__]: Remove.
1054         (__LINE__): Remove default.
1055         (Size_t, Ptrdiff_t): Remove definitions.
1056         Replace by size_t, ptrdiff_t.
1057         [!MIPS_DEBUGGING_INFO]: Remove.
1058         (SHASH_SIZE, THASH_SIZE): Remove defaults.
1059         (progname): Add const.
1060         (STATIC): Remove.
1061         Replace all uses by static.
1062         (ALIGN_SYMTABLE_OFFSET): Remove default.
1063         * mips-tdump.c: Don't include coretypes.h, tm.h.
1064         Remove !MIPS_IS_STAB guard.
1065         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1066         $(TM_H), filenames.h dependencies.
1067         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1068
1069 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1070
1071         From Jie Zhang
1072         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1073         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1074
1075 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1076
1077         From Bernd Schmidt
1078         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1079         account and save/restore RETS.
1080         (PROFILE_BEFORE_PROLOGUE): Define.
1081         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
1082         the push insn to use predecrement.
1083
1084 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
1085
1086         From Jie Zhang
1087         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1088
1089 2011-05-04  Nick Clifton  <nickc@redhat.com>
1090
1091         * config/mn10300/mn10300.c: Include cfgloop.h.
1092         (DUMP): New macro.
1093         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
1094         Lcc or a FLcc insn into the instruction stream.
1095         (mn10300_block_contains_call): New function.  Returns true if the
1096         given basic block contains a CALL insn.
1097         (mn10300_loop_contains_call_insn): New function.  Returns true if
1098         the given loop contains a CALL insn.
1099         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
1100         to use the SETLB and Lcc or FLcc insns.
1101         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1102         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1103         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
1104         disable the SETLB optimization.
1105         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1106         __SETLB__ or __NO_SETLB__.
1107         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1108         (movsf_internal): Handle MDR register.
1109         (cmpsi): Make visible.
1110         (setlb): New pattern.
1111         (Lcc): New pattern.
1112         (FLcc): New pattern.
1113
1114 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
1115
1116         PR target/48860
1117         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1118         for reg<->xmm moves.
1119         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1120         (vec_concatv2di_rex64_sse): Ditto.
1121         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1122         (*vec_extractv2di_1_rex64): Ditto.
1123
1124         Revert:
1125         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1126
1127         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1128         reg<->xmm moves.
1129         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1130
1131 2011-05-04  Richard Guenther  <rguenther@suse.de>
1132
1133         * tree.h (int_const_binop): Remove notrunc argument.
1134         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
1135         create integer constants that are properly truncated.
1136         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1137         (const_binop): Remove zero notrunc argument to int_const_binop.
1138         (size_binop_loc): Likewise.
1139         (fold_div_compare): Likewise.
1140         (maybe_canonicalize_comparison_1): Likewise.
1141         (fold_comparison): Likewise.
1142         (fold_binary_loc): Likewise.
1143         (multiple_of_p): Likewise.
1144         * expr.c (store_constructor): Likewise.
1145         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1146         (maybe_fold_stmt_addition): Likewise.
1147         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1148         * stor-layout.c (layout_type): Likewise.
1149         * tree-data-ref.c (tree_fold_divides_p): Likewise.
1150         * tree-sra.c (build_ref_for_offset): Likewise.
1151         (build_user_friendly_ref_for_offset): Likewise.
1152         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1153         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1154         * tree-ssa-loop-niter.c (inverse): Likewise.
1155         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1156         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1157         * tree-switch-conversion.c (check_range): Likewise.
1158         (build_constructors): Likewise.
1159         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1160         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1161         (extract_range_from_assert): Likewise.
1162         (vrp_int_const_binop): Likewise.
1163         (extract_range_from_binary_expr): Likewise.
1164         (extract_range_from_unary_expr): Likewise.
1165         (check_array_ref): Likewise.
1166         (find_case_label_range): Likewise.
1167         (simplify_div_or_mod_using_ranges): Likewise.
1168         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1169         comparing case labels for merging.
1170
1171 2011-05-03  Mark Wielaard  <mjw@redhat.com>
1172
1173         * dwarf2out.c (debug_str_hash_forced): Removed.
1174         (gen_label_for_indirect_string): Removed.
1175         (get_debug_string_label): Removed.
1176         (AT_string_form): Generate label directly.
1177         (output_indirect_string): Test indirect_string_node for
1178         DW_FORM_strp instead of checking label and refcount.
1179         (prune_indirect_string): Removed.
1180         (prune_unused_types): Don't check debug_str_hash_forced or
1181         call prune_indirect_string.
1182
1183 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1184
1185         PR other/48093
1186         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1187
1188 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
1189
1190         PR debug/47994
1191         PR debug/47919
1192         * combine.c (try_combine): Skip debug insns at m_split tests.
1193
1194 2011-04-26  Mark Wielaard  <mjw@redhat.com>
1195
1196         PR42288
1197         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1198         when info_section_emitted.
1199
1200 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
1201
1202         * config/mips/mips-opts.h: New.
1203         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1204         to mips-opts.h.
1205         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1206         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1207         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
1208         via opts pointer.
1209         * config/mips/mips.h (enum mips_code_readable_setting): Move to
1210         mips-opts.h.
1211         (mips_abi, mips_code_readable): Don't declare.
1212         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
1213         (mabi=): Use Enum and Var.
1214         (mips_abi): New Enum and EnumValue entries.
1215         (mcode-readable=): Use Enum and Var.
1216         (mips_code_readable_setting): New Enum and EnumValue entries.
1217         (mr10k-cache-barrier=): Use Enum and Var.
1218         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1219
1220 2011-05-03  Jan Hubicka  <jh@suse.cz>
1221
1222         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1223         replace hash by pointer map.
1224         (cgraph_node_set_element_def, cgraph_node_set_element,
1225         const_cgraph_node_set_element, varpool_node_set_element_def,
1226         varpool_node_set_element, const_varpool_node_set_element): Remove.
1227         (free_cgraph_node_set, free_varpool_node_set): New function.
1228         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1229         * tree-emutls.c: Free varpool node set.
1230         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1231         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1232         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1233         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1234         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1235         Move here from ipa.c; implement using pointer_map
1236         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1237         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1238         debug_cgraph_node_set, varpool_node_set_new,
1239         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1240         dump_varpool_node_set, debug_varpool_node_set):
1241         Move to ipa-uitls.c.
1242         * passes.c (ipa_write_summaries): Update.
1243
1244 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1245
1246         From Mike Frysinger:
1247         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1248         bf542/bf544/bf547/bf548/bf549.
1249
1250 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1251
1252         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1253
1254 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1255
1256         From Bernd Schmidt:
1257         * config/bfin/bfin.md (MOVCC): New mode_macro.
1258         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1259         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
1260         comments from generated assembly.
1261
1262 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1263
1264         From Bernd Schmidt
1265         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1266         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1267         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1268         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1269         * config/bfin/lib1funcs.asm (___muldi3): New function.
1270
1271 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1272
1273         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1274         build_function_type_list instead of build_function_type.
1275         Rearrange initialization of `args' to do so.
1276
1277 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1278
1279         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1280         instead of build_function_type.
1281
1282 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1283
1284         * config/rs6000/rs6000.c (spe_init_builtins): Call
1285         build_function_type_list instead of build_function_type.
1286         (paired_init_builtins, altivec_init_builtins): Likewise.
1287         (builtin_function_type): Likewise.
1288
1289 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1290
1291         * config/sh/sh.c (sh_media_init_builtins): Call
1292         build_function_type_list instead of build_function_type.
1293
1294 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1295
1296         * config/sparc/sparc.c (sparc_file_end): Call
1297         build_function_type_list instead of build_function_type.
1298
1299 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1300
1301         * config/alpha/alpha.c (alpha_init_builtins): Call
1302         build_function_type_list instead of build_function_type.
1303
1304 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1305
1306         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1307         build_function_type_list instead of build_function_type.
1308
1309 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1310
1311         * config/iq2000/i2000.c (iq2000_init_builtins): Call
1312         build_function_type_list instead of build_function_type.
1313         Delete `endlink' variable.
1314
1315 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1316
1317         * config/avr/avr.c (avr_init_builtins): Call
1318         build_function_type_list instead of build_function_type.
1319
1320 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1321
1322         * config/picochip/picochip.c (picochip_init_builtins): Call
1323         build_function_type_list instead of build_function_type.
1324         Delete `endlink' variable.
1325
1326 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
1327
1328         * config/bfin/bfin.c (bfin_init_builtins): Call
1329         build_function_type_list instead of build_function_type.
1330
1331 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1332
1333         From Bernd Schmidt
1334         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1335         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
1336
1337 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1338
1339         From Jie Zhang:
1340         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1341         libbffastfp overrides libgcc when -mfast-fp.
1342
1343 2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>
1344
1345         Originally from Bernd Schmidt
1346         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1347         * config/bfin/bfin.c (override_options): Test it and error if
1348         TARGET_FDPIC.
1349
1350 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
1351
1352         Originally From Bernd Schmidt
1353         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1354         FD-PIC.
1355
1356 2011-05-03  Jeff Law  <law@redhat.com>
1357
1358         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1359         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1360         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
1361         than accessing AUX field directly.  Free the AUX field before
1362         clearing it.
1363         (thread_block, thread_through_loop_header): Likewise.
1364         (thread_single_edge, mark_threaded_blocks): Likewise.
1365         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
1366         (register_jump_thread): Do not attempt to thread to a NULL edge.
1367
1368 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1369
1370         * function.c (init_function_start): Call decide_function_section.
1371         * varasm.c (decide_function_section): New function.
1372         (assemble_start_function): When not using
1373         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1374         or first_function_block_is_cold.
1375         * rtl.h (decide_function_section): Declare.
1376
1377 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
1378             Jakub Jelinek  <jakub@redhat.com>
1379
1380         PR target/48774
1381         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1382         only succeed if req_mode is the same as set_mode.
1383
1384 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
1385
1386         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1387         * genemit.c (gen_exp): Handle RETURN.
1388         * emit-rtl.c (verify_rtx_sharing): Likewise.
1389         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1390         * rtl.c (copy_rtx): RETURN is shared.
1391         * rtl.h (enum global_rtl_index): Add GR_RETURN.
1392         (ret_rtx): New.
1393         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1394         * config/s390/s390.c (s390_emit_epilogue): Likewise.
1395         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1396         * config/cris/cris.c (cris_expand_return): Likewise.
1397         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1398         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1399         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1400         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1401         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1402         Likewise.
1403         * config/v850/v850.c (expand_epilogue): Likewise.
1404         * config/bfin/bfin.c (bfin_expand_call): Likewise.
1405         * config/arm/arm.md (epilogue): Likewise.
1406         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1407         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1408         variable to ret_reg.
1409
1410 2011-05-03  Richard Guenther  <rguenther@suse.de>
1411
1412         PR lto/48846
1413         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1414         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1415         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1416
1417 2011-05-03  Richard Guenther  <rguenther@suse.de>
1418
1419         * c-decl.c (grokdeclarator): Instead of looking at
1420         TREE_OVERFLOW check if the constant fits in the index type.
1421
1422 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1423
1424         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1425         (vec_store_lanes<mode><mode>): Likewise.
1426
1427 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1428
1429         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1430         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1431         convert_optab_index values.
1432         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1433         * genopinit.c (optabs): Initialize the new optabs.
1434         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1435         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1436         (expand_STORE_LANES): New functions.
1437         * tree.h (build_array_type_nelts): Declare.
1438         * tree.c (build_array_type_nelts): New function.
1439         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1440         (vect_model_load_cost): Likewise.
1441         (vect_store_lanes_supported, vect_load_lanes_supported)
1442         (vect_record_strided_load_vectors): Declare.
1443         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1444         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1445         (vect_transform_strided_load): Split out statement recording into...
1446         (vect_record_strided_load_vectors): ...this new function.
1447         * tree-vect-stmts.c (create_vector_array, read_vector_array)
1448         (write_vector_array, create_array_ref): New functions.
1449         (vect_model_store_cost): Add store_lanes_p argument.
1450         (vect_model_load_cost): Add load_lanes_p argument.
1451         (vectorizable_store): Try to use store-lanes functions for
1452         interleaved stores.
1453         (vectorizable_load): Likewise load-lanes and loads.
1454         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1455         to vect_model_store_cost.
1456         (vect_build_slp_tree): Likewise vect_model_load_cost.
1457
1458 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
1459
1460         * hooks.h (hook_bool_mode_uhwi_false): Declare.
1461         * hooks.c (hook_bool_mode_uhwi_false): New function.
1462         * target.def (array_mode_supported_p): New hook.
1463         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1464         * doc/tm.texi: Regenerate.
1465         * stor-layout.c (mode_for_array): New function.
1466         (layout_type): Use it.
1467         * config/arm/arm.c (arm_array_mode_supported_p): New function.
1468         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1469
1470 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
1471
1472         PR target/48723
1473         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1474         for -fstack-check if the size to allocate is negative.
1475
1476 2011-05-02  Lawrence Crowl  <crowl@google.com>
1477
1478         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1479         (timevar_cond_start): New for starting a timer only when it is not
1480         already running.
1481         (timevar_cond_stop): New for stopping a timer when it was not already
1482         running.
1483
1484         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1485         (timevar_cond_start): New as above.
1486         (timevar_cond_stop): New as above.
1487
1488         * timevar.def: Add start/stop timers for compiler phases,
1489         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1490         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1491         and TV_PHASE_FINALIZE.
1492         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1493         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1494         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1495         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1496         Make unused TV_OVERLOAD into a start/stop timer.
1497
1498         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1499         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1500         to indicate that they are start/stop timers.
1501
1502         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1503         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1504         Move initialization to do_compile.
1505         (do_compile): Add initialization from above.
1506         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1507
1508         * c-decl.c (c_write_global_declarations): Add start/stop of
1509         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1510
1511         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1512         or TV_PARSE_INLINE, as appropriate.
1513         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1514         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1515
1516 2011-05-02  Jason Merrill  <jason@redhat.com>
1517
1518         PR c++/40975
1519         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
1520
1521 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
1522
1523         PR c/35445
1524         * c-decl.c (finish_decl): Only create a composite if the types are
1525         compatible.
1526
1527 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1528
1529         * config/fr30/fr30-protos.h (Mmode): Don't define.
1530         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
1531         definition where used.
1532         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
1533         define.  Expand definitions where used.
1534         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
1535         Expand definitions where used.
1536         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
1537         rx_function_arg, rx_function_arg_advance,
1538         rx_function_arg_boundary): Expand definitions of those macros.
1539         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
1540         definition where used.
1541
1542 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1543
1544         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1545         reg<->xmm moves.
1546         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
1547         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
1548         with *movv2sf_internal_rex64_avx.
1549         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
1550         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
1551         Use %v prefix in insn mnemonic to handle TARGET_AVX.
1552         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
1553         "vex" in "prefix" attribute calculation.
1554         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
1555
1556 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
1557
1558         PR target/47951
1559         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
1560         inputs match the output.
1561
1562 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
1563
1564         PR target/47955
1565         * config/m68k/m68k.c (m68k_expand_prologue): Set
1566         current_function_static_stack_size.
1567
1568 2011-05-02   Jan Hubicka  <jh@suse.cz>
1569
1570         * lto-streamer.c (lto_streamer_cache_insert_1,
1571         lto_streamer_cache_lookup, lto_streamer_cache_create,
1572         lto_streamer_cache_delete): Use pointer map instead of hashtable.
1573         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
1574
1575 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
1576
1577         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
1578         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
1579         config/m68k/t-opts: New files.
1580         * config/m68k/m68k-tables.opt: New file (generated).
1581         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
1582         extra_options and m68k/t-opts to tmake_file.
1583         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
1584         (all_isas): Initialize using m68k-isas.def.
1585         (all_microarchs): Initialize using m68k-microarchs.def.
1586         (m68k_find_selection): Remove.
1587         (m68k_handle_option): Don't assert that global structures are in
1588         use.  Use error_at.  Access variables via opts pointer.  Don't
1589         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
1590         directly for -m68020-40 and -m68020-60.
1591         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
1592         m68k_tune_entry here.
1593         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1594         to m68k-opts.h.
1595         (m68k_library_id_string): Remove declaration.
1596         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
1597         (m68k_library_id_string): New Variable.
1598         (march=, mcpu=, mtune=): Use Enum and Var.
1599
1600 2011-05-02  Richard Guenther  <rguenther@suse.de>
1601
1602         * varasm.c (output_constructor_regular_field): Compute zero-based
1603         index with double-ints.  Make sure to ICE instead of producing
1604         wrong code.
1605         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1606         in asserts.  Properly use a signed type.
1607
1608 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
1609
1610         * config/i386/sse.md (V): New mode iterator.
1611         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
1612         TARGET_SSE2.
1613         (V_256): Rename from AVX256MODE.
1614         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
1615         condition to all users.
1616         (VF1): Ditto.
1617         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
1618         condition to all users.
1619         (VF_128): Make V4SF mode unconditional.
1620         (VF_256): Rename from AVX256MODEF2P.
1621         (VI4F_128): Rename from SSEMODE4S.
1622         (VI8F_128): Rename from SSEMODE2D.
1623         (VI4F_256): Rename from AVX256MODE8P.
1624         (VI8F_256): Rename from AVX256MODE4P.
1625         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1626         (ssescalarmodesuffix): Remove SF and DF modes.
1627         (SSEMODE124): Remove.
1628         (SSEMODE1248): Ditto.
1629         (SSEMODEF2P): Ditto.
1630         (AVXMODEF2P): Ditto.
1631         (AVXMODEFDP): Ditto.
1632         (AVXMODEFSP): Ditto.
1633         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1634         unconditional.
1635         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
1636         unconditional.
1637         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1638         xop_pcmov_<mode>256.  Use V mode iterator.
1639
1640         Adjust RTX patterns globally for renamed mode attributes.
1641
1642 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1643
1644         * haifa-sched.c (sched_emit_insn): Emit insn before first
1645         non-scheduled insn.  Inform back-end about new insn.  Add
1646         new insn to scheduled_insns list.
1647
1648 2011-05-02  Richard Guenther  <rguenther@suse.de>
1649
1650         PR tree-optimization/48822
1651         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1652         (process_scc): Indicate which iteration we start.
1653
1654 2011-05-02  Jan Hubicka  <jh@suse.cz>
1655
1656         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1657         (lto_section_overrun): New.
1658         * lto-section-out.c (append_block): Rename to ...
1659         (lto_append_block): ... this one; export.
1660         (lto_output_1_stream): Move lto lto-streamer.h
1661         (lto_output_data_stream): Update.
1662         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1663         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1664         functions.
1665
1666 2011-05-02  Richard Guenther  <rguenther@suse.de>
1667
1668         * tree.c (tree_code_counts): New global array.
1669         (record_node_allocation_statistics): Count individual tree codes.
1670         (dump_tree_statistics): Dump individual code stats.
1671
1672 2011-05-01  Jan Hubicka  <jh@suse.cz>
1673
1674         * ipa-inline.c (caller_growth_limits): Fix thinko when
1675         looking for largest stack frame.
1676         * ipa-inline.h (dump_inline_summary): Declare.
1677         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1678         on stack usage.
1679         (dump_inline_summary): Export.
1680         (debug_inline_summary): Declare as DEBUG_FUNCTION.
1681
1682 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
1683
1684         * reginfo.c (memory_move_cost): Change rclass argument type form
1685         'enum reg_class' to reg_class_t.
1686         * reload.h (memory_move_cost): Update prototype.
1687         * postreload.c reload_cse_simplify_set): Change type dclass var to
1688         reg_class_t.
1689         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1690         Update prototype.
1691         (ira_allocate_and_set_costs): Change aclass argument type form
1692         'enum reg_class' to reg_class_t.
1693         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
1694         Change aclass argument type to reg_class_t.
1695         (update_conflict_hard_reg_costs): Change type aclass and pref vars
1696         to reg_class_t.
1697         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1698         memory_move_cost call.
1699
1700         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1701         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1702         Change type tmp var to reg_class_t.
1703
1704 2011-04-30  Jan Hubicka  <jh@suse.cz>
1705
1706         * ipa-inline.c (can_inline_edge_p): Disregard limits when
1707         inlining into function with flatten attribute.
1708         (want_inline_small_function_p): Be more realistic about inlining
1709         cold calls where callee size grows.
1710
1711 2011-04-30  Jan Hubicka  <jh@suse.cz>
1712
1713         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1714         flags.
1715
1716 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
1717
1718         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1719         PRINT_OPERAND_PUNCT_VALID_P): Remove.
1720         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1721         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1722         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1723         (print_operand): Rename to...
1724         (sparc_print_operand): ...this. Make static. Adjust
1725         sparc_print_operand function call.
1726         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1727         functions.
1728
1729 2011-04-30  Jan Hubicka  <jh@suse.cz>
1730
1731         PR middle-end/48752
1732         * ipa-inline.c (early_inliner): Disable when doing late
1733         addition of function.
1734
1735 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
1736
1737         * dwarf2out.c (get_address_mode): New inline.
1738         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1739         if not dwarf_strict emit
1740         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1741         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1742         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
1743         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1744         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1745         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1746         mem_loc_descriptor callers.
1747         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1748         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1749         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1750         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1751         (base_types): New variable.
1752         (get_base_type_offset, calc_base_type_die_sizes,
1753         base_type_for_mode, mark_base_types, base_type_cmp,
1754         move_marked_base_types): New functions.
1755         (calc_die_sizes): Assert that die_offset is 0 or equal to
1756         next_die_offset.
1757         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1758         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
1759         callers.  If not dwarf_strict, call mem_loc_descriptor even for
1760         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1761         (gen_subprogram_die): Don't give up on call site parameters
1762         with non-integral or large integral modes.  Adjust
1763         mem_loc_descriptor callers.
1764         (prune_unused_types): Call prune_unused_types_mark on base_types
1765         vector entries.
1766         (resolve_addr): Call mark_base_types.
1767         (dwarf2out_finish): Call move_marked_base_types.
1768
1769         PR tree-optimization/48809
1770         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
1771         type.
1772         (gen_inbound_check): Don't compute index_expr - range_min in utype
1773         again, instead reuse SSA_NAME initialized in build_arrays.
1774         Remove two useless gsi_for_stmt calls.
1775
1776 2011-04-29  Jeff Law  <law@redhat.com>
1777
1778         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
1779
1780 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1781
1782         * cgraph.h (cgraph_postorder): Remove declaration.
1783         * ipa-utils.h (ipa_free_postorder_info): Declare.
1784         (ipa_reverse_postorder): Likewise.
1785         * cgraphunit.c: Include ipa-utils.h.
1786         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
1787         * ipa-inline.c: Include ipa-utils.h.
1788         (ipa_inline): Update call to ipa_reverse_postorder.
1789         * ipa-pure-const.c (propagate_pure_const): Update call to
1790         ipa_reduced_postorder and ipa_print_order.  Call
1791         ipa_free_postorder_info to clean up.
1792         (propagate_nothrow): Likewise.
1793         * ipa-reference.c (propagate): Removed a useless call to
1794         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
1795         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
1796         * ipa.c: Include ipa-utils.h.
1797         (ipa_profile): Update call to ipa_reverse_postorder.
1798         (cgraph_postorder): Moved to...
1799         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
1800         (ipa_utils_print_order): Renamed to ipa_print_order.
1801         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
1802         comments.
1803         (ipa_free_postorder_info): New function.
1804         * passes.c: Include ipa-utils.h.
1805         (do_per_function_toporder): Update call to ipa_reverse_postorder.
1806         (ipa_write_summaries): Likewise.
1807         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
1808         (cgraphunit.o): Likewise.
1809         (ipa.o): Likewise.
1810         (ipa-inline.o): Likewise.
1811
1812 2011-04-29  Jan Hubicka  <jh@suse.cz>
1813
1814         * gcc.dg/tree-ssa/inline-10.c: New testcase.
1815         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
1816         * ipa-inline.h (clause_t): Turn into unsigned int.
1817         * ipa-inline-analysis.c (add_clause): Do more simplification.
1818         (and_predicates): Shortcut more cases.
1819         (predicates_equal_p): Move forward; check that clauses are properly
1820         ordered.
1821         (or_predicates): Shortcut more cases.
1822         (edge_execution_predicate): Rewrite as...
1823         (set_cond_stmt_execution_predicate): ... this function; handle
1824         __builtin_constant_p.
1825         (set_switch_stmt_execution_predicate): New .
1826         (compute_bb_predicates): New.
1827         (will_be_nonconstant_predicate): Update TODO.
1828         (estimate_function_body_sizes): Use compute_bb_predicates
1829         and free them later, always try to estimate if stmt is constant.
1830         (estimate_time_after_inlining, estimate_size_after_inlining):
1831         Gracefully handle optimized out edges.
1832         (read_predicate): Fix off by one error.
1833
1834 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1835
1836         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
1837
1838 2011-04-27  Xinliang David Li  <davidxl@google.com>
1839
1840         * tree-profile.c (init_ic_make_global_vars): Set
1841         tls attribute on ic vars.
1842         * coverage.c (coverage_end_function): Initialize
1843         function_list with zero.
1844
1845 2011-04-29  Richard Guenther  <rguenther@suse.de>
1846
1847         * builtins.c (fold_builtin_classify_type): Use integer_type_node
1848         for the type of the result.
1849         (fold_builtin_isascii): Likewise.
1850         (fold_builtin_toascii): Use integer_type_node where appropriate.
1851         (fold_builtin_logb): Likewise.
1852         (fold_builtin_frexp): Likewise.
1853         (fold_builtin_strstr): Likewise.
1854         (fold_builtin_strpbrk): Likewise.
1855         (fold_builtin_fputs): Likewise.
1856         (fold_builtin_sprintf): Likewise.
1857         (fold_builtin_snprintf): Likewise.
1858         (fold_builtin_printf): Likewise.
1859         (do_mpfr_remquo): Use a proper type for the assigned constant.
1860         (do_mpfr_lgamma_r): Likewise.
1861         * dwarf2out.c (resolve_one_addr): Use size_int.
1862         * except.c (init_eh): Likewise.
1863         (assign_filter_values): Use integer_type_node for filter values.
1864         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
1865         indices.
1866         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
1867         for EH region numbers.
1868         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
1869         for the shift amount.
1870
1871 2011-04-29  Richard Guenther  <rguenther@suse.de>
1872
1873         * expr.h (expand_shift): Rename to ...
1874         (expand_variable_shift): ... this.
1875         (expand_shift): Take a constant shift amount.
1876         * expmed.c (expand_shift): Rename to ...
1877         (expand_variable_shift): ... this.
1878         (expand_shift): New wrapper around expand_variable_shift.
1879         * expr.c (convert_move, emit_group_load_1, emit_group_store,
1880         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
1881         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
1882         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
1883         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
1884         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
1885         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
1886         emit_store_flag_1, emit_store_flag): Likewise.
1887         * builtins.c (expand_builtin_signbit): Likewise.
1888         * calls.c (load_register_parameters): Likewise.
1889         * function.c (assign_parm_setup_block): Likewise.
1890         * lower-subreg.c (resolve_shift_zext): Likewise.
1891         * optabs.c (widen_bswap, expand_abs_nojump,
1892         expand_one_cmpl_abs_nojump, expand_float): Likewise.
1893         * spu/spu.c (spu_expand_extv): Likewise.
1894         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
1895
1896 2011-04-29  Richard Guenther  <rguenther@suse.de>
1897
1898         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
1899         for the remapped region number.
1900         * predict.c (build_predict_expr): Use integer_type_node for the
1901         predict kind.
1902         * fold-const.c (fold_binary_loc): Use integer_type_node for
1903         the shift amount.  Use a proper type for the PLUS_EXPR operand.
1904
1905 2011-04-29  Michael Matz  <matz@suse.de>
1906
1907         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
1908         other trees that just builtins.
1909         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
1910
1911 2011-04-29  Richard Guenther  <rguenther@suse.de>
1912
1913         * tree-nested.c (get_trampoline_type): Use size_int.
1914         (get_nl_goto_field): Likewise.
1915         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
1916         for all indexes.
1917         (lower_eh_constructs_2): Likewise.
1918         (lower_resx): Likewise.
1919         (lower_eh_dispatch): Likewise.
1920         * tree-mudflap.c (mf_build_string): Use size_int.
1921         (mudflap_register_call): Use integer_type_node for the flag.
1922         (mudflap_enqueue_constant): Use size_int.
1923         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
1924         instead of rebuilding it.
1925
1926 2011-04-29  Richard Guenther  <rguenther@suse.de>
1927
1928         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
1929         Handle OBJ_TYPE_REF.
1930         (find_func_aliases_for_call): Use it more consistently.
1931
1932 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
1933
1934         * haifa-sched.c (last_nondebug_scheduled_insn): New.
1935         (rank_for_schedule): Use it.
1936         (schedule_block): Set it.
1937
1938 2011-04-28  David Li  <davidxl@google.com>
1939
1940         * tree.c (crc32_string): Use crc32_byte.
1941         (crc32_byte): New function.
1942         * tree.h (crc32_byte): New function.
1943         * gcov.c (read_graph_file): Handle new cfg_cksum.
1944         (read_count_file): Ditto.
1945         * profile.c (instrument_values): Ditto.
1946         (get_exec_counts): Ditto.
1947         (read_profile_edge_counts): Ditto.
1948         (compute_branch_probabilities): Ditto.
1949         (compute_value_histograms): Ditto.
1950         (branch_prob): Ditto.
1951         (end_branch_prob): Ditto.
1952         * coverage.c (read_counts_file): Ditto.
1953         (get_coverage_counts): Ditto.
1954         (tree_coverage_counter_addr): Ditto.
1955         (coverage_checksum_string): Ditto.
1956         (coverage_begin_output): Ditto.
1957         (coverage_end_function): Ditto.
1958         (build_fn_info_type): Ditto.
1959         (build_fn_info_value): Ditto.
1960         * libgcov.c (gcov_exit): Ditto.
1961         * gcov-dump.c (tag_function): Ditto.
1962         (compute_checksum): Remove.
1963
1964 2011-04-29  Alan Modra  <amodra@gmail.com>
1965
1966         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
1967         unspec plus offset.  Tidy macho code.
1968
1969 2011-04-29  Martin Jambor  <mjambor@suse.cz>
1970
1971         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
1972         node instead of a decl.  Update all callers.
1973         * cgraph.h: Update declaration.
1974
1975 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
1976
1977         PR tree-optimization/48765
1978         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1979         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1980         to indicate if loop aware SLP is being used.  Scan the statements
1981         and update the vectorization factor according to the type of
1982         vectorization before statement analysis.
1983         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1984         pass it to vect_analyze_loop_operations.
1985         (vectorizable_reduction): Set number of copies to 1 in case of pure
1986         SLP statement.
1987         * tree-vect-stmts.c (vectorizable_conversion,
1988         vectorizable_assignment, vectorizable_shift,
1989         vectorizable_operation, vectorizable_type_demotion,
1990         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1991         Likewise.
1992         (vectorizable_condition): Move the check that it is not SLP
1993         vectorization before the number of copies check.
1994         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1995         to vectorize the loop using SLP.
1996
1997 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
1998
1999         PR middle-end/48597
2000         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2001         inline asm.
2002
2003 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
2004
2005         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2006         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2007         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2008         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2009         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2010         linux*.h headers.
2011         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
2012         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2013         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2014         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2015         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2016         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2017         REG_NAME.
2018         * config/i386/linux.h (REG_NAME): Don't define.
2019         * config/i386/linux64.h (REG_NAME): Don't define.
2020         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2021         Undefine before defining.
2022
2023 2011-04-28  Jan Hubicka  <jh@suse.cz>
2024
2025         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2026         nonconstant_names array.
2027         (estimate_function_body_sizes): Build nonconstant_names array; handle
2028         BUILT_IN_CONSTANT_P.
2029
2030 2011-04-28  Richard Guenther  <rguenther@suse.de>
2031
2032         PR bootstrap/48804
2033         Revert
2034         2011-04-28  Richard Guenther  <rguenther@suse.de>
2035
2036         * tree-ssa-structalias.c (solve_constraints): Build succ graph
2037         as late as possible.
2038
2039 2011-04-28  Richard Guenther  <rguenther@suse.de>
2040
2041         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2042         (debug_constraint): Do it here.
2043         (dump_constraints): And here.
2044         (rewrite_constraints): And here.
2045         (dump_constraint_edge): Remove.
2046         (dump_constraint_graph): Rewrite to produce DOT output.
2047         (solve_constraints): Build succ graph as late as possible.
2048         Dump constraint graphs before and after solving.
2049
2050 2011-04-28  Richard Guenther  <rguenther@suse.de>
2051
2052         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2053         New function split out from ...
2054         (find_func_aliases): ... here.  Call it.
2055         (find_func_aliases_for_call): Likewise.
2056
2057 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2058
2059         * internal-fn.h (internal_fn_name_array): Declare.
2060         (internal_fn_flags_array): Likewise.
2061
2062 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2063
2064         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
2065         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2066         Move from sse.md.
2067         (ssemodefsuffix): Remove.
2068         (ssevecmodesuffix): New mode attribute.
2069         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2070         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2071         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2072         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2073         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2074         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2075         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2076         ssemodesuffix mode attribute.
2077         (float splitters): Use ssevecmodesuffix mode attribute.
2078         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2079         (sseinsmode): Rename from avxvecmode.
2080         (avxsizesuffix): Rename from avxmodesuffix.
2081         (sseintvecmode): Rename from avxpermvecmode.
2082         (ssedoublevecmode): Rename from ssedoublesizemode.
2083         (ssehalfvecmode): Rename from avxhalfvecmode.
2084         (ssescalarmode): Rename from avxscalarmode.
2085         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2086         templates for ssemodesuffix mode attribute.
2087         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2088         mode attribute.
2089
2090         Adjust RTX patterns globally for renamed mode attributes.
2091
2092 2011-04-27  Jan Hubcika  <jh@suse.cz>
2093
2094         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2095         * ipa-inline-analysis.c: Include alloc-pool.h.
2096         (edge_predicate_pool): New.
2097         (trye_predicate_p): New function
2098         (false_predicate_p): New function.
2099         (add_clause): Sanity check that false clauses are "optimized";
2100         never add clauses to predicate that is already known to be false.
2101         (and_predicate): Use flase_predicate_p.
2102         (evaulate_predicate): Rename to ...
2103         (evaluate_predicate): ... this one; update all callers; assert
2104         that false is not listed among possible truths.
2105         (dump_predicate): Use true_predicate_p.
2106         (account_size_time): Use false_predicate_p.
2107         (evaulate_conditions_for_edge): Rename to ...
2108         (evaluate_conditions_for_edge) ... this one.
2109         (edge_set_predicate): New function.
2110         (inline_edge_duplication_hook): Duplicate edge predicates.
2111         (inline_edge_removal_hook): Free edge predicates.
2112         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
2113         (dump_inline_summary): Update.
2114         (estimate_function_body_sizes): Set edge predicates.
2115         (estimate_calls_size_and_time): Handle predicates.
2116         (estimate_callee_size_and_time): Update.
2117         (remap_predicate): Add toplev_predicate; update comment.
2118         (remap_edge_predicates): New function.
2119         (inline_merge_summary): Compute toplev predicate; update.
2120         (read_predicate): New function.
2121         (read_inline_edge_summary): Use it.
2122         (inline_read_section): Likewise.
2123         (write_predicate): New function.
2124         (write_inline_edge_summary): Use it.
2125         (inline_write_summary): Likewise.
2126         (inline_free_summary): Free alloc pool and edge summary vec.
2127
2128 2011-04-27  Richard Guenther  <rguenther@suse.de>
2129
2130         * tree-ssa-structalias.c (changed_count): Remove.
2131         (changed): Use a bitmap.
2132         (unify_nodes): Adjust.
2133         (do_sd_constraint): Likewise.
2134         (do_ds_constraint): Likewise.
2135         (do_complex_constraint): Likewise.
2136         (solve_graph): Likewise.
2137
2138 2011-04-27  Jan Hubicka  <jh@suse.cz>
2139
2140         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2141
2142 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
2143
2144         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2145         (avx_vperm2f128_*_operand): Ditto.
2146         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2147         Use avx_vpermilp_parallel in insn condition.
2148         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2149         Use avx_vperm2f128_parallel in insn condition.
2150
2151 2011-04-27  Richard Guenther  <rguenther@suse.de>
2152
2153         * Makefile.in (tree-ssa-structalias.o): Remove
2154         gt-tree-ssa-structalias.h dependency.
2155         (GTFILES): Remove tree-ssa-structalias.c.
2156         * tree.c (allocate_decl_uid): New function.
2157         (make_node_stat): Use it.
2158         (copy_node_stat): Likewise.
2159         * tree.h (allocate_decl_uid): Declare.
2160         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2161         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2162         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
2163         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
2164         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2165         (struct heapvar_map): Likewise.
2166         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2167         heapvar_insert): Likewise.
2168         (make_heapvar_for): Rename to ...
2169         (make_heapvar): ... this.  Simplify.
2170         (fake_var_decl_obstack): New global var.
2171         (build_fake_var_decl): New function.
2172         (make_constraint_from_heapvar): Adjust.
2173         (handle_lhs_call): Likewise.
2174         (create_function_info_for): Likewise.
2175         (intra_create_variable_infos): Likewise.
2176         (init_alias_vars): Allocate fake_var_decl_obstack.
2177         (init_alias_heapvars, delete_alias_heapvars): Remove.
2178         (compute_points_to_sets): Do not call init_alias_heapvars.
2179         (ipa_pta_execute): Likewise.
2180         (delete_points_to_sets): Free fake_var_decl_obstack.
2181
2182 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2183
2184         * config/spu/divmovti4.c (union qword_UTItype): New data type.
2185         (si_from_UTItype, si_to_UTItype): New functions.
2186         (__udivmodti4): Use them to implement type-punning.
2187         * config/spu/multi3.c (union qword_TItype): New data type.
2188         (si_from_TItype, si_to_TItype): New functions.
2189         (__multi3): Use them to implement type-punning.
2190
2191 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2192
2193         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2194
2195 2011-04-27  Jan Hubicka  <jh@suse.cz>
2196
2197         * ipa-prop.c (function_insertion_hook_holder): New holder.
2198         (ipa_add_new_function): New function.
2199         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2200         Register/deregister holder.
2201
2202 2011-04-27  Richard Guenther  <rguenther@suse.de>
2203
2204         PR tree-optimization/48772
2205         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
2206
2207 2011-04-27  Richard Guenther  <rguenther@suse.de>
2208
2209         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2210         TARGET_MEM_REF handling.
2211
2212 2011-04-27  Nick Clifton  <nickc@redhat.com>
2213
2214         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2215         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2216         (REG_CLASS_NAMES): Likewise.
2217         (REG_CLASS_CONTENTS): Likewise.
2218         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2219         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
2220         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
2221         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
2222         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
2223         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2224         duplicate register classes.
2225         (frv_class_likely_spilled_p): Likewise.
2226         (frv_register_move_cost): Likewise.
2227
2228         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2229         end of the regno_reg_class array.
2230
2231 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
2232
2233         PR c/48742
2234         * c-typeck.c (build_binary_op): Don't wrap arguments if
2235         int_operands is true.
2236
2237 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2238
2239         PR target/48767
2240         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2241         targetm.calls.must_pass_in_stack for void type.
2242
2243 2011-04-26  Jan Hubicka  <jh@suse.cz>
2244
2245         * cgraphbuild.c (build_cgraph_edges): Update call
2246         of cgraph_create_edge and cgraph_create_indirect_edge.
2247         * cgraph.c (cgraph_create_edge_including_clones,
2248         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2249         cgraph_update_edges_for_call_stmt_node): Do not take nest
2250         argument; do not initialize call_stmt_size/time.
2251         (dump_cgraph_node): Do not dump nest.
2252         (cgraph_clone_edge): Do not take loop_nest argument;
2253         do not propagate it; do not clone call_stmt_size/time.
2254         (cgraph_clone_node): Likewise.
2255         (cgraph_create_virtual_clone): Update.
2256         * cgraph.h (struct cgraph_edge): Remove
2257         call_stmt_size/call_stmt_time/loop_nest.
2258         (cgraph_create_edge, cgraph_create_indirect_edge,
2259         cgraph_create_edge_including_clones, cgraph_clone_node): Update
2260         prototype.
2261         * tree-emutls.c (gen_emutls_addr): Update.
2262         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2263         loop_nest; handle indirect calls, too.
2264         (clone_inlined_nodes): Do not care about updating inline summaries.
2265         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2266         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2267         stream call_stmt_size/call_stmt_time/loop_nest.
2268         * ipa-inline.c (edge_badness): Update.
2269         (ipa_inline): dump summaries after inlining.
2270         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
2271         New.
2272         (inline_edge_summary): New function.
2273         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2274         (inline_edge_removal_hook): Handle edge summaries.
2275         (inline_edge_duplication_hook): New hook.
2276         (inline_summary_alloc): Alloc hooks.
2277         (initialize_growth_caches): Do not register removal hooks.
2278         (free_growth_caches); Do not free removal hook.
2279         (dump_inline_edge_summary): New function.
2280         (dump_inline_summary): Use it.
2281         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2282         (inline_update_callee_summaries): New function.
2283         (inline_merge_summary): Use it.
2284         (do_estimate_edge_time, do_estimate_edge_growth): Update.
2285         (read_inline_edge_summary): New function.
2286         (inline_read_section): Use it.
2287         (write_inline_edge_summary): New function.
2288         (inline_write_summary): Use it.
2289         (inline_free_summary): Free edge new holders.
2290         * tree-inline.c (copy_bb): Update.
2291
2292 2011-04-26  Jason Merrill  <jason@redhat.com>
2293
2294         * tree-eh.c (lower_try_finally_switch): Create the label along with
2295         the CASE_LABEL_EXPR.
2296
2297 2011-04-26  David S. Miller  <davem@davemloft.net>
2298             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2299
2300         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2301         * configure: Regenerate.
2302
2303 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2304
2305         PR target/48258
2306         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2307         reduction.
2308         (VEC_reduc): New code iterator and splitters for vector reduction.
2309         (VEC_reduc_name): Ditto.
2310         (VEC_reduc_rtx): Ditto.
2311         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2312         (reduc_<VEC_reduc_name>_v4sf): Ditto.
2313
2314         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2315         support for extracting SF on VSX.
2316
2317         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2318         generating xscvspdp.
2319         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2320         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2321         double add, minimum, maximum vector reduction.
2322         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2323         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2324         optimize double vector reduction.
2325         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2326
2327 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
2328
2329         * config/fr30/fr30.h (inhibit_libc): Don't define.
2330         * config/m32r/m32r-protos.h: Correct comment.
2331         * config/v850/v850.h (GHS_default_section_names,
2332         GHS_current_section_names): Use tree, not union tree_node *.
2333
2334 2011-04-26  Xinliang David Li  <davidxl@google.com>
2335
2336         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2337         * c-family/c-opts.c (c_common_handle_option): Set
2338         warn_maybe_uninitialized.
2339         * opts.c (common_handle_option): Ditto.
2340         * common.opt:  New option.
2341         * tree-ssa.c (warn_uninit): Add one more parameter.
2342         (warn_uninitialized_var): Pass warning code.
2343         * tree-flow.h: Interface change.
2344
2345
2346 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2347
2348         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
2349         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2350         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2351
2352 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2353
2354         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2355         * config/mips/mips.opt (mmips-tfile): Remove.
2356
2357         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2358         mips-tdump reference to ...
2359         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
2360         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2361         reference by Tru64 UNIX.
2362
2363 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
2364
2365         PR debug/48768
2366         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2367         is error_mark_node, set value to NULL.
2368
2369         PR tree-optimization/48734
2370         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2371         if return value from maybe_fold_*_comparsions isn't something
2372         the code is prepared to handle.
2373
2374 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
2375
2376         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2377         mode check.
2378         (ext_QIreg_nomode_operands): Remove.
2379         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2380         (*andsi_1): Ditto.
2381         (*andhi_1): Ditto.
2382
2383 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
2384
2385         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2386
2387 2011-04-26  Richard Guenther  <rguenther@suse.de>
2388
2389         * c-typeck.c (build_unary_op): Do not expand array-refs via
2390         pointer arithmetic.  Only adjust qualifiers for function types.
2391
2392 2011-04-26  Richard Guenther  <rguenther@suse.de>
2393
2394         PR middle-end/48694
2395         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2396         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
2397         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
2398         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
2399
2400 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
2401
2402         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
2403         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
2404         * doc/extend.texi: Document __underlying_type.
2405
2406 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
2407
2408         * config/rs6000/titan.md (automata_option "progress"): Remove.
2409
2410 2011-04-25  Jeff Law  <law@redhat.com>
2411
2412         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2413
2414 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
2415
2416         * system.h (ENUM_BITFIELD): Remove.
2417
2418 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
2419             Eric Botcazou  <ebotcazou@adacore.com>
2420
2421         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2422         for STORE_FLAG_VALUE==-1 case.
2423
2424 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
2425
2426         PR target/43804
2427         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2428         LEGITIMATE_PIC_OPERAND_P.
2429
2430 2011-04-24  Jan Hubicka  <jh@suse.cz>
2431
2432         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2433         WPA hack.
2434         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2435         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2436         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
2437         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2438         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2439         Sanity check predicate length.
2440         (remap_predicate): Likewise; sanity check jump functions.
2441         (inline_read_section, inline_write_summary): Sanity check
2442         predicate length.
2443
2444 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
2445
2446         PR other/48748
2447         * doc/extend.texi (Type Traits): Document __is_standard_layout,
2448         __is_literal_type, and __is_trivial; update throughout about
2449         possibly cv-qualified void types.
2450
2451 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2452
2453         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2454         testsuite and make it version agnostic.
2455
2456 2011-04-22  Jan Hubicka  <jh@suse.cz>
2457
2458         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2459
2460 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
2461
2462         PR c/48685
2463         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2464         to VOID_TYPE even around MODIFY_EXPR.
2465
2466 2011-04-22  Mike Stump  <mikestump@comcast.net>
2467
2468         * gensupport.c (read_md_rtx): Fix typo in comment.
2469         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2470         comment.
2471
2472 2011-04-22  Jan Hubicka  <jh@suse.cz>
2473
2474         * gengtype.c (open_base_files): Add ipa-inline.h include.
2475         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2476         ipa-prop.c; update all uses.
2477         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
2478         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2479         merge summary of inlined function into former caller.
2480         * ipa-inline.c (max_benefit): Remove.
2481         (edge_badness): Compensate for removal of benefits.
2482         (update_caller_keys): Use
2483         reset_node_growth_cache/reset_edge_growth_cache.
2484         (update_callee_keys): Likewise.
2485         (update_all_callee_keys): Likewise.
2486         (inline_small_functions): Do not collect max_benefit; do not reset
2487         estimated_growth; call free_growth_caches and initialize_growth_caches.
2488         * ipa-inline.h (struct condition, type clause_t, struct predicate,
2489         struct size_time_entry): New structures.
2490         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
2491         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2492         and estimated_growth.
2493         (edge_growth_cache_entry): New structure.
2494         (node_growth_cache, edge_growth_cache): New global vars.
2495         (estimate_growth): Turn into inline.
2496         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2497         initialize_growth_caches, free_growth_caches): Declare.
2498         (estimate_edge_growth): Rewrite.
2499         (estimate_edge_time): Implement as inline cache lookup.
2500         (reset_node_growth_cache, reset_edge_growth_cache): New inline
2501         functions.
2502         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2503         (NUM_CONDITIONS): New constant.
2504         (predicate_conditions): New enum.
2505         (IS_NOT_CONSTANT): New constant.
2506         (edge_removal_hook_holder): New var.
2507         (node_growth_cache, edge_growth_cache): New global vars.
2508         (true_predicate, single_cond_predicate, false_predicate,
2509         not_inlined_predicate, add_condition, add_clause, and_predicates,
2510         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2511         dump_clause, dump_predicate, account_size_time,
2512         evaulate_conditions_for_edge): New functions.
2513         (inline_summary_alloc): Move to heap.
2514         (inline_node_removal_hook): Clear condition and entry vectors.
2515         (inline_edge_removal_hook): New function.
2516         (initialize_growth_caches, free_growth_caches): New function.
2517         (dump_inline_summary): Update.
2518         (edge_execution_predicate): New function.
2519         (will_be_nonconstant_predicate): New function.
2520         (estimate_function_body_sizes): Compute BB and constantness predicates.
2521         (compute_inline_parameters): Do not clear estimated_growth.
2522         (estimate_edge_size_and_time): New function.
2523         (estimate_calls_size_and_time): New function.
2524         (estimate_callee_size_and_time): New function.
2525         (remap_predicate): New function.
2526         (inline_merge_summary): New function.
2527         (do_estimate_edge_time): New function based on...
2528         (estimate_edge_time): ... this one.
2529         (do_estimate_edge_growth): New function.
2530         (do_estimate_growth): New function based on....
2531         (estimate_growth): ... this one.
2532         (inline_analyze_function): Analyze after deciding on jump functions.
2533         (inline_read_section): New function.
2534         (inline_read_summary): Use it.
2535         (inline_write_summary): Write all the new data.
2536         * ipa-prop.c (ipa_get_param_decl_index): Export.
2537         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
2538         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
2539         Declare.
2540         (ipa_get_lattice): Move here from ipa-cp.c
2541         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
2542         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
2543         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
2544         cgraph_edge_inlinable_p): Remove.
2545         * cgraphunit.c: Include ipainline.h
2546         (cgraph_process_new_functions): Update call of
2547         compute_inline_parameters.
2548
2549 2011-04-22  Richard Guenther  <rguenther@suse.de>
2550
2551         * tree.c (build_int_cst): Properly create canonicalized integer
2552         constants.
2553         (build_int_cst_type): Remove scary comments.
2554
2555 2011-04-22  Xinliang David Li  <davidxl@google.com>
2556
2557         * toplev.c (process_options): Enable -Werror=coverage-mismatch
2558         by default when -Wno-error is not specified.
2559         * opts-global.c (decode_options): Remove call to
2560         control_warning_options.
2561
2562 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2563
2564         PR tree-optimization/48717
2565         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
2566         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
2567
2568 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
2569
2570         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
2571         definition where used.
2572
2573 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
2574
2575         PR c/48716
2576         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
2577         TREE_STATIC variables declared inside of some OpenMP construct.
2578
2579 2011-04-22  Martin Jambor  <mjambor@suse.cz>
2580
2581         PR middle-end/48585
2582         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
2583
2584 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
2585
2586         PR c/36750
2587         * c-typeck.c (pop_init_level): Do not warn about initializing
2588         with ` = {0}'.
2589
2590 2011-04-22  Alan Modra  <amodra@gmail.com>
2591
2592         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2593         when returning call_cookie.
2594         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2595         pointers, to functions with no more vector args than the current
2596         function, and some non-local calls for ABI_V4.
2597         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2598         sibcall_nonlocal_aix64): Combine to ..
2599         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
2600         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2601         (sibcall_value_nonlocal_aix<mode>): ..likewise.
2602         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2603         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
2604         operand.
2605         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2606         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2607         sibcall_value_symbolic_64): Delete.
2608
2609 2011-04-21  Xinliang David Li  <davidxl@google.com>
2610
2611         * cgraph.h: Remove pid.
2612         * cgraph.c: Remove pid.
2613         * value-prof.c (init_node_map): New function.
2614         (del_node_map): New function.
2615         (find_func_by_funcdef_no): New function.
2616         (gimple_ic_transform): Call new function.
2617         * cgraphunit.c (cgraph_finalize_function): Remove pid.
2618         * function.c (get_last_funcdef_no): New function.
2619         * function.h (get_last_funcdef_no): New function.
2620         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
2621         to libgcov function.
2622         (tree-profiling): Call node map init and delete function.
2623
2624 2011-04-21  Ian Lance Taylor  <iant@google.com>
2625
2626         * godump.c (go_format_type): Use exported Go name for anonymous
2627         field name.
2628
2629 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2630
2631         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2632         Call builtin_function_type_list instead of builtin_function_type.
2633         (UNARY, BINARY, TRINARY, QUAD): Likewise.
2634
2635 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2636
2637         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2638         build_function_type_list instead of build_function_type.
2639         Delete variable `endlink'.
2640
2641 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2642
2643         * config/s390/s390.c (s390_init_builtins): Call
2644         build_function_type_list instead of build_function_type.
2645
2646 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
2647
2648         * config/ia64/ia64.c (ia64_init_builtins): Call
2649         build_function_type_list instead of builtin_function_type.
2650
2651 2011-04-21  Easwaran Raman  <eraman@google.com>
2652
2653         * cfgexpand.c (stack_var): Remove OFFSET...
2654         (add_stack_var): ...and its reference here...
2655         (expand_stack_vars): ...and here.
2656         (stack_var_cmp): Sort by descending order of size.
2657         (partition_stack_vars): Change heuristic.
2658         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2659         (dump_stack_var_partition): Add newline after each partition.
2660
2661 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
2662             Jeff Law  <law@redhat.com>
2663
2664         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
2665         * gengtype.c (matching_file_name_substitute): Likewise.
2666
2667 2011-04-21  Richard Guenther  <rguenther@suse.de>
2668
2669         PR lto/48703
2670         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
2671
2672 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2673
2674         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2675
2676 2011-04-21  Richard Guenther  <rguenther@suse.de>
2677
2678         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2679         file name.
2680
2681 2011-04-21  Richard Guenther  <rguenther@suse.de>
2682
2683         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2684         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2685         Use DECL_P, not SSA_VAR_P.
2686         (ptr_derefs_may_alias_p): Likewise.
2687         (ptr_deref_may_alias_ref_p_1): Likewise.
2688         (decl_refs_may_alias_p): Likewise.
2689         (refs_may_alias_p_1): Likewise.
2690         (ref_maybe_used_by_call_p_1): Likewise.
2691         (call_may_clobber_ref_p_1): Likewise.
2692         (indirect_ref_may_alias_decl_p): Assume indirect refrences
2693         are either MEM_REF or TARGET_MEM_REF.
2694         (indirect_refs_may_alias_p): Likewise.
2695         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2696         for MEM_EXPR of indirect calls.
2697
2698 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2699
2700         * vmsdbgout.c (write_srccorr): Compute file length from the string.
2701         (dst_file_info_struct): Remove flen field.
2702         (lookup_filename): Remove code that set flen field.
2703
2704 2011-04-21  Tristan Gingold  <gingold@adacore.com>
2705
2706         * config/ia64/ia64.c (ia64_start_function): Add a guard.
2707
2708 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
2709
2710         PR target/48708
2711         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2712         vec_extract and vec_concat for non-SSE4_1 targets.
2713
2714 2011-04-21  Richard Guenther  <rguenther@suse.de>
2715
2716         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2717         return statements.
2718
2719 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2720
2721         * config/i386/cygming.h (union tree_node, TREE): Don't define or
2722         undefine.
2723         (FILE): Don't undefine.
2724
2725 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
2726
2727         * config/alpha/alpha.c (struct machine_function): Use rtx, not
2728         struct rtx_def *.
2729         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2730         struct rtx_def *.
2731         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2732         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
2733         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2734         rtx_def *.
2735         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
2736         definitions where used.
2737         * config/microblaze/microblaze.h (struct microblaze_args): Use
2738         rtx, not struct rtx_def *.
2739         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2740         rtx_def *.
2741         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2742         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
2743         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2744         not struct rtx_def *.
2745         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2746         struct rtx_def *.
2747         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2748         rtx_def *.
2749         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
2750
2751 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2752
2753         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2754         operand_equal_p to compare DR_BASE_ADDRESSes.
2755         (vect_check_interleaving): Likewise.
2756
2757 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2758
2759         PR target/46329
2760         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2761         for all Neon struct constants.
2762
2763 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2764
2765         * target.def (legitimate_constant_p): New hook.
2766         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2767         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2768         * doc/tm.texi: Regenerate.
2769         * hooks.h (hook_bool_mode_rtx_true): Declare.
2770         * hooks.c (hook_bool_mode_rtx_true): Define.
2771         * system.h (LEGITIMATE_CONSTANT_P): Poison.
2772         * calls.c (precompute_register_parameters): Replace uses of
2773         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
2774         (emit_library_call_value_1): Likewise.
2775         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
2776         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
2777         * ira-costs.c (scan_one_insn): Likewise.
2778         * recog.c (general_operand, immediate_operand): Likewise.
2779         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
2780         * reload1.c (init_eliminable_invariants): Likewise.
2781
2782         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
2783         mode argument.
2784         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
2785         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
2786         argument.
2787         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2788         * config/alpha/predicates.md (input_operand): Update call to
2789         alpha_legitimate_constant_p.
2790
2791         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
2792         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
2793         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
2794         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2795         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
2796         (arm_legitimate_constant_p): New functions.
2797         (arm_cannot_force_const_mem): Make static.
2798
2799         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
2800
2801         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
2802         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
2803         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
2804         instead of bfin_legitimate_constant_p.
2805         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
2806         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2807
2808         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
2809
2810         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
2811
2812         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
2813         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
2814         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2815         (frv_legitimate_constant_p): Make static.  Add a mode argument.
2816
2817         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
2818         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
2819         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
2820
2821         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
2822         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
2823         * config/i386/i386.c (legitimate_constant_p): Rename to...
2824         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
2825         argument.
2826         (ix86_cannot_force_const_mem): Update accordingly.
2827         (ix86_legitimate_address_p): Likewise.
2828         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2829         * config/i386/i386.md: Update commentary.
2830
2831         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
2832         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
2833         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2834         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
2835
2836         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
2837
2838         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
2839         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
2840         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2841         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
2842
2843         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
2844         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
2845         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
2846
2847         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
2848         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2849         (m32r_legitimate_constant_p): New function.
2850
2851         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
2852         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
2853         LEGITIMATE_CONSTANT_P.
2854         (LEGITIMATE_CONSTANT_P): Delete.
2855         * config/m68k/m68k.c (m68k_expand_prologue): Call
2856         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
2857         (m68k_legitimate_constant_p): New function.
2858         * config/m68k/m68k.md: Update comments.
2859
2860         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
2861         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2862         (mcore_legitimate_constant_p): New function.
2863
2864         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
2865         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
2866         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
2867         Add a mode argument.
2868         (mep_legitimate_address): Update accordingly.
2869         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2870
2871         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
2872         Delete.
2873         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
2874         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
2875         static.  Check OP's mode for VOIDmode.
2876         (microblaze_legitimate_constant_p): New function.
2877         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2878
2879         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
2880         * config/mips/mips.c (mips_legitimate_constant_p): New function.
2881         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
2882         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2883         * config/mips/predicates.md: Update comments.
2884
2885         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
2886         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
2887         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2888         (mmix_legitimate_constant_p): Make static, return a bool, and take
2889         a mode argument.
2890         (mmix_print_operand_address): Update accordingly.
2891
2892         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
2893         Delete.
2894         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2895         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
2896         static.  Add a mode argument.
2897         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2898
2899         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
2900
2901         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
2902         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2903         (pa_legitimate_constant_p): New function.
2904
2905         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
2906
2907         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
2908         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2909         (pdp11_legitimate_constant_p): New function.
2910
2911         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
2912         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2913         (rs6000_legitimate_constant_p): New function.
2914
2915         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
2916         (rx_legitimate_constant_p): ...this.
2917         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
2918         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
2919         (rx_legitimate_constant_p): ...this.
2920         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2921         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
2922
2923         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
2924         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
2925         * config/s390/s390.c (legitimate_constant_p): Rename to...
2926         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
2927         and add a mode argument.
2928         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2929
2930         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
2931
2932         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
2933         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2934         (sh_legitimate_constant_p): New function.
2935
2936         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
2937         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
2938         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2939         (legitimate_constant_p): Rename to...
2940         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
2941         argument.
2942         (constant_address_p): Update accordingly.
2943
2944         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
2945         argument and return a bool.
2946         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
2947         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2948         (spu_legitimate_constant_p): Add a mode argument and return a bool.
2949         (spu_rtx_costs): Update accordingly.
2950         * config/spu/predicates.md (vec_imm_operand): Likewise.
2951
2952         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
2953
2954         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
2955         * config/v850/v850.c (v850_legitimate_constant_p): New function.
2956         (TARGET_LEGITIMATE_CONSTANT_P): Define.
2957
2958         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
2959         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
2960         * config/vax/vax.c (legitimate_constant_p): Likewise.
2961
2962         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
2963         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
2964         (xtensa_legitimate_constant_p): New function.
2965
2966 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
2967
2968         * target.def (cannot_force_const_mem): Add a mode argument.
2969         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
2970         * doc/tm.texi: Regenerate.
2971         * hooks.h (hook_bool_mode_rtx_false): Declare.
2972         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
2973         (hook_bool_mode_const_rtx_true): Likewise.
2974         (hook_bool_mode_rtx_false): New function.
2975         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2976         to be non-VOID.  Update call to cannot_force_const_mem.
2977         (find_reloads): Update accordingly.
2978         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2979         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2980         argument.
2981         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2982         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2983         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2984         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2985         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2986         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2987         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2988         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2989         (m68k_cannot_force_const_mem): ...this new function.
2990         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2991         argument.
2992         (mips_const_insns, mips_legitimize_const_move): Update calls.
2993         (mips_secondary_reload_class): Likewise.
2994         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2995         (pa_cannot_force_const_mem): ...this new function.
2996         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
2997         (rs6000_cannot_force_const_mem): ...this new function.
2998         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2999         argument.
3000         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3001         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3002         to...
3003         (xtensa_cannot_force_const_mem): ...this new function.
3004
3005 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3006
3007         * config/mips/mips.c (mips16_build_function_stub): Call
3008         build_function_type_list instead of build_function_type.
3009         (mips16_build_call_stub): Likewise.
3010
3011 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3012
3013         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3014         instead of build_function_type.
3015
3016 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
3017
3018         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3019         instead of build_function_type.
3020
3021 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
3022
3023         PR target/48678
3024         * config/i386/i386.md (insv): Change operand 0 constraint to
3025         "register_operand".  Change operand 1 and 2 constraint to
3026         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
3027         * config/i386/sse.md (sse4_1_pinsrb): Export.
3028         (sse2_pinsrw): Ditto.
3029         (sse4_1_pinsrd): Ditto.
3030         (sse4_1_pinsrq): Ditto.
3031         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3032         * config/i386/i386.c (ix86_expand_pinsr): New.
3033
3034 2011-04-20  Easwaran Raman  <eraman@google.com>
3035
3036         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3037         containing union type only with -fstrict-aliasing.
3038
3039 2011-04-20  Jim Meyering  <meyering@redhat.com>
3040
3041         Remove useless if-before-free tests.
3042         * calls.c (expand_call, save_area): Likewise.
3043         * cfgcleanup.c (try_forward_edges): Likewise.
3044         * collect2.c (collect_execute): Likewise.
3045         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3046         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3047         * coverage.c (coverage_checksum_string): Likewise.
3048         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3049         * cselib.c (cselib_init): Likewise.
3050         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3051         (df_set_clean_cfg): Likewise.
3052         * function.c (free_after_compilation): Likewise.
3053         * gcc.c (do_spec_1, main): Likewise.
3054         * gcov.c (create_file_names): Likewise.
3055         * gensupport.c (identify_predicable_attribute): Likewise.
3056         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3057         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3058         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3059         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3060         * ipa-pure-const.c (local_pure_const): Likewise.
3061         * ipa-reference.c (propagate): Likewise.
3062         * ira-costs.c (free_ira_costs): Likewise.
3063         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3064         * matrix-reorg.c (mat_free): Likewise.
3065         * prefix.c (get_key_value): Likewise.
3066         * profile.c (compute_value_histograms): Likewise.
3067         * reload1.c (free_reg_equiv): Likewise.
3068         * sched-deps.c (free_deps): Likewise.
3069         * sel-sched-ir.c (fence_clear): Likewise.
3070         * sese.c (set_rename, if_region_set_false_region): Likewise.
3071         * tree-data-ref.c (free_rdg): Likewise.
3072         * tree-eh.c (lower_try_finally): Likewise.
3073         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3074         * tree-ssa-live.c (delete_var_map): Likewise.
3075         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3076         * tree-ssa-pre.c (phi_trans_add): Likewise.
3077
3078 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
3079
3080         PR tree-optimization/48611
3081         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3082         beyond ERT_MUST_NOT_THROW region.
3083
3084 2011-04-20  Catherine Moore  <clm@codesourcery.com>
3085
3086         * config/mips/mips.opt (mfix-24k): New.
3087         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3088         * config/mips/mips.md (length): Increase by 4 for stores if
3089         fixing 24K errata.
3090         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3091         all noreorder if fixing 24K errata.
3092         * doc/invoke.texi: Document mfix-24k.
3093
3094 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
3095
3096         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
3097         quad-word modes, reduce to 9-bit index range when above 1016 limit.
3098
3099 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3100
3101         * config/arm/arm.c (arm_gen_constant): Move movw support ....
3102         (const_ok_for_op): ... to here.
3103
3104 2011-04-20  Kai Tietz  <ktietz@redhat.com>
3105
3106         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3107         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
3108
3109 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
3110
3111         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3112
3113 2011-04-20  Richard Guenther  <rguenther@suse.de>
3114
3115         PR tree-optimization/47892
3116         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3117         are if-convertible.
3118
3119 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3120
3121         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3122
3123 2011-04-20  Tristan Gingold  <gingold@adacore.com>
3124
3125         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3126
3127 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
3128
3129         PR target/18145
3130
3131         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3132         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3133         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3134         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3135         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3136
3137         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3138         New prototype.
3139
3140         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3141         (avr_asm_named_section, avr_asm_output_aligned_common,
3142         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3143         New functions to update...
3144         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3145         (avr_asm_init_sections): Overwrite section callbacks for
3146         data_section, bss_section.
3147         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3148         from here to...
3149         (avr_file_end): ...here.
3150
3151 2011-04-20  Richard Guenther  <rguenther@suse.de>
3152
3153         PR middle-end/48695
3154         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
3155         objects and types here.  Adjust for their offset before comparing.
3156
3157 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3158
3159         * tree-vect-stmts.c (vectorizable_store): Only chain one related
3160         statement per copy.
3161
3162 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
3163
3164         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3165         (GIMPLE_H): Include $(INTERNAL_FN_H).
3166         (OBJS-common): Add internal-fn.o.
3167         (internal-fn.o): New rule.
3168         * internal-fn.def: New file.
3169         * internal-fn.h: Likewise.
3170         * internal-fn.c: Likewise.
3171         * gimple.h: Include internal-fn.h.
3172         (GF_CALL_INTERNAL): New gf_mask.
3173         (gimple_statement_call): Put fntype into a union with a new
3174         internal_fn field.
3175         (gimple_build_call_internal): Declare.
3176         (gimple_build_call_internal_vec): Likewise.
3177         (gimple_call_same_target_p): Likewise.
3178         (gimple_call_internal_p): New function.
3179         (gimple_call_internal_fn): Likewise.
3180         (gimple_call_fntype): Return null for internal calls.
3181         (gimple_call_set_fntype): Assert that the function is not internal.
3182         (gimple_call_set_fn): Likewise.
3183         (gimple_call_set_fndecl): Likewise.
3184         (gimple_call_set_internal_fn): New function.
3185         (gimple_call_addr_fndecl): Handle null functions.
3186         (gimple_call_return_type): Likewise null types.
3187         * gimple.c (gimple_build_call_internal_1): New function.
3188         (gimple_build_call_internal): Likewise.
3189         (gimple_build_call_internal_vec): Likewise.
3190         (gimple_call_same_target_p): Likewise.
3191         (gimple_call_flags): Handle calls to internal functions.
3192         (gimple_call_fnspec): New function.
3193         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3194         (gimple_has_side_effects): Handle null functions.
3195         (gimple_rhs_has_side_effects): Likewise.
3196         (gimple_call_copy_skip_args): Handle calls to internal functions.
3197         * cfgexpand.c (expand_call_stmt): Likewise.
3198         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3199         * gimple-fold.c (gimple_fold_call): Handle null functions.
3200         (gimple_fold_stmt_to_constant_1): Don't fold
3201         calls to internal functions.
3202         * gimple-low.c (gimple_check_call_args): Handle calls to internal
3203         functions.
3204         * gimple-pretty-print.c (dump_gimple_call): Likewise.
3205         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3206         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3207         (do_warn_unused_result): Likewise.
3208         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3209         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3210         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3211         the target of a call.
3212         (initialize_hash_element): Update accordingly.
3213         (hashable_expr_equal_p): Use gimple_call_same_target_p.
3214         (iterative_hash_hashable_expr): Handle calls to internal functions.
3215         (print_expr_hash_elt): Likewise.
3216         * tree-ssa-pre.c (can_value_number_call): Likewise.
3217         (eliminate): Handle null functions.
3218         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3219         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3220         (find_func_aliases): Likewise.
3221         * value-prof.c (gimple_ic_transform): Likewise.
3222         (gimple_indirect_call_to_profile): Likewise.
3223         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3224         * lto-streamer-out.c (output_gimple_stmt): Likewise.
3225
3226 2011-04-19  Jan Hubicka  <jh@suse.cz>
3227
3228         * ipa-inline-transform.c (save_inline_function_body): Add comments.
3229         * ipa-inline.c (inline_small_functions): Compute summaries first,
3230         populate heap later.
3231
3232 2011-04-19  Jan Hubicka  <jh@suse.cz>
3233
3234         * cgraph.h (save_inline_function_body): Remove.
3235         * ipa-inline-transform.c: New file, broke out of...
3236         * ipa-inline.c: ... this one; Update toplevel comment.
3237         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3238         make global.
3239         (update_noncloned_frequencies): Move to ipa-inline-transform.c
3240         (cgraph_mark_inline_edge): Rename to inline_call; move to
3241         ipa-inline-transform.c.
3242         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3243         move to ipa-inline-transform.c
3244         (recursive_inlining, inline_small_functions, flatten_function,
3245         ipa_inline, inline_always_inline_functions,
3246         early_inline_small_functions): Update.
3247         (inline_transform): Move to ipa-inline-transform.c.
3248         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3249         Declare.
3250         * Makefile.in (ipa-inline-transform.o): New file.
3251         * cgraphunit.c (save_inline_function_body): Move to
3252         ipa-inline-transform.c
3253
3254 2011-04-19  DJ Delorie  <dj@redhat.com>
3255
3256         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3257         registers if we already know there aren't any.
3258         (m32c_emit_epilogue): Don't emit a barrier here.
3259         (m32c_emit_eh_epilogue): Likewise.
3260         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3261         operands at expand time.
3262         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3263         int" wchar type.
3264         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3265         duplicates.  Provide aliases instead.
3266         * config/m32c/prologue.md (eh_return): Emit a barrier here.
3267         (eh_epilogue): Add a "(return)" here as a hint to other parts of
3268         the compiler.
3269
3270 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
3271
3272         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3273         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3274         (general_or_i64_p, sparc_register_move_cost): New function.
3275
3276 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3277
3278         * doc/install.texi (Configuration, --enable-threads): Remove mach.
3279         Add lynx, mipssde.  Sort table.
3280
3281 2011-04-19  Xinliang David Li  <davidxl@google.com>
3282
3283         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3284         not negative.
3285
3286 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR target/48678
3289         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3290         is a SUBREG with non-MODE_INT mode inside of it.
3291
3292 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3293
3294         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3295         also according to actual contants.
3296         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3297         (gimple_fold_call): Use it.
3298         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3299
3300 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3301
3302         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3303         non-pointer assignments.
3304
3305 2011-04-19  Martin Jambor  <mjambor@suse.cz>
3306
3307         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3308         account anc_offset and otr_type from the indirect edge info.
3309         * ipa-prop.c (get_ancestor_addr_info): New function.
3310         (compute_complex_ancestor_jump_func): Assignment analysis moved to
3311         get_ancestor_addr_info, call it.
3312         (ipa_note_param_call): Do not initialize information about polymorphic
3313         calls, return the indirect call graph edge.  Remove the last
3314         parameter, adjust all callers.
3315         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3316         parameters.  Initialize polymorphic information in the indirect edge.
3317
3318 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3319
3320         PR lto/48148
3321         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3322         the types if they have different enumeration identifiers.
3323
3324 2011-04-19  Jan Hubicka  <jh@suse.cz>
3325
3326         * cgraph.h (cgraph_optimize_for_size_p): Declare.
3327         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3328         * predict.c (cgraph_optimize_for_size_p): Break out from ...
3329         (optimize_function_for_size_p) ... here.
3330
3331 2011-04-19  Richard Guenther  <rguenther@suse.de>
3332
3333         PR lto/48207
3334         * tree.c (free_lang_data): Do not reset the decl-assembler-name
3335         langhook.
3336
3337 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3338
3339         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3340         if DECL_NO_INLINE_WARNING_P is set on the function.
3341
3342 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
3343
3344         PR fortran/47976
3345         * reload1.c (inc_for_reload): Return void. All callers changed.
3346         (emit_input_reload_insns): Don't try to delete previous output
3347         reloads to a register, or record spill_reg_store for autoincs.
3348
3349 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
3350
3351         * gengtype.h: Updated copyright year.
3352         (struct input_file_st): Add inpisplugin field.
3353         (type_fileloc): New function.
3354         * gengtype.c
3355         (write_typed_struct_alloc_def): Add gcc_assert.
3356         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3357         (write_typed_alloc_defns): Don't output for plugin files.
3358         (input_file_by_name): Clear inpisplugin field.
3359         (main): Set inpisplugin field for plugin files.
3360
3361 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3362
3363         * gengtype-state.c (string_eq): New.
3364         (read_state): Use string_eq instead of strcmp when creating the
3365         state_ident_tab.
3366
3367 2011-04-19  Wei Guozhi  <carrot@google.com>
3368
3369         PR target/47855
3370         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3371         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3372         linkage.
3373         * config/arm/constraints.md (Uu): New constraint.
3374         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3375
3376 2011-04-19  Tristan Gingold  <gingold@adacore.com>
3377
3378         * config.gcc (-*-*-*vms): Added.
3379         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3380         definitions moved.
3381         * config/vms/vms-ld.c: New file.
3382         * config/vms/vms-ar.c: New file.
3383         * config/vms/t-vmsnative: New file.
3384
3385 2011-04-18  Xinliang David Li  <davidxl@google.com>
3386
3387         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3388
3389 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3390
3391         PR middle-end/48661
3392         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3393         if TREE_TYPE (v) is non-NULL.
3394
3395         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3396         gimple_get_virt_mehtod_for_binfo.
3397         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3398         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3399         callers.
3400         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3401
3402 2011-04-18  Michael Matz  <matz@suse.de>
3403             Steve Ellcey  <sje@cup.hp.com>
3404
3405         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3406         use its mode as source mode if it isn't VOIDmode.
3407
3408 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
3409
3410         * doc/passes.texi: Fill crossref nodes.
3411
3412 2011-04-18  Jim Meyering  <meyering@redhat.com>
3413
3414         Fix doubled-word typos in comments and strings
3415         * config/alpha/vms-unwind.h: s/for for/for/
3416         * config/arm/unwind-arm.h: Likewise.
3417         * config/microblaze/microblaze.c: Likewise.
3418         * config/sh/constraints.md: s/in in/in/
3419         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3420
3421 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
3422
3423         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3424         (AVX_FLOAT_MODE_P): Ditto.
3425         (AVX128_VEC_FLOAT_MODE_P): Ditto.
3426         (AVX256_VEC_FLOAT_MODE_P): Ditto.
3427         (AVX_VEC_FLOAT_MODE_P): Ditto.
3428         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3429         (UNSPEC_MASKSTORE): Ditto.
3430         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3431         Merge from <sse>_movmsk<ssemodesuffix> and
3432         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
3433         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
3434         iterator.
3435         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3436         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3437         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3438
3439 2011-04-18  Jan Hubicka  <jh@suse.cz>
3440
3441         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3442
3443         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3444         (want_inline_function_called_once_p): Break out the logic from
3445         ipa_inline.
3446         (edge_badness): Ensure that profile is not misupdated.
3447         (lookup_recursive_calls): Prioritize by call frequencies.
3448         (inline_small_functions): Move program size estimates here;
3449         actually process whole queue even when unit growth has been
3450         met. (to properly compute inline_failed reasons and for the
3451         case unit size decrease.) Revisit comments on recursive inlining.
3452         (ipa_inline): Remove unit summary code; first inline hot calls
3453         of functions called once, cold calls next.
3454         (order, nnodes): Remove unused variables.
3455         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3456         (GTFILES): Remove ipa-inline.c
3457         * sel-sched.c (fill_insns): Silence uninitialized var warning.
3458
3459 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3460
3461         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3462
3463 2011-04-18  Jie Zhang  <jie@codesourcery.com>
3464             Richard Earnshaw  <rearnsha@arm.com>
3465
3466         * arm.c (neon_builtin_type_bits): Remove.
3467         (typedef enum neon_builtin_mode): New.
3468         (T_MAX): Don't define.
3469         (typedef enum neon_builtin_datum): Remove bits, codes[],
3470         num_vars and base_fcode.  Add mode, code and fcode.
3471         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3472         VAR10): Change accordingly.
3473         (neon_builtin_data[]): Change accordingly
3474         (arm_init_neon_builtins): Change accordingly.
3475         (neon_builtin_compare): Remove.
3476         (locate_neon_builtin_icode): Remove.
3477         (arm_expand_neon_builtin): Change accordingly.
3478
3479         * arm.h (enum arm_builtins): Move to ...
3480         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3481
3482         * arm.c (arm_builtin_decl): Declare.
3483         (TARGET_BUILTIN_DECL): Define.
3484         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3485         (arm_builtin_decls[]): New.
3486         (arm_init_neon_builtins): Store builtin declarations in
3487         arm_builtin_decls[].
3488         (arm_init_tls_builtins): Likewise.
3489         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
3490         (arm_builtin_decl): New.
3491
3492 2011-04-18  Richard Guenther  <rguenther@suse.de>
3493
3494         * tree.c (upper_bound_in_type): Build properly canonicalized
3495         INTEGER_CSTs.
3496         (lower_bound_in_type): Likewise.
3497
3498 2011-04-18  Richard Guenther  <rguenther@suse.de>
3499
3500         * gimple.h (gimple_call_addr_fndecl): New function.
3501         (gimple_call_fndecl): Use it.
3502         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3503         for direct calls.
3504         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3505         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3506
3507 2011-04-18  Richard Guenther  <rguenther@suse.de>
3508
3509         PR middle-end/48650
3510         * tree.c (build_string): STRING_CST is now derived from tree_typed.
3511
3512 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3513
3514         PR lto/48492
3515         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3516         DECL_IN_CONSTANT_POOL without RTL.
3517
3518 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
3519             Ira Rosen  <ira.rosen@linaro.org>
3520
3521         PR target/48252
3522         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
3523         to match neon_vzip/vuzp/vtrn_internal.
3524         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
3525         outputs explicitly dependent on both inputs.
3526         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
3527
3528 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
3529
3530         PR tree-optimization/48616
3531         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
3532         whether the shift is by scalar or vector based on whether all SLP
3533         scalar stmts have the same rhs.
3534
3535 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
3536
3537         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
3538         memory operands.
3539
3540 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
3541
3542         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
3543         registers.
3544
3545 2011-04-17  Jan Hubicka  <jh@suse.cz>
3546
3547         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
3548         * cgrpahunit.c (cgraph_finalize_function): Do not set
3549         finalized_by_frontend.
3550         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3551         finalized_by_frontend.
3552
3553 2011-04-17  Jan Hubicka  <jh@suse.cz>
3554
3555         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
3556         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
3557         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
3558         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
3559         method.
3560         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
3561         gimple-fold.c
3562         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
3563
3564 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3565
3566         PR lto/48538
3567         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
3568         is non-null before accessing it.
3569         (input_cgraph): Remove trailing spaces.
3570
3571 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3572
3573         * params.def (sms-min-sc): New param flag.
3574         * modulo-sched.c (sms_schedule): Use it.
3575         * doc/invoke.texi (sms-min-sc): Document it.
3576
3577 2011-04-17  Jan Hubicka  <jh@suse.cz>
3578
3579         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
3580         present, also set gimple_call_set_cannot_inline.
3581         * ipa-inline.c: Update toplevel comment.
3582         (MAX_TIME): Remove.
3583         (cgraph_clone_inlined_nodes): Fix linebreaks.
3584         (cgraph_check_inline_limits): Restructure to ...
3585         (caller_growth_limits): ... this one; be more tolerant
3586         on growth in nested inline chains; add explanatory comment;
3587         fix stack accounting thinko introduced by previous patch.
3588         (cgraph_default_inline_p): Remove.
3589         (report_inline_failed_reason): New function.
3590         (can_inline_edge_p): New function.
3591         (can_early_inline_edge_p): New function.
3592         (leaf_node_p): Move upwards in file.
3593         (want_early_inline_function_p): New function.
3594         (want_inline_small_function_p): New function.
3595         (want_inline_self_recursive_call_p): New function.
3596         (cgraph_edge_badness): Rename to ...
3597         (edge_badness) ... this one; fix linebreaks.
3598         (update_edge_key): Update call of edge_baddness; add
3599         detailed dump about queue updates.
3600         (update_caller_keys): Use can_inline_edge_p and
3601         want_inline_small_function_p.
3602         (cgraph_decide_recursive_inlining): Rename to...
3603         (recursive_inlining): Use can_inline_edge_p and
3604         want_inline_self_recursive_call_p; simplify and remove no longer
3605         valid FIXME.
3606         (cgraph_set_inline_failed): Remove.
3607         (add_new_edges_to_heap): Use can_inline_edge_p and
3608         want_inline_small_function_p.
3609         (cgraph_decide_inlining_of_small_functions): Rename to ...
3610         (inline_small_functions): ... this one; cleanup; use
3611         can/want predicates; cleanup debug ouput; work edges till fibheap
3612         is exhausted and do not stop once unit growth is reached; remove
3613         later loop processing remaining edges.
3614         (cgraph_flatten): Rename to ...
3615         (flatten_function): ... this one; use can_inline_edge_p
3616         and can_early_inline_edge_p predicates.
3617         (cgraph_decide_inlining): Rename to ...
3618         (ipa_inline): ... this one; remove unreachable nodes before
3619         inlining functions called once; simplify the pass.
3620         (cgraph_perform_always_inlining): Rename to ...
3621         (inline_always_inline_functions): ... this one; use
3622         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
3623         (cgraph_decide_inlining_incrementally): Rename to ...
3624         (early_inline_small_functions): ... this one; simplify
3625         using new predicates; cleanup; make dumps prettier.
3626         (cgraph_early_inlining): Rename to ...
3627         (early_inliner): newer inline regular functions into always-inlines;
3628         fix updating of call stmt summaries.
3629         (pass_early_inline): Update for new names.
3630         (inline_transform): Fix formating.
3631         (gate_cgraph_decide_inlining): Rename to ...
3632         (pass_ipa_inline): ... this one.
3633         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3634         * ipa-inline-analysis.c (dump_inline_summary): Update.
3635         (compute_inline_parameters): Do not compute disregard_inline_limits;
3636         look for mismatching arguments.
3637         (estimate_growth): Fix handlig of non-trivial self recursion.
3638         (inline_read_summary): Do not read info->disregard_inline_limits.
3639         (inline_write_summary): Do not write info->disregard_inline_limits.
3640         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3641         and move all checks into can_inline_edge_p predicate; re-enable code
3642         comparing optimization levels.
3643         (expand_call_inline): Do not test inline_forbidden_into_p.
3644         * Makefile.in (ipa-inline.o): Update arguments.
3645
3646 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3647
3648         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3649
3650 2011-04-17  Revital Eres  <revital.eres@linaro.org>
3651
3652         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3653
3654 2011-04-17  Michael Matz  <matz@suse.de>
3655
3656         PR tree-optimization/48622
3657         PR lto/48645
3658         * ipa-inline-analysis.c (inline_read_summary): Read size/time
3659         in same order as they're written.
3660
3661 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3662
3663         * config/pa/predicates.md: Reorganize and simplify predicates.
3664         Eliminate duplicate code checks.
3665         (arith_operand): Rename to arith14_operand
3666         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3667         * config/pa/pa.md: Use renamed operands.
3668         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3669         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3670         arith11_operand, adddi3_operand, indexed_memory_operand,
3671         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3672         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3673         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3674         move_dest_operand, move_src_operand, prefetch_cc_operand,
3675         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3676         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3677         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3678         div_operand, int5_operand, movb_comparison_operator,
3679         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3680         arith_double_operand, ireg_operand, lhs_lshift_operand,
3681         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3682         integer_store_memory_operand): Likewise.
3683         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3684         (integer_store_memory_operand, read_only_operand,
3685         function_label_operand, borx_reg_operand,
3686         non_hard_reg_operand): Likewise.
3687         (eq_neq_comparison_operator): Delete unused operator.
3688         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3689         function_label_operand.
3690         (emit_move_sequence): Likewise.
3691
3692 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3693
3694         * config/i386/sse.md (sseunpackmode): New mode attribute.
3695         (ssepackmode): Ditto.
3696         (vec_pack_trunc_<mode>): Macroize expander from
3697         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3698         (vec_unpacks_lo_<mode>): Macroize expander from
3699         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3700         (vec_unpacks_hi_<mode>): Macroize expander from
3701         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3702         (vec_unpacku_lo_<mode>): Macroize expander from
3703         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3704         (vec_unpacku_hi_<mode>): Macroize expander from
3705         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3706         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3707         ix86_expand_sse4_unpack.
3708         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3709
3710 2011-04-16  Jan Hubicka  <jh@suse.cz>
3711
3712         * cgraphbuild.c: Include ipa-inline.h.
3713         (reset_inline_failed): Use initialize_inline_failed.
3714         * cgraph.c: Include ipa-inline.h.
3715         (cgraph_create_node_1): Do not initialize estimated_growth.
3716         (initialize_inline_failed): More to ipa-inline-analysis.c
3717         (dump_cgraph_node): Do not dump inline flags.
3718         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3719         and disregard_inline_limits flags.
3720         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3721         time, size, estimated_growth.
3722         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3723         Update.
3724         * cgraphunit.c (cgraph_decide_is_function_needed): Use
3725         DECL_DISREGARD_INLINE_LIMITS.
3726         (cgraph_analyze_function): Do not initialize
3727         node->local.disregard_inline_limits.
3728         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3729         inlinable, versionable and disregard_inline_limits.
3730         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
3731         cgraph_check_inline_limits, cgraph_default_inline_p,
3732         cgraph_edge_badness, update_caller_keys, update_callee_keys,
3733         add_new_edges_to_heap): Update.
3734         (cgraph_decide_inlining_of_small_function): Update; set
3735         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
3736         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3737         cgraph_decide_inlining_incrementally): Update.
3738         * ipa-inline.h (inline_summary): Add inlinable, versionable,
3739         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3740         time, size and estimated_growth parameters.
3741         (estimate_edge_growth): Update.
3742         (initialize_inline_failed): Declare.
3743         * ipa-split.c: Include ipa-inline.h
3744         (execute_split_functions): Update.
3745         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3746         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3747         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3748         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3749         estimated_growth to INT_MIN.
3750         (inline_node_duplication_hook): Likewise.
3751         (dump_inline_summary): Dump new fields.
3752         (compute_inline_parameters): Update.
3753         (estimate_edge_time, estimate_time_after_inlining,
3754         estimate_size_after_inlining, estimate_growth, inline_read_summary,
3755         inline_write_summary):
3756         (initialize_inline_failed): Move here from cgraph.c.
3757         * tree-sra.c: Include ipa-inline.h.
3758         (ipa_sra_preliminary_function_checks): Update.
3759         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3760         ipa-inline.h.
3761
3762 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
3763
3764         * config/i386/sse.md (V16): New mode iterator.
3765         (VI1, VI8): Ditto.
3766         (AVXMODEQI, AVXMODEDI): Remove.
3767         (sse2, sse3): New mode attribute.
3768         (mov<mode>): Use V16 mode iterator.
3769         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3770         (push<mode>1): Use V16 mode iterator.
3771         (movmisalign<mode>): Ditto.
3772         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3773         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
3774         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
3775         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
3776         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
3777         avx_movdqu<avxmodesuffix>.
3778         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
3779         *avx_movdqu<avxmodesuffix>.
3780         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
3781         avx_lddqu<avxmodesuffix>.
3782         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
3783         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
3784         avx_movnt<AVXMODEDI:mode>.
3785         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
3786         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
3787
3788 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3789
3790         PR target/48629
3791         * haifa-sched.c (prune_ready_list, schedule_block): Use
3792         sched_pressure_p rather than flag_sched_pressure.
3793
3794 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
3795
3796         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3797         cgraph_get_node instead of cgraph_get_create_node.
3798
3799 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
3800
3801         * cfgexpand.c (expand_debug_expr): Use
3802         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
3803
3804 2011-04-15  Michael Matz  <matz@suse.de>
3805
3806         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
3807         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
3808         * function.c (gimplify_parameters): Ditto.
3809         * gimplify.c (gimplify_vla_decl): Ditto.
3810
3811         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
3812         (gimple_call_set_alloca_for_var): New inline function.
3813         (gimple_call_alloca_for_var_p): Ditto.
3814         * gimple.c (gimple_build_call_from_tree): Remember
3815         CALL_ALLOCA_FOR_VAR_P state.
3816         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
3817
3818         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
3819         calls if they were for VLA objects.
3820
3821 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3822
3823         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
3824         of ADR_EXPRs.
3825
3826 2011-04-15  Martin Jambor  <mjambor@suse.cz>
3827
3828         PR middle-end/48601
3829         * tree-emutls.c (lower_emutls_function_body): Call
3830         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
3831         result is non-NULL.
3832
3833 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3834
3835         * c-decl.c (detect_field_duplicates): Call
3836         objc_detect_field_duplicates instead of objc_get_interface_ivars.
3837
3838 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
3839
3840         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
3841         * gimple.c (gimple_asm_clobbers_memory_p): Define.
3842         * ipa-pure-const.c (check_stmt): Call it.
3843         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
3844
3845 2011-04-15  Richard Guenther  <rguenther@suse.de>
3846
3847         PR tree-optimization/48290
3848         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
3849         Properly decide inhibiting propagation based on the valueized
3850         operand.  Do loop-closed SSA form preserving here ...
3851         (init_copy_prop): ... not here.
3852
3853 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
3854
3855         PR target/48612
3856         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
3857         (*ieee_smax<mode>3): Likewise.
3858
3859 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3860
3861         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
3862         Replace match_operand with match_dup for the third operand in
3863         these expanders.
3864
3865 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3866
3867         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
3868         to track processing of conditionals.  Update all callers.
3869         (try_combine, simplify_if_then_else): Update.
3870
3871 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3872
3873         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
3874         -fsched-pressure.
3875
3876 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
3877
3878         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
3879         instead of match_operand for operand 3.
3880
3881 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
3882
3883         * recog.h (insn_operand_data): Add an "allows_mem" field.
3884         * genoutput.c (output_operand_data): Initialize it.
3885         * optabs.c (maybe_legitimize_operand_same_code): New function.
3886         (maybe_legitimize_operand): Use it when matching the original
3887         op->value.
3888
3889 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3890
3891         * gimplify.c: Fix issues in comments throughout.
3892         (voidify_wrapper_expr): Fix long line.
3893         (build_stack_save_restore): Likewise.
3894         (gimplify_loop_expr): Likewise.
3895         (gimplify_compound_lval): Likewise.
3896         (gimplify_init_ctor_eval): Likewise.
3897         (gimplify_modify_expr_rhs): Likewise.
3898         (omp_notice_threadprivate_variable): Likewise.
3899
3900 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3901
3902         * cfgexpand.c (expand_call_stmt): Convert the function type to the
3903         original one if this is not a builtin function.
3904
3905 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
3906
3907         PR target/48605
3908         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
3909         offset it as needed based on top 2 bits in operands[3], change
3910         MEM mode to SFmode and mask those 2 bits away from operands[3].
3911
3912 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
3913
3914         * c-parser.c (c_parser_objc_protocol_definition): Updated for
3915         change from objc_declare_protocols() to objc_declare_protocol().
3916
3917 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
3918
3919         * config/i386/sse.md (sse4_1): New mode attribute.
3920         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
3921         avx_blend<ssemodesuffix><avxmodesuffix> and
3922         sse4_1_blend<ssemodesuffix> using VF mode iterator.
3923         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
3924         avx_blendv<ssemodesuffix><avxmodesuffix> and
3925         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
3926         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
3927         avx_dp<ssemodesuffix><avxmodesuffix> and
3928         sse4_1_dp<ssemodesuffix> using VF mode iterator.
3929         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
3930         (sse4_1_packusdw): Merge with *avx_packusdw.
3931         (sse4_1_pblendvb): Merge with *avx_pblendvb.
3932         (sse4_1_pblendw): Merge with *avx_pblendw.
3933         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
3934         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
3935         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
3936         VF mode iterator.
3937         (sse4_1_round<ssescalarmodesuffix>): Merge with
3938         *avx_round<ssescalarmodesuffix>.
3939         (aesenc): Merge with *avx_aesenc.
3940         (aesenclast): Merge with *avx_aesenclast.
3941         (aesdec): Merge with *avx_aesdec.
3942         (aesdeclast): Merge with *avx_aesdeclast.
3943         (pclmulqdq): Merge with *pclmulqdq.
3944         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
3945         New predicate.
3946         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
3947
3948 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
3949
3950         PR middle-end/48608
3951         * cfgexpand.c (get_decl_align_unit): Renamed to ...
3952         (align_local_variable): This.  Update DECL_ALIGN.
3953         (add_stack_var): Updated.
3954         (expand_one_stack_var): Likewise.
3955
3956 2011-04-14  Richard Guenther  <rguenther@suse.de>
3957
3958         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
3959         Remove.
3960         (dse_initialize_block_local_data, dse_leave_block,
3961         record_voperand_set, get_stmt_uid): Likewise.
3962         (dse_possible_dead_store_p): Allow any kind of killing stmt.
3963         (dse_optimize_stmt): Remove voperand set handling code.
3964         Simplify and improve to handle any kind of killing stmt.
3965         (dse_record_phi): Remove.
3966         (dse_enter_block): Simplify.
3967         (tree_ssa_dse): Likewise.
3968         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
3969
3970 2011-04-14  Jan Hubicka  <jh@suse.cz>
3971
3972         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
3973         * cgraph.h (struct inline_summary): Move to ipa-inline.h
3974         (cgraph_local_info): Remove inline_summary.
3975         * ipa-cp.c: Include ipa-inline.h.
3976         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3977         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3978         accesor.
3979         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3980         (input_overwrite_node): Do not set inline summary.
3981         (input_node): Do not stream inline summary.
3982         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3983         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3984         growth; we do not have inline parameters computed for that anyway.
3985         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3986         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3987         (inline_summary_t): New type and VECtor.
3988         (debug_inline_summary, dump_inline_summaries): Declare.
3989         (inline_summary): Use VOCtor.
3990         (estimate_edge_growth): Kill hack computing call stmt size directly.
3991         * lto-section-in.c (lto_section_name): Add inline section.
3992         * ipa-inline-analysis.c: Include lto-streamer.h
3993         (node_removal_hook_holder, node_duplication_hook_holder): New holders
3994         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3995         (inline_summary_vec): Define.
3996         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3997         dump_inline_summaries): New functions.
3998         (estimate_function_body_sizes): Properly compute size/time of outgoing
3999         calls.
4000         (compute_inline_parameters): Alloc inline_summary; do not compute
4001         size/time of incomming calls.
4002         (estimate_edge_time): Avoid missing time summary hack.
4003         (inline_read_summary): Read inline summary info.
4004         (inline_write_summary): Write inline summary info.
4005         (inline_free_summary): Free all hooks and inline summary vector.
4006         * lto-streamer.h: Add LTO_section_inline_summary section.
4007         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4008         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4009
4010 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4011
4012         * tree-vectorizer.h (vect_strided_store_supported): Add a
4013         HOST_WIDE_INT argument.
4014         (vect_strided_load_supported): Likewise.
4015         (vect_permute_store_chain): Return void.
4016         (vect_transform_strided_load): Likewise.
4017         (vect_permute_load_chain): Delete.
4018         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4019         count argument.  Check that the count is a power of two.
4020         (vect_strided_load_supported): Likewise.
4021         (vect_permute_store_chain): Return void.  Update after above changes.
4022         Assert that the access is supported.
4023         (vect_permute_load_chain): Likewise.
4024         (vect_transform_strided_load): Return void.
4025         * tree-vect-stmts.c (vectorizable_store): Update calls after
4026         above interface changes.
4027         (vectorizable_load): Likewise.
4028         (vect_analyze_stmt): Don't check for strided powers of two here.
4029
4030 2011-04-14  Richard Guenther  <rguenther@suse.de>
4031
4032         PR tree-optimization/48590
4033         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4034         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4035         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4036         BUILT_IN_STACK_SAVE.
4037         * tree-ssa-dce.c (propagate_necessity): Handle
4038         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4039
4040 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
4041
4042         * c-parser.c (c_parser_objc_class_declaration): Updated call to
4043         objc_declare_class.
4044
4045 2011-04-14  Richard Guenther  <rguenther@suse.de>
4046
4047         * tree.h (get_object_alignment_1): Declare.
4048         * builtins.c (get_object_alignment_1): Split out worker from ...
4049         (get_object_alignment): ... here.
4050         * fold-const.c (get_pointer_modulus_and_residue): Use
4051         get_object_alignment_1.
4052
4053 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4054
4055         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4056         type parameter.
4057         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4058         parameter.  Generalise code to handle arrays as well as vectors.
4059         (vect_setup_realignment): Update accordingly.
4060         * tree-vect-stmts.c (vectorizable_store): Likewise.
4061         (vectorizable_load): Likewise.
4062
4063 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4064
4065         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4066         within the per-copy loop.
4067
4068 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4069
4070         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4071         in the dump file.
4072
4073 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
4074
4075         * doc/options.texi (Negative): Explicitly mention that the
4076         Negative chain must be circular.
4077
4078 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
4079
4080         * function.h (block_chainon): Declare.
4081         * function.c (block_chainon): Define.
4082
4083 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
4084             Eric Weddington  <eric.weddington@atmel.com>
4085             Georg-Johann Lay <avr@gjlay.de>
4086
4087         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
4088         New Includes
4089         (avr_init_builtins, avr_expand_builtin,
4090         avr_expand_delay_cycles, avr_expand_unop_builtin,
4091         avr_expand_binop_builtin ): New functions.
4092         (avr_builtin_id): New enum
4093         (struct avr_builtin_description): New struct
4094         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4095         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
4096
4097         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
4098         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
4099         UNSPECV_DELAY_CYCLES): new enumeration values
4100         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4101         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4102         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4103         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4104         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4105         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4106         "fmulsu"): New insns
4107
4108         * config/avr/avr-c.c: fix line endings
4109         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4110         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4111         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4112         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4113         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
4114
4115         * doc/extend.texi (AVR Built-in Functions): New node
4116         (Target Builtins): Add documentation of AVR
4117         built-in functions.
4118
4119 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
4120
4121         PR target/44643
4122         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4123         alone. Error if non-const data has attribute progmem.
4124
4125 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4126
4127         * tree.h (struct tree_constructor): Include tree_typed instead of
4128         tree_common.
4129         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4130         TS_TYPED instead of TS_COMMON.
4131
4132 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4133
4134         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4135         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4136         (sse2_psadbw): Merge with *avx_psadbw.
4137         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4138         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4139         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4140         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4141         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4142         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4143         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4144         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4145         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4146         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4147         (ssse3_palignrti): Merge with *avx_palignrti.
4148
4149 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4150
4151         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4152         * tree-ssanames.c (fini_ssanames): VEC_free it.
4153         (make_ssa_name_fn): Update for VECness of free_ssanames.
4154         (release_ssa_name, release_dead_ssa_names): Likewise.
4155         * tree.h (struct tree_ssa_name): Include tree_typed instead of
4156         tree_common.
4157         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4158         TS_TYPED instead of TS_COMMON.
4159
4160 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4161
4162         * postreload-gcse.c (gcse_after_reload_main): Add calls to
4163         statistics_counter_event.
4164         * tree-ssa-copyrename.c (stats): Define.
4165         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
4166         statistics_counter_event.
4167         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4168         (bswap_stats, widen_mul_stats): Define.
4169         (insert_reciprocals): Increment rdivs_inserted.
4170         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
4171         rfuncs_inserted.  Add calls to statistics_counter_event.
4172         (execute_cse_sincos_1): Increment inserted.
4173         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
4174         statistics_counter_event.
4175         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
4176         of bswap_stats.  Add calls to statistics_counter_event.
4177         (convert_mult_to_widen): Increment widen_mults_inserted.
4178         (convert_plusminus_to_widen): Increment maccs_inserted.
4179         (convert_mult_to_fma): Increment fmas_inserted.
4180         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
4181         calls to statistics_counter_event.
4182
4183 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4184
4185         PR rtl-optimization/48455
4186         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4187         `temp_costs->mem_cost'.
4188
4189 2011-04-13  Jan Hubicka  <jh@suse.cz>
4190
4191         * ipa-inline.h: New file.
4192         * ipa-inline-analysis.c: New file. Broken out of ...
4193         * ipa-inline.c: ... this file; update toplevel comment;
4194         include ipa-inline.h
4195         (inline_summary): Move to ipa-inline.h
4196         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4197         ipa-inline-analysis.c.
4198         (cgraph_estimate_time_after_inlining): Rename to
4199         estiamte_time_after_inlining; move to ipa-inline-analysis.c
4200         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4201         to estimate_edge_growth.
4202         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4203         rename to estimate_size_after_inlining.
4204         (cgraph_mark_inline_edge): Update for new naming convention.
4205         (cgraph_check_inline_limits): Likewise.
4206         (cgraph_edge_badness): Likewise.
4207         (cgraph_decide_recursive_inlining): Likewise.
4208         (cgraph_decide_inlining_of_small_functions): Likewise.
4209         (cgraph_decide_inlining_incrementally): Likewise.
4210         (cgraph_estimate_growth): Rename to estimate_growth; move to
4211         ipa-inline-analysis.c.
4212         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4213         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4214         (compute_inline_parameters): Likewise.
4215         (compute_inline_parameters_for_current): Likewise.
4216         (pass_inline_parameters): Likewise.
4217         (inline_indirect_intraprocedural_analysis): Likewise.
4218         (analyze_function): Rename to inline_analyze_function; likewise.
4219         (add_new_function): Move to ipa-inline-analysis.c.
4220         (inline_generate_summary): Likewise.
4221         (inline_read_summary): Likewise.
4222         (inline_write_summary): Likewise.
4223         * Makefile.in (ipa-inline-analysis.c): New file.
4224
4225 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4226
4227         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4228         * configure: Regenerate.
4229
4230 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
4231
4232         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4233         instead of tree_common.
4234         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4235         Likewise.
4236         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4237         TS_TYPED rather than TS_COMMON.
4238         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4239
4240 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
4241
4242         PR target/45263
4243         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4244         r20 around calls of __tablejump_elpm__
4245
4246 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
4247
4248         PR middle-end/48591
4249         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4250         NULL.
4251         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4252
4253 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
4254
4255         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4256         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4257         (cfi_vec): New typedef.
4258         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4259         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4260         (cie_cfi_vec): New static variable.
4261         (cie_cfi_head): Delete.
4262         (add_cfi): Accept a cfi_vec * as first argument. All callers and
4263         declaration changed. Use vector rather than list operations.
4264         (new_cfi): Don't initialize the dw_cfi_next field.
4265         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4266         rather than list operations.
4267         (lookup_cfa): Use vector rather than list operations.
4268         (output_cfis): New argument upto. Accept a cfi_vec rather than
4269         a dw_cfi_ref list head as argument. All callers changed.
4270         Iterate over the vector using upto as a maximum index.
4271         (output_all_cfis): New static function.
4272         (output_fde): Use vector rather than list operations. Use the
4273         new upto argument for output_cfis rather than manipulating a
4274         list.
4275         (dwarf2out_begin_prologue): Change initializations to match
4276         new struct members.
4277         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4278         from the vector length rather than searching for the end of a list.
4279         Use output_all_cfis.
4280         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4281
4282 2011-04-13  Nick Clifton  <nickc@redhat.com>
4283
4284         * config/rx/rx.md (movmemsi): Do not use this pattern when
4285         volatile pointers are involved.
4286
4287 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
4288
4289         * config/i386/sse.md (pinsrbits): Remove.
4290         (sse2_packsswb): Merge with *avx_packsswb.
4291         (sse2_packssdw): Merge with *avx_packssdw.
4292         (sse2_packuswb): Merge with *avx_packuswb.
4293         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4294         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4295         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4296         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4297         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4298         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4299         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4300         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4301         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4302         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4303         (sse2_loadld): Merge with *avx_loadld.
4304         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4305         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4306         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4307         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4308         (vec_concatv2di): Merge with *vec_concatv2di_avx.
4309
4310 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
4311
4312         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4313         calling TREE_CHAIN.
4314         * print-tree.c (print_node): Likewise.
4315         * tree-inline.c (copy_tree_r): Likewise.
4316         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4317         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4318         instead of TS_COMMON.
4319         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4320         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4321         (copy_node_stat): Zero TREE_CHAIN only if necessary.
4322         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4323         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4324         ...and these...
4325         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4326         * tree.h: ...here.
4327         (TREE_CHAIN): Check for a TS_COMMON structure.
4328         (TREE_TYPE): Check for a TS_TYPED structure.
4329
4330 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
4331
4332         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4333         cgraph_get_create_node instead of cgraph_node.
4334
4335 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4336
4337         * c-parser.c (c_parser_initelt): Updated call to
4338         objc_build_message_expr.
4339         (c_parser_postfix_expression): Likewise.
4340
4341 2011-04-12  Kai Tietz  <ktietz@redhat.com>
4342
4343         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4344         MASK_MS_BITFIELD_LAYOUT bit.
4345
4346 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4347
4348         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4349         assert it is always true.
4350         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4351         moves.
4352
4353 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
4354
4355         * c-parser.c (c_lex_one_token): Rewritten conditional used when
4356         compiling Objective-C to be more efficient.
4357
4358 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
4359
4360         * opts-common.c (decode_cmdline_options_to_array): Remove variable
4361         argv_copied.
4362
4363 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4364
4365         * recog.h, genoutput.c, optabs.c: Revert last patch.
4366
4367 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4368
4369         PR target/48090
4370         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
4371
4372 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4373
4374         * recog.h (insn_operand_data): Add an "allows_mem" field.
4375         * genoutput.c (output_operand_data): Initialize it.
4376         * optabs.c (maybe_legitimize_operand_same_code): New function.
4377         (maybe_legitimize_operand): Use it when matching the original
4378         op->value.
4379
4380 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4381
4382         * genpreds.c (process_define_predicate): Move most processing
4383         to gensupport.c.  Continue to validate the expression.
4384         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4385         (process_define_predicate): Move processing to gensupport.c.
4386         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4387         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4388         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
4389         argument.
4390         (valid_predicate_name_p): New function, split out from old
4391         genpreds.c:process_define_predicate.
4392         (process_define_predicate): New function, combining code from
4393         old genpreds.c and genrecog.c functions.
4394         (process_rtx): Call it for DEFINE_PREDICATE and
4395         DEFINE_SPECIAL_PREDICATE.
4396
4397 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
4398
4399         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4400         size of a '%A' memory reference.
4401         (T_DREG, T_QREG): New neon_builtin_type_bits.
4402         (arm_init_neon_builtins): Assert that the load and store operands
4403         are neon_struct_operands.
4404         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4405         (NEON_ARG_MEMORY): New builtin_arg.
4406         (neon_dereference_pointer): New function.
4407         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4408         Handle NEON_ARG_MEMORY.
4409         (arm_expand_neon_builtin): Update after above interface changes.
4410         Use NEON_ARG_MEMORY for loads and stores.
4411         * config/arm/predicates.md (neon_struct_operand): New predicate.
4412         * config/arm/iterators.md (V_two_elem): Tweak formatting.
4413         (V_three_elem): Use BLKmode for accesses that have no associated mode.
4414         (V_four_elem): Tweak formatting.
4415         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4416         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4417         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4418         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4419         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4420         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4421         (neon_vst4<mode>): Replace pointer operand with a memory operand.
4422         Use %A in the output template.
4423         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4424         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4425         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4426         the width of the memory access.  Remove post-increment.
4427         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4428
4429 2011-04-12  Nick Clifton  <nickc@redhat.com>
4430
4431         * config/v850/v850.c (expand_prologue): Do not use the CALLT
4432         instruction for interrupt handlers if the target is the basic V850
4433         architecture.
4434         (expand_epilogue): Likewise.
4435
4436 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4437
4438         PR rtl-optimization/48549
4439         * combine.c (propagate_for_debug): Also stop after BB_END of
4440         this_basic_block.  Process LAST and just stop processing after it.
4441         (combine_instructions): If last_combined_insn has been deleted,
4442         set last_combined_insn to its PREV_INSN.
4443
4444 2011-04-12  Richard Guenther  <rguenther@suse.de>
4445
4446         PR tree-optimization/46076
4447         * gimple.h (struct gimple_statement_call): Add fntype field.
4448         (gimple_call_fntype): Adjust.
4449         (gimple_call_set_fntype): New function.
4450         * gimple.c (gimple_build_call_1): Set the call function type.
4451         * gimplify.c (gimplify_call_expr): Preserve the function
4452         type the frontend used for the call.
4453         (gimplify_modify_expr): Likewise.
4454         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4455         function type.
4456         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4457         function type.
4458         * tree-ssa.c (useless_type_conversion_p): Function pointer
4459         conversions are useless.
4460
4461 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4462
4463         * cgraph.h (cgraph_node): Remove function declaration.
4464         (cgraph_create_node): Declare.
4465         (cgraph_get_create_node): Likewise.
4466         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4467         Updated all callers.
4468         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4469         the decl does not already exist.  Call cgraph_get_create_node instead
4470         of cgraph_node.
4471         (cgraph_get_create_node): New function.
4472         (cgraph_same_body_alias): Update comment.
4473         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4474         assert it does not return NULL.
4475         (cgraph_update_edges_for_call_stmt): Likewise.
4476         (cgraph_clone_edge): Likewise.
4477         (cgraph_create_virtual_clone): Likewise.
4478         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4479         instead of cgraph_node.
4480         (cgraph_add_new_function): Call cgraph_create_node or
4481         cgraph_get_create_node instead of cgraph_node.
4482         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4483         instead of cgraph_node.
4484         (record_eh_tables): Likewise.
4485         (mark_address): Likewise.
4486         (mark_load): Likewise.
4487         (build_cgraph_edges): Call cgraph_get_create_node instead
4488         of cgraph_node.
4489         (rebuild_cgraph_edges): Likewise.
4490         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4491         instead of cgraph_node.
4492         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4493         cgraph_node.
4494         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4495         cgraph_create_node instead of cgraph_node.
4496         * c-decl.c (finish_function): Call cgraph_get_create_node instead
4497         of cgraph_node.
4498         * lto-cgraph.c (input_node): Likewise.
4499         * lto-streamer-in.c (input_function): Likewise.
4500         * varasm.c (mark_decl_referenced): Likewise.
4501         (assemble_alias): Likewise.
4502
4503 2011-04-12  Martin Jambor  <mjambor@suse.cz>
4504
4505         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4506         instead of cgraph_node and assert it does not return NULL.
4507         * lto-streamer-in.c (lto_read_body): Likewise.
4508         * omp-low.c (new_omp_context): Likewise.
4509         (create_task_copyfn): Likewise.
4510         * tree-emutls.c (lower_emutls_function_body): Likewise.
4511         * matrix-reorg.c (transform_allocation_sites): Likewise.
4512
4513 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
4514
4515         PR c/48552
4516         * c-typeck.c (build_asm_expr): Error out on attempts to use
4517         void type outputs or inputs for constraints that allow reg or
4518         don't allow memory.
4519
4520 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
4521             Richard Earnshaw  <rearnsha@arm.com>
4522
4523         PR target/48250
4524         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
4525         to use sign-magnitude offsets. Reject unsupported unaligned
4526         cases. Add detailed description in comments.
4527         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
4528         condition from TARGET_32BIT to TARGET_ARM.
4529
4530 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
4531
4532         * tree.h (struct typed_tree): New.
4533         (struct tree_common): Include it instead of tree_base.
4534         (TREE_TYPE): Update for new location of type field.
4535         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
4536         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
4537         (union tree_node): Add typed field.
4538         * treestruct.def (TS_TYPED): New.
4539         * lto-streamer.c (check_handled_ts_structures): Handle it.
4540         * tree.c (MARK_TS_TYPED): New macro.
4541         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
4542
4543 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
4544
4545         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
4546         (force_nonfallthru): Do not alter the loop nest if no basic block
4547         was created.
4548
4549 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4550
4551         * config/i386/sse.md (VI): New mode iterator.
4552         (SSEMODEI): Remove.
4553         (AVX256MODEI): Ditto.
4554         (AVXMODEF4P): Ditto.
4555         (avxvecpsmode): Ditto.
4556         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
4557         (sse2_andnot<mode>3): New expander.
4558         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
4559         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
4560         (<any_logic:code><mode>3): Use VI mode iterator.
4561         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
4562         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
4563         (*andnottf3): Handle AVX three-operand constraints.
4564         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
4565
4566 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4567             Robert Millan  <rmh@gnu.org>
4568
4569         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
4570         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
4571         GNU_USER_DYNAMIC_LINKER64): Define.
4572         (REG_NAME): Don't undefine.
4573         (MD_UNWIND_SUPPORT): Undefine.
4574         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
4575         (REG_NAME): Don't undefine.
4576         (MD_UNWIND_SUPPORT): Undefine.
4577         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
4578
4579 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4580
4581         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
4582         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
4583
4584 2011-04-11  Xinliang David Li  <davidxl@google.com>
4585
4586         * value-profile.c (check_ic_target): New function.
4587         (gimple_ic_transform): Sanity check indirect call target.
4588         * gimple-low.c (gimple_check_call_args): Interface change.
4589         (gimple_check_call_matching_types): New function.
4590         * tree-inline.c (tree_can_inline_p): Call new function.
4591
4592 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
4593
4594         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
4595         tree-pretty-print.h & realmpfr.h.
4596
4597 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4598
4599         PR middle-end/48464
4600         * ira.c (setup_pressure_classes): Fix typo in loop condition.
4601         (setup_allocno_and_important_classes): Ditto.
4602
4603 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4604
4605         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
4606         GNU_USER_DYNAMIC_LINKER.
4607         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
4608         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4609         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
4610         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4611         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4612         GNU_USER_TARGET_OS_CPP_BUILTINS.
4613         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
4614         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4615         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4616         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4617         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
4618         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4619         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4620         GNU_USER_TARGET_OS_CPP_BUILTINS.
4621         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4622         GNU_USER_DYNAMIC_LINKER.
4623         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4624         GNU_USER_TARGET_OS_CPP_BUILTINS.
4625         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
4626         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4627         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
4628         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4629         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
4630         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
4631         GNU_USER_DYNAMIC_LINKER64): Remove.
4632         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
4633         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4634         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4635         GNU_USER_DYNAMIC_LINKER.
4636         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4637         GNU_USER_TARGET_OS_CPP_BUILTINS.
4638         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4639         GNU_USER_TARGET_OS_CPP_BUILTINS.
4640         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
4641         to GNU_USER_TARGET_OS_CPP_BUILTINS.
4642         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4643         GNU_USER_TARGET_OS_CPP_BUILTINS.
4644         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
4645         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
4646         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4647         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
4648         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4649         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4650         GNU_USER_DYNAMIC_LINKER.
4651         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4652         GNU_USER_TARGET_OS_CPP_BUILTINS.
4653         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
4654         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4655         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4656         GNU_USER_DYNAMIC_LINKER.
4657         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4658         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4659         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
4660         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4661         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4662         GNU_USER_DYNAMIC_LINKER.
4663         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
4664         GNU_USER_DYNAMIC_LINKERN32.
4665         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
4666         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
4667         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
4668         GNU_USER_DYNAMIC_LINKER32.
4669         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
4670         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4671         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4672         GNU_USER_DYNAMIC_LINKER.
4673         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4674         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4675         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
4676         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4677         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4678         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
4679         GNU_USER_DYNAMIC_LINKER32.
4680         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4681         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
4682         GNU_USER_DYNAMIC_LINKER.
4683         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
4684         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4685         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4686         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
4687         GNU_USER_DYNAMIC_LINKER64.
4688         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
4689         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4690         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4691         GNU_USER_DYNAMIC_LINKER.
4692         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
4693         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4694         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4695         GNU_USER_DYNAMIC_LINKER.
4696         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
4697         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4698         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4699         GNU_USER_DYNAMIC_LINKER32.
4700         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4701         GNU_USER_DYNAMIC_LINKER64.
4702         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4703         GNU_USER_DYNAMIC_LINKER64.
4704         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
4705         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4706         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
4707         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4708         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4709
4710 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4711
4712         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
4713         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
4714         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
4715         GNU_USER_DYNAMIC_LINKER.
4716         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4717         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
4718         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
4719         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
4720         GNU_USER_DYNAMIC_LINKER64.
4721         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4722         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
4723         GNU_USER_LINK_EMULATION.
4724         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
4725         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
4726         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
4727         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
4728         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
4729         CPP_SPEC, CC1_SPEC): Remove.
4730         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
4731         (GNU_USER_DYNAMIC_LINKER): Define.
4732         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
4733         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
4734         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
4735         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
4736         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
4737         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
4738         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4739         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
4740         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
4741         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
4742         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
4743         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
4744         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
4745         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
4746         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
4747         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4748         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4749         GNU_USER_DYNAMIC_LINKER.
4750         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4751         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4752         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4753         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4754         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4755         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
4756         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
4757         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
4758         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
4759         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
4760
4761 2011-04-11  Kai Tietz  <ktietz@redhat.com>
4762
4763         PR target/9601
4764         PR target/11772
4765         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
4766         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
4767         comment.
4768         (ix86_is_msabi_thiscall): Removed.
4769         (ix86_is_type_thiscall): Likewise.
4770         (ix86_get_callcvt): New function.
4771         (ix86_comp_type_attributes): Simplify check.
4772         (ix86_function_regparm): Use ix86_get_callcvt for calling
4773         convention attribute checks.
4774         (ix86_return_pops_args): Likewise.
4775         (ix86_static_chain): Likewise.
4776         (x86_this_parameter): Likewise.
4777         (x86_output_mi_thunk): Likewise.
4778         (ix86_function_type_abi): Optimize check for types without attributes.
4779         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
4780         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
4781         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
4782         by flag-values.
4783         (IX86_BASE_CALLCVT): Helper macro.
4784         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
4785         Use ix86_get_callcvt for calling convention attribute checks and avoid
4786         symbol-decoration for stdcall in TARGET_RTD case.
4787         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
4788         Likewise.
4789         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
4790         for declaration.
4791
4792 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
4793
4794         * config/i386/sse.md (VI_128): New mode iterator.
4795         (VI12_128): Rename from SSEMODE12.
4796         (VI14_128): Rename from SSEMODE14.
4797         (VI124_128): New mode iterator.
4798         (VI24_128): Rename from SSEMODE248.
4799         (VI248_128): Rename from SSEMODE248.
4800         (SSEMODE124C8): Remove.
4801         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4802         (*sse2_<plusminus_insn><mode>3): Merge with
4803         *avx_<plusminus_insn><mode>3.
4804         (*mulv8hi3): Merge with *avx_mulv8hi3.
4805         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
4806         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
4807         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
4808         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
4809         (ashr<mode>3): Merge with *avx_ashr<mode>3.
4810         (lshr<mode>3): Merge with *avx_lshr<mode>3.
4811         (ashl<mode>3): Merge with *avx_ashl<mode>3.
4812         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
4813         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
4814         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4815         (*<smaxmin:code>v8hi3): Ditto.
4816         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
4817         (*<smaxmin:code>v16qi3): Ditto.
4818         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
4819         (*sse2_eq<mode>3): Ditto.
4820         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
4821         (*sse2_gt<mode>3): Ditto.
4822         (vcondv2di): Split out of vcond<mode>.
4823         (vconduv2di): Split out of vcondu<mode>.
4824
4825 2011-04-11  Richard Guenther  <rguenther@suse.de>
4826
4827         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
4828         before calling tree_low_cst.
4829
4830 2011-04-11  Richard Guenther  <rguenther@suse.de>
4831
4832         * stor-layout.c (layout_type): Compute all array index size operations
4833         in the original type.
4834         (initialize_sizetypes): Add comment.
4835         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
4836
4837 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
4838
4839         * common.opt (Tbss=, Tdata=, Ttext=): New options.
4840
4841 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4842
4843         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
4844         of cgraph_node, handle NULL return value.
4845         (cgraph_global_info): Likewise.
4846         (cgraph_rtl_info): Likewise.
4847         * tree-inline.c (estimate_num_insns): Likewise.
4848         * gimplify.c (unshare_body): Likewise.
4849         (unvisit_body): Likewise.
4850         (gimplify_body): Likewise.
4851         * predict.c (optimize_function_for_size_p): Likewise.
4852         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
4853         (call_may_clobber_ref_p_1): Likewise.
4854         * varasm.c (function_section_1): Likewise.
4855         (assemble_start_function): Likewise.
4856
4857 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4858
4859         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
4860         of cgraph_node.
4861         * final.c (rest_of_clean_state): Likewise.
4862         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
4863         * passes.c (pass_init_dump_file): Likewise.
4864         (execute_all_ipa_transforms): Likewise.
4865         (function_called_by_processed_nodes_p): Likewise.
4866         * predict.c (maybe_hot_frequency_p): Likewise.
4867         (probably_never_executed_bb_p): Likewise.
4868         (compute_function_frequency): Likewise.
4869         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
4870         (unnest_nesting_tree_1): Likewise.
4871         (lower_nested_functions): Likewise.
4872         * tree-optimize.c (execute_fixup_cfg): Likewise.
4873         (tree_rest_of_compilation): Likewise.
4874         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
4875         * tree-sra.c (ipa_early_sra): Likewise.
4876         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
4877         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
4878         * ipa.c (record_cdtor_fn): Likewise.
4879         * ipa-inline.c (cgraph_early_inlining): Likewise.
4880         (compute_inline_parameters_for_current): Likewise.
4881         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4882         * ipa-pure-const.c (local_pure_const): Likewise.
4883         * ipa-split.c (split_function): Likewise.
4884         (execute_split_functions): Likewise.
4885         * cgraphbuild.c (build_cgraph_edges): Likewise.
4886         (rebuild_cgraph_edges): Likewise.
4887         (cgraph_rebuild_references): Likewise.
4888         (remove_cgraph_callee_edges): Likewise.
4889         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
4890         (verify_cgraph_node): Likewise.
4891         (cgraph_analyze_functions): Likewise.
4892         (cgraph_preserve_function_body_p): Likewise.
4893         (save_inline_function_body): Likewise.
4894         (save_inline_function_body): Likewise.
4895         * tree-inline.c (copy_bb): Likewise.
4896         (optimize_inline_calls): Likewise.
4897
4898 2011-04-11  Martin Jambor  <mjambor@suse.cz>
4899
4900         PR tree-optimization/48195
4901         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
4902         ipa_check_create_edge_args.
4903         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
4904         ipa_check_create_edge_args.
4905         * ipa-inline.c (inline_generate_summary): Do not call
4906         ipa_check_create_node_params and ipa_check_create_edge_args.
4907         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
4908         ipa_check_create_edge_args.
4909
4910 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
4911
4912         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
4913         instead of loop.
4914         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
4915         * function.c (record_hard_reg_sets): Likewise.
4916         * ira.c (compute_regs_asm_clobbered): Likewise.
4917         * sched-deps.c (sched_analyze_1): Likewise.
4918         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
4919
4920 2011-04-09  Xinliang David Li  <davidxl@google.com>
4921
4922         PR tree-optimization/PR48484
4923         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
4924         has_valid_pred lazily
4925
4926 2011-04-09  Duncan Sands  <baldrick@free.fr>
4927
4928         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
4929
4930 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4931
4932         * combine.c (combine_validate_cost): Adjust comments.  Set registered
4933         cost of I0 to zero at the end, if any.
4934
4935 2011-04-08  Xinliang David Li  <davidxl@google.com>
4936
4937         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
4938         to insane profile data.
4939
4940 2011-04-08  Xinliang David Li  <davidxl@google.com>
4941
4942         * ipa-cp.c (ipcp_update_profiling): Correct
4943          negative scale factor due to insane profile data.
4944
4945 2011-04-08  Xinliang David Li  <davidxl@google.com>
4946
4947         * final.c (dump_basic_block_info): New function.
4948         (final): Dump basic block.
4949         (final_scan_insn): Remove old dump.
4950
4951 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4952
4953         PR target/47829
4954         * config.gcc (i386-*-freebsd): Disable unwind table generation for
4955         crtbegin/crtend.
4956
4957 2011-04-08  Michael Matz  <matz@suse.de>
4958
4959         PR middle-end/48389
4960         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
4961         functions.
4962         (rebuild_jump_labels): Call rebuild_jump_labels_1.
4963         * rtl.h (rebuild_jump_labels_chain): Declare.
4964         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
4965         insns inserted on edges.
4966
4967 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
4968
4969         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
4970         * config/arm/arm-arches.def: New.
4971         * config/arm/arm-opts.h: New.
4972         * config/arm/genopt.sh: New.
4973         * config/arm/arm-tables.opt: New (generated).
4974         * config/arm/arm.c (arm_handle_option, arm_target_help,
4975         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
4976         (all_architectures): Get most table contents from arm-arches.def.
4977         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
4978         arm_selected_tune here.
4979         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
4980         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
4981         (march=, mcpu=, mtune=): Use Enum and Var.
4982         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
4983         (arm.o): Update dependencies.
4984
4985 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
4986
4987         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
4988         of header_file.
4989         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
4990         (write_typed_alloc_defns): Likewise.
4991         (main): Calls write_typed_alloc_defns with output_header.
4992
4993 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
4994
4995         PR inline-asm/48435
4996         * ira-color.c (setup_profitable_hard_regs): Add comments.
4997         Don't take prohibited hard regs into account.
4998         (setup_conflict_profitable_regs): Rename to
4999         get_conflict_profitable_regs.
5000         (check_hard_reg_p): Check prohibited hard regs.
5001
5002 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
5003
5004         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5005         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5006         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5007
5008 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5009
5010         PR target/48366
5011         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
5012         move from floating point to shift amount register.
5013         (emit_move_sequence): Remove secondary reload support for floating
5014         point to shift amount amount register copies.
5015         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5016         amount register copies.
5017         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5018         register, return false if mode isn't a scalar integer mode.
5019         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5020
5021 2011-04-08  Richard Guenther  <rguenther@suse.de>
5022
5023         * gimple.c (gimple_call_flags): Remove kludge.
5024
5025 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5026
5027         * sel-sched.c (sel_region_init): Move call to
5028         sel_setup_region_sched_flags after setup_current_loop_nest.
5029
5030 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
5031
5032         PR rtl-optimization/48272
5033         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5034         init_insn_reg_pressure_info.  Adjust a caller.
5035         * sched-int.h (init_insn_reg_pressure_info): Declare.
5036         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5037         when sched-pressure is enabled.
5038
5039 2011-04-08  Richard Guenther  <rguenther@suse.de>
5040
5041         * gimple.c (gimple_set_modified): Do not queue calls to
5042         MODIFIED_NORETURN_CALLS here ...
5043         * tree-ssa-operands.c (update_stmt_operands): ... but here.
5044
5045 2011-04-08  Richard Guenther  <rguenther@suse.de>
5046
5047         PR lto/48467
5048         * toplev.c (lang_dependent_init): Do not open asm_out_file
5049         in WPA mode, nor perform debug machinery initialization.
5050         (finalize): Do not unlink asm_out_file in WPA mode.
5051
5052 2011-04-08  Richard Guenther  <rguenther@suse.de>
5053
5054         * gimple.h (gimple_call_fntype): New function.
5055         (gimple_call_return_type): Use it.
5056         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5057         * gimple-low.c (gimple_check_call_args): Likewise.
5058         * gimple.c (gimple_call_flags): Likewise.
5059         (gimple_call_arg_flags): Likewise.
5060         (gimple_call_return_flags): Likewise.
5061         * tree-cfg.c (verify_gimple_call): Likewise.
5062         (do_warn_unused_result): Likewise.
5063         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5064         * value-prof.c (gimple_ic_transform): Fix fndecl check.
5065
5066 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
5067
5068         PR rtl-optimization/48235
5069         * sel-sched.c (code_motion_process_successors): Recompute the last
5070         insn in basic block if control flow changed.
5071         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
5072         Update condition for ilist_remove.
5073
5074 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5075
5076         PR rtl-optimization/48302
5077         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5078         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
5079         it to record added preheader blocks.
5080         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
5081         on to sel_add_loop_preheaders.
5082         (sel_region_init): Move call to setup_current_loop_nest after
5083         sel_init_bbs.
5084
5085 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5086
5087         PR target/48273
5088         * cfgloop.h (loop_has_exit_edges): New helper.
5089         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5090         non-clonable.
5091         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5092         that have no exit edges.
5093
5094 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
5095
5096         PR rtl-optimization/48442
5097         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
5098         all callers.  Adjust assert.
5099
5100 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
5101
5102         PR tree-optimization/48377
5103         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5104         is_packed to true even for types with smaller TYPE_ALIGN than
5105         TYPE_SIZE.
5106
5107 2011-04-08  Richard Guenther  <rguenther@suse.de>
5108
5109         PR bootstrap/48513
5110         * doc/tm.texi: Re-generate.
5111
5112 2011-04-08  Wei Guozhi  <carrot@google.com>
5113
5114         PR target/47855
5115         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5116         * config/arm/arm.c (arm_attr_length_push_multi): New function.
5117         * config/arm/arm.md (*push_multi): Change the length computation to
5118         call a C function.
5119
5120 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
5121
5122         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5123         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5124         * doc/tm.texi: Regenerate.
5125         * system.h (ASM_OUTPUT_BSS): Poison.
5126         * varasm.c (asm_output_bss): Remove function.
5127         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
5128
5129         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5130         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5131         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5132         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5133         Likewise.
5134         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5135         Likewise.
5136         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5137         Likewise.
5138         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5139
5140 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5141
5142         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5143         EnumValue lines.
5144
5145 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
5146
5147         * config/m68k/m68k.c (m68k_handle_option): Don't handle
5148         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5149         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5150         OPT_mcpu32.
5151         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5152         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5153         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5154         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5155         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5156         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5157         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5158         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5159         options.  Don't map other m68k options manually.  Don't handle
5160         old-style options as canonical.
5161         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5162         * doc/install.texi (m68k-*-*): Document binutils version requirement.
5163
5164 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
5165
5166         * basic-block.h (force_nonfallthru): Move to...
5167         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5168         (force_nonfallthru): ...here.
5169         * cfghooks.c (force_nonfallthru): New function.
5170         * cfgrtl.c (force_nonfallthru): Rename into...
5171         (rtl_force_nonfallthru): ...this.
5172         (commit_one_edge_insertion): Do not set AUX field.
5173         (commit_edge_insertions): Do not discover new basic blocks.
5174         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5175         (cfg_layout_rtl_cfg_hooks): Likewise.
5176         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5177         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
5178         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5179
5180 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
5181
5182         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5183         Remove macros.
5184
5185 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
5186
5187         * config/i386/sse.md: Update copyright year.
5188         (avxcvtvecmode): Remove.
5189         (sse_movhlps): Merge with *avx_movhlps.
5190         (sse_movlhps): Merge with *avx_movlhps.
5191         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5192         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5193         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5194         (sse_loadhps): Merge with *avx_loadhps.
5195         (sse_storelps): Merge with *avx_storelps.
5196         (sse_loadlps): Merge with *avx_loadlps.
5197         (sse_movss): Merge with *avx_movss.
5198         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5199         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5200         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5201         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5202         (vec_set<mode>_0): Ditto.
5203         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5204         (sse4_1_insertps): Merge with *avx_insertps.
5205         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5206         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5207         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5208         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5209         (sse2_storehpd): Merge with *avx_storehpd.
5210         (sse2_loadhpd): Merge with *avx_loadhpd.
5211         (sse2_loadlpd): Merge with *avx_loadlpd.
5212         (sse2_movsd): Merge with *avx_movsd.
5213         (*vec_concatv2df): Merge with *vec_concatv2df.
5214
5215 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
5216
5217         PR debug/48343
5218         * combine.c (combine_instructions): Add last_combined_insn,
5219         update it if insn is after it, pass it to all try_combine calls.
5220         (try_combine): Add last_combined_insn parameter, pass it instead of
5221         i3 to propagate_for_debug.
5222
5223 2011-04-07  Nick Clifton  <nickc@redhat.com>
5224
5225         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5226         to handle MDR <-> data register transfers.
5227         (movhi_internal): Likewise.
5228
5229 2011-04-07  Alan Modra  <amodra@gmail.com>
5230
5231         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5232         previous stack info.
5233
5234 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5235
5236         PR target/43920
5237         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
5238         flow_find_cross_jump.  Swap variables to implement backward replacement.
5239         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5240
5241 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5242
5243         PR target/43920
5244         * cfgcleanup.c (walk_to_nondebug_insn): New function.
5245         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
5246         and bb2.
5247         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5248         src1 or src2.  Redirect edges to the last basic block.  Update
5249         frequency and count on multiple basic blocks in case of fallthru.
5250
5251 2011-04-07  Tom de Vries  <tom@codesourcery.com>
5252
5253         PR target/43920
5254         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5255         function.
5256         (old_insns_match_p): Change return type.  Replace return false/true
5257         with return dir_none/dir_both.  Use can_replace_by.
5258         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
5259         direction from dir_p.  Register replacement direction in dir, last_dir
5260         and afterlast_dir.  Handle new return type of old_insns_match_p using
5261         merge_dir.  Return replacement direction in dir_p.
5262         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5263         return type of old_insns_match_p.
5264         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5265         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5266         flow_find_cross_jump.
5267         * basic-block.h (enum replace_direction): New type.
5268         (flow_find_cross_jump): Add parameter to declaration.
5269
5270 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5271
5272         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5273         (AVXMODEDCVTPS2DQ): Ditto.
5274         (VEC_FLOAT_MODE): Ditto.
5275         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
5276         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5277         (<any_logic:code><mode>3): Use VF mode iterator.
5278         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5279         Use VF mode iterator.
5280         (copysign<mode>3): Use VF mode iterator.
5281         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
5282         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5283         (*<any_logic:code><MODEF:mode>3): Merge with
5284         *avx_<any_logic:code><MODEF:mode>3.
5285         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5286         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5287         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5288         (avx_cvtdq2ps<avxmodesuffix>): Remove.
5289         (sse2_cvtdq2ps): Use %v modifier.
5290         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5291         (avx_cvtps2dq<avxmodesuffix>): Remove.
5292         (sse2_cvtps2dq): Use %v modifier.
5293         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5294         (avx_cvttps2dq<avxmodesuffix>): Remove.
5295         (sse2_cvttps2dq): Use %v modifier.
5296         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5297         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5298         (sse2_cvtsd2siq): Fix insn template.
5299         (sse2_cvtsd2siq_2): Ditto.
5300         (sse2_cvttsd2siq): Ditto.
5301         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5302         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5303
5304 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5305
5306         * gcov-io.c: Use GCC Runtime Library Exception.
5307
5308 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
5309
5310         PR debug/48466
5311         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5312         as base_reg whatever register reg has been eliminated to, instead
5313         of hardcoding STACK_POINTER_REGNUM.
5314
5315 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
5316
5317         * doc/tm.texi.in: Document C target hooks as separate from general
5318         target hooks.
5319         * doc/tm.texi: Regenerate.
5320         * genhooks.c (struct hook_desc): Add docname field.
5321         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
5322         docname field.
5323         (hook_array): Include c-target.def.
5324         (emit_documentation): Use docname field in output.
5325         (emit_init_macros): Take docname argument.  Only emit definitions
5326         for hooks matching docname.
5327         (main): Expect additional arguments in all cases.  Pass argument
5328         to emit_init_macros.
5329         * target.def: Move initial macro definitions and comments to
5330         target-hooks-macros.h.
5331         (gcc_targetcm): Move to c-family/c-target.def.
5332         * target.h (targetcm): Move declaration to c-family/c-target.h.
5333         * targhooks.c (default_handle_c_option): Move to
5334         c-family/c-opts.c.
5335         * targhooks.h (default_handle_c_option): Move declaration to
5336         c-family/c-common.h.
5337         * target-hooks-macros.h: New file.
5338         * config.gcc (target_has_targetcm): Define and use to add to
5339         c_target_objs and cxx_target_objs.
5340         * config/default-c.c: New file.
5341         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5342         of target.h and target-def.h.
5343         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5344         (darwin_objc_construct_string, darwin_cfstring_ref_p,
5345         darwin_check_cfstring_format_arg): Make static.
5346         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5347         TARGET_STRING_OBJECT_REF_TYPE_P,
5348         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5349         * config/darwin-protos.h (darwin_objc_construct_string,
5350         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5351         declare.
5352         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5353         TARGET_STRING_OBJECT_REF_TYPE_P,
5354         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
5355         * config/t-darwin (darwin-c.o): Update dependencies.
5356         * system.h (TARGET_HAS_TARGETCM): Poison.
5357         * Makefile.in (TARGET_H): Update.
5358         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5359         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5360         (default-c.o): New target.
5361         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
5362         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
5363         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
5364         c-target.def.
5365         (build/genhooks.o): Update dependencies.
5366
5367 2011-04-06  Richard Guenther  <rguenther@suse.de>
5368
5369         * ipa-inline.c (enum inlining_mode): Remove.
5370         (cgraph_flatten): Use some other token.
5371         (cgraph_edge_early_inlinable_p): New function, split out from ...
5372         (cgraph_perform_always_inlining): New function, split out from ...
5373         (cgraph_decide_inlining_incrementally): ... here.
5374         (cgraph_mark_inline_edge): Adjust.
5375         (cgraph_early_inlining): Re-structure.
5376         (pass_early_inline): Require SSA form.
5377
5378 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
5379             Julian Brown  <julian@codesourcery.com>
5380             Mark Shinwell  <shinwell@codesourcery.com>
5381
5382         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5383         LO_REGS only for Thumb-1.
5384         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5385         be used in short instructions when optimising for size on Thumb-2.
5386
5387 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5388
5389         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5390         associated with user returns to be preserved.
5391
5392 2011-04-06  Tristan Gingold  <gingold@adacore.com>
5393
5394         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5395         symbol_queue_size, DBXOUT_DECR_NESTING,
5396         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5397         if XCOFF_DEBUGGING_INFO.
5398
5399 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
5400
5401         * config/i386/i386.md (attribute isa): New.
5402         (attribute enabled): New.
5403         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5404         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5405         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5406         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5407         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5408         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5409         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5410         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5411
5412         * config/i386/sse.md (VF): New mode iterator.
5413         (VF1): Ditto.
5414         (VF2): Ditto.
5415         (VF_128): Ditto.
5416         (SSEMODEF4): Remove.
5417         (attribute sse): Handle V8SF and V4DF modes.
5418         (<absneg:code><mode>2): Use VF mode iterator.
5419         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
5420         mode iterator.
5421         (<plusminus_insn><mode>3): Use VF mode iterator.
5422         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5423         Use VF mode iterator.
5424         (<sse>_vm<plusminus_insn><mode>3): Merge with
5425         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
5426         (mul<mode>3): Use VF mode iterator.
5427         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
5428         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
5429         mode iterator.
5430         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5431         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5432         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
5433         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
5434         mode iterator.
5435         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5436         Use VF1 mode iterator.
5437         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5438         (sqrt<VF2:mode>2): New expander.
5439         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5440         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5441         and sqrtv2df2.  Use VF mode iterator.
5442         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
5443         mode iterator.
5444         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5445         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5446         Use VF1 mode iterator.
5447         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5448         (<smaxmin:code><mode>3): Use VF mode iterator.
5449         (*<smaxmin:code><mode>3_finite): Merge with
5450         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
5451         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5452         (<sse>_vm<smaxmin:code><mode>2): Merge with
5453         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
5454         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
5455         mode iterator.
5456         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
5457         mode iterator.
5458         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5459         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5460         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5461         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5462         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
5463         VF mode iterator.
5464         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5465         Use VF_128 mode iterator.
5466         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
5467         mode iterator.
5468         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
5469         VF_128 mode iterator.
5470         (vcond<mode>): Use VF mode iterator.
5471         * config/i386/predicates.md (sse_comparison_operator): Merge with
5472         avx_comparison_float_operator.  Do not declare as special_predicate.
5473         * config/i386/i386.c (struct builtin_description): Update for renamed
5474         compare patterns.
5475         (ix86_expand_args_builtin): Ditto.
5476         (ix86_expand_sse_compare_mask): Ditto.
5477
5478 2011-04-06  Richard Guenther  <rguenther@suse.de>
5479
5480         * tree-inline.c (estimate_num_insns): For calls simply account
5481         for all passed arguments and a used return value.
5482
5483 2011-04-06  Richard Guenther  <rguenther@suse.de>
5484
5485         PR tree-optimization/47663
5486         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5487         call_stmt_time fields.
5488         (cgraph_edge_inlinable_p): Declare.
5489         (cgraph_edge_recursive_p): New inline function.
5490         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5491         (cgraph_clone_edge): Copy it.
5492         * ipa-inline.c (cgraph_estimate_edge_time): New function.
5493         Account for call stmt time.
5494         (cgraph_estimate_time_after_inlining): Take edge argument.
5495         (cgraph_estimate_edge_growth): Account call stmt size.
5496         (cgraph_estimate_size_after_inlining): Take edge argument.
5497         (cgraph_mark_inline_edge): Adjust.
5498         (cgraph_check_inline_limits): Likewise.
5499         (cgraph_recursive_inlining_p): Remove.
5500         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5501         (cgraph_decide_recursive_inlining): Take edge argument and
5502         adjust.
5503         (cgraph_decide_inlining_of_small_functions): Do not avoid
5504         diags for recursive inlining here.
5505         (cgraph_flatten): Adjust.
5506         (cgraph_decide_inlining_incrementally): Likewise.
5507         (estimate_function_body_sizes): Remove call cost handling.
5508         (compute_inline_parameters): Initialize caller edge call costs.
5509         (cgraph_estimate_edge_growth): New function.
5510         (cgraph_estimate_growth): Use it.
5511         (cgraph_edge_badness): Likewise.
5512         (cgraph_check_inline_limits): Take an edge argument.
5513         (cgraph_decide_inlining_of_small_functions): Adjust.
5514         (cgraph_decide_inlining): Likewise.
5515         * tree-inline.c (estimate_num_insns): Only account for call
5516         return value if it is used.
5517         (expand_call_inline): Avoid diagnostics on recursive inline
5518         functions here.
5519         * lto-cgraph.c (lto_output_edge): Output edge call costs.
5520         (input_edge): Input edge call costs.
5521
5522 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5523
5524         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
5525
5526 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5527
5528         * doc/invoke.texi (Spec Files): Fix typo.
5529
5530 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5531
5532         * profile.c (branch_prob): Move declaration of local variable.  Remove
5533         obsolete ??? comment.  Expand the location explicitly instead of using
5534         the LOCATION_FILE and LOCATION_LINE macros.
5535
5536 2011-04-06  Wei Guozhi  <carrot@google.com>
5537
5538         PR target/47855
5539         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
5540         (arm_cond_branch): Likewise.
5541         (arm_cond_branch_reversed): Likewise.
5542         (arm_jump): Likewise.
5543         (push_multi): Likewise.
5544         * config/arm/constraints.md (Py): New constraint.
5545
5546 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5547
5548         PR bootstrap/48471
5549         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
5550         Move these...
5551         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
5552         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
5553         #ifdef DBX_DEBUGGING_INFO.
5554
5555 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
5556
5557         PR bootstrap/48403
5558         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
5559         if old and new states differ.
5560
5561 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5562
5563         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
5564         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
5565         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5566         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
5567         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
5568         mcfv4e): Use Alias.
5569         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
5570         ColdFire options to -mcpu= options.
5571
5572 2011-04-05  Jeff Law  <law@redhat.com>
5573
5574         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
5575         check if BB is a successor of LOOP->header and return
5576         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
5577
5578 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5579
5580         * cprop.c (struct reg_use): Remove.
5581         (reg_use_table): Make an array of RTX.
5582         (find_used_regs, constprop_register, local_cprop_pass,
5583         bypass_block): Simplify users of reg_use_table.
5584         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
5585         on one of the uses found by find_used_regs.
5586
5587 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5588
5589         PR bootstrap/48469
5590         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
5591         declaration.
5592
5593 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5594
5595         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
5596         as an rtx.
5597         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
5598
5599 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
5600
5601         PR middle-end/48441
5602         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
5603
5604 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5605
5606         * combine.c: Include obstack.h.
5607         (struct insn_link): Define.
5608         (uid_log_links): Adjust type.
5609         (FOR_EACH_LOG_LINK): New macro.
5610         (insn_link_obstack): Declare.
5611         (alloc_insn_link): Define.
5612         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
5613         type of link variables.
5614         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
5615         (try_combine, record_promoted_values, distribute_notes): Likewise.
5616         (distribute_links): Likewise.  Tweak prototype.
5617         (clear_log_links): Delete.
5618         (adjust_for_new_dest): Call alloc_insn_link.
5619         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
5620
5621 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5622
5623         * gcse.c (modify_mem_list): Convert to an array of VECs.
5624         (canon_modify_mem_list, compute_transp): Tweak formatting.
5625         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
5626         (load_killed_in_block_p): Likewise.
5627         (record_last_mem_set_info): Likewise.
5628         (clear_modify_mem_tables): Likewise.
5629
5630 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5631
5632         PR middle-end/48461
5633         * function.c (emit_use_return_register_into_block): Only define if
5634         HAVE_return.
5635
5636 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
5637
5638         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
5639
5640 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
5641
5642         * config/rx/rx-opts.h: New.
5643         * config/rx/rx.c (rx_cpu_type): Remove.
5644         (rx_handle_option): Don't assert that global structures are in
5645         use.  Access variables via opts pointer.  Defer most handling of
5646         OPT_mint_register_.  Use error_at.
5647         (rx_option_override): Handle deferred OPT_mint_register_ here.
5648         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
5649         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
5650         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
5651         (rx_cpu_types): New Enum and EnumValue entries.
5652         (mint-register=): Use Defer and use Var accordingly.
5653
5654 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5655
5656         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
5657         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
5658         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
5659         Move these...
5660         (debug_free_queue, debug_nesting, symbol_queue_index):
5661         ...and these...
5662         * dbxout.c: ...to here.  Make static.
5663
5664 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
5665
5666         * gcse.c (modify_pair): Define.  Define a VEC of it.
5667         (canon_modify_mem_list): Convert to an array of VECs.
5668         (free_insn_expr_list_list): Delete.
5669         (clear_modify_mem_tables): Call VEC_free instead.
5670         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
5671         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
5672         (canon_list_insert, compute_transp): Likewise.
5673
5674 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5675
5676         PR target/43920
5677         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
5678         for size.
5679
5680 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5681
5682         PR target/43920
5683         * function.c (emit_use_return_register_into_block): New function.
5684         (thread_prologue_and_epilogue_insns): Use
5685         emit_use_return_register_into_block.
5686
5687 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5688
5689         PR target/43920
5690         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
5691         insn.
5692
5693 2011-04-05  Tom de Vries  <tom@codesourcery.com>
5694
5695         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
5696
5697 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
5698
5699         * config/arm/arm.md (define_constants for unspec): Replace with
5700         define_c_enum.
5701         (define_constants for unspecv): Replace with define_c_enum.
5702         * config/arm/neon.md (define_constants for unspec): Replace with
5703         define_c_enum.
5704
5705 2011-04-04  Richard Henderson  <rth@redhat.com>
5706
5707         PR bootstrap/48400
5708         * dwarf2out.c (output_line_info): Always emit line info from
5709         at least one section.
5710         (dwarf2out_init): Create text_section_line_info here ...
5711         (set_cur_line_info_table): ... not here.
5712
5713 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
5714
5715         PR target/48380
5716         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
5717         not called.
5718
5719         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
5720
5721 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
5722
5723         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
5724         (expr_equiv_p): Remove.
5725         (insert_set_in_table): Look at <dest, src> pair instead of expr.
5726         (hash_scan_set): Update call to insert_set_in_table.
5727         (dump_hash_table): Dump <dest, src> pair.
5728         (lookup_set): Simplify.  Lookup <dest, src> pair.
5729         (compute_transp): Remove, fold heavily simplified code into...
5730         (compute_local_properties): ...here.  Expect COMP and TRANSP
5731         unconditionally.
5732         (find_avail_set): Take set directly from struct expr.
5733         (find_bypass-set): Likewise.
5734         (bypass_block): Likewise.
5735         (cprop_insn): Likewise.  Remove redundant INSN_P test.
5736
5737         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
5738         checks on form of COND from find_implicit_sets to here.
5739         (find_implicit_sets): Cleanup control flow. Split critical edges
5740         if it exposes implicit sets.  Allocate/resize implicit_sets as
5741         necessary.
5742         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
5743         changed something.  Run df_analyze after find_implicit_sets if any
5744         edges were split.  Do not allocate implicit_sets here.
5745
5746         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
5747         (gcse_obstack): Renamed to cprop_obstack.
5748         (GNEW, GNEWVEC, GNEWVAR): Remove.
5749         (gmalloc): Remove.
5750         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
5751         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
5752         (gcse_alloc): Likewise, and rename to cprop_alloc.
5753         (alloc_gcse_men, free_gcse_mem): Remove.
5754         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
5755         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
5756         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
5757
5758         * cprop.c (oprs_not_set_p): Remove.
5759         (mark_set, mark_clobber): Remove.
5760         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
5761         (reg_not_set_p): New function.
5762         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
5763         (cprop_insn): Likewise.
5764         (cprop_jump): Use FOR_EACH_EDGE.
5765
5766 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
5767
5768         PR bootstrap/48403
5769         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
5770         (rank_for_schedule): Use scheduled_insns vector instead of
5771         last_scheduled_insn.
5772         (ok_for_early_queue_removal): Likewise.
5773         (queue_to_ready): Search forward in nonscheduled_insns_begin if
5774         we have a dbg_cnt.
5775         (choose_ready): Likewise.
5776         (commit_schedule): Use VEC_iterate.
5777         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
5778         a dbg_cnt, use it and ensure the first insn is in the ready list.
5779         (haifa_sched_init): Allocate scheduled_insns.
5780         (sched_extend_ready_list): Don't allocate it; reserve space.
5781         (haifa_sched_finish): Free it.
5782
5783 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
5784
5785         * optc-gen.awk: Always remove type from Variable entry before
5786         recording in var_seen.
5787
5788 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
5789
5790         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
5791         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
5792         call to tidy_fallthru_edges.
5793
5794 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
5795
5796         * doc/options.texi (ToLower): Document.
5797         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
5798         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
5799         * opts.h (cl_option): Add cl_tolower field.
5800         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
5801         arguments with lowercase strings.
5802         * config/rx/rx.opt (mcpu=): Add ToLower.
5803         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
5804         argument.
5805
5806 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
5807
5808         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
5809
5810 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
5811
5812         * config/vax/vax.c: Include reload.h.
5813
5814 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
5815
5816         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
5817         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5818         (sparc_preferred_reload_class): New function.
5819
5820 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
5821
5822         PR debug/48401
5823         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5824         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
5825
5826 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
5827
5828         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
5829         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
5830
5831 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
5832
5833         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
5834         (ASM_OUTPUT_ALIGNED_BSS): Define.
5835
5836 2011-04-03  Michael Matz  <matz@suse.de>
5837
5838         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
5839         and next_slot members.
5840         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
5841         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
5842         (lto_streamer_cache_append): Declare.
5843         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
5844         unsigned index, remove offset parameter, ensure that we append
5845         or update existing entries.
5846         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
5847         parameter, update next_slot for append.
5848         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
5849         parameter.
5850         (lto_streamer_cache_insert_at): Likewise.
5851         (lto_streamer_cache_append): New function.
5852         (lto_streamer_cache_lookup): Use unsigned index.
5853         (lto_streamer_cache_get): Likewise.
5854         (lto_record_common_node): Don't test tree_node_can_be_shared.
5855         (preload_common_node): Adjust call to lto_streamer_cache_insert.
5856         (lto_streamer_cache_delete): Don't free offsets member.
5857         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
5858         (lto_output_string_with_length): Use lto_output_data_stream.
5859         (lto_output_tree_header): Remove ix parameter, don't write it.
5860         (lto_output_builtin_tree): Likewise.
5861         (lto_write_tree): Adjust callers to above, don't track and write
5862         offset, write unsigned index.
5863         (output_unreferenced_globals): Don't emit all global vars.
5864         (write_global_references): Use unsigned indices.
5865         (lto_output_decl_state_refs): Likewise.
5866         (write_symbol): Likewise.
5867         * lto-streamer-in.c (lto_input_chain): Move earlier.
5868         (input_function): Use unsigned index.
5869         (input_alias_pairs): Don't read and then ignore all global vars.
5870         (lto_materialize_tree): Remove ix_p parameter, don't read index,
5871         don't pass it back, use lto_streamer_cache_append.
5872         (lto_register_var_decl_in_symtab): Use unsigned index.
5873         (lto_register_function_decl_in_symtab): Likewise.
5874         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
5875         index.
5876         (lto_get_builtin_tree): Don't read index, use
5877         lto_streamer_cache_append.
5878         (lto_read_tree): Adjust call to lto_materialize_tree.
5879
5880         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
5881         don't use function calls in arguments to MIN.
5882
5883         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
5884         twice.
5885
5886         * gimple.c (gimple_type_leader_entry): Mark deletable.
5887
5888 2011-04-03  Alan Modra  <amodra@gmail.com>
5889
5890         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
5891
5892 2011-04-03  Michael Matz  <matz@suse.de>
5893
5894         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
5895         an integer.
5896         * tree.h (tree_decl_non_common.vindex): Adjust comment.
5897
5898 2011-04-03  Michael Matz  <matz@suse.de>
5899
5900         * cgraphbuild.c (record_reference): Canonicalize constructor values.
5901         * gimple-fold.c (canonicalize_constructor_val): Accept being called
5902         without function context.
5903         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
5904         current_function_decl and cfun.
5905
5906 2011-04-03  Michael Matz  <matz@suse.de>
5907
5908         * tree.c (decl_init_priority_insert): Don't create entry for
5909         default priority.
5910         (decl_fini_priority_insert): Ditto.
5911         (fields_compatible_p, find_compatible_field): Remove.
5912         * tree.h (fields_compatible_p, find_compatible_field): Remove.
5913         * gimple.c (gimple_compare_field_offset): Adjust block comment.
5914
5915 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
5916
5917         * combine.c (try_combine): Remove useless local variable.
5918
5919 2011-04-03  Richard Guenther  <rguenther@suse.de>
5920             Ira Rosen  <ira.rosen@linaro.org>
5921
5922         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
5923         non-variable offsets and compare the remaining bases of the two
5924         accesses instead of looking for exact same data-ref.
5925
5926 2011-04-02  Kai Tietz  <ktietz@redhat.com>
5927
5928         PR target/48416
5929         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
5930
5931         * i386.c (ix86_is_msabi_thiscall): New helper function.
5932         (ix86_is_type_thiscall): New helper function.
5933         (ix86_comp_type_attributes): Handle thiscall for method-functions
5934         special.
5935         (init_cumulative_args): Likewise.
5936         (find_drap_reg): Likewise.
5937         (ix86_static_chain): Likewise.
5938         (x86_this_parameter): Likewise.
5939         (x86_output_mi_thunk): Likewise.
5940
5941 2011-04-01  Olivier Hainque  <hainque@adacore.com>
5942             Nicolas Setton  <setton@adacore.com>
5943             Eric Botcazou  <ebotcazou@adacore.com>
5944
5945         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
5946         (add_gnat_descriptive_type_attribute): New function.
5947         (gen_array_type_die): Call it.
5948         (gen_enumeration_type_die): Likewise.
5949         (gen_struct_or_union_type_die): Likewise.
5950         (modified_type_die): Likewise.
5951         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
5952         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
5953         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
5954
5955 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
5956
5957         PR bootstrap/48148
5958         * dwarf2out.c (resolve_addr): Don't call force_decl_die
5959         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
5960
5961         Revert:
5962         2011-03-17  Richard Guenther  <rguenther@suse.de>
5963
5964         PR bootstrap/48148
5965         * lto-cgraph.c (input_overwrite_node): Clear the abstract
5966         origin for decls in other ltrans units.
5967         (input_varpool_node): Likewise.
5968
5969 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
5970
5971         PR middle-end/48335
5972         * expr.c (expand_assignment): Handle all possibilities
5973         if TO_RTX is CONCAT.
5974         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
5975         (store_split_bit_field): If SUBREG_REG (op0) or
5976         op0 itself has smaller mode than word, return it
5977         for offset 0 and const0_rtx for out-of-bounds stores.
5978         If word is const0_rtx, skip it.
5979
5980 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
5981
5982         * config/h8300/h8300.c (print_operand_address): Rename to...
5983         (h8300_print_operand_address): ...this. Make static. Adjust comments.
5984         Call h8300_print_operand and h8300_print_operand_address instead of
5985         print_operand and print_operand_address. Declare.
5986         (print_operand): Renake to...
5987         (h8300_print_operand): ...this. Make static. Adjust comments.
5988         Call h8300_print_operand instead of print_operand. Declare.
5989         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
5990         (h8300_register_move_cost): Likewise.
5991         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
5992         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
5993         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
5994         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
5995         * config/h8300/h8300-protos.h (print_operand): Delete.
5996         (print_operand_address): Delete.
5997
5998 2011-04-01  Richard Henderson  <rth@redhat.com>
5999
6000         PR 48400
6001         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6002         in strict mode before dwarf4.  Re-order tests to early out
6003         before switching sections.
6004
6005 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
6006
6007         * config/h8300/constraints.md: New file.
6008         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
6009         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6010         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6011         * config/h8300/predicates.md (bit_operand): Likewise.
6012         (incdec_operand): Use satisfies_constraint_M and
6013         satisfies_constraint_O.  Don't use C code block.
6014         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6015         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6016         (compute_mov_length): Use satisfies_constraint_G.
6017         (fix_bit_operand): Use satisfies_constraint_U.
6018         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6019         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6020         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6021         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6022         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6023         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6024         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6025         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6026         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6027         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6028         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6029         (EXTRA_MEMORY_CONSTRAINT): Delete.
6030
6031 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
6032             Michael Meissner  <meissner@linux.vnet.ibm.com>
6033
6034         PR target/48262
6035         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6036         operands, as per the specifications.
6037
6038         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6039         (vec_extract_evenv4sf): Ditto.
6040         (vec_extract_evenv8hi): Ditto.
6041         (vec_extract_evenv16qi): Ditto.
6042         (vec_extract_oddv4si): Ditto.
6043
6044 2011-03-31  Mark Wielaard  <mjw@redhat.com>
6045
6046         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6047         high_pc attribute if the CU has no associated code. Only output
6048         DW_AT_entry_pc for CU if not generating strict dwarf and
6049         dwarf_version < 4.
6050
6051 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
6052
6053         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6054         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6055         out of ...
6056         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6057         * final.c (final_start_function): Call the new function rather
6058         than using a NULL argument for dwarf2out_frame_debug.
6059
6060         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6061         that contains the prologue.
6062
6063         * haifa-sched.c (queue_insn): New arg REASON.  All callers
6064         changed.  Print it in debugging output.
6065
6066         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6067
6068         * sched-ebb.c (begin_schedule_ready): Remove second argument.
6069         Split most of the code into...
6070         (begin_move_insn): ... here.  New function.
6071         (ebb_sched_info): Add a pointer to it.
6072         * haifa-sched.c (scheduled_insns): New static variable.
6073         (sched_extend_ready_list): Allocate it.
6074         (schedule_block): Use it to record the order of scheduled insns.
6075         Perform RTL changes to move insns only after all scheduling
6076         decisions have been made.
6077         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6078         begin_move_insn field.
6079         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6080         * sched-int.h (struct haifa_sched_info): Remove second argument
6081         from begin_schedule_ready hook.  Add new member begin_move_insn.
6082         * sched-rgn.c (begin_schedule_ready): Remove second argument.
6083         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6084
6085         * haifa-sched.c (prune_ready_list): New function, broken out of
6086         schedule_block.
6087         (schedule_block): Use it.
6088
6089 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6090
6091         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6092
6093 2011-04-01  Kai Tietz  <ktietz@redhat.com>
6094
6095         * config.gcc (*-*-mingw*): Allow as option the
6096         posix threading model.
6097         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
6098         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6099         definition.
6100         (CPP_SPEC): Add pthread/no-pthread handling.
6101         (LIB_SPEC): Likewise.
6102         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6103         (LIB_SPEC): Likewise.
6104         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6105         flag to pass -pthread option for shared libgcc build.
6106         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6107         for shared libgcc build.
6108         * config/i386/t-mingw-pthread: New file.
6109         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6110         New define to enable use of library pthread by default.
6111         * config/i386/mingw.opt (pthread): New driver option.
6112         (no-pthread): New driver option.
6113         * config/i386/cygming.opt: Make sure trailing empty line is retained.
6114         * config/i386/mingw-w64.opt: Likewise.
6115
6116 2011-04-01  Gary Funck <gary@intrepid.com>
6117
6118         * c-decl.c (grokdeclarator): Fix formatting.
6119
6120 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6121
6122         * expr.c (emit_block_move_via_movmem): Use n_generator_args
6123         instead of n_operands.
6124         (set_storage_via_setmem): Likewise.
6125         * optabs.c (maybe_gen_insn): Likewise.
6126         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6127         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6128         (mips_expand_builtin_direct): Likewise.
6129         * config/spu/spu.c (expand_builtin_args): Likewise.
6130
6131 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6132
6133         * recog.h (insn_data_d): Add n_generator_args.
6134         * genoutput.c (data): Likewise.
6135         (output_insn_data): Print it.
6136         (max_opno, num_dups): Delete.
6137         (scan_operands): Just fill in "d->operand[...]".
6138         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6139
6140 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
6141
6142         * gensupport.h (pattern_stats): New structure.
6143         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6144         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6145         (max_operand_1, max_operand_vec): Delete.
6146         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6147
6148 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
6149
6150         * emit-rtl.c (emit_pattern_after_setloc): New function.
6151         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6152         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6153         (emit_pattern_after): New function.
6154         (emit_insn_after, emit_jump_insn_after): Call it.
6155         (emit_call_insn_after, emit_debug_insn_after): Likewise.
6156         (emit_pattern_before_setloc): New function.
6157         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6158         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6159         Likewise.
6160         (emit_pattern_before): New function.
6161         (emit_insn_before, emit_jump_insn_before): Call it.
6162         (emit_call_insn_before, emit_debug_insn_before): Likewise.
6163
6164 2011-03-31  Richard Henderson  <rth@redhat.com>
6165
6166         * dwarf2out.c (dw_separate_line_info_ref): Remove.
6167         (dw_separate_line_info_entry): Remove.
6168         (enum dw_line_info_opcode): New.
6169         (dw_line_info_entry): Use it.
6170         (dw_line_info_table, dw_line_info_table_p): New.
6171         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6172         (line_info_table, line_info_label_num): Remove.
6173         (line_info_table_in_use): Remove.
6174         (separate_line_info_table): Remove.
6175         (separate_line_info_table_allocated): Remove.
6176         (separate_line_info_table_in_use): Remove.
6177         (LINE_INFO_TABLE_INCREMENT): Remove.
6178         (line_info_label_num): New.
6179         (cur_line_info_table): New.
6180         (text_section_line_info, cold_text_section_line_info): New.
6181         (separate_line_info): New.
6182         (SEPARATE_LINE_CODE_LABEL): Remove.
6183         (print_dwarf_line_table): Remove.
6184         (debug_dwarf): Don't dump it.
6185         (output_one_line_info_table): New.
6186         (output_line_info): Use it.
6187         (new_line_info_table): New.
6188         (set_cur_line_info_table): New.
6189         (dwarf2out_switch_text_section): Use it.
6190         (dwarf2out_begin_function): Likewise.
6191         (push_dw_line_info_entry): New.
6192         (dwarf2out_source_line): Rewrite for new line info tables.
6193         (dwarf2out_init): Remove dead initailizations.
6194
6195 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6196
6197         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
6198         various flags.
6199         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6200         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6201         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6202         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6203         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6204         * opt-functions.awk (flag_init, switch_bit_fields): New.
6205         (switch_flags): Don't handle flags moved to bit-fields.  Don't
6206         generate CL_MISSING_OK or CL_SAVE.
6207         * optc-gen.awk: Update to generate bit-field output as well as
6208         flags field.
6209         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6210         bit-field instead of CL_REJECT_DRIVER flag.
6211         * opts-common.c (generate_canonical_option,
6212         decode_cmdline_option): Use bit-fields instead of CL_* flags.
6213         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6214         instead of CL_REJECT_NEGATIVE flag.
6215         * toplev.c (print_switch_values): Use cl_report bit-field instead
6216         of CL_REPORT flag.
6217
6218 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6219
6220         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6221         a zero minimum index only if it is redundant.
6222
6223 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
6224
6225         PR rtl-optimization/48381
6226         * ira-color.c (assign_hard_reg): Use hard reg set intersection
6227         instead of ira_class_hard_reg_index for calculating conflicting
6228         hard registers.
6229
6230 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
6231
6232         * cprop.c: Clean up hash table building.
6233         (reg_avail_info): Remove.
6234         (oprs_available_p): Remove.
6235         (record_last_reg_set_info): Remove.
6236         (record_last_set_info): Remove.
6237         (reg_available_p): New function.
6238         (gcse_constant_p): Do not treat unfolded conditions as constants.
6239         (make_set_regs_unavailable): New function.
6240         (hash_scan_set): Simplify with new reg_available_p.
6241         (compute_hash_table_work): Traverse insns stream only once.
6242         Do not compute reg_avail_info. Traverse insns in reverse order.
6243         Record implicit sets after recording explicit sets from the block.
6244
6245 2011-03-31  Michael Matz  <matz@suse.de>
6246
6247         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
6248
6249 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
6250
6251         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6252         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6253         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6254         (h8300_mode_dependent_address_p): New function.
6255         (h8300_get_index): Make static.
6256
6257 2011-03-31  Jeff Law  <law@redhat.com>
6258
6259         * reload1.c (elimination_effects): Fix typo in recent change.
6260
6261         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
6262         typo potentially leading to null pointer dereference.
6263
6264         * caller-save.c (new_saved_hard_reg): Eliminate return value.
6265         (setup_save_areas): Corresponding changes to avoid useless
6266         assignments.
6267
6268         * jump.c (reversed_comparison_code_parts): Avoid successive return
6269         statements when REVERSE_CONDITION is defined.
6270
6271         * expr.c (expand_assignment): Avoid useless assignments.
6272         (expand_expr_real_1): Likewise.
6273         (expand_expr_real_2): Avoid useless statements.
6274
6275         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6276
6277         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6278
6279         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6280         statements.
6281
6282         * stmt.c (expand_expr_stmt): Avoid useless assignment.
6283
6284 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
6285
6286         PR target/47109
6287         * doc/tm.texi.in (TARGET_VERSION): Remove.
6288         * doc/tm.texi: Regenerate.
6289         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6290         * collect2.c (main): Don't use TARGET_VERSION.
6291         * mips-tdump.c (main): Don't use TARGET_VERSION.
6292         * mips-tfile.c (main): Don't use TARGET_VERSION.
6293         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
6294         * config/rs6000/vxworksae.h: Remove.
6295         * config/alpha/alpha.h (TARGET_VERSION): Remove.
6296         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6297         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6298         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6299         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6300         * config/arm/arm.h (TARGET_VERSION): Remove.
6301         * config/arm/coff.h (TARGET_VERSION): Remove.
6302         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6303         * config/arm/elf.h (TARGET_VERSION): Remove.
6304         * config/arm/freebsd.h (TARGET_VERSION): Remove.
6305         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6306         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6307         * config/arm/pe.h (TARGET_VERSION): Remove.
6308         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6309         * config/arm/semi.h (TARGET_VERSION): Remove.
6310         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6311         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6312         * config/arm/vxworks.h (TARGET_VERSION): Remove.
6313         * config/avr/avr.h (TARGET_VERSION): Remove.
6314         * config/bfin/bfin.h (TARGET_VERSION): Remove.
6315         * config/fr30/fr30.h (TARGET_VERSION): Remove.
6316         * config/frv/frv.h (TARGET_VERSION): Remove.
6317         * config/h8300/h8300.h (TARGET_VERSION): Remove.
6318         * config/i386/cygwin.h (TARGET_VERSION): Remove.
6319         * config/i386/darwin.h (TARGET_VERSION): Remove.
6320         * config/i386/darwin64.h (TARGET_VERSION): Remove.
6321         * config/i386/djgpp.h (TARGET_VERSION): Remove.
6322         * config/i386/freebsd.h (TARGET_VERSION): Remove.
6323         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6324         * config/i386/gnu.h (TARGET_VERSION): Remove.
6325         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6326         * config/i386/i386elf.h (TARGET_VERSION): Remove.
6327         * config/i386/linux.h (TARGET_VERSION): Remove.
6328         * config/i386/linux64.h (TARGET_VERSION): Remove.
6329         * config/i386/lynx.h (TARGET_VERSION): Remove.
6330         * config/i386/mingw32.h (TARGET_VERSION): Remove.
6331         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6332         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6333         * config/i386/netware.h (TARGET_VERSION): Remove.
6334         * config/i386/nto.h (TARGET_VERSION): Remove.
6335         * config/i386/openbsd.h (TARGET_VERSION): Remove.
6336         * config/i386/vxworks.h (TARGET_VERSION): Remove.
6337         * config/ia64/elf.h (TARGET_VERSION): Remove.
6338         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6339         * config/ia64/hpux.h (TARGET_VERSION): Remove.
6340         * config/ia64/linux.h (TARGET_VERSION): Remove.
6341         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6342         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6343         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6344         * config/lm32/lm32.h (TARGET_VERSION): Remove.
6345         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6346         * config/m32c/m32c.h (TARGET_VERSION): Remove.
6347         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6348         * config/m32r/m32r.h (TARGET_VERSION): Remove.
6349         * config/m68k/linux.h (TARGET_VERSION): Remove.
6350         * config/m68k/m68k.h (TARGET_VERSION): Remove.
6351         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6352         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6353         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6354         * config/mep/mep.h (TARGET_VERSION): Remove.
6355         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6356         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6357         * config/mips/iris6.h (MACHINE_TYPE): Remove.
6358         * config/mips/linux.h (TARGET_VERSION): Remove.
6359         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6360         * config/mips/vxworks.h (TARGET_VERSION): Remove.
6361         * config/mmix/mmix.h (TARGET_VERSION): Remove.
6362         * config/mn10300/linux.h (TARGET_VERSION): Remove.
6363         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6364         * config/pa/pa.h (TARGET_VERSION): Remove.
6365         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6366         * config/picochip/picochip.h (TARGET_VERSION): Remove.
6367         * config/rs6000/aix.h (TARGET_VERSION): Remove.
6368         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6369         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6370         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6371         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6372         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6373         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6374         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6375         * config/rs6000/linux.h (TARGET_VERSION): Remove.
6376         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6377         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6378         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6379         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6380         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6381         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6382         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6383         * config/s390/linux.h (TARGET_VERSION): Remove.
6384         * config/s390/s390.h (TARGET_VERSION): Remove.
6385         * config/s390/tpf.h (TARGET_VERSION): Remove.
6386         * config/score/score.h (TARGET_VERSION): Remove.
6387         * config/sh/linux.h (TARGET_VERSION): Remove.
6388         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6389         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6390         * config/sh/sh.h (TARGET_VERSION): Remove.
6391         * config/sh/sh64.h (TARGET_VERSION): Remove.
6392         * config/sh/superh.h (TARGET_VERSION): Remove.
6393         * config/sh/vxworks.h (TARGET_VERSION): Remove.
6394         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6395         * config/sparc/linux.h (TARGET_VERSION): Remove.
6396         * config/sparc/linux64.h (TARGET_VERSION): Remove.
6397         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6398         TARGET_NAME32, TARGET_NAME): Remove.
6399         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6400         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6401         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6402         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6403         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6404         * config/spu/spu.h (TARGET_VERSION): Remove.
6405         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6406         * config/v850/v850.h (TARGET_VERSION): Remove.
6407         * config/vax/linux.h (TARGET_VERSION): Remove.
6408         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6409         * config/xtensa/elf.h (TARGET_VERSION): Remove.
6410         * config/xtensa/linux.h (TARGET_VERSION): Remove.
6411
6412 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
6413
6414         PR target/48142
6415         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6416         frame-related from frame-unrelated adjustments to the stack pointer.
6417
6418 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
6419
6420         * common.opt (fdebug-types-section): Move earlier.
6421         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6422
6423 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
6424
6425         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6426         var.
6427
6428 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
6429
6430         * tree.h (CASE_CHAIN): Define.
6431         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6432         (gimple_redirect_edge_and_branch): Likewise.
6433
6434 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6435
6436         PR middle-end/48367
6437         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6438         calculation.
6439
6440 2011-03-30  Jeff Law  <law@redhat.com>
6441
6442         * PR bootstrap/48371
6443         * reload1.c (reload): Fix botch in last change.
6444
6445         * reload.h (struct reload): Fix typo introduced in last change.
6446
6447 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6448
6449         * config/arm/arm.opt (mhard-float, msoft-float): Mark
6450         Undocumented.  Remove help text.
6451         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6452         -mhard-float.
6453
6454 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6455
6456         * doc/options.texi (NegativeAlias): Document.
6457         (Alias): Mention NegativeAlias.
6458         * opt-functions.awk: Handle NegativeAlias.
6459         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
6460         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6461         * opts.h (CL_NEGATIVE_ALIAS): Define.
6462         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6463         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6464         OPT_mspe_.
6465         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6466         Alias entries.
6467         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6468         mno-spe and mno-isel instead of mspe=no and -misel=no.
6469
6470 2011-03-29  Mark Wielaard  <mjw@redhat.com>
6471
6472         * common.opt (fdebug-types-section): New flag.
6473         * doc/invoke.texi: Document new -fno-debug-types-section flag.
6474         * dwarf2out.c (use_debug_types): New define.
6475         (struct die_struct): Mark die_id with GTY desc use_debug_types.
6476         (print_die): Guard output of type unit signatures using
6477         use_debug_types.
6478         (build_abbrev_table): Replace assert of dwarf_version >= 4
6479         with assert on use_debug_types.
6480         (size_of_die): Likewise.
6481         (unmark_dies): Likewise.
6482         (value_format): Decide AT_ref_external form on use_debug_types.
6483         (output_die): Replace dwarf_version version check guard with
6484         use_debug_types where appropriate.
6485         (modified_type_die): Likewise.
6486         (gen_reference_type_die): Likewise.
6487         (dwarf2out_start_source_file): Likewise.
6488         (dwarf2out_end_source_file): Likewise.
6489         (prune_unused_types_walk_attribs): Likewise.
6490         (dwarf2out_finish): Likewise.
6491
6492 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6493
6494         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6495
6496 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6497
6498         PR rtl-optimization/48332
6499         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6500         mode of input operand N and modeN to its actual mode.
6501
6502 2011-03-30  Jeff Law  <law@redhat.com>
6503
6504         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6505         define accessor macro.
6506         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6507         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6508         (reg_equiv_init): Likewise.
6509         (reg_equivs_size): New variable.
6510         (reg_equiv_init_size): Remove.
6511         (allocate_initial_values): Move prototype to here from....
6512         * integrate.h (allocate_initial_values): Remove prototype.
6513         * integrate.c: Include reload.h.
6514         (allocate_initial_values): Corresponding changes.
6515         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6516         (fix_reg_equiv_init, no_equiv): Corresponding changes.
6517         (update_equiv_regs): Corresponding changes.
6518         (ira): Corresponding changes.
6519         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6520         (push_secondary_reload): Corresponding changes.
6521         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
6522         (make_memloc, find_reloads_address): Corresponding changes.
6523         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
6524         (find_reloads_address_1): Corresponding changes.
6525         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
6526         (refers_to_regno_for_reload_p): Corresponding changes.
6527         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
6528         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
6529         * reload1.c: Include ggc.h.
6530         (grow_reg_equivs): New function.
6531         (replace_pseudos_in, reload): Corresponding changes.
6532         (calculate_needs_all_insns, alter_regs): Corresponding changes.
6533         (eliminate_regs_1, elimination_effects): Corresponding changes.
6534         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
6535         (delete_output_reload): Likewise.
6536         * caller-save.c (mark_referenced_regs): Corresponding changes.
6537         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
6538         * frv/predicates.md (frv_load_operand): Corresponding changes.
6539         * microblaze/microblaze.c (double_memory_operand): Corresponding
6540         changes.
6541         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
6542         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
6543         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
6544         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
6545         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
6546         changes.
6547         * pa/pa.c (emit_move_sequence): Corresponding changes.
6548         * vax/vax.c (nonindexed_address_p): Corresponding changes.
6549
6550 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6551
6552         PR target/47551
6553         * config/arm/arm.c (coproc_secondary_reload_class): Handle
6554         structure modes.  Don't check neon_vector_mem_operand for
6555         vector or structure modes.
6556
6557 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
6558             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6559
6560         PR target/43590
6561         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6562         operand 1 and reshuffle the operands to match.
6563         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
6564
6565 2011-03-30  Christian Schüler  <cschueler@gmx.de>
6566
6567         PR driver/48208
6568         * config/c.opt (F): Added 'Driver' to -F option.
6569
6570         PR driver/48260
6571         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
6572           handler function.
6573         * config/darwin.opt: Added '-arch' option.
6574
6575 2011-03-30  Nick Clifton  <nickc@redhat.com>
6576
6577         * config/rx/rx.md: Add peepholes and patterns to combine
6578         extending loads and simple arithmetic instructions.
6579         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
6580         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
6581         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
6582         modes to use pre-decrement and post-increment addressing.
6583         (rx_is_restricted_memory_address): Add range checking of REG+INT
6584         addresses.
6585         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
6586         (rx_memory_move_cost): Adjust cost of stores.
6587         (rx_adjust_insn_length): New function.
6588
6589 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
6590
6591         PR c/48305
6592         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6593         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
6594         matching arg00/arg01 types.
6595
6596 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
6597
6598         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
6599         last_location to UNKNOWN_LOCATION.
6600
6601 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6602
6603         PR target/48349
6604         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
6605         FLOAT_SSE_REGS.
6606
6607 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
6608             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6609
6610         PR bootstrap/48337
6611         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
6612         Init(PROCESSOR_V7).
6613         (sparc_cpu): Likewise.
6614         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
6615         PROCESSOR_V7.
6616
6617 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6618
6619         PR target/48336
6620         PR middle-end/48342
6621         PR rtl-optimization/48345
6622         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
6623         hard regs for given mode from profitable regs when doing secondary
6624         allocation.
6625
6626 2011-03-29  Jeff Law  <law@redhat.com>
6627
6628         PR bootstrap/48327
6629         * tree-ssa-threadupdate.c (struct redirection_data): Remove
6630         do_not_duplicate field.
6631         (lookup_redirection_data): Corresponding changes.
6632         (create_duplicates): Always create a template block.
6633         (redirect_edges): Remove code which reused the original block
6634         when it was going to become unreachable code.
6635         (thread_block): Don't set do_not_duplicate field.
6636
6637 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
6638
6639         * lto-opts.c (register_user_option_p, lto_register_user_option):
6640         Make type argument unsigned.
6641         * lto-streamer.h (lto_register_user_option): Make type argument
6642         unsigned.
6643         * opth-gen.awk: Make CL_* macros unsigned.
6644         * opts-common.c (find_opt): Make lang_mask argument unsigned.
6645         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6646         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
6647         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
6648         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
6649         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
6650         (find_opt): Make lang_mask argument unsigned.
6651
6652 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6653
6654         PR rtl-optimization/48331
6655         PR rtl-optimization/48334
6656         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
6657         for any used algorithm.
6658
6659 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
6660
6661         * ira-conflicts.c (build_object_conflicts): Add unused attribute
6662         to parent_max.
6663
6664 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
6665
6666         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
6667         (alpha_option_override): Don't set alpha_sr_alias_set.
6668         (emit_frame_store_1): Use gen_frame_mem rather than calling
6669         set_mem_alias_set.
6670         (alpha_expand_epilogue): Ditto.
6671
6672 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
6673
6674         PR tree-optimization/48290
6675         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
6676         vectorization, check that relevant phis in the basic block after
6677         the inner loop are really inner loop's exit phis.
6678
6679 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
6680
6681         PR debug/48190
6682         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
6683         (cached_dw_loc_list_def): New structure.
6684         (cached_dw_loc_list): New typedef.
6685         (cached_dw_loc_list_table): New variable.
6686         (cached_dw_loc_list_table_hash): New function.
6687         (cached_dw_loc_list_table_eq): Likewise.
6688         (add_location_or_const_value_attribute): Take a bool cache_p.
6689         Cache the list when the parameter is true.
6690         (gen_formal_parameter_die): Update caller.
6691         (gen_variable_die): Likewise.
6692         (dwarf2out_finish): Likewise.
6693         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
6694         while generating debug info for the decl.
6695         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
6696         (dwarf2out_init): Initialize cached_dw_loc_list_table.
6697         (resolve_addr): Cache the result of resolving a chain of
6698         location lists.
6699
6700 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
6701
6702         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
6703         conflict object hard regset nodes have intersecting hard reg sets.
6704
6705         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
6706         after regstat_init_n_sets_and_refs.
6707
6708         * ira.c: Add more comments at the top.
6709         (setup_stack_reg_pressure_class, setup_pressure_classes):
6710         Add comments how we compute the register pressure classes.
6711         (setup_allocno_and_important_classes): Add more comments.
6712         (setup_class_translate_array, reorder_important_classes)
6713         (setup_reg_class_relations): Add comments.
6714
6715         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
6716         start of the file.
6717
6718         * ira-color.c: Add 2011 to the Copyright line.
6719         (assign_hard_reg):  Add more comments.
6720         (improve_allocation): Ditto.
6721
6722         * ira-costs.c: Add 2011 to the Copyright line.
6723         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
6724         comments.
6725         (setup_regno_cost_classes_by_mode): Ditto.
6726
6727         Initial patches from ira-improv branch:
6728
6729         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
6730
6731         * ira-build.c (ira_create_object): Remove initialization of
6732         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
6733         (ira_create_allocno): Remove initialization of
6734         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
6735         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
6736         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6737         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
6738         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
6739         Initialize ALLOCNO_ADD_DATA.
6740         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
6741         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
6742         ALLOCNO_REG.
6743         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
6744         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
6745
6746         * ira.c (ira_reallocate): Remove.
6747         (setup_pressure_classes): Call
6748         ira_init_register_move_cost_if_necessary.  Use
6749         ira_register_move_cost instead of ira_get_register_move_cost.
6750         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
6751         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
6752
6753         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
6754         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6755         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
6756         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
6757         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
6758         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
6759         Fix formatting.
6760         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
6761         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6762         (struct allocno_color_data): New.
6763         (allocno_color_data_t): New typedef.
6764         (allocno_color_data): New definition.
6765         (ALLOCNO_COLOR_DATA): New macro.
6766         (struct object_color_data): New.
6767         (object_color_data_t): New typedef.
6768         (object_color_data): New definition.
6769         (OBJECT_COLOR_DATA): New macro.
6770         (update_copy_costs, calculate_allocno_spill_cost): Call
6771         ira_init_register_move_cost_if_necessary.  Use
6772         ira_register_move_cost instead of ira_get_register_move_cost.
6773         (move_spill_restore, update_curr_costs): Ditto.
6774         (allocno_spill_priority): Make it inline.
6775         (color_pass): Allocate and free allocno_color_dat and object_color_data.
6776         (struct coalesce_data, coalesce_data_t): New.
6777         (allocno_coalesce_data): New definition.
6778         (ALLOCNO_COALESCE_DATA): New macro.
6779         (merge_allocnos, coalesced_allocno_conflict_p): Use
6780         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
6781         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
6782         (coalesce_allocnos): Ditto.
6783         (setup_coalesced_allocno_costs_and_nums): Ditto.
6784         (collect_spilled_coalesced_allocnos): Ditto.
6785         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
6786         (setup_slot_coalesced_allocno_live_ranges): Ditto.
6787         (coalesce_spill_slots): Ditto.
6788         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
6789         free allocno_coalesce_data.
6790
6791         * ira-conflicts.c: Fix formatting.
6792         (process_regs_for_copy): Call
6793         ira_init_register_move_cost_if_necessary.  Use
6794         ira_register_move_cost instead of ira_get_register_move_cost.
6795         (build_object_conflicts): Optimize.
6796
6797         * ira-costs.c (record_reg_classes): Optimize.  Call
6798         ira_init_register_move_cost_if_necessary.  Use
6799         ira_register_move_cost, ira_may_move_in_cost, and
6800         ira_may_move_out_cost instead of ira_get_register_move_cost and
6801         ira_get_may_move_cost.
6802         (record_address_regs): Ditto.
6803         (scan_one_insn): Optimize.
6804         (find_costs_and_classes): Optimize.
6805         (process_bb_node_for_hard_reg_moves): Call
6806         ira_init_register_move_cost_if_necessary.  Use
6807         ira_register_move_cost instead of ira_get_register_move_cost.
6808
6809         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
6810         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
6811         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
6812         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
6813         definitions.
6814         (ira_initiate_emit_data, ira_finish_emit_data)
6815         (create_new_allocno): New functions.
6816         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
6817         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
6818         Use ira_register_move_cost instead of ira_get_register_move_cost.
6819
6820         * ira-int.h: Fix some comments.
6821         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
6822         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6823         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
6824         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
6825         add_data.
6826         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
6827         bitfield after mode.  Make hard_regno a short int.  Make
6828         hard_regno short.  Remove first_coalesced_allocno and
6829         next_coalesced_allocno.  Move mem_optimized_dest_p,
6830         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
6831         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
6832         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
6833         temp, colorable_p.  Add new member add_data.
6834         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
6835         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
6836         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
6837         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
6838         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
6839         (ALLOCNO_ADD_DATA): New macro.
6840         (ira_emit_data_t): New typedef.
6841         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
6842         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
6843         from struct ira_allocno.
6844         (ALLOCNO_EMIT_DATA): New macro.
6845         (ira_allocno_emit_data, allocno_emit_reg): New.
6846         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
6847         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
6848         (OBJECT_ADD_DATA): New macro.
6849         (ira_reallocate): Remove.
6850         (ira_initiate_emit_data, ira_finish_emit_data): New.
6851         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
6852         (ira_init_register_move_cost_if_necessary): New.
6853         (ira_object_conflict_iter_next): Merge into
6854         ira_object_conflict_iter_cond.
6855         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
6856
6857         * ira-live.c (process_single_reg_class_operands): Call
6858         ira_init_register_move_cost_if_necessary.  Use
6859         ira_register_move_cost instead of ira_get_register_move_cost.
6860
6861         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
6862
6863         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
6864
6865         * ira-costs.c: Fix formatting.
6866         (cost_classes, cost_classes_num): Remove.
6867         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
6868         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
6869         (cost_classes_del, cost_classes_htab): New.
6870         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
6871         (initiate_regno_cost_classes, setup_cost_classes): New.
6872         (setup_regno_cost_classes_by_aclass): New.
6873         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
6874         (record_reg_classes): Use regno_cost_classes instead of
6875         cost_classes.  Move checking opposite operand up.
6876         (record_address_regs): Use regno_cost_classes
6877         instead of cost_classes.
6878         (scan_one_insn): Ditto.  Use always general register.
6879         (print_allocno_costs): Use regno_cost_classes instead of
6880         cost_classes.
6881         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
6882         (find_costs_and_classes): Set up cost classes for each registers.
6883         Use also their mode for this.  Use regno_cost_classes instead of
6884         cost_classes.
6885         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
6886         cost_classes.
6887         (free_ira_costs, ira_init_costs): Don't use cost_classes.
6888         (ira_costs, ira_set_pseudo_classes): Call
6889         initiate_regno_cost_classes and finish_regno_cost_classes.
6890
6891         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
6892
6893         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
6894
6895         * target.def (ira_cover_classes): Remove.
6896
6897         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
6898
6899         * doc/tm.texi.in: Ditto.
6900
6901         * ira-conflicts.c: Remove mentioning cover classes from the file.
6902         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
6903         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
6904
6905         * targhooks.c (default_ira_cover_classes): Remove.
6906
6907         * targhooks.h (default_ira_cover_classes): Ditto.
6908
6909         * haifa-sched.c: Remove mentioning cover classes from the file.
6910         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
6911         ira_pressure_classes and ira_pressure_classes_num instead of
6912         ira_reg_class_cover_size and ira_reg_class_cover.  Use
6913         sched_regno_pressure_class instead of sched_regno_cover_class.
6914         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
6915         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6916
6917         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
6918         classes from the file.
6919         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
6920         (struct object_hard_regs, struct object_hard_regs_node): New.
6921         (struct ira_object): New members profitable_hard_regs,
6922         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
6923         (struct ira_allocno): Rename cover_class to aclass.  Rename
6924         cover_class_cost and updated_cover_class_cost to class_cost and
6925         updated_class_cost.  Remove splay_removed_p and
6926         left_conflict_size.  Add new members colorable_p.
6927         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
6928         (ALLOCNO_COLORABLE_P): New macro.
6929         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
6930         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
6931         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
6932         (OBJECT_...): Rename parameter C to O.
6933         (OBJECT_PROFITABLE_HARD_REGS): New macro.
6934         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
6935         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
6936         (struct target_ira_int): New members x_ira_max_memory_move_cost,
6937         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
6938         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
6939         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
6940         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
6941         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
6942         x_ira_reg_class_subunion.
6943         (ira_max_memory_move_cost, ira_max_register_move_cost)
6944         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
6945         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
6946         (ira_important_class_nums, ira_reg_class_superunion): New macros.
6947         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
6948         (ira_reg_class_union): Rename to ira_reg_class_subunion.
6949         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6950         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6951         (ira_tune_allocno_costs_and_cover_classes): Rename to
6952         ira_tune_allocno_costs.
6953         (ira_debug_hard_regs_forest): New.
6954         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
6955         (ira_object_conflict_iter_next): Fix comments.
6956         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
6957         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
6958         cover_class to aclass.
6959         (ira_allocate_and_accumulate_costs): Ditto.
6960         (ira_allocate_and_set_or_copy_costs): Ditto.
6961
6962         * opts.c (decode_options): Remove ira_cover_class check.
6963
6964         * ira-color.c: Remove mentioning cover classes from the file.  Use
6965         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
6966         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
6967         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
6968         (splay-tree.h): Remove include.
6969         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
6970         before copy_freq_compare_func.
6971         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
6972         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
6973         New definitions.
6974         (hard_regs_roots, hard_regs_node_vec): Ditto.
6975         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
6976         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
6977         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
6978         (create_new_object_hard_regs_node): Ditto.
6979         (add_new_object_hard_regs_node_to_forest): Ditto.
6980         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
6981         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
6982         Ditto.
6983         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
6984         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
6985         (remove_unused_object_hard_regs_nodes): Ditto.
6986         (enumerate_object_hard_regs_nodes): Ditto.
6987         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
6988         (object_hard_regs_subnode_t): Ditto.
6989         (struct object_hard_regs_subnode): Ditto.
6990         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
6991         (setup_object_hard_regs_subnode_index): Ditto.
6992         (get_object_hard_regs_subnodes_num): Ditto.
6993         (form_object_hard_regs_nodes_forest): Ditto.
6994         (finish_object_hard_regs_nodes_tree): Ditto.
6995         (finish_object_hard_regs_nodes_forest): Ditto.
6996         (allocnos_have_intersected_live_ranges_p): Rename to
6997         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
6998         (pseudos_have_intersected_live_ranges_p): Rename to
6999         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
7000         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7001         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7002         (update_copy_costs): Remove assert.  Skip cost update if the hard
7003         reg does not belong the class.
7004         (assign_hard_reg): Process only profitable hard regs.
7005         (uncolorable_allocnos_num): Make it scalar.
7006         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7007         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7008         and ira_reg_class_max_nregs.
7009         (bucket_allocno_compare_func): Check frequency first.
7010         (sort_bucket): Add compare function as a parameter.
7011         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7012         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7013         (push_allocno_to_stack): Rewrite for checking new allocno
7014         colorability.
7015         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
7016         (push_only_colorable): Pass new parameter to sort_bucket.
7017         (push_allocno_to_spill): Remove.
7018         (allocno_spill_priority_compare): Make it inline and rewrite.
7019         (splay_tree_allocate, splay_tree_free): Remove.
7020         (allocno_spill_sort_compare): New function.
7021         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
7022         build and use splay tree.  Choose first allocno in uncolorable
7023         allocno bucket to spill.  Remove setting spill cost.
7024         (all_conflicting_hard_regs): Remove.
7025         (setup_allocno_available_regs_num): Check only profitable hard
7026         regs.  Print info about hard regs nodes.
7027         (setup_allocno_left_conflicts_size): Remove.
7028         (put_allocno_into_bucket): Don't call
7029         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
7030         (improve_allocation): New.
7031         (color_allocnos): Call setup_profitable_hard_regs,
7032         form_object_hard_regs_nodes_forest, improve_allocation,
7033         finish_object_hard_regs_nodes_forest.  Setup spill cost.
7034         (print_loop_title): Use pressure classes.
7035         (color_allocnso): Ditto.
7036         (do_coloring): Remove allocation and freeing splay_tree_node_pool
7037         and allocnos_for_spilling.
7038         (ira_sort_regnos_for_alter_reg): Don't setup members
7039         {first,next}_coalesced_allocno.
7040         (color): Remove allocating and freeing removed_splay_allocno_vec.
7041         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7042         prohibited_class_mode_regs.
7043
7044         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
7045         formatting.
7046         (update_allocno_pressure_excess_length): Use pressure classes.
7047         (inc_register_pressure, dec_register_pressure): Check for pressure
7048         class.
7049         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7050         pressure class.  Use ira_reg_class_nregs instead of
7051         ira_reg_class_max_nregs.
7052         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7053         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7054         (single_reg_class): Use ira_reg_class_nregs instead of
7055         ira_reg_class_max_nregs.
7056         (process_bb_node_lives): Use pressure classes.
7057
7058         * ira-emit.c: Remove mentioning cover classes from the file.  Use
7059         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7060         (change_loop): Use pressure classes.
7061         (modify_move_list): Call ira_set_allocno_class instead of
7062         ira_set_allocno_cover_class.
7063
7064         * ira-build.c: Remove mentioning cover classes from the file.  Use
7065         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7066         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
7067         ALLOCNO_UPDATED_CLASS_COST instead of
7068         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
7069         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7070         (ira_create_allocno): Remove initialization of
7071         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
7072         ALLOCNO_COLORABLE_P.
7073         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7074         Update conflict regs for the objects.
7075         (create_cap_allocno): Remove assert.  Don't propagate
7076         ALLOCNO_AVAILABLE_REGS_NUM.
7077         (ira_free_allocno_costs): New function.
7078         (finish_allocno): Change a part of code into call of
7079         ira_free_allocno_costs.
7080         (low_pressure_loop_node_p): Use pressure classes.
7081         (object_range_compare_func): Don't compare classes.
7082         (setup_min_max_conflict_allocno_ids): Ditto.
7083
7084         * loop-invariant.c: Remove mentioning cover classes from the file.
7085         Use ira_pressure_classes and ira_pressure_classes_num instead of
7086         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
7087         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7088         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7089         Use reg_allocno_class instead of reg_cover_class.
7090         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7091         STACK_REG_COVER_CLASS.
7092         (get_regno_cover_class): Rename to get_regno_pressure_class.
7093         (move_loop_invariants): Initialize and finalize regstat.
7094
7095         * ira.c: Remove mentioning cover classes from the file.  Add
7096         comments about coloring without cover classes.  Use ALLOCNO_CLASS
7097         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
7098         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7099         setup_class_subset_and_memory_move_costs.
7100         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7101         (setup_cover_and_important_classes): Rename to
7102         setup_allocno_and_important_classes.
7103         (setup_class_translate_array): New.
7104         (setup_class_translate): Call it for allocno and pressure classes.
7105         (cover_class_order): Rename to allocno_class_order.
7106         (comp_reg_classes_func): Use ira_allocno_class_translate instead
7107         of ira_class_translate.
7108         (reorder_important_classes): Set up ira_important_class_nums.
7109         (setup_reg_class_relations): Set up ira_reg_class_superunion.
7110         (print_class_cover): Rename to print_classes.  Add parameter.
7111         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7112         Print pressure classes too.
7113         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
7114         setup_reg_subclasses.
7115         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7116         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7117         (setup_prohibited_class_mode_regs): Use
7118         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
7119         (clarify_prohibited_class_mode_regs): New function.
7120         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7121         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7122         (ira_init_once): Initialize them.
7123         (free_register_move_costs): Process them.
7124         (ira_init): Move calls of find_reg_classes and
7125         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7126         Call clarify_prohibited_class_mode_regs.
7127         (ira_no_alloc_reg): Remove.
7128         (too_high_register_pressure_p): Use pressure classes.
7129
7130         * sched-deps.c: Remove mentioning cover classes from the file.
7131         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
7132         ira_pressure_classes and ira_pressure_classes_num instead of
7133         ira_reg_class_cover_size and ira_reg_class_cover.
7134         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7135         sched_regno_pressure_class instead of sched_regno_cover_class.
7136         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
7137         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7138
7139         * ira.h: Add 2010 to Copyright.
7140         (ira_no_alloc_reg): Remove external.
7141         (struct target_ira): Rename x_ira_hard_regno_cover_class,
7142         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7143         x_ira_class_translate to x_ira_hard_regno_allocno_class,
7144         x_ira_allocno_classes_num, x_ira_allocno_classes, and
7145         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
7146         x_ira_pressure_classes, x_ira_pressure_class_translate, and
7147         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
7148         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
7149         x_ira_no_alloc_regs.
7150         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
7151         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7152         ira_allocno_classes_num and ira_allocno_classes.
7153         (ira_class_translate): Rename to ira_allocno_class_translate.
7154         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7155         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7156         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7157         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7158         (ira_no_alloc_regs): New.
7159
7160         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
7161         classes from the file.  Use ALLOCNO_CLASS instead of
7162         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
7163         ALLOCNO_COVER_CLASS_COST.
7164         (regno_cover_class): Rename to regno_aclass.
7165         (record_reg_classes): Use ira_reg_class_subunion instead of
7166         ira_reg_class_union.
7167         (record_address_regs): Check overflow.
7168         (scan_one_insn): Ditto.
7169         (print_allocno_costs): Print total mem cost fore regional allocation.
7170         (print_pseudo_costs): Use REG_N_REFS.
7171         (find_costs_and_classes): Use classes intersected with them on the
7172         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
7173         ira_reg_class_union.  Use ira_allocno_class_translate and
7174         regno_aclass instead of ira_class_translate and regno_cover_class.
7175         Modify code for finding regno_aclass.  Setup preferred classes for
7176         the next pass.
7177         (setup_allocno_cover_class_and_costs): Rename to
7178         setup_allocno_class_and_costs.  Use regno_aclass instead of
7179         regno_cover_class.  Use ira_set_allocno_class instead of
7180         ira_set_allocno_cover_class.
7181         (init_costs, finish_costs): Use regno_aclass instead of
7182         regno_cover_class.
7183         (ira_costs): Use setup_allocno_class_and_costs instead of
7184         setup_allocno_cover_class_and_costs.
7185         (ira_tune_allocno_costs_and_cover_classes): Rename to
7186         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
7187         by processing objects.  Use ira_reg_class_max_nregs instead of
7188         ira_reg_class_nregs.
7189
7190         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7191
7192         * sched-int.h: Remove mentioning cover classes from the file.
7193         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7194
7195         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
7196         classes from the file.
7197         (struct reg_pref): Rename coverclass into allocnoclass.
7198         (reg_cover_class): Rename to reg_allocno_class.
7199
7200         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
7201
7202         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7203
7204         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7205
7206         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7207
7208         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7209
7210         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7211
7212         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7213
7214         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7215
7216         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7217
7218         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7219
7220         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7221         (i386_ira_cover_classes): Ditto.
7222
7223         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7224
7225         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7226
7227         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7228
7229         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7230
7231         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7232
7233         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7234
7235         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7236         (mips_ira_cover_classes): Ditto.
7237
7238         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7239
7240         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7241
7242         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7243
7244         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7245
7246         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7247
7248         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7249         (IRA_COVER_CLASSES_VSX): Ditto.
7250
7251         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7252         (rs6000_ira_cover_classes): Ditto.
7253
7254         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7255
7256         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7257
7258         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7259
7260         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7261
7262         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7263
7264         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7265
7266         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7267
7268         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7269
7270         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7271
7272         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7273
7274 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
7275
7276         PR debug/48253
7277         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7278         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7279         dw_fde_unlikely_section_end_label, cold_in_std_section,
7280         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7281         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7282         fields.
7283         (output_fde): Use dw_fde_second_{begin,end} if second is
7284         true, otherwise dw_fde_{begin,end}.
7285         (output_call_frame_info): Test dw_fde_second_begin != NULL
7286         instead of dw_fde_switched_sections.
7287         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7288         fields, initialize new fields.  Initialize in_std_section
7289         unconditionally from the first partition.
7290         (dwarf2out_end_epilogue): Don't override dw_fde_end when
7291         dw_fde_second_begin is non-NULL.
7292         (dwarf2out_switch_text_section): Stop initializing removed
7293         dw_fde_struct fields, initialize new fields, initialize
7294         also dw_fde_end here.  Set dw_fde_switch_cfi even when
7295         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
7296         (struct var_loc_list_def): Add last_before_switch field.
7297         (arange_table, arange_table_allocated, arange_table_in_use,
7298         ARANGE_TABLE_INCREMENT, add_arange): Removed.
7299         (size_of_aranges): Count !in_std_section and !second_in_std_section
7300         hunks in fdes, instead of looking at arange_table_in_use.
7301         (output_aranges): Add aranges_length argument, don't call
7302         size_of_aranges here.  Instead of using aranges_table*
7303         emit ranges for fdes when !in_std_section resp.
7304         !second_in_std_section.
7305         (dw_loc_list): Break ranges crossing section switch.
7306         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
7307         use dw_fde_second_end instead of dw_fde_end as end of last range.
7308         (gen_subprogram_die): Don't call add_arange.  Use
7309         dw_fde_{begin,end} for first partition and if switched
7310         section dw_fde_second_{begin,end} for the second.
7311         (var_location_switch_text_section_1,
7312         var_location_switch_text_section): New functions.
7313         (dwarf2out_begin_function): Initialize cold_text_section even
7314         when function_section () isn't text_section.
7315         (prune_unused_types): Don't walk arange_table.
7316         (dwarf2out_finish): Don't needlessly test
7317         flag_reorder_blocks_and_partition when testing cold_text_section_used.
7318         If info_section_emitted, call size_of_aranges and if it indicates
7319         non-empty .debug_aranges, call output_aranges with the computed
7320         size.  Stop using removed dw_fde_struct fields, use
7321         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7322         for second.
7323
7324         PR debug/48203
7325         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7326         create ENTRY_VALUE if incoming or address of incoming's MEM
7327         is a hard REG.
7328         * dwarf2out.c (mem_loc_descriptor): Don't emit
7329         DW_OP_GNU_entry_value of DW_OP_fbreg.
7330         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7331         on ENTRY_VALUE is able to find the canonical parameter VALUE.
7332         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7333         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7334         ENTRY_VALUE_EXPs.
7335         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7336         is a REG_P or MEM_P with REG_P address, compute hash directly
7337         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7338         (preserve_only_constants): Don't clear VALUES forwaring
7339         ENTRY_VALUE to some other VALUE.
7340
7341 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
7342
7343         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7344         instead of GEN_INT.
7345
7346 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7347
7348         * cfgexpand.c (expand_gimple_cond): Always set the source location and
7349         block before expanding the statement.
7350         (expand_gimple_stmt_1): Likewise.  Set them here...
7351         (expand_gimple_stmt): ...and not here.  Tidy.
7352         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7353         unknown.
7354
7355 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7356
7357         * Makefile.in: New rule for cprop.o.
7358         * gcse.c: Move constant/copy propagation to cprop.c.
7359         (compute_local_properties): Only handle expression tables.
7360         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7361         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7362         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7363         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7364         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
7365         compute_cprop_data, find_used_regs, try_replace_reg,
7366         find_avail_set, cprop_jump, constprop_register, cprop_insn,
7367         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7368         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7369         find_bypass_set, reg_killed_on_edge, bypass_block,
7370         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7371         execute_rtl_cprop, pass_rtl_cprop): Move to...
7372         * cprop.c: ...here.  New file, constant/copy propagation for RTL
7373         moved from gcse.c to here with minor cleanups in duplicated code.
7374
7375 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
7376
7377         * config/i386/i386.c (flag_opts): Fix a typo in
7378         -mavx256-split-unaligned-store.
7379
7380 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7381
7382         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7383         LIBCALL_VALUE): Remove macros.
7384         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7385         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7386         (h8300_function_value, h8300_libcall_value,
7387         h8300_function_value_regno_p): New functions.
7388
7389 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
7390
7391         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7392
7393 2011-03-28  Jeff Law  <law@redhat.com>
7394
7395         * tree-ssa-threadupdate.c (redirect_edges): Call
7396         create_edge_and_update_destination_phis as needed.
7397         (create_edge_and_update_destination_phis): Accept new BB argument.
7398         All callers updated.
7399         (thread_block): Do not update the profile when threading around
7400         intermediate blocks.
7401         (thread_single_edge): Likewise.
7402         (determine_bb_domination_status): If BB is not a successor of the
7403         loop header, return NONDOMINATING.
7404         (register_jump_thread): Note when we register a jump thread around
7405         an intermediate block.
7406         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7407         (thread_across_edge): Use it.
7408
7409 2011-03-28  Tristan Gingold  <gingold@adacore.com>
7410
7411         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7412         when for_return is 2.
7413
7414 2011-03-28  Jeff Law  <law@redhat.com>
7415
7416         * var-tracking.c (canonicalize_values_mark): Delete unused
7417         lhs assignment.
7418         (canonicalize_values_star, set_variable_part): Likewise.
7419         (clobber_variable_part, delete_variable_part): Likewise.
7420
7421 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
7422
7423         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7424
7425 2011-03-28  Martin Jambor  <mjambor@suse.cz>
7426
7427         * tree-inline.c (expand_call_inline): Do not check that destination
7428         node is analyzed.
7429         (optimize_inline_calls): Assert that destination node is analyzed.
7430         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7431         not call tree_lowering_passes.
7432         * cgraph.h (cgraph_analyze_function): Declare.
7433         * cgraphunit.c (cgraph_analyze_function): Make public.
7434
7435 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
7436
7437         * config/sparc/sparc-opts.h: New.
7438         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7439         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7440         (sparc_option_override): Store processor_type enumeration rather
7441         than string in cpu_default.  Remove name and enumeration from
7442         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
7443         without using sparc_select.  Use target_flags_explicit instead of
7444         fpu_option_set.
7445         * config/sparc/sparc.h (enum processor_type): Move to
7446         sparc-opts.h.
7447         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7448         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7449         HeaderInclude entry.
7450         (mcpu=, mtune=): Use Var and Enum.
7451         (sparc_processor_type): New Enum and EnumValue entries.
7452
7453 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7454             Iain Sandoe  <iains@gcc.gnu.org>
7455
7456         PR target/48245
7457         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7458
7459 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
7460
7461         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7462         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7463         Insert new statements at it in lieu of STMT.
7464         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7465         * tree-vect-stmts.c (vectorizable_store): Likewise.
7466         (vectorizable_load): Likewise.
7467
7468 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
7469
7470         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7471         (divtf3): Ditto.
7472         (multf3): Ditto.
7473         (subtf3): Ditto.
7474
7475 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7476
7477         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7478         unaligned 256bit load/store.
7479         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7480         (*avx_movdqu<avxmodesuffix>): Likewise.
7481
7482 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7483
7484         PR target/48288
7485         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7486         * config/pa/pa.md (iordi3): Use new predicate in expander.
7487         (iorsi3): Likewise.
7488
7489 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
7490
7491         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
7492         FUNCTION_VALUE_REGNO_P): Remove macros.
7493         * config/mips/mips-protos.h (mips_function_value): Remove.
7494         * config/mips/mips.c (mips_function_value): Rename to...
7495         (mips_function_value_1): ... this. Make static.  Handle receiving
7496         the function type in 'fn_decl_or_type' argument.
7497         (mips_function_value, mips_libcall_value,
7498         mips_function_value_regno_p): New function.
7499         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7500         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7501
7502 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7503
7504         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7505         and -mavx256-split-unaligned-store.
7506         (ix86_option_override_internal): Split 32-byte AVX unaligned
7507         load/store by default.
7508         (ix86_avx256_split_vector_move_misalign): New.
7509         (ix86_expand_vector_move_misalign): Use it.
7510
7511         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7512         -mavx256-split-unaligned-store.
7513
7514         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7515         256bit load/store.  Generate unaligned store on misaligned memory
7516         operand.
7517         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7518         256bit load/store.
7519         (*avx_movdqu<avxmodesuffix>): Likewise.
7520
7521         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
7522         -mavx256-split-unaligned-store.
7523
7524 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7525
7526         PR target/38598
7527         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
7528         Update commentary.
7529
7530 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
7531
7532         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
7533         opno arguments with an expand_operand.  Use create_input_operand.
7534         (mips_prepare_builtin_target): Delete.
7535         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
7536         functions.
7537         (mips_expand_builtin_direct): Use create_output_operand and
7538         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
7539         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
7540         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
7541
7542 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
7543
7544         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
7545         function.
7546         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7547
7548 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
7549
7550         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
7551         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
7552         basic blocks and call commit_edge_insertions directly.
7553         (fixup_abnormal_edges): Move from here to...
7554         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
7555         on the edges and return whether some have actually been inserted.
7556         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
7557         compensation code.
7558
7559 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
7560
7561         PR rtl-optimization/48144
7562         * sel-sched-ir.c (merge_history_vect): Factor out from ...
7563         (merge_expr_data): ... here.
7564         (av_set_intersect): Rename to av_set_code_motion_filter.
7565         Update all callers.  Call merge_history_vect when an expression
7566         is found in both sets.
7567         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
7568
7569 2011-03-26  Alan Modra  <amodra@gmail.com>
7570
7571         * config/rs6000/predicates.md (word_offset_memref_op): Handle
7572         cmodel medium addresses.
7573         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
7574         64-bit gpr loads and stores.
7575         (rs6000_secondary_reload_ppc64): New function.
7576         * config/rs6000/rs6000-protos.h: Declare it.
7577         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
7578
7579 2011-03-26  Alan Modra  <amodra@gmail.com>
7580
7581         PR target/47487
7582         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
7583         GNU Go in traceback table.
7584
7585 2011-03-25  Richard Henderson  <rth@redhat.com>
7586
7587         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
7588         if there are exactly 6 operands.
7589         (set_storage_via_setmem): Similarly.
7590
7591 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7592
7593         * collect2.c (write_c_file_stat): Handle backslash
7594         as right-hand directory separator.
7595         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
7596         checking just for slash.
7597         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
7598         instead of checking for trailing slash.
7599         * gcc.c (record_temp_file): Use filename_cmp instead
7600         of strcmp.
7601         (do_spec_1): Likewise.
7602         (replace_outfile_spec_function): Likewise.
7603         (is_directory): Use filename_ncmp instead of strncmp.
7604         (print_multilib_info): Likewise.
7605         * gcov.c (find_source): Use filename_cmp instead
7606         instead of strcmp.
7607         (make_gcov_file_name): Fix order of slash/backslash
7608         checks.
7609         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
7610         (add_standard_paths): Likewise.
7611         * mips-tfile.c (saber_stop): Handle backslash.
7612         * prefix.c (update_path): Use filename_ncmp instead of
7613         strncmp.
7614         * profile.c (output_location): Use filename_cmp instead
7615         of strcmp.
7616         * read-md.c (handle_toplevel_file): Handle backslash.
7617         * tlink.c (frob_extension):  Likewise.
7618         * tree-cfg.c (same_line_p): Use filename_cmp instead of
7619         strcmp.
7620         * tree-dump.c (dequeue_and_dump): Handle backslash.
7621         * tree.c (get_file_function_name): Likewise.
7622         * gengtype.c (read_input_list): Likewise.
7623         (get_file_realbasename): Likewise.
7624         (get_output_file_with_visibility): Use filename_cmp
7625         instead of strcmp.
7626
7627 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
7628
7629         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
7630         case to VFPv1.
7631
7632 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
7633
7634         * fold-const.c (expr_location_or): New function.
7635         (fold_truth_not_expr): Call it.
7636
7637 2011-03-25  Jeff Law  <law@redhat.com>
7638
7639         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
7640         va_end.
7641         * c-family/c-common.c (def_fn_type): Likewise.
7642         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
7643         * emit-rtl.c (gen_rtvec): Likewise.
7644         * lto/lto-lang.c (def_fn_type): Likewise.
7645
7646 2011-03-25  Richard Guenther  <rguenther@suse.de>
7647
7648         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
7649         also generate copies.
7650         (fini_copy_prop): Handle constant values properly.
7651
7652 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
7653
7654         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
7655         mode size instead of bitsize with DWARF2_ADDR_SIZE.
7656         (hash_loc_operands, compare_loc_operands): Handle
7657         DW_OP_GNU_entry_value.
7658
7659 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7660
7661         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
7662         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
7663         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
7664         comment and use macro TARGET_64BIT_MS_ABI instead.
7665         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
7666         and change default behavior for 32-bit MS_ABI.
7667         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
7668         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
7669         32-bit, too.
7670         (ix86_cfun_abi): Likewise.
7671         (ix86_maybe_switch_abi): Adjust comment.
7672         (init_cumulative_args): Check for bit-ness in MS_ABI case.
7673         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
7674         instead of checking for SYSV_ABI.
7675         (ix86_nsaved_sseregs): Likewise.
7676         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
7677         to 16 bytes.
7678         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
7679         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
7680         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
7681         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
7682         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
7683
7684 2011-03-25  Richard Guenther  <rguenther@suse.de>
7685
7686         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
7687         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7688         (verify_gimple): Remove.
7689         * tree-cfg.c (verify_gimple_call): Merge verification
7690         from verify_stmts.
7691         (verify_gimple_phi): Merge verification from verify_stmts.
7692         (verify_gimple_label): New function.
7693         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
7694         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7695         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
7696         (verify_stmts): Rename to verify_gimple_in_cfg.
7697         (verify_gimple_in_cfg): New function.
7698         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
7699         * tree-ssa.c (verify_ssa): Likewise.
7700         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
7701
7702 2011-03-25  Richard Guenther  <rguenther@suse.de>
7703
7704         * passes.c (init_optimization_passes): Add FRE pass after
7705         early SRA.
7706
7707 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
7708             Andrew Stubbs  <ams@codesourcery.com>
7709
7710         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
7711         for Cortex-A8.
7712         (arm_movdi_vfp_cortexa8): New pattern.
7713         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
7714         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
7715         instructions when tuning for Cortex-A8.  Set attribute "arch".
7716         * config/arm/arm.md: Move include arm-tune.md up a bit.
7717         (define_attr "arch"): Add "onlya8" and "nota8" values.
7718         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
7719
7720 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
7721
7722         PR bootstrap/48282
7723         Revert:
7724         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7725
7726         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7727         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
7728         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7729         * passes.c (init_optimization_passes): Move
7730         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7731
7732 2011-03-25  Kai Tietz  <ktietz@redhat.com>
7733
7734         * c-typeck.c (comptypes_internal): Replace target
7735         hook call of comp_type_attributes by version in tree.c file.
7736         * gimple.c (gimple_types_compatible_p_1): Likewise.
7737         * tree-ssa.c (useless_type_conversion_p): Likewise.
7738         * tree.c (build_type_attribute_qual_variant): Likewise.
7739         (attribute_value_equal): New static helper function.
7740         (comp_type_attributes): New function.
7741         (merge_attributes): Use attribute_value_equal for comparison.
7742         (attribute_list_contained): Likewise.
7743         * tree.h (comp_type_attributes): New prototype.
7744
7745 2011-03-25  Richard Guenther  <rguenther@suse.de>
7746
7747         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
7748         of complex types at -O0.
7749         (verify_gimple_assign_binary): Likewise.
7750         (verify_gimple_assign_ternary): Likewise.
7751
7752 2011-03-24  Mark Wielaard  <mjw@redhat.com>
7753
7754         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
7755         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
7756
7757 2011-03-24  Mark Wielaard  <mjw@redhat.com>
7758
7759         PR debug/48041
7760         * dwarf2out.c (output_abbrev_section): Only write table when
7761         abbrev_die_table_in_use > 1.
7762
7763 2011-02-24  Richard Henderson  <rth@redhat.com>
7764
7765         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
7766         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
7767         (alpha_expand_unaligned_load_words): Use extql.
7768         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
7769         (emit_insxl): Handle all modes for consistency.
7770
7771 2011-02-24  Richard Henderson  <rth@redhat.com>
7772
7773         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
7774         (alpha_expand_unaligned_load): Likewise.
7775         (alpha_expand_unaligned_store): Likewise.
7776         (alpha_expand_unaligned_load_words): Likewise.
7777         (alpha_expand_unaligned_store_words): Likewise.
7778         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
7779         (alpha_split_lock_test_and_set_12): Likewise.
7780         (print_operand, alpha_fold_builtin_extxx): Likewise.
7781         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
7782         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
7783         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
7784         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
7785         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
7786         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
7787         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
7788         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
7789         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
7790         (extwl, extll, extql): Similarly.
7791         (inswh, inslh, insqh): Similarly.
7792         (mskbl, mskwl, mskll, mskql): Similarly.
7793         (mskwh, msklh, mskqh): Similarly.
7794
7795 2011-02-24  Richard Henderson  <rth@redhat.com>
7796
7797         * config/alpha/alpha.md (attribute isa): Add er, ner.
7798         (attribute enabled): Handle them.
7799         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
7800
7801 2011-02-24  Richard Henderson  <rth@redhat.com>
7802
7803         * config/alpha/alpha.md (attribute isa): Add vms.
7804         (attribute enabled): Handle it.
7805         (*movsf): Merge *movsf_{nofix,fix,nofp}.
7806         (*movdf): Merge *movdf_{nofix,fix,nofp}.
7807         (*movtf): Rename from *movtf_internal for consistency.
7808         (*movsi): Merge with *movsi_nt_vms.
7809         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
7810         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
7811         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
7812         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
7813
7814 2011-02-24  Richard Henderson  <rth@redhat.com>
7815
7816         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
7817         (extendqisi2, extendhisi2): Likewise.
7818         (extendqidi2): Simplify BWX/non-BWX expansions.
7819         (extendhidi2): Similarly.
7820
7821 2011-02-24  Richard Henderson  <rth@redhat.com>
7822
7823         * config/alpha/alpha.md (attribute isa): New.
7824         (attribute enabled): New.
7825         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
7826         (zero_extendqisi2, zero_extendqidi2): Similarly.
7827         (zero_extendhisi2, zero_extendhidi2): Similarly.
7828         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
7829
7830 2011-02-24  Richard Henderson  <rth@redhat.com>
7831
7832         * config/alpha/predicates.md (input_operand): Revert last change;
7833         update comment to mention 32-bit VMS rather than Windows.
7834
7835 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7836
7837         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7838         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
7839         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7840         * passes.c (init_optimization_passes): Move
7841         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7842
7843 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7844
7845         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
7846
7847 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
7848
7849         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
7850         correctly.
7851
7852 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
7853
7854         PR debug/48204
7855         * simplify-rtx.c (simplify_const_unary_operation): Call
7856         real_convert when changing mode class with FLOAT_EXTEND.
7857
7858 2011-03-24  Nick Clifton  <nickc@redhat.com>
7859
7860         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
7861         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
7862         * config/rx/rx.c (rx_option_override): Set align_jumps,
7863         align_loops and align_labels if not set by the user.
7864         (rx_align_for_label): New function.
7865         (rx_max_skip_for_label): New function.
7866         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
7867         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
7868         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
7869         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
7870         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
7871
7872 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
7873
7874         PR rtl-optimization/48263
7875         * optabs.c (expand_binop_directly): Reinstate convert_modes code
7876         and original commutative_p handling.  Use maybe_gen_insn.
7877
7878 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7879
7880         * reload.c (find_reloads_subreg_address): Add address_reloaded
7881         parameter and return true there if the full address has been
7882         reloaded.
7883         (find_reloads_toplev): Pass address_reloaded flag.
7884         (find_reloads_address_1): Don't use address_reloaded parameter.
7885
7886 2011-03-24  Jeff Law  <law@redhat.com>
7887
7888         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
7889         unused variable "ann".
7890         (remove_unused_locals): Likewise.
7891
7892         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
7893         statement.
7894
7895         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
7896         after it is freed.
7897
7898 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7899
7900         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
7901         for invalid symbolic addresses.
7902         (s390_secondary_reload): Don't use s390_check_symref_alignment for
7903         larl operands.
7904
7905 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7906
7907         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
7908         the argument in calls to fold_truth_not_expr.
7909
7910 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7911
7912         * tree.c (record_node_allocation_statistics): New function.
7913         (make_node_stat, copy_node_stat, build_string): Call it.
7914         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
7915         (build1_stat, build_omp_clause): Likewise.
7916
7917 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
7918
7919         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
7920         last commit.
7921
7922 2011-03-24  Richard Guenther  <rguenther@suse.de>
7923
7924         PR tree-optimization/48271
7925         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
7926         blocks that still exist.
7927
7928 2011-03-24  Richard Guenther  <rguenther@suse.de>
7929
7930         PR tree-optimization/48270
7931         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
7932         not free datarefs before ddrs.
7933
7934 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
7935
7936         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
7937         from the address built for a reference with variable offset.
7938
7939 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
7940
7941         PR target/48237
7942         * config/i386/i386.md (*movdf_internal_rex64): Do not split
7943         alternatives that can be handled with movq or movabsq insn.
7944         (*movdf_internal): Disable for !TARGET_64BIT.
7945         (*movdf_internal_nointeger): Ditto.
7946         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
7947
7948 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
7949
7950         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7951         (FUNCTION_ARG_ADVANCE): Likewise.
7952         * tm.texi.in: Change references to them to hook references.
7953         * tm.texi: Regenerate.
7954         * targhooks.c (default_function_arg): Eliminate check for target macro.
7955         (default_function_incoming_arg): Likewise.
7956         (default_function_arg_advance): Likewise.
7957         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
7958         (function_arg_advance): Likewise.
7959         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7960
7961 2011-03-24  Richard Guenther  <rguenther@suse.de>
7962
7963         PR middle-end/48269
7964         * tree-object-size.c (addr_object_size): Do not double-account
7965         for MEM_REF offsets.
7966
7967 2011-03-24  Diego Novillo  <dnovillo@google.com>
7968
7969         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
7970         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
7971         (lto_input_data_block): Move from lto-opts.c.  Make extern.
7972         Update all users.
7973         (lto_input_string): Rename from input_string.  Make extern.
7974         Update all users.
7975         * lto-streamer-out.c (lto_output_string_with_length): Rename from
7976         output_string_with_length.
7977         Output 0 to indicate a non-NULL string.  Update all callers to
7978         not emit 0.
7979         (lto_output_string): Rename from output_string.  Make extern.
7980         Update all users.
7981         (lto_output_decl_state_streams): Make extern.
7982         (lto_output_decl_state_refs): Make extern.
7983         * lto-streamer.h (lto_input_string): Declare.
7984         (lto_input_data_block): Declare.
7985         (lto_output_string): Declare.
7986         (lto_output_string_with_length): Declare.
7987         (lto_output_decl_state_streams): Declare.
7988         (lto_output_decl_state_refs): Declare.
7989
7990 2011-03-24  Richard Guenther  <rguenther@suse.de>
7991
7992         PR tree-optimization/46562
7993         * tree.c (build_invariant_address): New function.
7994         * tree.h (build_invariant_address): Declare.
7995         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
7996         a renamed function moved ...
7997         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
7998         Take valueization callback parameter.
7999         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8000         * gimple-fold.h: New file.
8001         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8002         (ccp_fold, fold_const_aggregate_ref,
8003         fold_ctor_reference, fold_nonarray_ctor_reference,
8004         fold_array_ctor_reference, fold_string_cst_ctor_reference,
8005         get_base_constructor): Move ...
8006         * gimple-fold.c: ... here.
8007         (gimple_fold_stmt_to_constant_1): New function
8008         split out from ccp_fold.  Take a valueization callback parameter.
8009         Valueize all operands.
8010         (gimple_fold_stmt_to_constant): New wrapper function.
8011         (fold_const_aggregate_ref_1): New function split out from
8012         fold_const_aggregate_ref.  Take a valueization callback parameter.
8013         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8014         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8015         invariant POINTER_PLUS_EXPRs to invariant form.
8016         (vn_valueize): New function.
8017         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8018         * tree-vrp.c (vrp_valueize): New function.
8019         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8020         to fold statements to constants.
8021         * tree-ssa-pre.c (eliminate): Properly guard propagation of
8022         function declarations.
8023         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8024         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8025
8026 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
8027
8028         * config/h8300/predicates.md (jump_address_operand): Fix register
8029         mode check.
8030
8031 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
8032
8033         * doc/invoke.texi (max-stores-to-sink): Document.
8034         * params.h (MAX_STORES_TO_SINK): Define.
8035         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8036         if either vectorization or if-conversion is disabled.
8037         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8038         tree-vect-data-refs.c vect_equal_offsets.
8039         (dr_equal_offsets_p): New function.
8040         (find_data_references_in_bb): Remove static.
8041         * tree-data-ref.h (find_data_references_in_bb): Declare.
8042         (dr_equal_offsets_p): Likewise.
8043         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8044         (vect_drs_dependent_in_basic_block): Update calls to
8045         vect_equal_offsets.
8046         (vect_check_interleaving): Likewise.
8047         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8048         (cond_if_else_store_replacement): Rename to...
8049         (cond_if_else_store_replacement_1): ... this.  Change arguments and
8050         documentation.
8051         (cond_if_else_store_replacement): New function.
8052         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8053         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8054
8055 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
8056
8057         PR target/46934
8058         * config/arm/arm.md (casesi): Use the gen_int_mode() function
8059         to subtract lower bound instead of GEN_INT().
8060
8061 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
8062
8063         PR other/48179
8064         PR other/48221
8065         PR other/48234
8066         * doc/extend.texi (Alignment): Move section to match order in TOC.
8067         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8068         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8069
8070 2011-03-23  Jeff Law  <law@redhat.com>
8071
8072         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8073         before removing the edge.
8074
8075         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8076         it may have been freed by redirect_branch_edge or
8077         redirect_edge_succ_nodup.
8078
8079 2011-03-23  Richard Guenther  <rguenther@suse.de>
8080
8081         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
8082         (check_va_list_escapes): Likewise.
8083         (check_all_va_list_escapes): Likewise.
8084
8085 2011-03-23  Richard Guenther  <rguenther@suse.de>
8086
8087         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8088         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8089         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8090         (alias.o): Likewise.
8091         (ipa-type-escape.o): Remove.
8092         (ipa-struct-reorg.o): Likewise.
8093         (GTFILES): Remove ipa-struct-reorg.c.
8094         * alias.c: Do not include ipa-type-escape.h.
8095         * tree-ssa-alias.c: Likewise.
8096         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8097         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8098         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8099         and ipa-type-escape passes.
8100         * tree-pass.h (pass_ipa_type_escape): Remove.
8101         (pass_ipa_struct_reorg): Likewise.
8102         * ipa-struct-reorg.h: Remove.
8103         * ipa-struct-reorg.c: Likewise.
8104         * ipa-type-escape.h: Likewise.
8105         * ipa-type-escape.c: Likewise.
8106         * doc/invoke.texi (-fipa-struct-reorg): Remove.
8107         (--param struct-reorg-cold-struct-ratio): Likewise.
8108         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8109         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8110         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8111
8112 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8113
8114         * config/s390/2084.md: Enable all insn reservations also for z9_ec
8115         cpu attribute value.
8116         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8117         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8118         * config/s390/s390.c (processor_flags_table): New constant array.
8119         (s390_handle_arch_option): Remove.
8120         (s390_handle_option): Remove s390_handle_arch_option invocations
8121         and OPT_mwarn_framesize_ handling.
8122         (s390_option_override): Remove s390_handle_arch_option invocation.
8123         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8124         warnings.
8125         * config/s390/s390.md (cpu attribute): Add z9_ec value.
8126         * config/s390/s390.opt (s390_tune, s390_arch)
8127         (march=): Replace s390_arch_option enum and values with
8128         processor_type.  Set variable name to s390_arch.  Set
8129         initialization value.
8130         (mtune=): Replace s390_arch_option with processor_type.  Set
8131         variable name to s390_tune.  Set initialization value.
8132
8133 2011-03-23  Julian Brown  <julian@codesourcery.com>
8134
8135         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8136         accesses which are not naturally aligned.
8137
8138 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8139
8140         PR target/47553
8141         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8142
8143 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
8144
8145         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8146         parameter from "int" to "enum insn_code".
8147         (expand_operand_type): New enum.
8148         (expand_operand): New structure.
8149         (create_expand_operand): New function.
8150         (create_fixed_operand, create_output_operand): Likewise
8151         (create_input_operand, create_convert_operand_to): Likewise.
8152         (create_convert_operand_from, create_address_operand): Likewise.
8153         (create_integer_operand): Likewise.
8154         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8155         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8156         (expand_insn, expand_jump_insn): Likewise.
8157         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8158         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8159         (expand_movstr, expand_builtin___clear_cache): Likewise.
8160         (expand_builtin_lock_release): Likewise.
8161         * explow.c (allocate_dynamic_stack_space): Likewise.
8162         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
8163         and use the default handling in that case.
8164         * expmed.c (check_predicate_volatile_ok): Delete.
8165         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8166         (emit_cstore): Likewise.
8167         * expr.c (emit_block_move_via_movmem): Likewise.
8168         (set_storage_via_setmem, expand_assignment): Likewise.
8169         (emit_storent_insn, try_casesi): Likewise.
8170         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
8171         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8172         (expand_vec_shift_expr, expand_binop_directly): Likewise.
8173         (expand_twoval_unop, expand_twoval_binop): Likewise.
8174         (expand_unop_direct, emit_indirect_jump): Likewise.
8175         (emit_conditional_move, vector_compare_rtx): Likewise.
8176         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8177         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8178         (expand_sync_lock_test_and_set): Likewise.
8179         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
8180         (emit_unop_insn): Likewise.
8181         (expand_copysign_absneg): Change icode to an insn_code.
8182         (create_convert_operand_from_type): New function.
8183         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8184         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8185         (expand_insn, expand_jump_insn): Likewise.
8186         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8187         than const_int_operand for operand 2.
8188
8189 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8190
8191         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8192         if possible.
8193
8194 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8195
8196         * emit-rtl.c (emit_pattern_before_noloc): New function.
8197         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8198         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8199         (emit_pattern_after_noloc): New function.
8200         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8201         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8202
8203 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8204
8205         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8206         (__ffsDI2): Likewise.
8207
8208 2011-03-22  Richard Henderson  <rth@redhat.com>
8209
8210         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8211         of !TARGET_ABI_OPEN_VMS.
8212         (alpha_trampoline_init, alpha_start_function): Likewise.
8213         (alpha_expand_epilogue, alpha_file_start): Likewise.
8214         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8215         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8216         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8217         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8218         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8219
8220 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8221
8222         * config/s390/s390-opts.h: New.
8223         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8224         s390_arch_flags, s390_warn_framesize, s390_stack_size,
8225         s390_stack_guard): Remove.
8226         (s390_handle_arch_option): Return void.  Take enum
8227         s390_arch_option value instead of string and searching array.
8228         (s390_handle_option): Don't assert that global structures are in
8229         use.  Access variables via opts pointer.  Use error_at.  Don't use
8230         sscanf for -mstack-guard= or -mstack-size=.  Update call to
8231         s390_handle_arch_option.
8232         (s390_option_override): Update call to s390_handle_arch_option.
8233         (s390_emit_prologue): Use %d format for s390_stack_size in
8234         diagnostic.  Use %wd for HOST_WIDE_INT.
8235         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8236         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8237         * config/s390/s390.opt (config/s390/s390-opts.h): New
8238         HeaderInclude entry.
8239         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8240         s390_arch_flags, s390_warn_framesize): New Variable entries.
8241         (s390_arch_option): New Enum and EnumValue entries.
8242         (march=): Use Enum instead of Var.
8243         (mstack-guard=, mstack-size=): Use UInteger and Var.
8244         (mtune=): Use Enum.
8245
8246 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8247
8248         * config/score/score.c (score_handle_option): Don't assert that
8249         global structures are in use.  Access target_flags via opts
8250         pointer.  Use value of -march= option to determine target_flags
8251         settings.
8252         * config/score/score.opt (march=): Use Enum.
8253         (score_arch): New Enum and EnumValue entries.
8254
8255 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8256
8257         * config/mep/mep.c (option_mtiny_specified): Remove.
8258         (mep_option_override): Move register handling for -mivc2 from
8259         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
8260         instead of option_mtiny_specified.
8261         (mep_handle_option): Access target_flags via opts pointer.  Don't
8262         assert that global structures are in use.  Defer part of -mivc2
8263         handling and move it to mep_option_override.
8264         * config/mep/mep.opt (IVC2): New Mask entry.
8265         (mivc2): Use Var and Defer instead of Mask.
8266
8267 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8268
8269         * config/v850/v850-opts.h: New.
8270         * config/v850/v850.c (small_memory): Replace with
8271         small_memory_physical_max array.  Make that array static const.
8272         (v850_handle_memory_option): Take integer value of argument.  Take
8273         gcc_options pointer, option text and location.  Return void.
8274         Update for changes to small memory structures.
8275         (v850_handle_option): Access target_flags via opts pointer.  Don't
8276         assert that global structures are in use.  Update calls to
8277         v850_handle_memory_option.
8278         (v850_encode_data_area): Update references to small memory settings.
8279         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
8280         (enum small_memory_type): Move to v850-opts.h.
8281         * config/v850/v850.opt (config/v850/v850-opts.h): New
8282         HeaderInclude entry.
8283         (small_memory_max): New Variable entry.
8284         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
8285         (mtda, mzda): Likewise.
8286
8287 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8288
8289         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8290         pointer.  Don't assert that global structures are in use.
8291
8292 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8293
8294         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8295         via opts pointer.  Don't assert that global structures are in use.
8296
8297 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8298
8299         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8300         (munix=93): Use Var.
8301         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8302         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8303         * config/pa/pa-opts.h: New.
8304         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8305         (pa_handle_option): Don't assert that global structures are in
8306         use.  Access target_flags via opts pointer.  Don't handle
8307         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8308         OPT_munix_98 here.
8309         (pa_option_override): Handle deferred OPT_mfixed_range_.
8310
8311 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8312
8313         * config/mn10300/mn10300-opts.h: New.
8314         * config/mn10300/mn10300.c (mn10300_processor,
8315         mn10300_tune_string): Remove.
8316         (mn10300_handle_option): Don't assert that global structures are
8317         in use.  Access mn10300_processor via opts pointer.  Don't handle
8318         OPT_mtune_ here.
8319         * config/mn10300/mn10300.h (enum processor_type): Move to
8320         mn10300-opts.h.
8321         (mn10300_processor): Remove.
8322         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8323         HeaderInclude entry.
8324         (mn10300_processor): New Variable entry.
8325         (mtune=): Use Var.
8326
8327 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8328
8329         * config/microblaze/microblaze.c: Don't include opts.h.
8330         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8331         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8332         (mno-clearbss): Use Var and Warn.
8333
8334 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8335
8336         * config/m32r/m32r-opts.h: New.
8337         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8338         (m32r_handle_option): Don't assert that global structures are in
8339         use.  Access target_flags and m32r_cache_flush_func via opts
8340         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
8341         OPT_mno_flush_trap here.
8342         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8343         include of m32r-opts.h.
8344         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8345         HeaderInclude entry.
8346         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8347         (mmodel=): Use Enum and Var.
8348         (m32r_model): New Enum and EnumValue entries.
8349         (mno-flush-trap): Use Var.
8350         (msdata=): Use Enum and Var.
8351         (m32r_sdata): New Enum and EnumValue entries.
8352
8353 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8354
8355         * config/m32c/m32c.c: Don't include opts.h.
8356         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8357         m32c_handle_option): Remove.
8358         (m32c_option_override): Check global_options_set.x_target_memregs
8359         instead of target_memregs_set.
8360         * config/m32c/m32c.h (target_memregs): Remove.
8361         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8362         variable.
8363
8364 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8365
8366         * config/iq2000/iq2000-opts.h: New.
8367         * config/iq2000/iq2000.c: Don't include opts.h.
8368         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
8369         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
8370         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8371         HeaderInclude entry.
8372         (iq2000_tune): New Variable entry.
8373         (march=): Add comment.  Use Enum.
8374         (iq2000_arch): New Enum and EnumValue entries.
8375         (mcpu=): Use Enum and Var.
8376         (iq2000_tune): New Enum and EnumValue entries.
8377
8378 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8379
8380         * config/ia64/ia64-opts.h: New.
8381         * config/ia64/ia64.c (ia64_tune): Remove.
8382         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8383         here.  Use error_at.
8384         (ia64_option_override): Handle deferred OPT_mfixed_range_.
8385         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8386         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8387         HeaderInclude entry.
8388         (ia64_tune): New Variable entry.
8389         (mfixed-range=): Use Defer and Var.
8390         (mtune=): Use Enum and Var.
8391         (ia64_tune): New Enum and EnumValue entries.
8392
8393 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8394
8395         * config/frv/frv-opts.h: New.
8396         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8397         frv-opts.h.
8398         (frv_cpu_type): Remove.
8399         * config/frv/frv.c: Don't include opts.h.
8400         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
8401         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
8402         (frv_cpu_type): New Variable entry.
8403         (frv_cpu): New Enum and EnumValue entries.
8404
8405 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8406
8407         * config/cris/cris.c (cris_handle_option): Access target_flags via
8408         opts pointer.  Don't assert that global structures are in use.
8409         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8410         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8411
8412 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8413
8414         * config/bfin/bfin-opts.h: New.
8415         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8416         bfin_si_revision, bfin_workarounds): Remove.
8417         (bfin_cpus): Make static const.
8418         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8419         not bfin_lib_id_given.
8420         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
8421         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
8422         pointer. Use error_at.  Don't assert that global structures are in use.
8423         * config/bfin/bfin.h: Include bfin-opts.h.
8424         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8425         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8426         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8427         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8428         entries.
8429
8430 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8431
8432         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8433         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8434         or -msoft-float here.
8435         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8436         -msoft-float and -mhard-float.
8437         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
8438         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8439         msoft-float.
8440         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8441         -msoft-float.
8442         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8443         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8444         not mhard-float.
8445         (LIBGCC_SPEC): Don't handle -msoft-float.
8446         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8447         -mhard-float.
8448         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8449         msoft-float.
8450         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8451         -mfloat-abi=*, not -msoft-float and -mhard-float.
8452         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8453         -msoft-float.
8454         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8455         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8456         mhard-float and msoft-float.
8457         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8458         mfloat-abi=soft in comments, not mhard-float and msoft-float.
8459         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8460         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8461         mhard-float.
8462         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8463         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8464         msoft-float.
8465         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8466         not mhard-float.
8467         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8468         not msoft-float.
8469
8470 2011-03-22  Richard Henderson  <rth@redhat.com>
8471
8472         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8473         TARGET_ABI_WINDOWS_NT.
8474         (alpha_output_function_end_prologue): Likewise.
8475         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8476         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8477         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8478         (trap, *movsi_nt_vms): Likewise.
8479         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8480         (*tablejump_osf_nt_internal): Remove.
8481         * config/alpha/predicates.md (input_operand): Only test Pmode.
8482
8483 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8484
8485         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8486         via opts pointer.  Use error_at.  Don't assert that global
8487         structures are in use.
8488
8489 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8490
8491         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8492         (ix86_handle_option): Access ix86_isa_flags and
8493         ix86_isa_flags_explicit via opts pointer.  Don't assert that
8494         global structures are in use.
8495         (ix86_function_specific_save, ix86_function_specific_restore):
8496         Update ix86_isa_flags_explicit field name.
8497         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
8498         (ix86_isa_flags_explicit): Rename TargetSave entry to
8499         x_ix86_isa_flags_explicit.
8500
8501 2011-03-22  Richard Henderson  <rth@redhat.com>
8502
8503         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8504         (alpha_option_override, direct_return): Likewise.
8505         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8506         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8507         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8508         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8509         (alpha_expand_epilogue, alpha_end_function): Likewise.
8510         (alpha_init_libfuncs): Likewise.
8511         (struct machine_function): Remove unicosmk members.
8512         (print_operand) ['t']: Remove.
8513         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8514         unicosmk_output_module_name, unicosmk_output_common,
8515         current_section_align, unicosmk_output_text_section_asm_op,
8516         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8517         unicosmk_section_type_flags, unicosmk_unique_section,
8518         unicosmk_asm_named_section, unicosmk_insert_attributes,
8519         unicosmk_output_align, unicosmk_defer_case_vector,
8520         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
8521         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
8522         unicosmk_output_ssib, unicosmk_add_call_info_word,
8523         unicosmk_extern_head, unicosmk_output_default_externs,
8524         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
8525         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
8526         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
8527         * config/alpha/alpha-protos.h: Update.
8528         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
8529         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
8530         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
8531         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
8532         (*mulsi_se, mulvsi3): Likewise.
8533         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
8534         (*divmodsi_internal, call, call_value, realign): Likewise.
8535         (moddi3, umoddi3): Likewise; remove duplicate expander.
8536         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
8537         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
8538         (*movdi_nofix): Remove r/U alternative.
8539         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
8540         * config/alpha/constraints.md ("U"): Remove.
8541         * config/alpha/predicates.md (call_operand"): Don't test
8542         TARGET_ABI_UNICOSMK.
8543
8544 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8545
8546         * target.def (handle_option): Take gcc_options and
8547         cl_decoded_option pointers and location_t.
8548         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
8549         * doc/tm.texi: Regenerate.
8550         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
8551         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
8552         * lto-opts.c (lto_reissue_options): Generate option structure for
8553         targetm.handle_option call.
8554         * opts.c (target_handle_option): Update call to
8555         targetm.handle_option.  Remove assertions about values now passed
8556         down to hook.
8557         * targhooks.c (default_target_handle_option): New.
8558         * targhooks.h (default_target_handle_option): Declare.
8559         * config/alpha/alpha.c: Include opts.h.
8560         (alpha_handle_option): Update to new hook interface.
8561         * config/arm/arm.c: Include opts.h.
8562         (arm_handle_option): Update to new hook interface.
8563         * config/arm/t-arm (arm.o): Update dependencies.
8564         * config/bfin/bfin.c: Include opts.h.
8565         (bfin_handle_option): Update to new hook interface.
8566         * config/cris/cris.c: Include opts.h.
8567         (cris_handle_option): Update to new hook interface.
8568         * config/frv/frv.c: Include opts.h.
8569         (frv_handle_option): Update to new hook interface.
8570         * config/i386/i386.c: Include opts.h.
8571         (ix86_handle_option): Update to new hook interface.
8572         (ix86_valid_target_attribute_inner_p): Generate option structure
8573         for call to ix86_handle_option.
8574         * config/i386/t-i386 (i386.o): Update dependencies.
8575         * config/ia64/ia64.c: Include opts.h.
8576         (ia64_handle_option): Update to new hook interface.
8577         * config/ia64/t-ia64 (ia64.o): Update dependencies.
8578         * config/iq2000/iq2000.c: Include opts.h.
8579         (iq2000_handle_option): Update to new hook interface.
8580         * config/m32c/m32c.c: Include opts.h.
8581         (m32c_handle_option): Update to new hook interface.
8582         * config/m32r/m32r.c: Include opts.h.
8583         (m32r_handle_option): Update to new hook interface.
8584         * config/m68k/m68k.c: Include opts.h.
8585         (m68k_handle_option): Update to new hook interface.
8586         * config/mep/mep.c: Include opts.h.
8587         (mep_handle_option): Update to new hook interface.
8588         * config/microblaze/microblaze.c: Include opts.h.
8589         (microblaze_handle_option): Update to new hook interface.
8590         * config/mips/mips.c: Include opts.h.
8591         (mips_handle_option): Update to new hook interface.
8592         * config/mn10300/mn10300.c: Include opts.h.
8593         (mn10300_handle_option): Update to new hook interface.
8594         * config/pa/pa.c: Include opts.h.
8595         (pa_handle_option): Update to new hook interface.
8596         * config/pdp11/pdp11.c: Include opts.h.
8597         (pdp11_handle_option): Update to new hook interface.
8598         * config/rs6000/rs6000.c: Include opts.h.
8599         (rs6000_handle_option): Update to new hook interface.
8600         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
8601         * config/rx/rx.c: Include opts.h.
8602         (rx_handle_option): Update to new hook interface.
8603         * config/s390/s390.c: Include opts.h.
8604         (s390_handle_option): Update to new hook interface.
8605         * config/score/score.c: Include opts.h.
8606         (score_handle_option): Update to new hook interface.
8607         * config/sh/sh.c: Include opts.h.
8608         (sh_handle_option): Update to new hook interface.
8609         * config/sparc/sparc.c: Include opts.h.
8610         (sparc_handle_option): Update to new hook interface.
8611         * config/v850/v850.c: Include opts.h.
8612         (v850_handle_option): Update to new hook interface.
8613
8614 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8615
8616         * gcc.c (driver_unknown_option_callback): Only permit and save
8617         unknown -Wno- options.
8618         (driver_wrong_lang_callback): Save options directly instead of via
8619         driver_unknown_option_callback.
8620
8621 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
8622
8623         * combine.c (simplify_set): Try harder to find the best CC mode when
8624         simplifying a nested COMPARE on the RHS.
8625
8626 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
8627
8628         * config/alpha/gnu.h: Remove.
8629         * config/arc: Remove directory.
8630         * config/arm/netbsd.h: Remove.
8631         * config/arm/t-pe: Remove.
8632         * config/crx: Remove directory.
8633         * config/i386/netbsd.h: Remove.
8634         * config/m68hc11: Remove directory.
8635         * config/m68k/uclinux-oldabi.h: Remove.
8636         * config/mcore/mcore-pe.h: Remove.
8637         * config/mcore/t-mcore-pe: Remove.
8638         * config/netbsd-aout.h: Remove.
8639         * config/rs6000/gnu.h: Remove.
8640         * config/sh/sh-symbian.h: Remove.
8641         * config/sh/symbian-base.c: Remove.
8642         * config/sh/symbian-c.c: Remove.
8643         * config/sh/symbian-cxx.c: Remove.
8644         * config/sh/symbian-post.h: Remove.
8645         * config/sh/symbian-pre.h: Remove.
8646         * config/sh/t-symbian: Remove.
8647         * config/svr3.h: Remove.
8648         * config/vax/netbsd.h: Remove.
8649         * config.build: Don't handle i[34567]86-*-pe.
8650         * config.gcc: Remove handling of deprecations for most deprecated
8651         targets.
8652         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
8653         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
8654         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
8655         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
8656         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
8657         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
8658         Remove cases.
8659         * config.host: Don't handle i[34567]86-*-pe.
8660         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
8661         (ASM_SPEC32): Don't handle -mcall-gnu.
8662         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
8663         -mcall-gnu.
8664         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
8665         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
8666         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8667         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
8668         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
8669         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
8670         conditional on SYMBIAN.
8671         * configure.ac: Don't handle powerpc*-*-gnu*.
8672         * configure: Regenerate.
8673         * doc/extend.texi (interrupt attribute): Don't mention CRX.
8674         * doc/install-old.texi (m6811, m6812): Don't mention.
8675         * doc/install.texi (arc-*-elf*): Don't document multilib option.
8676         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
8677         (m68k-uclinuxoldabi): Don't mention.
8678         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
8679         Remove.
8680         (-mcall-gnu): Remove.
8681         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
8682         families): Remove constraint documentation.
8683
8684 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
8685
8686         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
8687         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
8688         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
8689
8690 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
8691
8692         PR target/48226
8693         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
8694         vector when peeking at the next token for vector, don't expand the
8695         keywords.
8696
8697 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
8698
8699         * config/avr/avr-protos.h (expand_epilogue): Change prototype
8700         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
8701         * config/avr/avr.c (init_cumulative_args)
8702         (avr_function_arg_advance): Use it.
8703         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
8704         sibcall epilogues.
8705         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
8706         (avr_function_ok_for_sibcall): ...this new function.
8707         (avr_lookup_function_attribute1): New static Function.
8708         (avr_naked_function_p, interrupt_function_p)
8709         (signal_function_p, avr_OS_task_function_p)
8710         (avr_OS_main_function_p): Use it.
8711         * config/avr/avr.md ("sibcall", "sibcall_value")
8712         ("sibcall_epilogue"): New expander.
8713         ("*call_insn", "*call_value_insn"): New insn.
8714         ("call_insn", "call_value_insn"): Remove
8715         ("call", "call_value", "epilogue"): Change expander to handle
8716         sibling calls.
8717
8718 2011-03-21  Nick Clifton  <nickc@redhat.com>
8719
8720         * doc/invoke.texi (Overall Options): Move closing brace to end of
8721         options list.
8722         (Optimization Options): Add missing @gol.
8723         (Directory Options): Likewise.
8724         (i386 and x86-64 Options): Likewise.
8725         (RS6000 and PowerPC Options): Likewise.
8726         (i386 and x86-64 Windows Options): Likewise.
8727         (V850 Options): Add text missing from descriptions.
8728
8729 2011-03-22  Richard Henderson  <rth@redhat.com>
8730
8731         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
8732         (avr_incoming_return_addr_rtx): New.
8733         (emit_push_byte): New.
8734         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
8735         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
8736         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
8737         (emit_pop_byte): New.
8738         (expand_epilogue): Use it.  Pop frame pointer by bytes.
8739         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
8740         (INCOMING_RETURN_ADDR_RTX): New.
8741         (INCOMING_FRAME_SP_OFFSET): New.
8742         (ARG_POINTER_CFA_OFFSET): New.
8743         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
8744         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
8745         (pophi): Remove.
8746
8747         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
8748
8749 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8750
8751         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8752         (FUNCTION_ARG_ADVANCE): Likewise.
8753         * tm.texi.in: Change references to them to hook references.
8754         * tm.texi: Regenerate.
8755         * targhooks.c (default_function_arg): Eliminate check for target
8756         macro.
8757         (default_function_incoming_arg): Likewise.
8758         (default_function_arg_advance): Likewise.
8759         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8760         (function_arg_advance): Likewise.
8761         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8762
8763 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
8764
8765         * tree.c (build_call_1): New function.
8766         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
8767
8768 2011-03-22  Richard Guenther  <rguenther@suse.de>
8769
8770         PR tree-optimization/48228
8771         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
8772         for single-arg PHIs.
8773
8774 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
8775
8776         PR rtl-optimization/48143
8777         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
8778         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
8779         sse2_cvtps2pd): Likewise.
8780
8781 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8782
8783         * recog.c (canonicalize_change_group): Use validate_unshare_change.
8784
8785 2011-03-22  Richard Guenther  <rguenther@suse.de>
8786
8787         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
8788         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
8789         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
8790         and REALIGN_LOAD_EXPR.
8791         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
8792         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
8793         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
8794         DOT_PROD_EXPR case ...
8795         (expand_expr_real_2): ... here.
8796         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
8797         and REALIGN_LOAD_EXPR.
8798         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
8799         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
8800         (vect_create_epilog_for_reduction): Likewise.
8801         (vectorizable_reduction): Likewise.
8802         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
8803         * tree-vect-stmts.c (vectorizable_load): Likewise.
8804
8805 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
8806
8807         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
8808
8809 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8810
8811         * config/s390/s390.c (s390_delegitimize_address): Fix offset
8812         handling for PLTOFF/GOTOFF.
8813
8814 2011-03-22  Nick Clifton  <nickc@redhat.com>
8815
8816         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
8817         trailing backslash from the end of the macro definition.
8818
8819 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8820
8821         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
8822         and PLT unspecs.
8823
8824 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
8825
8826         * expr.h (prepare_operand): Move to...
8827         * optabs.h (prepare_operand): ...here and change the insn code
8828         parameter from "int" to "enum insn_code".
8829         (insn_operand_matches): Declare.
8830         * expr.c (init_expr_target): Use insn_operand_matches.
8831         (compress_float_constant): Likewise.
8832         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
8833         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
8834         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
8835         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
8836         Likewise.
8837         (gen_cond_trap): Likewise.
8838         (prepare_operand): Likewise.  Change icode to an insn_code.
8839         (insn_operand_matches): New function.
8840         * reload.c (find_reloads_address_1): Use insn_operand_matches.
8841         * reload1.c (gen_reload): Likewise.
8842         * targhooks.c (default_secondary_reload): Likewise.
8843
8844 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
8845
8846         * config/alpha/alpha.md (unspec): New define_c_enum.
8847         (unspecv): Ditto.
8848
8849 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
8850
8851         PR debug/48214
8852         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
8853         between a call and its CALL_ARG_LOCATION note.
8854
8855 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
8856
8857         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
8858
8859 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
8860
8861         PR c/42544
8862         PR c/48197
8863         * c-common.c (shorten_compare): If primopN is first sign-extended
8864         to opN and then zero-extended to result type, set primopN to opN.
8865
8866 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
8867
8868         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
8869         for barrier handlers.
8870
8871 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
8872
8873         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
8874         UNSPEC constants to be in the unspec enumeration, and redefine
8875         all UNSPECV constants to be in the unspecv enumeration, so that
8876         dumps print which unspec/unspec_volatile this is.
8877         * config/rs6000/vector.md (UNSPEC_*): Ditto.
8878         * config/rs6000/paired.md (UNSPEC_*): Ditto.
8879         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
8880         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
8881         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
8882
8883         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
8884         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
8885         UNSPECV_LWSYNC, since these are used as unspec_volatile.
8886         * config/rs6000/sync.md (isync, lwsync): Ditto.
8887
8888 2011-03-21  Richard Guenther  <rguenther@suse.de>
8889
8890         * params.def (lto-min-partition): Fix typo.
8891
8892 2011-03-21  Richard Guenther  <rguenther@suse.de>
8893
8894         PR c/47939
8895         * c-decl.c (grokdeclarator): Drop to the main variant only
8896         for array types.  Drop flag_gen_aux_info check.
8897
8898 2011-03-21  Richard Guenther  <rguenther@suse.de>
8899
8900         PR translation/47911
8901         * params.def (lto-partitions): Fix typo.
8902         (lto-min-partition): Fix wording.
8903
8904 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
8905
8906         * config/rs6000/t-freebsd: Remove duplication from file.
8907
8908 2011-03-21  Richard Guenther  <rguenther@suse.de>
8909
8910         PR middle-end/47661
8911         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
8912
8913 2011-03-21  Richard Guenther  <rguenther@suse.de>
8914
8915         PR lto/48210
8916         * params.def (lto-partitions): Require at least 1 partition.
8917
8918 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8919
8920         * gthr-solaris.h: Remove.
8921         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
8922         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
8923         (LIB_SPEC): Likewise.
8924         * config/sol2.opt (threads): Remove.
8925         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
8926         (sparc*-*-solaris2*): Likewise.
8927         * configure.ac (enable_threads): Enable solaris support.
8928         * configure: Regenerate.
8929         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
8930         * doc/install.texi (Configuration, --enable-threads=lib): Remove
8931         solaris.
8932
8933 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8934
8935         * config.gcc: Obsolete *-*-solaris2.8*.
8936         * doc/install.texi (Specific, *-*-solaris2*): Document it.
8937
8938 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8939
8940         PR bootstrap/48135
8941         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
8942         reference.  Solaris 8 perl works.
8943
8944 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8945
8946         PR bootstrap/48135
8947         * doc/install.texi (Prerequisites): Move jar etc. up.
8948         Explain support library version requirements.
8949
8950 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8951
8952         PR bootstrap/48135
8953         * doc/install.texi (Prerequisites): Move Perl to build
8954         requirements.  Always necessary on Solaris 2 with Sun ld.
8955
8956 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8957
8958         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
8959         binutils 2.21.
8960         (Specific, i?86-*-solaris2.[89]): Likewise.
8961         (Specific, i?86-*-solaris2.10): Likewise.
8962         (Specific, mips-sgi-irix6): Likewise.
8963         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
8964         Update for binutils 2.21.
8965
8966 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8967
8968         * configure.ac (gcc_cv_lto_plugin): Fix typo.
8969         Allow -fuse-linker-plugin for non-default plugin linker.
8970         * configure: Regenerate.
8971
8972 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8973
8974         PR bootstrap/48167
8975         * gengtype.c (files_rules): Added rule for cp/parser.h.
8976
8977 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
8978
8979         PR target/48213
8980         * config/s390/s390.c (s390_delegitimize_address): Don't call
8981         lowpart_subreg if orig_x has BLKmode.
8982
8983 2011-03-21  Kai Tietz  <ktietz@redhat.com>
8984
8985         PR target/12171
8986         * doc/plugins.texi: Adjust documentation for plugin register_callback.
8987         * tree.h (attribute_spec): Add new member affects_type_identity.
8988         * attribs.c (empty_attribute_table): Adjust attribute_spec
8989         initializers.
8990         * config/alpha/alpha.c: Likewise.
8991         * config/arc/arc.c: Likewise.
8992         * config/arm/arm.c: Likewise.
8993         * config/avr/avr.c: Likewise.
8994         * config/bfin/bfin.c: Likewise.
8995         * config/crx/crx.c: Likewise.
8996         * config/darwin.h: Likewise.
8997         * config/h8300/h8300.c: Likewise.
8998         * config/i386/cygming.h: Likewise.
8999         * config/i386/i386.c: Likewise.
9000         * config/ia64/ia64.c: Likewise.
9001         * config/m32c/m32c.c: Likewise.
9002         * config/m32r/m32r.c: Likewise.
9003         * config/m68hc11/m68hc11.c: Likewise.
9004         * config/m68k/m68k.c: Likewise.
9005         * config/mcore/mcore.c: Likewise.
9006         * config/mep/mep.c: Likewise.
9007         * config/microblaze/microblaze.c: Likewise.
9008         * config/mips/mips.c: Likewise.
9009         * config/rs6000/rs6000.c: Likewise.
9010         * config/rx/rx.c: Likewise.
9011         * config/sh/sh.c: Likewise.
9012         * config/sol2.h: Likewise.
9013         * config/sparc/sparc.c: Likewise.
9014         * config/spu/spu.c: Likewise.
9015         * config/stormy16/stormy16.c: Likewise.
9016         * config/v850/v850.c: Likewise.
9017
9018 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
9019
9020         * simplify-rtx.c (simplify_binary_operation_1): Handle
9021         (xor (and A B) C) case when B and C are both constants.
9022
9023 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
9024
9025         * tree-dfa.c (add_referenced_var): Fix typo in comment.
9026
9027 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
9028
9029         PR bootstrap/48168
9030         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9031
9032 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
9033
9034         PR rtl-optimization/48156
9035         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9036         assume df and df_lr are not NULL.
9037
9038 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9039
9040         PR debug/48023
9041         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9042         between a call and its CALL_ARG_LOCATION note.
9043
9044 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
9045
9046         PR debug/48178
9047         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9048         between a call and its corresponding CALL_ARG_LOCATION note.
9049
9050 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
9051
9052         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9053         instead of loop. Use HARD_REGISTER_NUM_P predicate.
9054         * haifa-sched.c (setup_ref_regs): Ditto.
9055         * caller-save.c (add_used_regs_1): Ditto.
9056         * dse.c (look_for_hardregs): Ditto.
9057         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9058         * sched-rgn.c (check_live_1): Ditto.
9059
9060 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9061
9062         * c-decl.c (diagnose_mismatched_decls): Give an error for
9063         redefining a typedef with variably modified type.
9064
9065 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
9066
9067         * c-decl.c (grokfield): Don't allow typedefs for structures or
9068         unions with no tag by default.
9069         * doc/extend.texi (Unnamed Fields): Update.
9070
9071 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
9072
9073         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9074         Rewrite using indirect functions.
9075         (lwp_slwpcb): Ditto.
9076         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9077         (avx_vinsertf128<mode>): Ditto.
9078
9079 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9080
9081         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9082         unspecs.
9083
9084 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9085
9086         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9087         splitting between a call and its corresponding CALL_ARG_LOCATION note.
9088
9089 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
9090
9091         PR rtl-optimization/48170
9092         * gcse.c (hoist_code): Remove bogus asserts.
9093
9094 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
9095
9096         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9097         computation for prologue/epilogue.
9098
9099 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9100
9101         * Makefile.in (check-consistency): Remove.
9102
9103 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
9104
9105         PR debug/48176
9106         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9107         arange_table_in_use is 0, but either text_section_used or
9108         cold_text_section_used is true.  Don't call it if
9109         !info_section_emitted.
9110
9111 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
9112
9113         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9114         FUNCTION_VALUE_REGNO_P): Remove.
9115         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9116         Remove.
9117         * config/avr/avr.c (avr_ret_register): Make static inline.
9118         (avr_function_value_regno_p): New function.
9119         (avr_libcall_value): Make static. Add 'func' argument.
9120         (avr_function_value): Make static. Rename 'func' argument to
9121         'fn_decl_or_type', forward it to avr_libcall_value. Call
9122         avr_ret_register function instead of RET_REGISTER macro.
9123         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9124
9125 2011-03-18  Jason Merrill  <jason@redhat.com>
9126
9127         PR c++/23372
9128         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9129
9130 2011-03-18  Richard Guenther  <rguenther@suse.de>
9131
9132         * doc/install.texi (--enable-gold): Remove.
9133         (--with-plugin-ld): Document.
9134         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9135
9136 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
9137
9138         PR middle-end/47790
9139         * expr.c (optimize_bitfield_assignment_op): Revamp to work
9140         again after expansion changes.
9141
9142 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
9143
9144         * combine.c (try_combine): Do simplification only call of
9145         subst() on i2 even when i1 is present. Update comments.
9146
9147 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
9148
9149         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9150         and UNSPEC_PCREL_SYMOFF.
9151
9152 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9153
9154         * config/s390/s390.md: Use define_c_enum for the unspec constant
9155         definitions.
9156
9157 2011-03-18  Richard Henderson  <rth@redhat.com>
9158             Jakub Jelinek  <jakub@redhat.com>
9159
9160         PR bootstrap/48161
9161         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9162         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9163
9164 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9165
9166         PR middle-end/47725
9167         * combine.c (cant_combine_insn_p): Don't check zero/sign
9168         extended hard registers.
9169
9170 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9171
9172         PR middle-end/47725
9173         * combine.c (cant_combine_insn_p): Check zero/sign extended
9174         hard registers.
9175
9176 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
9177
9178         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9179         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9180         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9181         Change return type to bool.
9182         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9183
9184 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9185
9186         PR debug/48163
9187         * var-tracking.c (prepare_call_arguments): If CALL target
9188         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9189         pc instead of looking it up using cselib_lookup and use
9190         Pmode for it if x has VOIDmode.
9191         * dwarf2out.c (gen_subprogram_die): If also both first and
9192         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9193
9194         PR debug/48163
9195         * function.c (assign_parms): For data.passed_pointer parms
9196         use MEM of data.entry_parm instead of data.entry_parm itself
9197         as DECL_INCOMING_RTL.
9198         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9199         also when passed and declared mode is the same, DECL_RTL
9200         is a MEM with pseudo as address and DECL_INCOMING_RTL is
9201         a MEM too.
9202
9203 2011-03-16  Jeff Law  <law@redhat.com>
9204
9205         PR rtl-optimization/37273
9206         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9207         handle them like argument loads from stack slots.  Do not double
9208         count memory for memory constants and argument loads from stack slots.
9209
9210 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9211
9212         PR debug/48160
9213         * var-tracking.c (prepare_call_arguments): Check SUBREG.
9214
9215 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9216
9217         PR target/48171
9218         * config/i386/i386.opt: Add Save to -mavx and -mfma.
9219
9220 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9221
9222         PR bootstrap/48153
9223         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9224         if dwarf_strict.
9225         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9226         Clear call_arg_locations and call_arg_loc_last always.
9227
9228         PR middle-end/48152
9229         * var-tracking.c (prepare_call_arguments): If argument needs to be
9230         passed by reference, adjust argtype and mode.
9231
9232 2011-03-17  Richard Guenther  <rguenther@suse.de>
9233
9234         PR middle-end/48134
9235         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9236         a value make sure to fold the statement.
9237
9238 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
9239
9240         PR target/43872
9241         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9242         return condition with !cfun->calls_alloca.
9243
9244 2011-03-17  Richard Guenther  <rguenther@suse.de>
9245
9246         PR bootstrap/48148
9247         * lto-cgraph.c (input_overwrite_node): Clear the abstract
9248         origin for decls in other ltrans units.
9249         (input_varpool_node): Likewise.
9250
9251 2011-03-17  Richard Guenther  <rguenther@suse.de>
9252
9253         PR middle-end/48165
9254         * tree-object-size.c (compute_object_offset): Properly return
9255         the offset operand of MEM_REFs as sizetype.
9256
9257 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
9258
9259         PR rtl-optimization/48141
9260         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9261         * dse.c: Include params.h.
9262         (active_local_stores_len): New variable.
9263         (add_wild_read, dse_step1): Clear it when setting active_local_stores
9264         to NULL.
9265         (record_store, check_mem_read_rtx): Decrease it when removing
9266         from the chain.
9267         (scan_insn): Likewise.  Increase it when adding to chain, if it
9268         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9269         set active_local_stores to NULL before the addition.
9270         * Makefile.in (dse.o): Depend on $(PARAMS_H).
9271
9272         PR rtl-optimization/48141
9273         * dse.c (record_store): If no positions are needed in an insn
9274         that cannot be deleted, at least unchain it from active_local_stores.
9275
9276 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
9277
9278         PR debug/47510
9279         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9280         (lookup_type_die_strip_naming_typedef): ... here.
9281         (get_context_die): Use it.
9282         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9283         the anonymous struct named by the naming typedef.
9284
9285 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9286
9287         PR target/48154
9288         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9289         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9290
9291 2011-03-16  Jeff Law  <law@redhat.com>
9292
9293         * tree-vrp.c (identify_jump_threads): Slightly simplify type
9294         check for operands of conditional.  Allow type to be a pointer.
9295
9296 2011-03-16  Richard Guenther  <rguenther@suse.de>
9297
9298         PR tree-optimization/48149
9299         * fold-const.c (fold_binary_loc): Fold
9300         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9301
9302 2011-03-16  Richard Guenther  <rguenther@suse.de>
9303
9304         PR tree-optimization/26134
9305         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9306         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9307         (non_rewritable_mem_ref_base): Handle complex type component
9308         accesses, constrain offsets for vector and complex extracts
9309         more properly.
9310
9311 2011-03-16  Richard Guenther  <rguenther@suse.de>
9312
9313         PR tree-optimization/48146
9314         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9315         operands avoiding the need for renaming.
9316
9317 2011-03-16  Richard Guenther  <rguenther@suse.de>
9318
9319         * gimple-fold.c (maybe_fold_reference): Open-code relevant
9320         constant folding.  Move MEM_REF canonicalization first.
9321         Rely on fold_const_aggregate_ref for initializer folding.
9322         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9323
9324 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9325
9326         PR middle-end/48136
9327         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9328         arg0/arg1 or their arguments are always fold converted to matching
9329         types.
9330
9331         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9332         to nargs.
9333
9334 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9335
9336         PR lto/46944
9337         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9338         Handle in-tree gold.
9339         (ld_vers): Extract binutils version for gold.
9340         (gcc_cv_ld_hidden): Handle gold here.
9341         (gcc_cv_lto_plugin): Determine level of linker plugin support.
9342         * configure: Regenerate.
9343         * config.in: Regenerate.
9344         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9345         -fuse-linker-plugin otherwise.
9346         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
9347         (LINK_COMMAND_SPEC): Use it.
9348         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9349
9350 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
9351
9352         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9353         * calls.c: Remove debug.h include.
9354         (emit_call_1): Don't call virtual_call_token debug hook.
9355         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9356         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9357         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9358         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9359         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9360         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9361         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9362         dwarf2out_virtual_call): Remove.
9363         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9364         copy_call_info and virtual_call hooks.
9365         (dwarf2out_init): Don't initialize vcall_insn_table,
9366         debug_dcall_section and debug_vcall_section.
9367         (prune_unused_types): Don't mark nodes from dcall_table.
9368         (dwarf2out_finish): Don't output dcall or vcall tables.
9369         * final.c (final_scan_insn): Don't call direct_call or
9370         virtual_call debug hooks.
9371         * debug.h (struct gcc_debug_hooks): Remove direct_call,
9372         virtual_call_token, copy_call_info and virtual_call hooks.
9373         (debug_nothing_uid): Remove prototype.
9374         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9375         copy_call_info and virtual_call hooks.
9376         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9377         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9378         * debug.c (do_nothing_debug_hooks): Likewise.
9379         (debug_nothing_uid): Remove.
9380         * doc/invoke.texi (-fenable-icf-debug): Remove.
9381         * common.opt (-fenable-icf-debug): Likewise.
9382
9383         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9384         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9385         call's MEM.  Handle functions returning aggregate through a hidden
9386         first pointer.  For virtual calls add clobbered pc to call arguments
9387         chain.
9388         * dwarf2out.c (gen_subprogram_die): Emit
9389         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9390         can't be emitted.
9391
9392         PR debug/45882
9393         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9394         * rtl.h (ENTRY_VALUE_EXP): Define.
9395         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9396         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9397         * print-rtl.c (print_rtx): Likewise.
9398         * gengtype.c (adjust_field_rtx_def): Likewise.
9399         * var-tracking.c (vt_add_function_parameter): Adjust
9400         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9401         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9402         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9403         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9404         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9405
9406         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9407         Call var_location debug hook even on CALL_INSNs.
9408         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9409         * rtl.def (ENTRY_VALUE): New.
9410         * dwarf2out.c: Include cfglayout.h.
9411         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9412         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9413         (struct call_arg_loc_node): New type.
9414         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9415         tail_call_site_count): New variables.
9416         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9417         DW_TAG_GNU_call_site_parameter.
9418         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9419         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9420         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9421         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9422         and DW_AT_GNU_all_source_call_sites.
9423         (mem_loc_descriptor): Handle ENTRY_VALUE.
9424         (add_src_coords_attributes): Don't add enything if
9425         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9426         (dwarf2out_abstract_function): Save and clear call_arg_location,
9427         call_site_count and tail_call_site_count around dwarf2out_decl call.
9428         (gen_call_site_die): New function.
9429         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9430         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9431         (dwarf2out_function_decl): Clear call_arg_locations,
9432         call_arg_loc_last, set call_site_count and tail_call_site_count
9433         to -1 and free block_map.
9434         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9435         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
9436         followed by any real instructions.
9437         (dwarf2out_begin_function): Set call_site_count and
9438         tail_call_site_count to 0.
9439         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9440         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9441         attempt to force a DIE for it and worst case remove the attribute.
9442         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9443         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9444         the decl itself.
9445         * var-tracking.c: Include tm_p.h.
9446         (vt_stack_adjustments): For calls call note_register_arguments.
9447         (argument_reg_set): New variable.
9448         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9449         ensure the VALUE is resolved.
9450         (call_arguments): New variable.
9451         (prepare_call_arguments): New function.
9452         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9453         (struct expand_loc_callback_data): Add ignore_cur_loc field.
9454         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9455         always use the best expression.
9456         (vt_expand_loc): Add ignore_cur_loc argument.
9457         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9458         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9459         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9460         note for all calls.
9461         (vt_add_function_parameter): Use cselib_lookup_from_insn.
9462         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9463         argument.  Don't call cselib_preserve_only_values and
9464         cselib_reset_table.
9465         (note_register_arguments): New function.
9466         (vt_initialize): Compute argument_reg_set.  Call
9467         vt_add_function_parameters before processing basic blocks instead of
9468         afterwards.  For calls call prepare_call_arguments before calling
9469         cselib_process_insn.
9470         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9471         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9472         (var-tracking.o): Depend on $(TM_P_H).
9473         * cfglayout.h (insn_scope): New prototype.
9474         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9475         * cfglayout.c (insn_scope): No longer static.
9476         * insn-notes.def (CALL_ARG_LOCATION): New.
9477         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9478         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9479         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9480         nothing for DECL_EXTERNAL BLOCK_VARS.
9481
9482 2011-03-16  Alan Modra  <amodra@gmail.com>
9483
9484         PR target/45844
9485         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9486         create invalid offset address for vsx splat insn.
9487         * config/rs6000/predicates.md (splat_input_operand): New.
9488         * config/rs6000/vsx.md (vsx_splat_*): Use it.
9489
9490 2011-03-15  Xinliang David Li  <davidxl@google.com>
9491
9492         PR c/47837
9493         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9494         (normalize_preds): New function.
9495         (is_use_properly_guarded): Normalize def predicates.
9496
9497 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9498
9499         PR target/46788
9500         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9501         in the output template.
9502
9503 2011-03-15  Richard Guenther  <rguenther@suse.de>
9504
9505         PR middle-end/47650
9506         * tree-pretty-print.c (dump_function_declaration): Properly
9507         dump unprototyped and varargs function types.
9508
9509 2011-03-15  Richard Guenther  <rguenther@suse.de>
9510
9511         PR tree-optimization/13954
9512         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9513         and friends.
9514
9515 2011-03-15  Richard Guenther  <rguenther@suse.de>
9516
9517         PR tree-optimization/48037
9518         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9519         selects into BIT_FIELD_REFs.
9520         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
9521         vector select.
9522
9523 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
9524
9525         PR tree-optimization/48129
9526         * builtins.c (fold_builtin_snprintf): Convert to type of
9527         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
9528         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
9529
9530 2011-03-15  Richard Guenther  <rguenther@suse.de>
9531
9532         PR tree-optimization/41490
9533         * tree-ssa-dce.c (propagate_necessity): Handle returns without
9534         value but with VUSE.
9535         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
9536         return statements.
9537         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
9538         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
9539         * tree-tailcall.c (find_tail_calls): Ignore returns.
9540
9541 2011-03-15  Richard Guenther  <rguenther@suse.de>
9542
9543         PR middle-end/48031
9544         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
9545         or variable-indexed array accesses when in gimple form.
9546
9547 2011-03-15  Richard Guenther  <rguenther@suse.de>
9548
9549         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
9550
9551 2011-03-15  Alan Modra  <amodra@gmail.com>
9552
9553         PR target/48032
9554         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
9555         presume symbol_refs without a symbol_ref_decl are suitably
9556         aligned, nor other trees we may see here.  Handle anchor symbols.
9557         (legitimate_constant_pool_address_p): Comment.  Add mode param.
9558         Check cmodel=medium addresses.  Adjust all calls.
9559         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
9560         creating cmodel=medium optimized access to locals.
9561         * config/rs6000/constraints.md (R): Pass QImode to
9562         legitimate_constant_pool_address_p.
9563         * config/rs6000/predicates.md (input_operand): Pass mode to
9564         legitimate_constant_pool_address_p.
9565         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
9566         Update prototype.
9567
9568 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9569
9570         PR target/48053
9571         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
9572         64-bit constants being loaded into registers other than GPRs such
9573         as loading 0 into a VSX register.
9574
9575 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9576
9577         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
9578
9579 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9580
9581         PR middle-end/47917
9582         * builtins.c (fold_builtin_snprintf): New function.
9583         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
9584         (fold_builtin_4): Likewise.
9585
9586         PR middle-end/38878
9587         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
9588         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
9589         and C - X == X also strip nops from +/-/p+ operand.
9590         When optimizing -X == C, fold C to arg0's type.
9591
9592         PR debug/47946
9593         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
9594         emit it as add_AT_int instead of add_AT_unsigned.
9595
9596 2011-03-14  Tom Tromey  <tromey@redhat.com>
9597
9598         * unwind-dw2.c: Include sys/sdt.h if it exists.
9599         (_Unwind_DebugHook): Use STAP_PROBE2.
9600         * config.in, configure: Rebuild.
9601         * configure.ac: Check for sys/sdt.h.
9602
9603 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
9604
9605         * config/i386/i386.md (ROUND_FLOOR): New constant.
9606         (ROUND_CEIL): Ditto.
9607         (ROUND_TRUNC): Ditto.
9608         (ROUND_MXCSR): Ditto.
9609         (ROUND_NO_EXC): Ditto.
9610         (rint<mode>2): Use new defines instead of numerical constants.
9611         (floor<mode>2): Ditto.
9612         (ceil<mode>2): Ditto.
9613         (btrunc<mode>2): Ditto.
9614         * config/i386/i386-builtin-types.def: Define ROUND function type
9615         aliases.
9616         * config/i386/i386.c (enum ix86_builtins): Add
9617         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
9618         (struct builtin_description): Add
9619         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
9620         (ix86_expand_sse_round): New static function.
9621         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
9622         function types.
9623         (ix86_builtin_vectorized_function): Handle
9624         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9625
9626 2011-03-14  Tom Tromey  <tromey@redhat.com>
9627
9628         * c-parser.c (c_parser_asm_string_literal): Clear
9629         warn_overlength_strings.
9630
9631 2011-03-14  Tom Tromey  <tromey@redhat.com>
9632
9633         * c-parser.c (disable_extension_diagnostics): Save
9634         warn_overlength_strings.
9635         (restore_extension_diagnostics): Restore warn_overlength_strings.
9636
9637 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9638
9639         * BASE-VER: Change to 4.7.0.
9640
9641 2011-03-14  Richard Guenther  <rguenther@suse.de>
9642
9643         PR middle-end/48098
9644         * tree.c (build_vector_from_val): Adjust assert to requirements
9645         and reality.
9646
9647 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
9648
9649         PR bootstrap/48102
9650         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
9651
9652 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
9653
9654         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
9655         terms of target_flags_explicit. Adjust copyright year.
9656
9657         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
9658         * config/rs6000/t-freebsd: New file. Add override for
9659         LIB2FUNCS_EXTRA.
9660
9661 2011-03-13  Chris Demetriou  <cgd@google.com>
9662
9663         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
9664         (-fno-diagnostics-show-option): this, to reflect current default.
9665         (-Werror=): Update text about -fno-diagnostics-show-option.
9666
9667 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
9668
9669         PR target/48053
9670         * config/rs6000/predicates.md (easy_vector_constant_add_self,
9671         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
9672         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
9673         mode is not V2DImode or V2DFmode.
9674         (vspltis_constant): Do not handle V2DImode and V2DFmode.
9675         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
9676         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
9677         registers to 0.
9678         (movdi_internal64): Likewise.
9679
9680 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
9681
9682         PR tree-optimization/47127
9683         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
9684         parameter.
9685         (set_cloog_options): Same.
9686         (scop_to_clast): Same.
9687         (print_clast_stmt): Do not call cloog_state_malloc and
9688         cloog_state_free.
9689         (print_generated_program): Same.
9690         (gloog): Same.
9691         * graphite-clast-to-gimple.h (cloog_state): Declared.
9692         (scop_to_clast): Adjust declaration.
9693         * graphite.c (cloog_state): Defined here.
9694         (graphite_initialize): Call cloog_state_malloc.
9695         (graphite_finalize): Call cloog_state_free.
9696
9697 2011-03-11  Jason Merrill  <jason@redhat.com>
9698
9699         * attribs.c (lookup_attribute_spec): Take const_tree.
9700         * tree.h: Adjust.
9701
9702 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
9703
9704         * config/sparc/sparc.c (sparc_option_override): Use
9705         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
9706
9707 2011-03-11  Richard Guenther  <rguenther@suse.de>
9708
9709         PR tree-optimization/48067
9710         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
9711         multiplication result will be only used once on the target
9712         stmt.
9713
9714 2011-03-11  Richard Guenther  <rguenther@suse.de>
9715
9716         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
9717
9718 2011-03-11  Richard Guenther  <rguenther@suse.de>
9719
9720         PR lto/48073
9721         * tree.c (find_decls_types_r): Do not walk types only reachable
9722         from IDENTIFIER_NODEs.
9723
9724 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
9725
9726         PR middle-end/48044
9727         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
9728         all vnode->force_output nodes as needed.
9729
9730 2011-03-11  Jason Merrill  <jason@redhat.com>
9731
9732         PR c++/48069
9733         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
9734         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
9735
9736 2011-03-11  Martin Jambor  <mjambor@suse.cz>
9737
9738         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
9739         cgraph_node.
9740
9741 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
9742
9743         PR tree-optimization/48063
9744         * ipa-inline.c (cgraph_decide_inlining): Don't try to
9745         inline functions called once if !tree_can_inline_p (node->callers).
9746
9747 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
9748
9749         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
9750         extra_objs.
9751         * config/score/score3.c: Delete.
9752         * config/score/score3.h: Delete.
9753         * config/score/mul-div.S: Delete.
9754         * config/score/sfp-machine.h: Add new file.
9755         * config/score/constraints.md: Add new file.
9756         * config/score/t-score-softfp: Add new file.
9757         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9758         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
9759         (score7_extra_constraint): Delete.
9760         (score7_option_override): Remove unused code.
9761         * config/score/score.c: Remove score3 and score5 define and code.
9762         * config/score/score.h: Remove score3 and score5 define and code.
9763         * config/score/score.md: Remove score3 template and unusual insn.
9764         * config/score/score.opt: Remove score3 and score5 options.
9765
9766 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9767
9768         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
9769         when _HPUX_SOURCE is defined.
9770         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
9771
9772 2011-03-10  Jason Merrill  <jason@redhat.com>
9773
9774         PR c++/48029
9775         * stor-layout.c (layout_type): Don't set structural equality
9776         on arrays of incomplete type.
9777         * tree.c (type_hash_eq): Handle comparing them properly.
9778
9779 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
9780
9781         PR debug/48043
9782         * config/s390/s390.c (s390_delegitimize_address): Make sure the
9783         result mode matches original rtl mode.
9784
9785 2011-03-10  Nick Clifton  <nickc@redhat.com>
9786
9787         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
9788         (andsi3, andsi3_flags): Fix timings for three operand alternative.
9789
9790 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
9791
9792         PR rtl-optimization/47866
9793         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
9794         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
9795         if target wasn't scalar.
9796         * function.c (assign_stack_temp_for_type): Assert that neither
9797         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
9798         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
9799         macro.
9800         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
9801
9802 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9803
9804         * config/s390/s390-protos.h (s390_label_align): New prototype.
9805         * config/s390/s390.c (s390_label_align): New function.
9806         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
9807
9808 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
9809
9810         PR target/47755
9811         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
9812         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
9813         (output_vec_const_move): Ditto.
9814
9815 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
9816
9817         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
9818         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
9819         * config/mips/mips.c (mips_preferred_reload_class): Make static.
9820         Change 'rclass' argument and result type to reg_class_t.
9821         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9822
9823 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
9824
9825         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9826         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
9827         (TARGET_MEMORY_MOVE_COST): Define.
9828         (avr_register_move_cost, avr_memory_move_cost): New Functions.
9829
9830 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
9831
9832         PR debug/47881
9833         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
9834         removed anything.
9835
9836         PR tree-optimization/48022
9837         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
9838         for EQ/NE_EXPR.
9839
9840 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
9841
9842         PR debug/47991
9843         * var-tracking.c (find_use_val): Return NULL for
9844         cui->sets && cui->store_p BLKmode MEMs.
9845
9846 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
9847
9848         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
9849         Remove.
9850         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
9851         xstormy16_print_operand_address): Remove.
9852         * config/stormy16/stormy16.c (xstormy16_print_operand,
9853         xstormy16_print_operand_address): Make static.
9854         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9855
9856 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
9857
9858         PR target/47862
9859         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9860         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
9861         before definition.
9862
9863 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
9864
9865         PR bootstrap/48000
9866         * cfgloopmanip.c (fix_bb_placements): Return immediately
9867         if FROM is BASE_LOOP's header.
9868
9869 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
9870
9871         * gimplify.c (gimplify_function_tree): Fix building calls
9872         to __builtin_return_address.
9873
9874 2011-03-07  Alan Modra  <amodra@gmail.com>
9875
9876         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
9877         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
9878         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
9879         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
9880         return_mode args.
9881         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
9882         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
9883         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
9884         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
9885         * config/rs6000/rs6000.c
9886         (rs6000_elf_end_indicate_exec_stack): Rename to..
9887         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
9888         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
9889         (rs6000_file_start): ..here.
9890         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
9891         file scope variables.
9892         (call_ABI_of_interest): New function.
9893         (init_cumulative_args): Set above vars when function return value
9894         is a float, vector, or small struct.
9895         (rs6000_function_arg_advance_1): Likewise for function args.
9896         (rs6000_va_start): Set rs6000_passes_float if variable arg function
9897         references float args.
9898
9899 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
9900
9901         * doc/cfg.texi: Remove "See" before @ref.
9902         * doc/invoke.texi: Likewise.
9903
9904 2011-03-05  Jason Merrill  <jason@redhat.com>
9905
9906         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
9907
9908 2011-03-05  Anthony Green  <green@moxielogic.com>
9909
9910         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
9911
9912 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
9913
9914         PR rtl-optimization/47899
9915         * cfgloopmanip.c (fix_bb_placements): Fix first argument
9916         to flow_loop_nested_p when moving the loop upward.
9917
9918 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
9919
9920         PR target/47719
9921         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
9922
9923 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
9924
9925         PR tree-optimization/47967
9926         * ipa-cp.c (build_const_val): Return NULL instead of creating
9927         VIEW_CONVERT_EXPR for mismatching sizes.
9928         (ipcp_create_replace_map): Return NULL if build_const_val failed.
9929         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
9930         give up on versioning.
9931
9932 2011-03-05  Alan Modra  <amodra@gmail.com>
9933
9934         PR target/47986
9935         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9936         full cmodel medium/large lo_sum + high addresses.
9937
9938 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9939
9940         * config/s390/s390.c (s390_decompose_address): Reject non-literal
9941         pool references in UNSPEC_LTREL_OFFSET.
9942
9943 2011-03-04  Jan Hubicka  <jh@suse.cz>
9944
9945         PR lto/47497
9946         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
9947         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
9948         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
9949         Add node pointers.
9950         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
9951         cgraph_add_thunk): Add node pointers.
9952         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
9953         associated to right node.
9954         (input_node): Update use of cgraph_same_body_alias
9955         and cgraph_add_thunk.
9956
9957 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
9958
9959         * config/i386/i386.opt (mprefer-avx128): New flag.
9960         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
9961         modes when the flag -mprefer-avx128 is on.
9962
9963 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
9964
9965         * dwarf2out.c (compare_loc_operands): Fix address handling.
9966
9967 2011-03-04  Alan Modra  <amodra@gmail.com>
9968
9969         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
9970
9971 2011-03-04  Richard Guenther  <rguenther@suse.de>
9972
9973         PR middle-end/47968
9974         * expmed.c (extract_bit_field_1): Prefer vector modes that
9975         vec_extract patterns can handle.
9976
9977 2011-03-04  Richard Guenther  <rguenther@suse.de>
9978
9979         PR middle-end/47975
9980         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
9981
9982 2011-03-04  Richard Henderson  <rth@redhat.com>
9983
9984         * explow.c (emit_stack_save): Remove 'after' parameter.
9985         (emit_stack_restore): Likewise.
9986         * expr.h: Update to match.
9987         * builtins.c, calls.c, stmt.c: Likewise.
9988         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
9989         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
9990         * function.c (expand_function_end): Insert the emit_stack_save
9991         sequence before parm_birth_insn instead of after.
9992
9993 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
9994
9995         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
9996         (ssse3_pmaddubsw128): Ditto.
9997         (ssse3_pmaddubsw): Ditto.
9998
9999 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
10000
10001         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10002
10003 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
10004
10005         PR c/47963
10006         * gimplify.c (omp_add_variable): Only call omp_notice_variable
10007         on TYPE_SIZE_UNIT if it is a DECL.
10008
10009         PR debug/47283
10010         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10011         first operand is not is_gimple_mem_ref_addr, try to fold it.
10012         If the operand still isn't is_gimple_mem_ref_addr, clear
10013         MEM_EXPR on op0.
10014
10015 2011-03-03  Richard Guenther  <rguenther@suse.de>
10016
10017         PR middle-end/47283
10018         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10019         match comment.
10020         (refs_may_alias_p_1): For release branches return true if
10021         we are confused by our input.
10022
10023 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10024
10025         * config/s390/s390.c (s390_function_value): Rename to ...
10026         (s390_function_and_libcall_value): ... this.
10027         (s390_function_value): New function.
10028         (s390_libcall_value): New function.
10029         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
10030         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10031         target macro definitions.
10032         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10033
10034 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
10035
10036         * config/i386/freebsd64.h (CC1_SPEC): Define.
10037         * config/i386/linux64.h (CC1_SPEC): Define.
10038         * config/i386/x86-64.h (CC1_SPEC): Don't define.
10039
10040 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
10041
10042         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10043         Remove.
10044         * config/stormy16/stormy16.c: Include reload.h.
10045         (xstormy16_memory_move_cost): New function.
10046         (TARGET_MEMORY_MOVE_COST): Define.
10047
10048 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
10049
10050         PR rtl-optimization/47925
10051         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10052         with side effects.  Remove the more-specific check for volatile asms.
10053
10054 2011-03-02  Alan Modra  <amodra@gmail.com>
10055
10056         PR target/47935
10057         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10058         toc relative addresses for valid offsets.
10059
10060 2011-03-01  Richard Guenther  <rguenther@suse.de>
10061
10062         PR tree-optimization/47890
10063         * tree-vect-loop.c (get_initial_def_for_induction): Set
10064         related stmt properly.
10065
10066 2011-03-01  Richard Guenther  <rguenther@suse.de>
10067
10068         PR lto/47924
10069         * lto-streamer.c (lto_record_common_node): Also register
10070         the canonical type.
10071
10072 2011-03-01  Richard Guenther  <rguenther@suse.de>
10073
10074         PR lto/46911
10075         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10076         Do not stream DECL_ABSTRACT_ORIGIN.
10077         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10078         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10079         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10080         Do not stream DECL_ABSTRACT_ORIGIN.
10081         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10082         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10083
10084 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
10085
10086         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10087         FUNCTION_VALUE_REGNO_P): Remove.
10088         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
10089         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10090         Add 'outgoing' argument.
10091         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10092         function.
10093         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10094         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10095
10096 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
10097
10098         PR debug/28047
10099         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10100         (lookup_filename): Likewise.
10101         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
10102
10103 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
10104             Jakub Jelinek  <jakub@redhat.com>
10105
10106         PR middle-end/47893
10107         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10108         (assign_stack_local_1): Change last argument type to int.
10109         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10110         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
10111         don't record padding space into frame_space_list nor use those areas.
10112         (assign_stack_local): Adjust caller.
10113         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10114         of assign_stack_local, pass 0 as last argument.
10115         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10116         callers.
10117
10118 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR debug/47283
10121         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10122         Use target address_mode and pointer_mode hooks instead of hardcoded
10123         Pmode and ptr_mode.  Handle some simple cases of extending if
10124         POINTERS_EXTEND_UNSIGNED < 0.
10125         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10126         Call convert_debug_memory_address.
10127         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10128         convert_debug_memory_address.
10129
10130         PR middle-end/46790
10131         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10132         * configure: Regenerated.
10133         * config.in: Regenerated.
10134         * varasm.c (default_function_section): Return NULL
10135         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
10136
10137 2011-02-28  Martin Jambor  <mjambor@suse.cz>
10138
10139         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10140         the description to match the printed values.
10141
10142 2011-02-28  Richard Guenther  <rguenther@suse.de>
10143
10144         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10145         of the copied scope tree.
10146
10147 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10148
10149         * doc/extend.texi (Function Attributes): Avoid deeply (and
10150         wrongly) nested tables.
10151
10152 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
10153
10154         PR middle-end/47903
10155         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10156         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10157         r isn't op0 nor op1.
10158
10159 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10160
10161         * config/avr/avr.md: Remove magic comment for emacs.
10162
10163 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
10164
10165         PR target/45261
10166         * config/avr/avr.c (avr_option_override): Use error on bad options.
10167         (avr_help): New function.
10168         (TARGET_HELP): Define.
10169
10170 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
10171
10172         PR target/42240
10173         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10174         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10175
10176 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
10177
10178         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10179         (ARM Options): Ditto.
10180         (i386 and x86-64 Options): Ditto.
10181         (RX Options): Ditto.
10182         (SPARC Options): Ditto.
10183
10184 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
10185
10186         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10187         FreeBSD 6 and later.  Generally use cpu generic.
10188
10189 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10190
10191         * doc/cpp.texi: Update copyright years.
10192
10193 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
10194
10195         PR target/46898
10196         * config/lm32/lm32.md (ashrsi3): Added needed variable.
10197
10198 2011-02-25  Jon Beniston  <jon@beniston.com>
10199
10200         PR target/46898
10201         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10202         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10203         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10204         (lm32_block_move_inline): Add type cast to remove warning.
10205         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
10206         (gen_int_relational): Move declarations to start of function.
10207
10208 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
10209
10210         PR tree-optimization/45470
10211         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10212         can throw internally only.
10213         * tree-vect-stmts.c (vectorizable_call): Likewise.
10214
10215 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
10216
10217         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10218         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10219         * config/stormy16/stormy16-protos.h
10220         (xstormy16_preferred_reload_class): Remove.
10221         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10222         static. Change 'rclass' argument and return type to reg_class_t.
10223         (TARGET_PREFERRED_RELOAD_CLASS,
10224         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10225
10226 2011-02-24  Richard Guenther  <rguenther@suse.de>
10227
10228         * lto-streamer-in.c (input_bb): Do not find referenced vars
10229         in debug statements.
10230
10231 2011-02-23  Jason Merrill  <jason@redhat.com>
10232
10233         * common.opt (fabi-version): Document v5 and v6.
10234
10235 2011-02-23  Richard Guenther  <rguenther@suse.de>
10236
10237         PR tree-optimization/47849
10238         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10239
10240 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10241
10242         * opts-common.c (decode_cmdline_option): Print empty string
10243         argument as "" in decoded->orig_option_with_args_text.
10244         * gcc.c (execute): Print empty string argument as ""
10245         in the verbose output.
10246         (do_spec_1): Keep empty string argument.
10247
10248 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
10249
10250         * config.gcc: Declare score-* and crx-* obsolete.
10251
10252 2011-02-23  Jie Zhang  <jie@codesourcery.com>
10253
10254         PR rtl-optimization/47763
10255         * web.c (web_main): Ignore naked clobber when replacing register.
10256
10257 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
10258
10259         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10260         Remove.
10261
10262 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10263
10264         PR doc/47848
10265         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10266
10267 2011-02-22  Mike Stump  <mikestump@comcast.net>
10268
10269         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10270         assembler.
10271         * configure: Regenerate.
10272
10273 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
10274
10275         PR rtl-optimization/46002
10276         * ira-color.c (update_copy_costs): Change class intersection
10277         test to reg_class_contents[] test of 'hard_regno'.
10278
10279 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
10280
10281         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10282         than Driver option.
10283         * config/hpux11.opt (mt): Likewise.
10284         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10285         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10286         * config/vax/elf.opt (mno-asm-pic): Likewise.
10287         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10288
10289 2011-02-21  Mike Stump  <mikestump@comcast.net>
10290
10291         PR target/47822
10292         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10293         tree so we can get save the type.
10294         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10295         for CFString instead of trying to use past the end of the builtins.
10296         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10297         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10298         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10299         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10300         Rename to darwin_builtin_cfstring.
10301         (darwin_init_cfstring_builtins): Return the built type.
10302
10303 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
10304
10305         PR target/47840
10306         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10307         (_mm256_insert_epi64): Use _mm_insert_epi64.
10308
10309 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
10310
10311         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10312         * config/stormy16/stormy16-protos.h
10313         (xstormy16_mode_dependent_address_p): Remove.
10314         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10315         Make static. Change return type to bool. Change argument type to
10316         const_rtx. Remove dead code.
10317         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10318
10319 2011-02-21  Richard Guenther  <rguenther@suse.de>
10320
10321         PR lto/47820
10322         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10323         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10324         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10325         TUs context.
10326         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10327         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10328
10329 2011-02-20  Richard Guenther  <rguenther@suse.de>
10330
10331         PR lto/47822
10332         * tree.c (free_lang_data_in_decl): Clean builtins from
10333         the TU decl BLOCK_VARS.
10334
10335 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
10336
10337         PR debug/47620
10338         PR debug/47630
10339         * haifa-sched.c (fix_tick_ready): Skip tick computation
10340         for debug insns.
10341
10342 2011-02-19  Richard Guenther  <rguenther@suse.de>
10343
10344         PR lto/47647
10345         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10346         Remove lazy BLOCK_VARS streaming.
10347         (lto_input_ts_block_tree_pointers): Likewise.
10348         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10349
10350 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10351
10352         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10353
10354 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
10355
10356         * config/i386/biarch32.h, config/i386/mach.h,
10357         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10358
10359 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
10360
10361         PR target/47800
10362         * config/i386/i386.md (peephole2 for shift and plus): Use
10363         operands[1] original mode in the first insn.
10364
10365 2011-02-18  Mike Stump  <mikestump@comcast.net>
10366
10367         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
10368
10369 2011-02-18  Jan Hubicka  <jh@suse.cz>
10370
10371         PR middle-end/47788
10372         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10373         to zero when the function is not inlinable at all.
10374
10375 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10376
10377         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10378         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10379         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10380         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10381         * config/pa/t-pa64: Likewise.
10382         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10383
10384 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10385
10386         PR driver/47787
10387         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10388
10389 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10390
10391         PR target/47792
10392         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10393
10394 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
10395
10396         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10397         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10398         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10399         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10400         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10401         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10402         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10403         m32r_load_postinc_p, m32r_store_preinc_predec_p,
10404         m32r_legitimate_address_p): New functions.
10405         * config/m32r/constraints.md (constraint "S"): Don't use
10406         STORE_PREINC_PREDEC_P.
10407         (constraint "U"): Don't use LOAD_POSTINC_P.
10408
10409 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
10410
10411         PR rtl-optimization/46178
10412         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10413         compute ira_hard_regno_cover_class[].
10414
10415 2011-02-18  Richard Guenther  <rguenther@suse.de>
10416
10417         PR lto/47798
10418         * lto-streamer.h (lto_global_var_decls): Declare.
10419         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10420         statics for global var processing.
10421
10422 2011-02-18  Richard Guenther  <rguenther@suse.de>
10423
10424         PR tree-optimization/47737
10425         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10426         edge dominance check.
10427
10428 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
10429
10430         PR debug/47780
10431         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10432         avoid invalid rtx sharing.
10433
10434 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
10435
10436         * doc/cpp.texi (Obsolete Features): Add background on the
10437         origin of assertions.
10438
10439 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
10440
10441         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
10442         objc_abi == 2.
10443         * config/darwin.c (output_objc_section_asm_op): Added support for
10444         ABI v1 and v2.
10445         (is_objc_metadata): New.
10446         (darwin_objc2_section): New.
10447         (darwin_objc1_section): New.
10448         (machopic_select_section): Added support for ABI v1 and v2.
10449         (darwin_emit_objc_zeroed): New.
10450         (darwin_output_aligned_bss): Detect objc metadata and treat it
10451         appropriately.
10452         (darwin_asm_output_aligned_decl_common): Same.
10453         (darwin_asm_output_aligned_decl_local): Same.
10454         * config/darwin-sections.def: Updated for ABI v1 and v2.
10455         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10456         compiling Objective-C code for the NeXT runtime, default to using
10457         ABI version 0 for 32-bit, and version 2 for 64-bit.
10458
10459 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10460
10461         * common.opt (optimize_fast): New Variable.
10462         * opts.c (default_options_optimization): Use opts->x_optimize_fast
10463         instead of local variable ofast.
10464
10465 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
10466
10467         * doc/invoke.texi (fobjc-abi-version): Documented.
10468         (fobjc-nilcheck): Documented.
10469         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10470         version.
10471
10472 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10473
10474         PR driver/47390
10475         * common.opt (export-dynamic): New Driver option.
10476         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10477
10478 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10479
10480         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10481
10482 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
10483             Jan Hubicka  <jh@suse.cz>
10484
10485         PR debug/47106
10486         PR debug/47402
10487         * cfgexpand.c (account_used_vars_for_block): Remove.
10488         (estimated_stack_frame_size): Use referenced vars.
10489         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10490         that were referenced in the original function.  Test src_fn
10491         rather than cfun.  Drop redundant get_var_ann.
10492         (setup_one_parameter): Drop redundant get_var_ann.
10493         (declare_return_variable): Likewise.
10494         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10495         (copy_arguments_for_versioning): Drop redundant get_var_ann.
10496         * ipa-inline.c (compute_inline_parameters): Do not compute
10497         disregard_inline_limits here.
10498         (compute_inlinable_for_current, pass_inlinable): New.
10499         (pass_inline_parameters): Require PROP_referenced_vars.
10500         * cgraphunit.c (cgraph_process_new_functions): Don't run
10501         compute_inline_parameters explicitly unless function is in SSA form.
10502         (cgraph_analyze_function): Set .disregard_inline_limits.
10503         * tree-sra.c (convert_callers): Compute inliner parameters
10504         only for functions already in SSA form.
10505
10506 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10507
10508         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10509         -mlittle-endian-data.
10510
10511 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
10512
10513         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10514         -mno-fpu, not -fpu and -no-fpu.
10515         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10516         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10517
10518 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
10519
10520         PR target/43653
10521         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
10522         input reload with PLUS RTX.
10523
10524 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10525
10526         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
10527         of InverseVar(MDMX).
10528
10529 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10530
10531         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
10532         --m4-340.
10533
10534 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10535
10536         * config/mn10300/mn10300.opt (mno-crt0): New.
10537
10538 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10539
10540         * config/m68k/uclinux.opt (static-libc): New Driver option.
10541
10542 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10543
10544         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
10545
10546 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
10547
10548         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
10549         %{muser-extend-enabled}.
10550
10551 2011-02-16  Richard Guenther  <rguenther@suse.de>
10552
10553         PR tree-optimization/47738
10554         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
10555         the TODO from tree_predictive_commoning.
10556
10557 2011-02-15  Jeff Law  <law@redhat.com>
10558
10559         Revert
10560         2011-01-25  Jeff Law  <law@redhat.com>
10561
10562         PR rtl-optimization/37273
10563         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10564         handle them like argument loads from stack slots.  Do not double
10565         count memory for memory constants and argument loads from stack slots.
10566
10567 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10568
10569         PR middle-end/47725
10570         * combine.c (cant_combine_insn_p): Revert the last change.
10571
10572 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
10573
10574         PR target/47755
10575         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
10576         mode for vector constants.  Remove code that checks for TImode.
10577
10578 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10579
10580         PR debug/47106
10581         PR debug/47402
10582         * cgraph.h (compute_inline_parameters): Return void.
10583         * ipa-inline.c (compute_inline_parameters): Adjust.
10584
10585 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10586
10587         PR debug/47106
10588         PR debug/47402
10589         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
10590         rather than decl.
10591         * cfgexpand.c (estimated_stack_frame_size): Likewise.
10592         * ipa-inline.c (compute_inline_parameters): Adjust.
10593
10594 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10595
10596         PR debug/47106
10597         PR debug/47402
10598         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
10599         Adjust all users.  Pass FN to...
10600         * tree-flow-inline.h (first_referenced_var): ... this.  Add
10601         fn argument.
10602         * ipa-struct-reorg.c: Adjust.
10603         * tree-dfa.c: Adjust.
10604         * tree-into-ssa.c: Adjust.
10605         * tree-sra.c: Adjust.
10606         * tree-ssa-alias.c: Adjust.
10607         * tree-ssa-live.c: Adjust.
10608         * tree-ssa.c: Adjust.
10609         * tree-ssanames.c: Adjust.
10610         * tree-tailcall.c: Adjust.
10611
10612 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
10613
10614         PR debug/47106
10615         PR debug/47402
10616         * tree-flow.h (referenced_var_lookup): Add fn parameter.
10617         Adjust all callers.
10618         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
10619         * tree-flow-inline.h: Adjust.
10620         * gimple-pretty-print.c: Adjust.
10621         * tree-into-ssa.c: Adjust.
10622         * tree-ssa.c: Adjust.
10623         * cfgexpand.c: Adjust.
10624
10625 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10626
10627         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
10628         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10629         (EXTRA_CONSTRAINT): Delete.
10630         * config/iq2000/constraints.md: New file.
10631         * config/iq2000/iq2000.md: Include it.
10632         (define_insn ""): Delete.
10633         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
10634         unsupported constraint letters from patterns.
10635         (call_value, call_value_internal1): Likewise.
10636         (call_value_multiple_internal1): Likewise.
10637
10638 2011-02-15  Nick Clifton  <nickc@redhat.com>
10639
10640         * config/mn10300/mn10300.c: Include tm-constrs.h.
10641         (struct liw_data): New data structure describing an LIW candidate
10642         instruction.
10643         (extract_bundle): Use struct liw_data.  Allow small integer
10644         operands for some instructions.
10645         (check_liw_constraints): Use struct liw_data.  Remove swapped
10646         parameter.  Add comments describing the checks.  Fix bug when
10647         assigning the source of liw1 to the source of liw2.
10648         (liw_candidate): Delete.  Code moved into extract_bundle.
10649         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
10650         before swapping.
10651         * config/mn10300/predicates.md (liw_operand): New predicate.
10652         Allows registers and small integer constants.
10653         * config/mn10300/constraints.md (O): New constraint.  Accetps
10654         integers in the range -8 to +7 inclusive.
10655         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
10656         for moving a small integer into a register.  Give this alternative
10657         LIW attributes.
10658         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
10659         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
10660         using the J,K,L and M constraints,
10661         (liw): Remove SI mode on second operands to allow for HI and QI
10662         mode values.
10663         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
10664         instruction.
10665
10666 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10667
10668         PR middle-end/47725
10669         * combine.c (cant_combine_insn_p): Check zero/sign extended
10670         hard registers.
10671
10672 2011-02-15  Richard Guenther  <rguenther@suse.de>
10673
10674         PR tree-optimization/47743
10675         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
10676         for a non-type-compatible VN lookup bail out.
10677
10678 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10679
10680         * config/fr30/constraints.md: New file.
10681         * config/fr30/fr30.md: Include it.
10682         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
10683         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10684         (EXTRA_CONSTRAINT): Delete.
10685
10686 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
10687
10688         * config/frv/constraints.md: New file.
10689         * config/frv/predicates.md: Include it.
10690         * config/frv/frv.c (reg_class_from_letter): Delete.
10691         (frv_option_override): Don't initialize it.
10692         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
10693         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
10694         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
10695         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10696         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
10697         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10698         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
10699         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
10700         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
10701         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
10702         (REG_CLASS_FROM_CONSTRAINT): Delete.
10703
10704 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
10705
10706         PR middle-end/47581
10707         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
10708         if frame size is 0 in a leaf function.
10709
10710 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10711
10712         PR pch/14940
10713         * config/alpha/host-osf.c: New file.
10714         * config/alpha/x-osf: New file.
10715         * config.host (alpha*-dec-osf*): Use it.
10716
10717 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
10718
10719         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10720         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
10721         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
10722         (rx_mode_dependent_address_p): ...this. Make static. Change argument
10723         type to const_rtx.
10724         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10725
10726 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10727
10728         * config/stormy16/constraints.md: New file.
10729         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
10730         Use satisfies_constraint_Q and satisfies_constraint_R.
10731         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
10732         Delete.
10733         (xstormy16_legitiamte_address_p): Declare.
10734         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
10735         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10736         (EXTRA_CONSTRAINT): Delete.
10737         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
10738         Un-staticize.
10739         (xstormy16_extra_constraint_p): Delete.
10740
10741 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
10742
10743         PR tree-optimization/46494
10744         * loop-unroll.c (split_edge_and_insert): Adjust comment.
10745         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
10746         (pass_rtl_loop_done): Add TODO_verify_flow.
10747         * fwprop.c (pass_rtl_fwprop): Likewise.
10748         * modulo-sched.c (pass_sms): Likewise.
10749         * tree-ssa-dom.c (pass_dominator): Likewise.
10750         * tree-ssa-loop-ch.c (pass_ch): Likewise.
10751         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
10752         (pass_tree_loop_done): Likewise.
10753         * tree-ssa-pre.c (execute_pre): Likewise.
10754         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10755         * tree-ssa-sink.c (pass_sink_code): Likewise.
10756         * tree-vrp.c (pass_vrp): Likewise.
10757
10758 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10759
10760         * config/v850/constraints.md: New file.
10761         * config/v850/v850.md: Include it.
10762         * config/v850/predicates.md (reg_or_0_operand): Use
10763         satisfies_constraint_G.
10764         (special_symbolref_operand): Use satisfies_constraint_K.
10765         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
10766         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10767         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
10768         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10769         (EXTRA_CONSTRAINT): Delete.
10770         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
10771         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
10772         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
10773
10774 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
10775
10776         PR target/47696
10777         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
10778         description.
10779
10780 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
10781
10782         * config/mcore/constraints.md: New file.
10783         * config/mcore/mcore.md: Include it.
10784         * config/mcore/mcore.c (reg_class_from_letter): Delete.
10785         * config/mcore/mcore.h (reg_class_from_letter): Delete.
10786         (REG_CLASS_FROM_LETTER): Delete.
10787         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
10788         insn_const_int_ok_for_constraint.
10789         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
10790         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
10791         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10792         (EXTRA_CONSTRAINT): Delete.
10793
10794 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10795
10796         PR ada/41929
10797         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
10798         (IS_SIGHANDLER): Define.
10799         (sparc64_is_sighandler): New function, split off from
10800         sparc64_fallback_frame_state.
10801         (sparc_is_sighandler): New function, split off from
10802         sparc_fallback_frame_state.
10803         (sparc64_fallback_frame_state): Merge with ...
10804         (sparc_fallback_frame_state): ... this into ...
10805         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
10806         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
10807         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
10808         stack instead of hardcoded offsets.
10809
10810 2011-02-14  Andriy Gapon  <avg@freebsd.org>
10811
10812         PR target/45808
10813         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
10814
10815 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10816
10817         * configure: Regenerate.
10818
10819 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
10820
10821         PR driver/45731
10822         * gcc.c (asm_options): Correct spec matching --target-help.
10823
10824 2011-02-12  Martin Jambor  <mjambor@suse.cz>
10825
10826         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
10827         to gimple call error.
10828
10829 2011-02-12  Mike Stump  <mikestump@comcast.net>
10830
10831         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
10832         comments in backslash regions.
10833
10834 2011-02-12  Mike Stump  <mikestump@comcast.net>
10835             Jakub Jelinek  <jakub@redhat.com>
10836             Iain Sandoe  <iains@gcc.gnu.org>
10837
10838         PR target/47324
10839         * dwarf2out.c (output_cfa_loc): When required, apply the
10840         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
10841         (output_loc_sequence): Likewise.
10842         (output_loc_operands_raw): Likewise.
10843         (output_loc_sequence_raw): Likewise.
10844         (output_cfa_loc): Likewise.
10845         (output_loc_list): Suppress register number adjustment when
10846         calling output_loc_sequence()
10847         (output_die): Likewise.
10848
10849 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
10850
10851         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10852         Remove macros.
10853         * config/xtensa/xtensa.c (xtensa_register_move_cost,
10854         xtensa_memory_move_cost): New functions.
10855         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
10856
10857 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
10858
10859         PR lto/47225
10860         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
10861         in the current directory.
10862         * configure: Rebuilt.
10863
10864 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
10865
10866         * config/darwin.c (darwin_override_options): Add a hunk missed
10867         from the commit of r168571.  Trim comment line lengths and
10868         correct indents of the preceding block.
10869
10870 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
10871
10872         * gcc.c (driver_handle_option): Concatenate the argument to -F with
10873         the switch.
10874
10875 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
10876
10877         * common.opt (nostartfiles): New Driver option.
10878
10879 2011-02-11  Xinliang David Li  <davidxl@google.com>
10880
10881         PR tree-optimization/47707
10882         * tree-chrec.c (convert_affine_scev): Keep type precision.
10883
10884 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
10885
10886         PR tree-optimization/47420
10887         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
10888
10889 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
10890
10891         PR rtl-optimization/47614
10892         * rtl.h (check_for_inc_dec): Declare.
10893         * dse.c (check_for_inc_dec): Externalize...
10894         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
10895         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
10896
10897 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
10898
10899         PR driver/47678
10900         * gcc.c (main): Do not compile inputs if there were errors in
10901         option handling.
10902         * opts-common.c (read_cmdline_option): Check for wrong language
10903         after other error checks.
10904
10905 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
10906
10907         * cgraph.c: Fix comment typos.
10908         * cgraph.h: Likewise.
10909         * cgraphunit.c: Likewise.
10910         * ipa-cp.c: Likewise.
10911         * ipa-inline.c: Likewise.
10912         * ipa-prop.c: Likewise.
10913         * ipa-pure-const.c: Likewise.
10914         * ipa-ref.c: Likewise.
10915         * ipa-reference.c: Likewise.
10916
10917 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
10918
10919         PR debug/47684
10920         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
10921
10922 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10923
10924         PR testsuite/47400
10925         * doc/sourcebuild.texi (Require Support): Document
10926         dg-require-ascii-locale.
10927
10928 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
10929
10930         * doc/lto.texi (Write summary): Fix missing parentheses.
10931
10932 2011-02-10  DJ Delorie  <dj@redhat.com>
10933
10934         * config/m32c/m32c.c (m32c_option_override): Disable
10935         -fcombine-stack-adjustments until flag value tracking and compare
10936         optimization can be rewritten.
10937
10938 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
10939
10940         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
10941         PROCESSOR_POWER7.
10942         (PROCESSOR_DEFAULT64): Likewise.
10943
10944 2011-02-10  Richard Henderson  <rth@redhat.com>
10945
10946         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
10947         change from 2011-02-03.
10948         * config/rx/rx.c (flags_from_code): Likewise.
10949         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
10950         is valid, n/pz otherwise.
10951         (rx_select_cc_mode): Return CCmode if Y is not zero.
10952
10953 2011-02-10  Richard Guenther  <rguenther@suse.de>
10954
10955         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
10956
10957 2011-02-10  Richard Guenther  <rguenther@suse.de>
10958
10959         PR tree-optimization/47677
10960         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
10961
10962 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
10963
10964         PR target/47665
10965         * combine.c (make_compound_operation): Only change shifts into
10966         multiplication for SCALAR_INT_MODE_P.
10967
10968 2011-02-10  Jie Zhang  <jie@codesourcery.com>
10969
10970         PR testsuite/47622
10971         Revert
10972         2011-02-05  Jie Zhang  <jie@codesourcery.com>
10973         PR debug/42631
10974         * web.c (entry_register): Don't clobber the number of the
10975         first uninitialized reference in used[].
10976
10977 2011-02-09  Richard Guenther  <rguenther@suse.de>
10978
10979         PR tree-optimization/47664
10980         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
10981         all edges again.
10982
10983 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
10984
10985         PR target/46481
10986         PR target/47032
10987         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
10988         PROCESSOR_POWER7.
10989         (PROCESSOR_DEFAULT64): Same.
10990         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
10991
10992 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10993
10994         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
10995
10996 2011-02-09  Martin Jambor  <mjambor@suse.cz>
10997
10998         PR middle-end/45505
10999         * tree-sra.c (struct access): New flags grp_scalar_read and
11000         grp_scalar_write.  Changed description of assignment read and write
11001         flags.
11002         (dump_access): Dump new flags, reorder all of them.
11003         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11004         to detect multiple scalar reads.
11005         (analyze_access_subtree): Use the new scalar read write flags instead
11006         of the old flags.  Adjusted comments.
11007
11008 2011-02-08  DJ Delorie  <dj@redhat.com>
11009
11010         PR target/47548
11011         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11012         patterns.
11013
11014 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11015
11016         * config/m68k/uclinux.opt: New.
11017         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11018
11019 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11020
11021         * config/cris/elf.opt (sim): New Driver option.
11022
11023 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11024
11025         * config/xtensa/elf.opt: New.
11026         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11027
11028 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11029
11030         * config/vax/elf.opt: New.
11031         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11032
11033 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11034
11035         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11036
11037 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11038
11039         * config/gnu-user.opt: New.
11040         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11041         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11042         *-*-uclinux*): Use gnu-user.opt.
11043
11044 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
11045
11046         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11047         * config/i386/gnu.h (CPP_SPEC): Likewise.
11048
11049 2011-02-08  Ian Lance Taylor  <iant@google.com>
11050
11051         * common.opt (fcx-limited-range): Add SetByCombined flag.
11052         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11053         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11054         (fassociative-math, freciprocal-math): Likewise.
11055         (funsafe-math-optimizations): Likewise.
11056         * opth-gen.awk: Handle SetByCombined.
11057         * optc-gen.awk: Likewise.
11058         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
11059         (set_unsafe_math_optimizations_flags): Likewise.
11060         * doc/options.texi (Option properties): Document SetByCombined.
11061
11062 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
11063
11064         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11065         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11066         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11067         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11068         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11069
11070 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
11071
11072         PR tree-optimization/46834
11073         PR tree-optimization/46994
11074         PR tree-optimization/46995
11075         * graphite-sese-to-poly.c (used_outside_reduction): New.
11076         (detect_commutative_reduction): Call used_outside_reduction.
11077         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11078         translate_scalar_reduction_to_array only when at least one
11079         loop-phi/close-phi tuple has been detected.
11080
11081 2011-02-08  Richard Guenther  <rguenther@suse.de>
11082
11083         PR middle-end/47639
11084         * tree-vect-generic.c (expand_vector_operations_1): Update
11085         stmts here ...
11086         (expand_vector_operations): ... not here.  Cleanup EH info
11087         and the CFG if required.
11088
11089 2011-02-08  Richard Guenther  <rguenther@suse.de>
11090
11091         PR tree-optimization/47641
11092         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11093         require type compatibility.
11094
11095 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11096
11097         * gimple-low.c (lower_function_body): Don't remove the location of
11098         the return statement here.
11099         (lower_gimple_return): Do it here instead but only if the return
11100         statement is actually used twice.
11101
11102 2011-02-08  Richard Guenther  <rguenther@suse.de>
11103
11104         PR tree-optimization/47632
11105         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11106         unused up_to_stmt parameter, return whether cfg-cleanup is
11107         necessary, remove EH info properly.
11108         (forward_propagate_into_gimple_cond): Adjust caller.
11109         (forward_propagate_into_cond): Likewise.
11110         (forward_propagate_comparison): Likewise.
11111         (tree_ssa_forward_propagate_single_use_vars): Make
11112         forward_propagate_comparison case similar to the two others.
11113
11114 2011-02-08  Nick Clifton  <nickc@redhat.com>
11115
11116         * config/mn10300/mn10300.opt (mliw): New command line option.
11117         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11118         (liw_bundling): New automaton.
11119         (liw): New attribute.
11120         (liw_op): New attribute.
11121         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11122         (movsi_internal): Add LIW attributes.
11123         (andsi3): Likewise.
11124         (iorsi3): Likewise.
11125         (xorsi3): Likewise.
11126         (addsi3): Separate register and immediate alternatives.
11127         Add LIW attributes.
11128         (subsi3): Likewise.
11129         (cmpsi): Likewise.
11130         (aslsi3): Likewise.
11131         (lshrsi3): Likewise.
11132         (ashrsi3): Likewise.
11133         (liw): New pattern.
11134         * config/mn10300/mn10300.c (liw_op_names): New
11135         (mn10300_print_operand): Handle 'W' operand descriptor.
11136         (extract_bundle): New function.
11137         (check_liw_constraints): New function.
11138         (liw_candidate): New function.
11139         (mn10300_bundle_liw): New function.
11140         (mn10300_reorg): New function.
11141         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11142         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11143         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11144         __LIW__ or __NO_LIW__.
11145         * doc/invoke.texi: Describe the -mliw command line option.
11146
11147 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11148
11149         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11150         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11151         pthread_mutex_unlock): Remove.
11152         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11153         * config/pa/t-pa64: Likewise.
11154         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11155         shared libc if not linking against libpthread.
11156         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11157
11158 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
11159
11160         PR target/47558
11161         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11162         on 10.6 and later to ensure that we always use the unwinder from
11163         the system.  Only add -no_compact_unwind when tarteting darwin
11164         10.6 or later.
11165
11166 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
11167
11168         PR target/46997
11169         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11170         (vec_interleave_lowv2sf): Ditto.
11171         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11172         (vec_extract_oddv2sf): Ditto.
11173
11174 2011-02-07  Mike Stump  <mikestump@comcast.net>
11175
11176         PR target/42333
11177         Add __ieee_divdc3 entry point.
11178         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11179         entry point.
11180         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11181         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11182         * config/darwin.c (darwin_rename_builtins): Add.
11183         * config/darwin-protos.h (darwin_rename_builtins): Add.
11184
11185 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
11186
11187         PR target/47636
11188         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11189         for the condition.
11190
11191 2011-02-07  Mike Stump  <mikestump@comcast.net>
11192
11193         * config/darwin.opt (mmacosx-version-min): Update default OS version.
11194
11195 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
11196
11197         PR target/47534
11198         * config/avr/libgcc.S (exit): Move .endfunc
11199
11200 2011-02-07  Richard Guenther  <rguenther@suse.de>
11201
11202         PR tree-optimization/47615
11203         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11204         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11205         (run_scc_vn): Initialize it.
11206         (visit_reference_op_load): Use it.
11207         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11208
11209 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11210
11211         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11212         DImode trapping arithmetic libfuncs.
11213
11214 2011-02-07  Richard Guenther  <rguenther@suse.de>
11215
11216         PR tree-optimization/47621
11217         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11218         two duplicates ...
11219         (execute_update_addresses_taken): ... here.  Make it more
11220         conservative in what we accept.
11221
11222 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11223
11224         * config/sparc/freebsd.h (ASM_SPEC): Define.
11225         * config/sparc/vxworks.h (ASM_SPEC): Define.
11226
11227 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
11228
11229         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11230
11231 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
11232
11233         * doc/invoke.texi: Remove reference to compiler internals from
11234         user documentation.
11235
11236         * reg-notes.def: Remove REG_VALUE_PROFILE.
11237         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11238
11239 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
11240
11241         PR middle-end/47610
11242         * varasm.c (default_section_type_flags): If decl is NULL,
11243         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
11244
11245 2011-02-05  Jie Zhang  <jie@codesourcery.com>
11246
11247         PR debug/42631
11248         * web.c (entry_register): Don't clobber the number of the
11249         first uninitialized reference in used[].
11250
11251 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
11252
11253         PR tree-optimization/46194
11254         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11255         (build_classic_dist_vector_1): Do not represent classic distance
11256         vectors when the access functions are variating in different loops.
11257
11258 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11259
11260         * config/mips/iris6.opt: New.
11261         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11262
11263 2011-02-04  Richard Henderson  <rth@redhat.com>
11264             Steve Ellcey  <sje@cup.hp.com>
11265
11266         PR target/46997
11267         * config/ia64/predicates.md (mux1_brcst_element): New.
11268         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11269         * config/ia64/ia64.c (ia64_unpack_assemble): New.
11270         (ia64_unpack_sign): New.
11271         (ia64_expand_unpack): Rewrite using new routines.
11272         (ia64_expand_widen_sum): Ditto.
11273         (ia64_expand_dot_prod_v8qi): Ditto.
11274         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11275         routines, add endian check.
11276         (pmpy2_even): Rename from pmpy2_r, add endian check.
11277         (pmpy2_odd): Rename from pmpy2_l, add endian check.
11278         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11279         (vec_widen_smult_hi_v4hi): Ditto.
11280         (vec_widen_umult_lo_v4hi): Ditto.
11281         (vec_widen_umult_hi_v4hi): Ditto.
11282         (mulv2si3): Change endian checks.
11283         (sdot_prodv4hi): Rewrite with new calls.
11284         (udot_prodv4hi): New.
11285         (vec_pack_ssat_v4hi): Add endian check.
11286         (vec_pack_usat_v4hi): Ditto.
11287         (vec_pack_ssat_v2si): Ditto.
11288         (max1_even): Rename from max1_r, add endian check.
11289         (max1_odd): Rename from max1_l, add endian check.
11290         (*mux1_rev): Format change.
11291         (*mux1_mix): Ditto.
11292         (*mux1_shuf): Ditto.
11293         (*mux1_alt): Ditto.
11294         (*mux1_brcst_v8qi): Use new predicate.
11295         (vec_extract_evenv8qi): Remove endian check.
11296         (vec_extract_oddv8qi): Ditto.
11297         (vec_interleave_lowv4hi): Format change.
11298         (vec_interleave_highv4hi): Ditto.
11299         (mix2_even): Rename from mix2_r, add endian check.
11300         (mix2_odd): Rename from mux2_l, add endian check.
11301         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11302         (vec_extract_evenodd_helper): Format change.
11303         (vec_extract_evenv4hi): Remove endian check.
11304         (vec_extract_oddv4hi): Remove endian check.
11305         (vec_interleave_lowv2si): Format change.
11306         (vec_interleave_highv2si): Format change.
11307         (vec_initv2si): Remove endian check.
11308         (vecinit_v2si): Add endian check.
11309         (reduc_splus_v2sf): Add endian check.
11310         (reduc_smax_v2sf): Ditto.
11311         (reduc_smin_v2sf): Ditto.
11312         (vec_initv2sf): Remove endian check.
11313         (fpack): Add endian check.
11314         (fswap): Add endian check.
11315         (vec_interleave_highv2sf): Add endian check.
11316         (vec_interleave_lowv2sf): Add endian check.
11317         (fmix_lr): Add endian check.
11318         (vec_setv2sf): Format change.
11319         (*vec_extractv2sf_0_be): Use shift to extract operand.
11320         (*vec_extractv2sf_1_be): New.
11321         (vec_pack_trunc_v4hi): Add endian check.
11322         (vec_pack_trunc_v2si): Format change.
11323
11324 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
11325
11326         PR inline-asm/23200
11327         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
11328         do bb, locus and block comparison and disallow loads if it is not set.
11329         (stmt_is_replaceable_p): New function.
11330         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11331         callers.
11332         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11333         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11334         SSA_NAME_DEF_STMT.
11335         * tree-flow.h (stmt_is_replaceable_p): New prototype.
11336
11337 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11338
11339         * config/rs6000/xilinx.opt: New.
11340         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11341
11342 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
11343
11344         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11345
11346 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
11347
11348         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11349         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11350         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11351         secondary_reload_info, xtensa_secondary_reload): Remove.
11352         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11353         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11354         (xtensa_preferred_reload_class): Make static. Change return and
11355         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11356         Use CONST_DOUBLE_P predicate.
11357         (xtensa_preferred_output_reload_class): New function.
11358         (xtensa_secondary_reload): Make static.
11359
11360 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
11361
11362         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11363         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11364         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11365
11366 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11367
11368         PR middle-end/31490
11369         * output.h (SECTION_RELRO): Define.
11370         (SECTION_MACH_DEP): Adjust.
11371         (get_variable_section): New prototype.
11372         * varpool.c (varpool_finalize_named_section_flags): New function.
11373         (varpool_assemble_pending_decls): Call it.
11374         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11375         * cgraphunit.c (cgraph_output_in_order): Call
11376         varpool_finalize_named_section_flags.
11377         * varasm.c (get_section): Allow section flags conflicts between
11378         relro and read-only sections if the section hasn't been declared yet.
11379         Set SECTION_OVERRIDE after diagnosing section type conflict.
11380         (get_variable_section): No longer static.
11381         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11382         readonly sections that need relocations.
11383         (decl_readonly_section_1): New function.
11384         (decl_readonly_section): Use it.
11385
11386         Revert:
11387         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
11388                     Steve Ellcey  <sje@cup.hp.com>
11389
11390         PR middle-end/31490
11391         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11392         if section attribute used.
11393
11394 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11395
11396         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11397         * config/darwin.c (SECTION_NO_ANCHOR): Define.
11398         (darwin_init_sections): Remove assertion.
11399
11400 2011-02-03  Nick Clifton  <nickc@redhat.com>
11401
11402         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11403         lt and ge.
11404         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
11405         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11406         instead of "n" and "pz".
11407         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11408         CC_FLAG_S.
11409
11410 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
11411
11412         PR target/47312
11413         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11414         fma, expand FMA_EXPR as fma{,f,l} call.
11415
11416         PR lto/47274
11417         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11418         copy them into a unsigned char variable and pass address of it to
11419         lto_output_data_stream.
11420
11421         PR target/47564
11422         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11423         around backend_init_target and lang_dependent_init_target calls.
11424         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11425         (verify_cgraph_node): Don't call set_cfun here.  Use
11426         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11427         Set error_found for incorrectly represented calls to thunks.
11428
11429 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11430
11431         PR debug/43092
11432         PR rtl-optimization/43494
11433         * rtl.h (for_each_inc_dec_fn): New type.
11434         (for_each_inc_dec): Declare.
11435         * rtlanal.c (struct for_each_inc_dec_ops): New type.
11436         (for_each_inc_dec_find_inc_dec): New fn.
11437         (for_each_inc_dec_find_mem): New fn.
11438         (for_each_inc_dec): New fn.
11439         * dse.c (struct insn_size): Remove.
11440         (replace_inc_dec, replace_inc_dec_mem): Remove.
11441         (emit_inc_dec_insn_before): New fn.
11442         (check_for_inc_dec): Use it, along with for_each_inc_dec.
11443         (canon_address): Pass mem modes to cselib_lookup.
11444         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
11445         (cselib_lookup_from_insn): Likewise.
11446         (cselib_subst_to_values): Likewise.
11447         * cselib.c (find_slot_memmode): New var.
11448         (cselib_find_slot): New fn.  Use it instead of
11449         htab_find_slot_with_hash everywhere.
11450         (entry_and_rtx_equal_p): Use find_slot_memmode.
11451         (autoinc_split): New fn.
11452         (rtx_equal_for_cselib_p): Rename and implement in terms of...
11453         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
11454         Deal with autoinc.  Special-case recursion into MEMs.
11455         (cselib_hash_rtx): Likewise.
11456         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
11457         address and MEM modes.
11458         (cselib_subst_to_values): Add memmode, pass it on.
11459         Deal with autoinc.
11460         (cselib_lookup): Add memmode argument, pass it on.
11461         (cselib_lookup_from_insn): Add memmode.
11462         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11463         (struct cselib_record_autoinc_data): New.
11464         (cselib_record_autoinc_cb): New fn.
11465         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
11466         mode to cselib_lookup.  Reset autoinced REGs here instead of...
11467         (cselib_process_insn): ... here.
11468         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11469         to cselib_lookup.
11470         (add_uses): Likewise, also to cselib_subst_to_values.
11471         (add_stores): Likewise.
11472         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
11473         cselib_subst_to_values.
11474         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
11475         * gcse.c (do_local_cprop): Adjusted.
11476         * postreload.c (reload_cse_simplify_set): Adjusted.
11477         (reload_cse_simplify_operands): Adjusted.
11478         * sel-sched-dump (debug_mem_addr_value): Pass mode.
11479
11480 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
11481
11482         PR tree-optimization/45122
11483         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11484         unsafe assumptions when there's more than one loop exit.
11485
11486 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11487
11488         PR target/47272
11489         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11490         Document using vector double with the load/store builtins, and
11491         that the load/store builtins always use Altivec instructions.
11492
11493         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11494         to use altivec memory instructions, even on VSX.
11495         (vector_altivec_store_<mode>): Ditto.
11496
11497         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11498         function.
11499
11500         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11501         V2DF, V2DI support to load/store overloaded builtins.
11502
11503         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11504         altivec load/store builtins for V2DF/V2DI types.
11505
11506         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11507         set avoid indexed addresses on power6 if -maltivec.
11508         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11509         vector_altivec_load/vector_altivec_store builtins.
11510         (altivec_expand_st_builtin): Ditto.
11511         (altivec_expand_builtin): Add VSX memory builtins.
11512         (rs6000_init_builtins): Add V2DI types to internal types.
11513         (altivec_init_builtins): Add support for V2DF/V2DI altivec
11514         load/store builtins.
11515         (rs6000_address_for_altivec): Insure memory address is appropriate
11516         for Altivec.
11517
11518         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11519         vec_vsx_ld and vec_vsx_st.
11520         (vsx_store_<mode>): Ditto.
11521
11522         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
11523         variables to hold long long types for VSX vector memory builtins.
11524         (RS6000_BTI_unsigned_long_long): Ditto.
11525         (long_long_integer_type_internal_node): Ditti.
11526         (long_long_unsigned_type_internal_node): Ditti.
11527
11528         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
11529         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
11530         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
11531
11532         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
11533         short cuts.
11534         (vec_vsx_st): Ditto.
11535
11536 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11537
11538         * config/pa/pa-hpux10.opt: New.
11539         * config/hpux11.opt (pthread): New Driver option.
11540         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
11541         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
11542
11543 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11544
11545         * config/ia64/vms.opt: New.
11546         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
11547
11548 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
11549
11550         PR target/47580
11551         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
11552         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
11553         generator functions.
11554         (vsx_floatuns<VSi><mode>2): Ditto.
11555         (vsx_fix_trunc<mode><VSi>2): Ditto.
11556         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
11557
11558 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
11559
11560         * config/i386/djgpp.opt (posix): New Driver option.
11561
11562 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
11563
11564         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
11565         Move to the unsupported targets list.
11566
11567 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
11568
11569         PR rtl-optimization/47525
11570         * df-scan.c: Update copyright years.
11571         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
11572         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
11573
11574 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11575
11576         * config/i386/sysv4.h (TARGET_VERSION): Remove.
11577         (SUBTARGET_RETURN_IN_MEMORY): Remove.
11578         (ASM_OUTPUT_ASCII): Remove.
11579         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
11580
11581 2011-02-02  Jeff Law  <law@redhat.com>
11582
11583         PR middle-end/47543
11584         * reload.c (find_reloads_address): Handle reg+d address where both
11585         components are invalid by reloading the entire address.
11586
11587 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11588             Richard Guenther  <rguenther@suse.de>
11589
11590         PR tree-optimization/40979
11591         PR bootstrap/47044
11592         * passes.c (init_optimization_passes): After LIM call copy_prop
11593         and DCE to clean up.
11594         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
11595
11596 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
11597
11598         PR tree-optimization/47576
11599         PR tree-optimization/47555
11600         * doc/invoke.texi (scev-max-expr-complexity): Documented.
11601         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11602         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
11603         * tree-scalar-evolution.c (follow_ssa_edge): Use
11604         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
11605
11606 2011-02-02  Richard Guenther  <rguenther@suse.de>
11607
11608         PR tree-optimization/47566
11609         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
11610
11611 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
11612
11613         PR debug/47106
11614         PR debug/47402
11615         * tree-inline.c (declare_return_variable): Remove unused caller
11616         variable.
11617
11618         PR debug/47106
11619         PR debug/47402
11620         * tree-flow-inline.h (clear_is_used, is_used_p): New.
11621         * cfgexpand.c (account_used_vars_for_block): Use them.
11622         * tree-nrv.c (tree_nrv): Likewise.
11623         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
11624         (dump_scope_block): Likewise.
11625         (remove_unused_locals): Likewise.
11626
11627         PR debug/47106
11628         PR debug/47402
11629         * tree-inline.c (declare_return_variable): Add result decl to
11630         local decls only once.
11631         * gimple-low.c (record_vars_into): Mark newly-created variables
11632         as referenced.
11633
11634 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
11635
11636         PR debug/47498
11637         PR debug/47501
11638         PR debug/45136
11639         PR debug/45130
11640         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11641         debug insns.
11642         (no_real_insns_p, schedule_block, set_priorities): Drop special
11643         treatment of boundary debug insns.
11644         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11645         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
11646         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11647         (BOUNDARY_DEBUG_INSN_P): Likewise.
11648         (SCHEDULE_DEBUG_INSN_P): Likewise.
11649         * sched-rgn.c (init_ready_list): Drop special treatment of
11650         boundary debug insns.
11651         * final.c (rest_of_clean_state): Clear notes' BB.
11652
11653 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11654
11655         * config/openbsd.opt (assert=): New Driver option.
11656
11657 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11658
11659         * config/i386/nto.opt: New.
11660         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
11661
11662 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11663
11664         * config/i386/netware.opt: New.
11665         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
11666
11667 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11668
11669         * config/interix.opt (posix): New Driver option.
11670
11671 2011-02-01  DJ Delorie  <dj@redhat.com>
11672
11673         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
11674
11675         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
11676         class for A0/A1.
11677
11678 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
11679
11680         PR tree-optimization/47561
11681         * toplev.c (process_options): Print the Graphite flags.  Add
11682         flag_loop_flatten to the list of options requiring Graphite.
11683
11684 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11685
11686         * config/i386/cygming.opt (posix): New Driver option.
11687
11688 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11689
11690         * config/arm/vxworks.opt: New.
11691         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
11692
11693 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
11694
11695         * config/alpha/elf.opt: New.
11696         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
11697         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
11698
11699 2011-02-01  Richard Guenther  <rguenther@suse.de>
11700
11701         PR tree-optimization/47559
11702         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
11703         store-motion on references that can throw.
11704
11705 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
11706
11707         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
11708         * tree-pass.h (TDF_CSELIB): New macro.
11709         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
11710         cselib_lookup): Check for it rather than for TDF_DETAILS.
11711
11712 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
11713
11714         PR driver/47547
11715         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
11716         is HOST_BIT_BUCKET.
11717
11718         * opts.c (finish_options): Don't add x_aux_base_name if it is
11719         HOST_BIT_BUCKET.
11720
11721 2011-02-01  Richard Guenther  <rguenther@suse.de>
11722
11723         PR tree-optimization/47555
11724         Revert
11725         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
11726
11727         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11728
11729 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
11730
11731         PR gcc/46692
11732         * config/lm32/t-lm32: Add multilib for all CPU options.
11733
11734 2011-02-01  Richard Guenther  <rguenther@suse.de>
11735
11736         PR tree-optimization/47541
11737         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11738         sure to have a field at offset zero.
11739
11740 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11741
11742         * config/arc/arc.opt (EB, EL): New Driver options.
11743
11744 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11745
11746         * config/alpha/osf5.opt: New.
11747         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
11748
11749 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
11750
11751         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
11752
11753 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
11754
11755         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
11756         -floop-interchange.
11757         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
11758         is an alias of -floop-interchange and that it requires the
11759         Graphite infrastructure.
11760         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
11761         flag_loop_interchange based on the value of flag_tree_loop_linear.
11762
11763 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
11764             Richard Guenther  <rguenther@suse.de>
11765
11766         PR tree-optimization/47538
11767         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
11768         type instead of r1type, except for comparisons.  For right
11769         shifts and comparisons punt if there are mismatches in
11770         sizetype vs. non-sizetype types.
11771
11772 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11773
11774         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11775         avx_runtime.
11776
11777 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11778
11779         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
11780         version number.
11781         * configure: Regenerate.
11782
11783 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11784
11785         * configure.ac (gcc_cv_ld_static_option): Define.
11786         (gcc_cv_ld_dynamic_option): Define.
11787         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
11788         instead.
11789         (HAVE_LD_STATIC_DYNAMIC): Update message.
11790         (LD_STATIC_OPTION): Define.
11791         (LD_DYNAMIC_OPTION): Define.
11792         * configure: Regenerate.
11793         * config.in: Regenerate.
11794         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
11795         HAVE_LD_STATIC_DYNAMIC]: Use them.
11796
11797 2011-01-31  Nick Clifton  <nickc@redhat.com>
11798
11799         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
11800         registers inside interrupt handlers if the handler is not a leaf
11801         function.
11802
11803 2011-01-31  Nick Clifton  <nickc@redhat.com>
11804
11805         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
11806         reg_renumber returning an INVALID_REGNUM.
11807
11808 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
11809
11810         PR libgcj/44341
11811         * doc/install.texi: Document host options discarded when cross
11812         configuring target libraries.
11813
11814 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
11815
11816         Reverted:
11817         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
11818         PR debug/45136
11819         PR debug/45130
11820         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11821         debug insns.
11822         (no_real_insns_p, schedule_block, set_priorities): Drop special
11823         treatment of boundary debug insns.
11824         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
11825         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11826         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11827         (BOUNDARY_DEBUG_INSN_P): Likewise.
11828         (SCHEDULE_DEBUG_INSN_P): Likewise.
11829         * sched-rgn.c (init_ready_list): Drop special treatment of
11830         boundary debug insns.
11831         * final.c (rest_of_clean-state): Clear notes' BB.
11832
11833 2011-01-31  Alan Modra  <amodra@gmail.com>
11834
11835         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
11836         toc relative expressions as we do in print_operand_address.
11837
11838 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
11839
11840         * doc/extend.texi: Follow spelling conventions.
11841         * doc/invoke.texi: Fix a typo.
11842
11843 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
11844
11845         * config/hpux11.opt: New.
11846         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
11847         ia64*-*-hpux*): Use hpux11.opt.
11848
11849 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
11850
11851         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
11852         to tmake_file.
11853
11854 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11855
11856         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
11857         support sites.
11858
11859 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11860
11861         * doc/install.texi (Binaries): Remove outdated reference for
11862         Motorola 68HC11/68HC12 downloads.
11863
11864 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
11865
11866         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
11867         Drepper's paper.
11868
11869 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
11870
11871         PR bootstrap/47147
11872         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
11873         used by NetBSD.
11874
11875 2011-01-28  Ahmad Sharif  <asharif@google.com>
11876
11877         * value-prof.c (check_counter): Corrected error message.
11878
11879 2011-01-29  Jie Zhang  <jie@codesourcery.com>
11880
11881         * config/arm/arm.c (arm_legitimize_reload_address): New.
11882         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
11883         arm_legitimize_reload_address.
11884         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
11885
11886 2011-01-28  Ian Lance Taylor  <iant@google.com>
11887
11888         * godump.c (go_define): Ignore macros whose definitions include
11889         two adjacent operands.
11890
11891 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
11892
11893         PR target/42894
11894         * varasm.c (force_const_mem): Store copy of x in desc->constant
11895         instead of x itself.
11896         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
11897         itself into REG_EQUAL note.
11898
11899 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
11900
11901         * config/freebsd.opt (posix, rdynamic): New Driver options.
11902
11903 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11904
11905         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
11906         -Bstatic/-Bdynamic.
11907         * configure: Regenerate.
11908
11909 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
11910
11911         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
11912         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
11913
11914 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
11915
11916         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
11917         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
11918         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11919         (s390_preferred_reload_class): Make static. Change return and
11920         'rclass' argument type to reg_class_t.
11921
11922 2011-01-27  Jan Hubicka  <jh@suse.cz>
11923
11924         PR middle-end/46949
11925         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
11926         (process_function_and_variable_attributes): Check defined weakrefs.
11927
11928 2011-01-27  Martin Jambor  <mjambor@suse.cz>
11929
11930         PR tree-optimization/47228
11931         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
11932         build_ref_for_offset.
11933
11934 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11935
11936         * config/spu/spu-elf.h (ASM_SPEC): Remove.
11937
11938 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
11939
11940         PR rtl-optimization/46856
11941         * postreload.c (reload_combine_recognize_const_pattern): Do not
11942         separate cc0 setter and user on cc0 targets.
11943
11944 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
11945
11946         PR c/43082
11947         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
11948         passed a VOID_TYPE expression, immediately emit an error and
11949         return error_mark_node.
11950
11951 2011-01-26  Jeff Law  <law@redhat.com>
11952
11953         PR rtl-optimization/47464
11954         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
11955         rather than may_trap_p as needed.
11956
11957 2011-01-26  DJ Delorie  <dj@redhat.com>
11958
11959         PR rtl-optimization/46878
11960         * combine.c (insn_a_feeds_b): Check for the implicit cc0
11961         setter/user dependency as well.
11962
11963 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
11964
11965         PR rtl-optimization/44469
11966         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
11967         after removing trivially dead basic blocks.
11968
11969 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11970
11971         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
11972         * config/frv/frv.h (LINK_SPEC): Likewise.
11973         * config/i386/netware.h (LINK_SPEC): Likewise.
11974         * config/m68k/linux.h (ASM_SPEC): Likewise.
11975         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11976         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11977         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11978         * config/sparc/linux.h (ASM_SPEC): Likewise.
11979         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11980         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11981
11982 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11983
11984         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
11985         * config/frv/frv.h (ASM_SPEC): Likewise.
11986         * config/m68k/linux.h (ASM_SPEC): Likewise.
11987         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11988         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
11989         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11990         * config/sparc/linux.h (ASM_SPEC): Likewise.
11991         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11992         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11993
11994 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
11995
11996         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
11997         * config/frv/frv.h (LINK_SPEC): Likewise.
11998         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11999
12000 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
12001
12002         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12003         * config/frv/frv.h (ASM_SPEC): Likewise.
12004         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12005         * config/m68k/linux.h (ASM_SPEC): Likewise.
12006         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12007         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12008         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12009         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12010         * config/sparc/linux.h (ASM_SPEC): Likewise.
12011         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12012         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12013         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12014
12015 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
12016
12017         PR target/46997
12018         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12019         (*mux2): Ditto.
12020         (vec_extract_evenodd_help): Ditto.
12021         (vec_extract_evenv4hi): Ditto.
12022         (vec_extract_oddv4hi): Ditto.
12023         (vec_interleave_lowv2si): Ditto.
12024         (vec_interleave_highv2si): Ditto.
12025         (vec_extract_evenv2si): Ditto.
12026         (vec_extract_oddv2si: Ditto.
12027         (vec_pack_trunc_v2si): Ditto.
12028
12029 2011-01-22  Jan Hubicka  <jh@suse.cz>
12030
12031         PR target/47237
12032         * cgraph.h (cgraph_local_info): New field can_change_signature.
12033         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12034         signature can change.
12035         (ipcp_estimate_growth): Call sequence simplify only if calle signature
12036         can change.
12037         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12038         (cgraph_function_versioning): We can not change signature of functions
12039         that don't allow that.
12040         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12041         (lto_input_node): Likewise.
12042         * ipa-inline.c (compute_inline_parameters): Compute
12043         local.can_change_signature.
12044         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
12045         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12046         functions that can not change signature.
12047         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
12048         init_cumulative_args): Do not use local calling conventions
12049         for functions that can not change signature.
12050
12051 2011-01-22  Jan Hubicka  <jh@suse.cz>
12052
12053         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12054
12055 2011-01-26  Richard Guenther  <rguenther@suse.de>
12056
12057         PR tree-optimization/47190
12058         * cgraphunit.c (process_common_attributes): New function.
12059         (process_function_and_variable_attributes): Use it.
12060
12061 2011-01-26  Richard Guenther  <rguenther@suse.de>
12062
12063         PR lto/47423
12064         * cgraphbuild.c (record_eh_tables): Record reference to personality
12065         function.
12066
12067 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
12068
12069         PR debug/45454
12070         * sel-sched.c (moveup_expr): Don't let debug insns prevent
12071         non-debug insns from moving up.
12072
12073 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12074
12075         PR target/40125
12076         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12077         t-dlldir{,-x} fragment for build and add it to tmake_file.
12078         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12079         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12080         * config/i386/t-dlldir: New file.
12081         (SHLIB_DLLDIR): Define.
12082         * config/i386/t-dlldir-x: New file.
12083         (SHLIB_DLLDIR): Define.
12084         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12085         (SHLIB_INSTALL): Use it.
12086
12087 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
12088
12089         PR target/47246
12090         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12091         lower bound of the allowed Thumb-2 coprocessor load/store
12092         index range to -256. Add explaining comment.
12093
12094 2011-01-25  Ian Lance Taylor  <iant@google.com>
12095
12096         * godump.c (go_define): Improve lexing of macro expansion to only
12097         accept expressions which match Go spec.
12098
12099 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
12100
12101         PR c++/43601
12102         * tree.c (handle_dll_attribute): Handle it.
12103         * doc/extend.texi (@item dllexport): Mention it.
12104         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12105
12106 2011-01-25  Ian Lance Taylor  <iant@google.com>
12107
12108         PR tree-optimization/26854
12109         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12110         (decl_jump_unsafe): Move higher in file, with no other change.
12111         (bind): Set has_jump_unsafe_decl if appropriate.
12112         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12113         (check_earlier_gotos): Likewise.
12114         (c_check_switch_jump_warnings): Likewise.
12115
12116 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
12117
12118         * doc/invoke.texi (Warning Options): Add missing hyphen.
12119         (-fprofile-dir): Minor grammatical fixes.
12120         (-fbranch-probabilities): Likewise.
12121
12122 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
12123
12124         PR debug/45136
12125         PR debug/45130
12126         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12127         debug insns.
12128         (no_real_insns_p, schedule_block, set_priorities): Drop special
12129         treatment of boundary debug insns.
12130         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
12131         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12132         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12133         (BOUNDARY_DEBUG_INSN_P): Likewise.
12134         (SCHEDULE_DEBUG_INSN_P): Likewise.
12135         * sched-rgn.c (init_ready_list): Drop special treatment of
12136         boundary debug insns.
12137         * final.c (rest_of_clean-state): Clear notes' BB.
12138
12139 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12140
12141         * Makefile.in (LAMBDA_H): Removed.
12142         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12143         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12144         lambda-trans.o, and tree-loop-linear.o.
12145         (lto-symtab.o): Remove dependence on LAMBDA_H.
12146         (tree-loop-linear.o): Remove rule.
12147         (lambda-mat.o): Same.
12148         (lambda-trans.o): Same.
12149         (lambda-code.o): Same.
12150         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12151         (tree-vect-slp.o): Same.
12152         * hwint.h (gcd): Moved here.
12153         (least_common_multiple): Same.
12154         * lambda-code.c: Removed.
12155         * lambda-mat.c: Removed.
12156         * lambda-trans.c: Removed.
12157         * lambda.h: Removed.
12158         * tree-loop-linear.c: Removed.
12159         * lto-symtab.c: Do not include lambda.h.
12160         * omega.c (gcd): Removed.
12161         * passes.c (init_optimization_passes): Remove pass_linear_transform.
12162         * tree-data-ref.c (print_lambda_vector): Moved here.
12163         (lambda_vector_copy): Same.
12164         (lambda_matrix_copy): Same.
12165         (lambda_matrix_id): Same.
12166         (lambda_vector_first_nz): Same.
12167         (lambda_matrix_row_add): Same.
12168         (lambda_matrix_row_exchange): Same.
12169         (lambda_vector_mult_const): Same.
12170         (lambda_vector_negate): Same.
12171         (lambda_matrix_row_negate): Same.
12172         (lambda_vector_equal): Same.
12173         (lambda_matrix_right_hermite): Same.
12174         * tree-data-ref.h: Do not include lambda.h.
12175         (lambda_vector): Moved here.
12176         (lambda_matrix): Same.
12177         (dependence_level): Same.
12178         (lambda_transform_legal_p): Removed declaration.
12179         (lambda_collect_parameters): Same.
12180         (lambda_compute_access_matrices): Same.
12181         (lambda_vector_gcd): Same.
12182         (lambda_vector_new): Same.
12183         (lambda_vector_clear): Same.
12184         (lambda_vector_lexico_pos): Same.
12185         (lambda_vector_zerop): Same.
12186         (lambda_matrix_new): Same.
12187         * tree-flow.h (least_common_multiple): Removed declaration.
12188         * tree-parloops.c (lambda_trans_matrix): Moved here.
12189         (LTM_MATRIX): Same.
12190         (LTM_ROWSIZE): Same.
12191         (LTM_COLSIZE): Same.
12192         (LTM_DENOMINATOR): Same.
12193         (lambda_trans_matrix_new): Same.
12194         (lambda_matrix_vector_mult): Same.
12195         (lambda_transform_legal_p): Same.
12196         * tree-pass.h (pass_linear_transform): Removed declaration.
12197         * tree-ssa-loop.c (tree_linear_transform): Removed.
12198         (gate_tree_linear_transform): Removed.
12199         (pass_linear_transform): Removed.
12200         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12201         flag_loop_interchange.
12202
12203 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12204
12205         PR tree-optimization/47265
12206         PR tree-optimization/47443
12207         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12208         if name still has some uses.
12209
12210 2011-01-25  Martin Jambor  <mjambor@suse.cz>
12211
12212         PR tree-optimization/47382
12213         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12214         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12215
12216 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
12217
12218         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12219         sjlj_except_unwind_info.
12220
12221 2011-01-25  Richard Guenther  <rguenther@suse.de>
12222
12223         PR tree-optimization/47426
12224         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12225         visible functions results escape.
12226
12227 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12228
12229         PR target/45701
12230         * config/arm/arm.c (any_sibcall_uses_r3): New function.
12231         (arm_get_frame_offsets): Use it.
12232
12233 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12234             Jakub Jelinek  <jakub@redhat.com>
12235
12236         PR tree-optimization/47271
12237         * tree-if-conv.c (bb_postdominates_preds): New.
12238         (if_convertible_bb_p): Call bb_postdominates_preds.
12239         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12240         (predicate_scalar_phi): Call bb_postdominates_preds.
12241
12242 2011-01-25  Nick Clifton  <nickc@redhat.com>
12243
12244         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12245         * config/rx/rx.c (rx_function_value): Likewise.
12246         (rx_promote_function_mode): Likewise.
12247         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12248         in order to make it legitimate.
12249         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12250         make sure that the first operand is the same as the result register.
12251         (addsi3_unspec): Delete.
12252         (subdi3): Do not accept immediate operands.
12253         (subdi3_internal): Likewise.
12254
12255 2011-01-25  Jeff Law  <law@redhat.com>
12256
12257         PR rtl-optimization/37273
12258         * ira-costs.c (scan_one_insn): Detect constants living in memory and
12259         handle them like argument loads from stack slots.  Do not double
12260         count memory for memory constants and argument loads from stack slots.
12261
12262 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
12263
12264         PR tree-optimization/47427
12265         PR tree-optimization/47428
12266         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12267         coalesce if the new root var would be TREE_READONLY.
12268
12269 2011-01-25  Richard Guenther  <rguenther@suse.de>
12270
12271         PR middle-end/47414
12272         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12273         correct type for TBAA.
12274
12275 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12276
12277         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12278         (close_phi_written_to_memory): Call for_each_index with
12279         dr_indices_valid_in_loop.
12280
12281 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12282
12283         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12284         when it is initialized.
12285
12286 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12287
12288         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12289         call to graphite_find_data_references_in_stmt.
12290         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12291         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
12292         call to graphite_find_data_references_in_stmt.
12293         (analyze_drs_in_stmts): Same.
12294         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12295         in which the scalar analysis of indices is performed.
12296         (create_data_ref): Same.  Update call to dr_analyze_indices.
12297         (find_data_references_in_stmt): Update call to create_data_ref.
12298         (graphite_find_data_references_in_stmt): Same.
12299         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12300         declaration.
12301         (create_data_ref): Same.
12302         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12303         call to create_data_ref.
12304
12305 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12306
12307         * graphite-sese-to-poly.c (build_poly_scop): Move
12308         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
12309
12310 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12311
12312         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12313         VAR_DECL, PARM_DECL, and RESULT_DECL.
12314
12315 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12316
12317         * graphite-dependences.c (reduction_dr_1): Allow several reductions
12318         in a reduction PBB.
12319         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12320         that have already been marked as PBB_IS_REDUCTION.
12321
12322 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12323
12324         * graphite-scop-detection.c (same_close_phi_node): New.
12325         (remove_duplicate_close_phi): New.
12326         (make_close_phi_nodes_unique): New.
12327         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12328
12329 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12330
12331         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12332         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12333         of both data references to be the same.
12334
12335 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12336
12337         * graphite-dependences.c (build_lexicographical_constraint): Remove
12338         the gdim parameter.
12339         (build_lexicographical_constraint): Adjust call to
12340         ppl_powerset_is_empty.
12341         (dependence_polyhedron): Same.
12342         (graphite_legal_transform_dr): Same.
12343         (graphite_carried_dependence_level_k): Same.
12344         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12345         parameter.
12346         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12347
12348 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12349
12350         * graphite-sese-to-poly.c
12351         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12352         (close_phi_written_to_memory): New.
12353         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12354         and unshare_expr.
12355
12356 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12357
12358         * doc/install.texi: Update the expected version number of PPL to 0.11.
12359         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12360         #if PPL_VERSION_MINOR < 11.
12361
12362 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12363
12364         * graphite-dependences.c: Include graphite-cloog-util.h.
12365         (new_poly_ddr): Inlined into dependence_polyhedron.
12366         (free_poly_ddr): Moved close by new_poly_ddr.
12367         (dependence_polyhedron_1): Renamed dependence_polyhedron.
12368         Early return NULL when ppl_powerset_is_empty returns true.
12369         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
12370         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
12371         (graphite_legal_transform_dr): Call new_poly_ddr.
12372         (graphite_carried_dependence_level_k): Same.
12373         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
12374         (dot_transformed_deps_stmt_1): Removed.
12375         (dot_deps_stmt_1): Call dot_deps_stmt_2.
12376         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
12377         (dot_deps_1): Call dot_deps_2.
12378         * Makefile.in (graphite-dependences.o): Add missing dependence on
12379         graphite-cloog-util.h.
12380
12381 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12382
12383         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12384         (build_lexicographical_constraint): Same.
12385         (dependence_polyhedron_1): Same.
12386         (graphite_legal_transform_dr): Same.
12387         (graphite_carried_dependence_level_k): Same.
12388         * graphite-ppl.c (ppl_powerset_is_empty): New.
12389         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12390         * tree-data-ref.c (dump_data_reference): Print the basic block index.
12391
12392 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12393
12394         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12395         the "a followed by b" relation and document it.
12396
12397 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12398
12399         * graphite-dependences.c (build_lexicographical_constraint): Stop the
12400         iteration when the bag of constraints is empty.
12401
12402 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12403
12404         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12405
12406 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12407
12408         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12409         nest and two loop depths as parameters.
12410         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12411         lst_perfect_nestify.
12412
12413 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12414
12415         * graphite-dependences.c (print_pddr): Call
12416         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12417
12418 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
12419
12420         * graphite-ppl.c (debug_gmp_value): New.
12421         * graphite-ppl.h (debug_gmp_value): Declared.
12422
12423 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
12424
12425         * doc/install.texi: Document availability of cloog-0.16.
12426
12427 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
12428
12429         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12430         invalid postdominance info.
12431
12432 2011-01-24  Jan Hubicka  <jh@suse.cz>
12433
12434         PR c/21659
12435         * doc/extend.texi (weak pragma): Drop claim that it must
12436         appear before definition.
12437         * varasm.c (merge_weak, declare_weak): Only sanity check
12438         that DECL is not output at a time it is declared weak.
12439
12440 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
12441
12442         * machmode.def: Fixed comments.
12443
12444 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
12445
12446         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12447
12448 2011-01-24  Paul Koning  <ni1d@arrl.net>
12449
12450         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
12451         WORDS_BIG_ENDIAN.
12452
12453 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
12454
12455         PR target/46519
12456         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12457         (block_info): Add scanned and prev.
12458         (move_or_delete_vzeroupper_2): Return if the basic block
12459         has been scanned and the upper 128bit state is unchanged
12460         from the last scan.
12461         (move_or_delete_vzeroupper_1): Return true if the exit
12462         state is changed.
12463         (move_or_delete_vzeroupper): Visit basic blocks using the
12464         work-list based algorithm based on vt_find_locations in
12465         var-tracking.c.
12466
12467         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12468
12469 2011-01-24  Nick Clifton  <nickc@redhat.com>
12470
12471         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12472         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12473         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
12474         then define __v850e1__.
12475         * doc/invoke.texi: Document -mv850es.
12476
12477 2011-01-24  Richard Henderson  <rth@redhat.com>
12478
12479         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12480         compound unordered comparisons.
12481         * config/rx/rx.c (rx_split_fp_compare): Remove.
12482         * config/rx/rx-protos.h: Update.
12483         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12484         (cbranchsf4): Don't call rx_split_fp_compare.
12485         (*cbranchsf4): Use rx_split_cbranch.
12486         (*cmpsf): Don't accept "i" constraint.
12487         (*conditional_branch): Only valid after reload.
12488         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
12489
12490 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
12491
12492         PR target/47385
12493         * config/rs6000/altivec.md (vector constant splitters): Add
12494         support for creating vector single precision constants if -mvsx is
12495         used and we would create the constant using Altivec primitives.
12496
12497 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
12498             Richard Sandiford  <rdsandiford@googlemail.com>
12499
12500         PR rtl-optimization/47166
12501         * reload1.c (emit_reload_insns): Disable the spill_reg_store
12502         mechanism for PRE_MODIFY and POST_MODIFY.
12503         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12504         reloadreg.
12505
12506 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
12507
12508         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
12509
12510 2011-01-22  Jan Hubicka  <jh@suse.cz>
12511
12512         PR lto/47333
12513         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12514
12515 2011-01-22  Jan Hubicka  <jh@suse.cz>
12516
12517         PR tree-optimization/43884
12518         PR lto/44334
12519         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
12520         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
12521
12522 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
12523
12524         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12525         * config/s390/s390.c (s390_register_move_cost,
12526         s390_memory_move_cost): New.
12527         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12528
12529 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12530
12531         PR middle-end/47401
12532         * except.c (sjlj_assign_call_site_values): Move setting the
12533         crtl->uses_eh_lsda flag to ...
12534         (sjlj_mark_call_sites): ... here.
12535         (sjlj_emit_function_enter): Support NULL dispatch label.
12536         (sjlj_build_landing_pads): In a function with no landing pads
12537         that still has must-not-throw regions, generate code to register
12538         a personality function with empty LSDA.
12539
12540 2011-01-21  Richard Henderson  <rth@redhat.com>
12541
12542         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
12543
12544         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
12545
12546         * compare-elim.c: New file.
12547         * Makefile.in (OBJS-common): Add it.
12548         (compare-elim.o): New.
12549         * common.opt (fcompare-elim): New.
12550         * opts.c (default_options_table): Add OPT_fcompare_elim.
12551         * tree-pass.h (pass_compare_elim_after_reload): New.
12552         * passes.c (init_optimization_passes): Add it.
12553         * recog.h: Protect against re-inclusion.
12554         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
12555         * doc/invoke.texi (-fcompare-elim): Document it.
12556         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
12557         * doc/tm.texi: Rebuild.
12558
12559 2011-01-22  Nick Clifton  <nickc@redhat.com>
12560
12561         * config/rx/rx.md (cstoresf4): Pass comparison operator to
12562         rx_split_fp_compare.
12563
12564 2011-01-22  Nick Clifton  <nickc@redhat.com>
12565
12566         * config/rx/rx.md (UNSPEC_CONST): New.
12567         (deallocate_and_return): Wrap the amount popped off the stack in
12568         an UNSPEC_CONST in order to stop it being rejected by
12569         -mmax-constant-size.
12570         (pop_and_return): Add a "(return)" rtx.
12571         (call): Drop the immediate operand.
12572         (call_internal): Likewise.
12573         (call_value): Likewise.
12574         (call_value_internal): Likewise.
12575         (sibcall_internal): Likewise.
12576         (sibcall_value_internal): Likewise.
12577         (sibcall): Likewise.  Generate an explicit call using
12578         sibcall_internal.
12579         (sibcall_value): Likewise.
12580         (mov<>): FAIL if a constant operand is not legitimate.
12581         (addsi3_unpsec): New pattern.
12582
12583         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
12584         (ok_for_max_constant): New function.
12585         (gen_safe_add): New function.
12586         (rx_expand_prologue): Use gen_safe_add.
12587         (rx_expand_epilogue): Likewise.
12588         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
12589         UNSPEC CONSTs.
12590
12591 2011-01-21  Jeff Law  <law@redhat.com>
12592
12593         PR tree-optimization/47053
12594         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
12595         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
12596         statements are deleted.
12597         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
12598         is nonempty, then purge dead edges and cleanup the CFG.
12599
12600 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12601
12602         PR debug/47402
12603         Temporarily revert:
12604         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12605         PR debug/47106
12606         * tree-dfa.c (create_var_ann): Mark variable as used.
12607
12608 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12609
12610         PR middle-end/45566
12611         * except.c (convert_to_eh_region_ranges): Emit queued no-region
12612         notes from other section in hot/cold partitioning even if
12613         last_action is -3.  Increment call_site_base.
12614
12615         PR rtl-optimization/47366
12616         * fwprop.c (forward_propagate_into): Return bool.  If
12617         any changes are made, -fnon-call-exceptions is used and
12618         REG_EH_REGION note is present, call purge_dead_edges
12619         and return true if it purged anything.
12620         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
12621         any EH edges were purged.
12622
12623 2011-01-21  Jeff Law  <law@redhat.com>
12624
12625         PR rtl-optimization/41619
12626         * caller-save.c (setup_save_areas): Break out code to determine
12627         which hard regs are live across calls by examining the reload chains
12628         so that it is always used.
12629         Eliminate code which checked REG_N_CALLS_CROSSED.
12630
12631 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12632
12633         PR tree-optimization/47355
12634         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
12635         NOP has non-debug uses beyond PHIs in new_bb.
12636
12637 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
12638
12639         PR debug/47106
12640         * cfgexpand.c (account_used_vars_for_block): Only account vars
12641         that are annotated as used.
12642         (estimated_stack_frame_size): Don't set TREE_USED.
12643         * tree-dfa.c (create_var_ann): Mark variable as used.
12644
12645 2011-01-21  Richard Guenther  <rguenther@suse.de>
12646
12647         PR middle-end/47395
12648         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
12649
12650 2011-01-21  Richard Guenther  <rguenther@suse.de>
12651
12652         PR tree-optimization/47365
12653         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
12654         (vn_reference_lookup_pieces): Adjust.
12655         (vn_reference_lookup): Likewise.
12656         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
12657         (vn_reference_lookup_3): Only look through kills if in
12658         VN_WALKREWRITE mode.
12659         (vn_reference_lookup_pieces): Adjust.
12660         (vn_reference_lookup): Likewise.
12661         (visit_reference_op_load): Likewise.
12662         (visit_reference_op_store): Likewise.
12663         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
12664         (compute_avail): Likewise.
12665         (eliminate): Likewise.
12666
12667 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
12668
12669         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
12670         DECL_IGNORED_P non-reg vars if they are used.
12671
12672         PR tree-optimization/47391
12673         * varpool.c (const_value_known_p): Return false if
12674         decl is volatile.
12675
12676 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
12677
12678         PR bootstrap/47215
12679         * config/i386/i386.c (ix86_local_alignment): Handle
12680         case for va_list_type_node is nil.
12681         (ix86_canonical_va_list_type): Likewise.
12682
12683 2011-01-21  Alan Modra  <amodra@gmail.com>
12684
12685         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
12686         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
12687
12688 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12689
12690         * config/arm/arm.md (define_attr type): Rename f_load
12691         and f_store to f_fpa_load and f_fpa_store. Update.
12692         (write_conflict): Deal with rename fallout.
12693         (*push_fp_multi): Likewise.
12694         * config/arm/fpa.md (f_load): Use f_fpa_load.
12695         (f_store): Use f_fpa_store.
12696         (*movsf_fpa): Likewise.
12697         (*movdf_fpa): Likewise.
12698         (*movxf_fpa): Likewise.
12699         (*thumb2_movsf_fpa): Likewise.
12700         (*thumb2_movdf_fpa): Likewise.
12701         (*thumb2_movxf_fpa): Likewise.
12702         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
12703         f_loadd and f_stored.
12704         (*thumb2_movdi_vfp): Likewise.
12705         (*thumb2_movsf_vfp): Fix attribute to f_loads.
12706         (*thumb2_movsi_vfp): Likewise.
12707         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
12708         Use f_loads instead of f_load.
12709         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
12710
12711 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
12712
12713         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12714         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
12715         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12716         (xtensa_mode_dependent_address_p): New function.
12717         (constantpool_address_p): Make static. Change return type to bool.
12718         Change argument type to const_rtx. Use CONST_INT_P predicate.
12719
12720 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
12721
12722         PR debug/46583
12723         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
12724
12725 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
12726
12727         PR debug/47283
12728         * cfgexpand.c (expand_debug_expr): Instead of generating
12729         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
12730         etc. handling.
12731
12732 2011-01-20  Richard Guenther  <rguenther@suse.de>
12733
12734         PR middle-end/47370
12735         * tree-inline.c (remap_gimple_op_r): Recurse manually for
12736         the pointer operand of MEM_REFs.
12737
12738 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
12739
12740         PR tree-optimization/46130
12741         * ipa-split.c (consider_split): If return_bb contains non-virtual
12742         PHIs other than for retval or if split_function would not adjust it,
12743         refuse to split.
12744
12745 2011-01-20  Richard Guenther  <rguenther@suse.de>
12746
12747         PR tree-optimization/47167
12748         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12749         Revert previous change, only avoid enumeral type changes.
12750
12751 2011-01-19  Mike Stump  <mikestump@comcast.net>
12752
12753         * doc/tm.texi.in (BRANCH_COST): Englishify.
12754         * doc/tm.texi (BRANCH_COST): Likewise.
12755
12756 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
12757
12758         PR c++/47291
12759         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
12760         (gen_scheduled_generic_parms_dies): New functions.
12761         (gen_struct_or_union_type_die): Schedule template parameters DIEs
12762         generation for the end of CU compilation.
12763         (dwarf2out_finish): Generate template parameters DIEs here.
12764
12765 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12766
12767         PR debug/46240
12768         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
12769         debug bind stmt on merge edges.
12770
12771 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12772
12773         PR debug/47079
12774         PR debug/46724
12775         * function.c (instantiate_expr): Instantiate incoming rtl of
12776         implicit arguments, and recurse on VALUE_EXPRs.
12777         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
12778         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
12779
12780 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
12781
12782         * c-parser.c (c_parser_for_statement): Initialize
12783         collection_expression.
12784
12785 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12786
12787         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
12788
12789 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12790
12791         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
12792         (LINK_SHLIB_SPEC): Don't use %(link_path).
12793         (SUBTARGET_EXTRA_SPECS): Remove link_path.
12794
12795 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12796
12797         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
12798         (NO_SHARED_LIB_SUPPORT): Remove.
12799         (LINK_SHLIB_SPEC): Remove one conditional definition.
12800
12801 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
12802
12803         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
12804         %{call_shared}.
12805         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
12806         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
12807         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
12808         %{call_shared} and conditionals on these options not being passed.
12809         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
12810         %{call_shared}.
12811
12812 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
12813
12814         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
12815         simplify.
12816
12817         * ipa-split.c: Spelling fixes.
12818
12819 2011-01-19  Richard Henderson  <rth@redhat.com>
12820
12821         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
12822         (*mulsi3): Likewise.
12823
12824         * longlong.h [__mn10300__] (count_leading_zeros): New.
12825         [__mn10300__] (umul_ppmm, smul_ppmm): New.
12826         [__mn10300__] (add_ssaaaa, subddmmss): New.
12827         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
12828         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
12829
12830 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12831
12832         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
12833
12834 2011-01-19  Richard Henderson  <rth@redhat.com>
12835
12836         * config/mn10300/mn10300.md (addsi3_flags): New.
12837         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
12838         (subsi3_flags, subc_internal, subdi3): New.
12839         (subdi3_internal, *subdi3_degenerate): New.
12840         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
12841
12842         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
12843         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
12844         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
12845         * config/mn10300/mn10300-protos.h: Update.
12846         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
12847         (return_ret): Likewise.  Rename from return_internal_regs.
12848         (return_internal): Remove.
12849
12850         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
12851         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
12852         (mn10300_legitimate_constant_p): Likewise.
12853         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
12854         (mn10300_frame_size): New.
12855         (mn10300_expand_prologue): Use it.
12856         (mn10300_expand_epilogue): Likewise.
12857         (mn10300_initial_offset): Likewise.
12858         * config/mn10300/mn10300-protos.h: Update.
12859         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
12860         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
12861         (prologue, epilogue, return_internal): Tidy output code.
12862         (mn10300_store_multiple_operation, return): Likewise.
12863         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
12864         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
12865         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
12866         (load_pic, am33_load_pic): New.
12867         (mn10300_load_pic0, mn10300_load_pic1): New.
12868
12869         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
12870         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
12871         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
12872         (cc_flags_for_mode, cc_flags_for_code): New.
12873         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
12874         overflow flag is not valid.  Validate that the flags we need
12875         for the comparison are valid.
12876         (mn10300_output_cmp): Remove.
12877         (mn10300_output_add): New.
12878         (mn10300_select_cc_mode): Use cc_flags_for_code.
12879         (mn10300_split_cbranch): New.
12880         (mn10300_match_ccmode): New.
12881         (mn10300_split_and_operand_count): New.
12882         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
12883         to the function.
12884         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
12885         (addsi3): ... here.  Use mn10300_output_add.
12886         (*addsi3_flags): New.
12887         (*am33_subsi3, *mn10300_subsi3): Merge...
12888         (subsi3): ... here.  Use attribute isa.
12889         (*subsi3_flags): New.
12890         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
12891         when possible.
12892         (*am33_andsi3, *mn10300_andsi3): Merge...
12893         (andsi3): ... here.
12894         (*andsi3_flags): New.
12895         (andsi3 splitters): New.
12896         (*am33_iorsi3, *mn10300_iorsi3): Merge...
12897         (iorsi3): ... here.
12898         (*iorsi3_flags): New.
12899         (*am33_xorsi3, *mn10300_xorsi3): Merge...
12900         (xorsi3): ... here.
12901         (*xorsi3_flags): New.
12902         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
12903         (one_cmplsi2): ... here.
12904         (*one_cmplsi2_flags): New.
12905         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
12906         instead of "dax" in constraints.  Use mn10300_split_cbranch.
12907         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
12908         use matching constraints to eliminate a self-comparison.
12909         (*integer_conditional_branch): Rename from integer_conditional_branch.
12910         Use int_mode_flags to match CC_REG.
12911         (*cbranchsi4_btst, *btstsi): New.
12912         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
12913         mn10300_split_cbranch.
12914         (*am33_cmpsf): Rename from am33_cmpsf.
12915         (*float_conditional_branch): Rename from float_conditional_branch.
12916         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
12917         (zero_extendqisi2): ... here.
12918         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
12919         (zero_extendhisi2): ... here.
12920         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
12921         (extendqisi2): ... here.
12922         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
12923         (extendhisi2): ... here.
12924         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
12925         (ashlsi3): ... here.
12926         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
12927         (lshrsi3): ... here.
12928         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
12929         (ashrsi3): ... here.
12930         (consecutive add peephole): Remove.
12931         * config/mn10300/predicates.md (label_ref_operand): New.
12932         (int_mode_flags): New.
12933         (CCZN_comparison_operator): New.
12934
12935         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
12936         (throughput_42_latency_43): New reservation.
12937         (mulsidi3, umulsidi3): New expanders.
12938         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
12939         the MDR register to allocation; separately allocate the low and
12940         high parts of the DImode result.
12941         (umulsidi3_internal): Similarly.
12942         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
12943         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
12944         (udivsi3, umodsi3): Remove.
12945         (udivmodsi4, divmodsi4): New expanders.
12946         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
12947         (*divmodsi4): Simiarly.
12948         (ext_internal): New.
12949
12950         * config/mn10300/constraints.md ("z"): New constraint.
12951         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
12952         (FIXED_REGISTERS): Don't fix MDR.
12953         (CALL_USED_REGSITERS): Reformat nicely.
12954         (REG_ALLOC_ORDER): Add MDR.
12955         (enum regclass): Add MDR_REGS.
12956         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
12957         (IRA_COVER_CLASSES): Add MDR_REGS.
12958         (REGNO_REG_CLASS): Handle MDR_REG.
12959         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
12960         (mn10300_register_move_cost): Likewise.
12961         * config/mn10300/mn10300.md (MDR_REG): New.
12962         (*movsi_internal): Handle moves to/from MDR_REGS.
12963
12964         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
12965         POST_MODIFY.
12966         (mn10300_secondary_reload): Tidy combination reload classes.
12967         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
12968         addresses for AM33.  Allow symbolic offsets for reg+imm.
12969         (mn10300_regno_in_class_p): New.
12970         (mn10300_legitimize_reload_address): New.
12971         * config/mn10300/mn10300.h (enum reg_class): Remove
12972         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
12973         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
12974         SP_OR_GENERAL_REGS.
12975         (REG_CLASS_NAMES): Update to match.
12976         (REG_CLASS_CONTENTS): Likewise.
12977         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
12978         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
12979         (REGNO_IN_RANGE_P): Remove.
12980         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
12981         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
12982         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
12983         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
12984         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
12985         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
12986         (REGNO_GENERAL_P): New.
12987         (HAVE_POST_MODIFY_DISP): New.
12988         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
12989         (LEGITIMIZE_RELOAD_ADDRESS): New.
12990         * config/mn10300/mn10300-protos.h: Update.
12991
12992         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
12993         DATA_REGS for AM33 stack-pointer destination.
12994         (mn10300_preferred_output_reload_class): Likewise.
12995         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
12996         into a form appropriate for ...
12997         (TARGET_SECONDARY_RELOAD): New.
12998         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
12999         * config/mn10300/mn10300-protos.h: Update.
13000         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13001         reload_insi; use the "A" constraint for the scratch; handle AM33
13002         moves of sp to non-address registers.
13003
13004         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13005         (*movqi_internal): ... here.
13006         (*am33_movhi, *mn10300_movhi): Merge into...
13007         (*movhi_internal): ... here.
13008         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
13009         as the source/destination of moves from/to SP.
13010         (movsf): Only allow for AM33-2.
13011         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
13012         any integer constant constraint.  Only allow for AM33-2.  Tidy
13013         all of the alternative outputs.
13014         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13015         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
13016         for MN103.
13017         (udivsi3, umodsi3): New patterns for MN103 only.
13018
13019 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
13020
13021         * doc/tm.texi.in: Spell out that a lack of register class unions
13022         can lead to ICEs.
13023         * doc/tm.texi: Regenerate.
13024
13025 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
13026
13027         PR rtl-optimization/47337
13028         * dce.c (check_argument_store): New function.
13029         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
13030
13031         PR tree-optimization/47290
13032         * tree-eh.c (infinite_empty_loop_p): New function.
13033         (cleanup_empty_eh): Use it.
13034
13035 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
13036
13037         PR target/46997
13038         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13039         (a64_expand_widen_sum): Ditto.
13040         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13041         (vec_extract_evenodd_help): Ditto.
13042         (vec_extract_evenv4hi): Ditto.
13043         (vec_extract_oddv4hi): Ditto.
13044         (vec_extract_evenv2si): Ditto.
13045         (vec_extract_oddv2si): Ditto.
13046         (vec_extract_evenv2sf): Ditto.
13047         (vec_extract_oddv2sf): Ditto.
13048         (vec_pack_trunc_v4hi: Ditto.
13049         (vec_pack_trunc_v2si): Ditto.
13050         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13051         (vec_interleave_highv8qi): Ditto.
13052         (mix1_r): Ditto.
13053         (vec_extract_oddv8qi): Ditto.
13054         (vec_interleave_lowv4hi): Ditto.
13055         (vec_interleave_highv4hi): Ditto.
13056         (vec_interleave_lowv2si): Ditto.
13057         (vec_interleave_highv2si): Ditto.
13058
13059 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13060
13061         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13062         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13063         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
13064         (pa_c_mode_for_suffix): New.
13065         (TARGET_EXPAND_BUILTIN): Define.
13066         (TARGET_C_MODE_FOR_SUFFIX): Define.
13067         (pa_builtins): Define.
13068         (pa_init_builtins): Register __float128 type and init new support
13069         builtins.
13070         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13071         * config/pa/quadlib.c (_U_Qfcopysign): New.
13072
13073 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13074
13075         PR middle-end/46894
13076         * explow.c (allocate_dynamic_stack_space): Do not assume more than
13077         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13078         are defined.
13079
13080 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13081
13082         PR tree-optimization/47179
13083         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13084         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13085
13086 2011-01-18  Richard Guenther  <rguenther@suse.de>
13087
13088         PR rtl-optimization/47216
13089         * emit-rtl.c: Include tree-flow.h.
13090         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13091         of replicating it with different semantics.
13092         * Makefile.in (emit-rtl.o): Adjust.
13093
13094 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13095
13096         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
13097         (cortex_a9_dp): Handle neon types correctly.
13098
13099 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
13100
13101         PR rtl-optimization/47299
13102         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
13103         subtarget.  Use normal multiplication if both operands are constants.
13104         * expmed.c (expand_widening_mult): Don't try to optimize constant
13105         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
13106         before using it.
13107
13108 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13109
13110         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
13111         spacing after 'e.g.', typos, comma, hyphenation.
13112
13113 2011-01-17  Richard Henderson  <rth@redhat.com>
13114
13115         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13116         (rx_restricted_mem_operand): New.
13117         (rx_shift_operand): Use register_operand.
13118         (rx_source_operand, rx_compare_operand): Likewise.
13119         * config/rx/rx.md (addsi3_flags): New expander.
13120         (adddi3): Rewrite as expander.
13121         (adc_internal, *adc_flags, adddi3_internal): New patterns.
13122         (subsi3_flags): New expander.
13123         (subdi3): Rewrite as expander.
13124         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13125
13126         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13127         (rx_init_builtins): Remove sat builtin.
13128         (rx_expand_builtin): Likewise.
13129         * config/rx/rx.md (ssaddsi3): New.
13130         (*sat): Rename from sat.  Represent the CC_REG input.
13131
13132         * config/rx/predicates.md (rshift_operator): New.
13133         * config/rx/rx.c (rx_expand_insv): Remove.
13134         * config/rx/rx-protos.h: Update.
13135         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
13136         operand to the canonical position.
13137         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13138         (*bitclr, *bitclr_in_memory): Similarly.
13139         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13140         (insv): Retain the zero_extract in the expansion.
13141
13142         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13143         (bswaphi2, bitinvert, revw): Likewise.
13144
13145         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13146         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13147         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13148         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13149         (bitset, bitset_in_memory): Likewise.
13150         (bitinvert, bitinvert_in_memory): Likewise.
13151         (bitclr, bitclr_in_memory): Likewise.
13152         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13153         (rx_strend, rx_cmpstrn): Likewise.
13154         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
13155         (bitop peep2 patterns): Remove.
13156
13157         * config/rx/rx.c (rx_match_ccmode): New.
13158         * config/rx/rx-protos.h: Update.
13159         * config/rx/rx.md (abssi2): Clobber, don't set flags.
13160         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13161         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13162         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13163         (fix_truncsfsi2, floatsisf2): Likewise.
13164         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13165         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13166         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13167         (*subsi3_flags, *xorsi3_flags): New.
13168
13169         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13170
13171         * config/rx/rx.c (rx_print_operand): Remove workaround for
13172         unsplit comparison operations.
13173
13174         * config/rx/rx.md (movsicc): Split after reload.
13175         (*movsicc): Merge *movsieq and *movsine via match_operator.
13176         (*stcc): New pattern.
13177
13178         * config/rx/rx.c (rx_float_compare_mode): Remove.
13179         * config/rx/rx.h (rx_float_compare_mode): Remove.
13180         * config/rx/rx.md (cstoresi4): Split after reload.
13181         (*sccc): New pattern.
13182
13183         * config/rx/predicates.md (label_ref_operand): New.
13184         (rx_z_comparison_operator): New.
13185         (rx_zs_comparison_operator): New.
13186         (rx_fp_comparison_operator): New.
13187         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13188         Validate that the flags are set properly for the comparison.
13189         (rx_gen_cond_branch_template): Remove.
13190         (rx_cc_modes_compatible): Remove.
13191         (mode_from_flags): New.
13192         (flags_from_code): Rename from flags_needed_for_conditional.
13193         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13194         (rx_select_cc_mode): Likewise.
13195         (rx_split_fp_compare): New.
13196         (rx_split_cbranch): New.
13197         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13198         (*cbranchsi4): Use match_operator and rx_split_cbranch.
13199         (*cbranchsf4): Similarly.
13200         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
13201         match_operator and rx_split_cbranch.
13202         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13203         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
13204         (*cmpsi): Rename from cmpsi.
13205         (*tstsi): Rename from tstsi.
13206         (*cmpsf): Rename from cmpsf; use CC_Fmode.
13207         (*conditional_branch): Rename from conditional_branch.
13208         (*reveresed_conditional_branch): Remove.
13209         (b<code>): Remove expander.
13210         * config/rx/rx-protos.h: Update.
13211
13212         * config/rx/rx.c (rx_compare_redundant): Remove.
13213         * config/rx/rx.md (cmpsi): Don't use it.
13214         * config/rx/rx-protos.h: Update.
13215
13216         * config/rx/rx-modes.def (CC_F): New mode.
13217         * config/rx/rx.c (rx_select_cc_mode): New.
13218         * config/rx/rx.h (SELECT_CC_MODE): Use it.
13219         * config/rx/rx-protos.h: Update.
13220
13221 2011-01-17  Richard Henderson  <rth@redhat.com>
13222
13223         * except.c (dump_eh_tree): Fix stray ; after for statement.
13224
13225 2011-01-17  Richard Guenther  <rguenther@suse.de>
13226
13227         PR tree-optimization/47313
13228         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13229         handling before copying the body.  Properly deal with
13230         by-reference result in SSA form.
13231
13232 2011-01-17  Ian Lance Taylor  <iant@google.com>
13233
13234         PR target/47219
13235         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13236         (struct_value_alias_set): Don't define.
13237         (sparc_option_override): Don't set sparc_sr_alias_set and
13238         struct_value_alias_set.
13239         (save_or_restore_regs): Use gen_frame_mem rather than calling
13240         set_mem_alias_set.
13241         (sparc_struct_value_rtx): Likewise.
13242
13243 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
13244
13245         PR target/47318
13246         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
13247         (_mm_maskstore_pd): Likewise.
13248         (_mm_maskload_ps): Likewise.
13249         (_mm_maskstore_ps): Likewise.
13250         (_mm256_maskload_pd): Change mask to __m256i.
13251         (_mm256_maskstore_pd): Likewise.
13252         (_mm256_maskload_ps): Likewise.
13253         (_mm256_maskstore_ps): Likewise.
13254
13255         * config/i386/i386-builtin-types.def: Updated.
13256         (ix86_expand_special_args_builtin): Likewise.
13257
13258         * config/i386/i386.c (bdesc_special_args): Update
13259         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13260         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13261         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13262         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13263
13264         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13265         Use <avxpermvecmode> on mask register.
13266         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13267
13268 2011-01-17  Olivier Hainque  <hainque@adacore.com>
13269             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
13270             Eric Botcazou  <ebotcazou@adacore.com>
13271
13272         PR target/46655
13273         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13274         if <= USHRT_MAX in 32-bit mode.
13275
13276 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13277
13278         * doc/install.texi (Configuration, Specific): Wrap long
13279         lines in examples.  Allow line wrapping in long options
13280         and URLs where beneficial for PDF output.
13281
13282 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
13283
13284         * config/mips/mips.c (mips_classify_symbol): Don't return
13285         SYMBOL_PC_RELATIVE for nonlocal labels.
13286
13287 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13288
13289         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13290
13291 2011-01-15  Jan Hubicka  <jh@suse.cz>
13292
13293         PR tree-optimization/47276
13294         * ipa.c (function_and_variable_visibility): Do not try to mark alias
13295         declarations as needed.
13296
13297 2011-01-15  Martin Jambor  <mjambor@suse.cz>
13298
13299         * common.opt (fdevirtualize): New flag.
13300         * doc/invoke.texi (Option Summary): Document it.
13301         * opts.c (default_options_table): Add devirtualize flag.
13302         * ipa-prop.c (detect_type_change): Return immediately if
13303         devirtualize flag is not set.
13304         (detect_type_change_ssa): Likewise.
13305         (compute_known_type_jump_func): Likewise.
13306         (ipa_analyze_virtual_call_uses): Likewise.
13307
13308 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13309
13310         PR tree-optimization/45934
13311         PR tree-optimization/46302
13312         * ipa-prop.c (type_change_info): New type.
13313         (stmt_may_be_vtbl_ptr_store): New function.
13314         (check_stmt_for_type_change): Likewise.
13315         (detect_type_change): Likewise.
13316         (detect_type_change_ssa): Likewise.
13317         (compute_complex_assign_jump_func): Check for dynamic type change.
13318         (compute_complex_ancestor_jump_func): Likewise.
13319         (compute_known_type_jump_func): Likewise.
13320         (compute_scalar_jump_functions): Likewise.
13321         (ipa_analyze_virtual_call_uses): Likewise.
13322         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13323
13324 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13325
13326         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13327         * config/i386/i386.opt (msse5): New Alias.
13328
13329 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13330
13331         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13332         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13333         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13334         * config/sparc/sparc.h (CC1_SPEC): Likewise.
13335
13336 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13337
13338         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13339         -mcpu options.
13340         * config/sparc/linux64.h (CC1_SPEC): Likewise.
13341         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13342         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13343         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13344         Likewise.
13345         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13346
13347 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13348
13349         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
13350
13351 2011-01-14  Mike Stump  <mikestump@comcast.net>
13352
13353         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13354         * config/fr30/fr30.md: Likweise
13355         (movsi_push): Likewise.
13356         (movsi_pop): Likewise.
13357         (enter_func): Likewise.
13358         * config/moxie/moxie.md (movsi_push): Likewise.
13359         (movsi_pop): Likewise.
13360
13361 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13362
13363         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13364         %{no_archive} %{exact_version}.
13365         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13366         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13367         %{no_archive} %{exact_version}.
13368         * config/mips/openbsd.h (LINK_SPEC): Likewise.
13369         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13370         * config/mips/vxworks.h: Likewise.
13371
13372 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13373
13374         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
13375
13376 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13377
13378         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13379         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13380
13381 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13382
13383         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13384         -nodefaultlib.
13385
13386 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13387
13388         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13389         for mcpu not cpu.
13390         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13391         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13392         not cpu.
13393         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13394         Don't handle -shlib.
13395
13396 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13397
13398         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13399         (CC1_SPEC): Don't handle -profile.
13400
13401 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13402
13403         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13404         * config/mips/mips.h (CC1_SPEC): Likewise.
13405
13406 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13407
13408         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13409         * config/mips/mips.h (CC1_SPEC): Likewise.
13410
13411 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13412
13413         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13414         * config/m32r/linux.h (LINK_SPEC): Likewise.
13415         * config/mips/linux.h (LINK_SPEC): Likewise.
13416         * config/mips/linux64.h (LINK_SPEC): Likewise.
13417         * config/sparc/linux.h (LINK_SPEC): Likewise.
13418         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13419         LINK_SPEC): Likewise.
13420         * config/xtensa/linux.h (LINK_SPEC): Likewise.
13421
13422 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13423
13424         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13425         %{version:-v}.
13426         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13427
13428 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13429
13430         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13431         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13432
13433 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
13434
13435         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13436
13437 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13438
13439         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13440         supports -Bstatic/-Bdynamic.
13441         * configure: Regenerate.
13442
13443 2011-01-14  Jan Hubicka  <jh@suse.cz>
13444             Jack Howarth  <howarth@bromo.med.uc.edu>
13445
13446         PR target/46037
13447         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13448         when checking debug_info_level. Test write_symbols instead of
13449         debug_hooks->var_location when setting flag_var_tracking_uninit.
13450
13451 2011-01-14  Richard Guenther  <rguenther@suse.de>
13452
13453         PR tree-optimization/47179
13454         * target.def (ref_may_alias_errno): New target hook.
13455         * targhooks.h (default_ref_may_alias_errno): Declare.
13456         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13457         (default_ref_may_alias_errno): New function.
13458         * target.h (struct ao_ref_s): Declare.
13459         * tree-ssa-alias.c: Include target.h.
13460         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13461         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13462         (targhooks.o): Likewise.
13463         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13464         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13465
13466 2011-01-14  Richard Guenther  <rguenther@suse.de>
13467
13468         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
13469
13470 2011-01-14  Richard Guenther  <rguenther@suse.de>
13471
13472         PR tree-optimization/47280
13473         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13474         return CFG changes.
13475         (tree_ssa_forward_propagate_single_use_vars): Deal with
13476         CFG changes from associate_plusminus.
13477
13478 2011-01-14  Richard Guenther  <rguenther@suse.de>
13479
13480         PR middle-end/47281
13481         Revert
13482         2011-01-11  Richard Guenther  <rguenther@suse.de>
13483
13484         PR tree-optimization/46076
13485         * tree-ssa.c (useless_type_conversion_p): Conversions from
13486         unprototyped to empty argument list function types are useless.
13487
13488 2011-01-14  Richard Guenther  <rguenther@suse.de>
13489
13490         PR tree-optimization/47286
13491         * tree-ssa-structalias.c (new_var_info): Register variables are global.
13492
13493 2011-01-14  Martin Jambor  <mjambor@suse.cz>
13494
13495         PR middle-end/46823
13496         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13497
13498 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
13499
13500         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13501         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13502         * config/xtensa/xtensa.c (xtensa_libcall_value,
13503         xtensa_function_value_regno_p): New functions.
13504         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13505
13506 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
13507
13508         PR c++/47213
13509         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13510         PE specific hook.
13511         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13512         New function prototype.
13513         * config/i386/winnt.c (i386_pe_assemble_visibility):
13514         Warn only if attribute was specified by user.
13515
13516 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13517
13518         PR target/47251
13519         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13520         floating point.
13521         (floatunsdidf2_fcfidu): Ditto.
13522
13523 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13524
13525         * config/s390/s390.c (print_operand_address): Replace 'error' with
13526         'output_operand_lossage'.
13527         (print_operand): Likewise.
13528
13529 2011-01-13  Jeff Law  <law@redhat.com>
13530
13531         PR rtl-optimization/39077
13532         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
13533         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
13534         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
13535         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
13536         * gcse.c (prune_insertions_deletions): New function.
13537         (compute_pre_data): Use it.
13538
13539 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
13540
13541         PR debug/PR46973
13542         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
13543         static function.
13544         (prune_unused_types_mark): Use it.
13545
13546 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
13547
13548         PR rtl-optimization/45352
13549         * sel-sched.c: Update copyright years.
13550         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
13551         in the advancing loop when we have issued issue_rate insns.
13552
13553 2011-01-12  Richard Henderson  <rth@redhat.com>
13554
13555         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
13556         (TARGET_MD_ASM_CLOBBERS): New.
13557
13558         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
13559         (TARGET_DELEGITIMIZE_ADDRESS): New.
13560
13561         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
13562         (clzsi2, *bsch): New patterns.
13563
13564         * config/mn10300/mn10300.md (INT): New mode iterator.
13565         (*mov<INT>_clr): New pattern, and peep2 to generate it.
13566
13567         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
13568         flag_split_wide_types.
13569
13570         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
13571         (mn10300_trampoline_init): Rewrite without a template, an immediate
13572         load and a direct branch.
13573         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
13574
13575 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
13576
13577         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13578         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
13579         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
13580         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13581
13582 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
13583
13584         PR debug/47209
13585         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
13586         of type.
13587
13588 2011-01-12  Jan Hubicka  <jh@suse.cz>
13589
13590         PR driver/47244
13591         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
13592         (PLUGIN_COND_CLOSE): New macro.
13593         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
13594
13595 2011-01-12  Richard Guenther  <rguenther@suse.de>
13596
13597         PR lto/47259
13598         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
13599         register variables in a MEM_REF.
13600
13601 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
13602
13603         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
13604         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
13605         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
13606         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13607         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13608         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
13609         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
13610         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
13611         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
13612         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
13613         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
13614         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
13615         * config/gnu-user.h: New.  Copied from linux.h.
13616         (LINUX_TARGET_STARTFILE_SPEC): Rename to
13617         GNU_USER_TARGET_STARTFILE_SPEC.
13618         (LINUX_TARGET_ENDFILE_SPEC): Rename to
13619         GNU_USER_TARGET_ENDFILE_SPEC.
13620         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
13621         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
13622         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
13623         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
13624         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
13625         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13626         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
13627         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
13628         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
13629         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
13630         * config/arm/linux-eabi.h (CC1_SPEC): Use
13631         GNU_USER_TARGET_CC1_SPEC.
13632         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
13633         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
13634         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
13635         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
13636         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
13637         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
13638         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
13639         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
13640
13641 2011-01-12  Richard Guenther  <rguenther@suse.de>
13642
13643         PR other/46946
13644         * doc/invoke.texi (ffast-math): Document it is turned on
13645         with -Ofast.
13646
13647 2011-01-12  Jan Hubicka  <jh@suse.cz>
13648
13649         PR tree-optimization/47233
13650         * opts.c (common_handle_option): Disable ipa-reference with profile
13651         feedback.
13652
13653 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13654
13655         * c-parser.c (c_parser_objc_at_property_declaration): Improved
13656         error message.
13657
13658 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
13659
13660         * c-parser.c (c_lex_one_token): Updated and reindented some
13661         comments.  No changes in code.
13662
13663 2011-01-11  Ian Lance Taylor  <iant@google.com>
13664
13665         * godump.c (go_output_var): Don't output the variable if there is
13666         already a type with the same name.
13667
13668 2011-01-11  Ian Lance Taylor  <iant@google.com>
13669
13670         * godump.c (go_format_type): Don't generate float80.
13671
13672 2011-01-11  Richard Henderson  <rth@redhat.com>
13673
13674         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
13675         declaration.  Rewrite for both speed and size.
13676         (mn10300_address_cost_1): Remove.
13677         (mn10300_register_move_cost): New.
13678         (mn10300_memory_move_cost): New.
13679         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
13680         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
13681         extensions, shifts, BSWAP, CLZ.
13682         (mn10300_wide_const_load_uses_clr): Remove.
13683         (TARGET_REGISTER_MOVE_COST): New.
13684         (TARGET_MEMORY_MOVE_COST): New.
13685         * config/mn10300/mn10300-protos.h: Update.
13686         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
13687
13688         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
13689         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
13690         * config/mn10300/mn10300-protos.h: Update.
13691         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
13692         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
13693         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
13694         (*test_int_bitfield, *test_byte_bitfield): Remove.
13695         (*bit_test, *subreg_bit_test): Remove.
13696         * config/mn10300/predicates.md (const_8bit_operand): Remove.
13697
13698         * config/mn10300/constraints.md ("c"): Rename from "A".
13699         ("A", "D"): New constraint letters.
13700         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
13701         (fmssf4, fnmasf4, fnmssf4): Likewise.
13702
13703         * config/mn10300/mn10300.md (isa): New attribute.
13704         (enabled): New attribute.
13705
13706         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
13707         (abssf2, negsf2): Define only for hardware fp.
13708         (sqrtsf2): Reformat.
13709         (addsf3, subsf3, mulsf3): Merge expander and insn.
13710
13711         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
13712         (DEBUGGER_AUTO_OFFSET): Remove.
13713         (DEBUGGER_ARG_OFFSET): Remove.
13714
13715         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
13716         Emit register stores with the same offsets as the hardware.
13717         (mn10300_store_multiple_operation): Don't check that the register
13718         save offsets are monotonic.
13719         * config/mn10300/mn10300-protos.h: Update.
13720
13721         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
13722
13723         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
13724         in terms of the value on the stack, not the MDR register.
13725
13726 2011-01-11  Jan Hubicka  <jh@suse.cz>
13727
13728         PR lto/45721
13729         PR lto/45375
13730         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
13731         (symbol_alias_set_destroy, symbol_alias_set_contains,
13732         propagate_aliases_backward): Declare.
13733         * lto-streamer-out.c (struct sets): New sturcture.
13734         (trivally_defined_alias): New function.
13735         (output_alias_pair_p): Rewrite.
13736         (output_unreferenced_globals): Fix output of alias pairs.
13737         (produce_symtab): Likewise.
13738         * ipa.c (function_and_variable_visibility): Set weak alias destination
13739         as needed in lto.
13740         * varasm.c (symbol_alias_set_t): Remove.
13741         (symbol_alias_set_destroy): Export.
13742         (propagate_aliases_forward, propagate_aliases_backward): New functions
13743         based on ...
13744         (compute_visible_aliases): ... this one; remove.
13745         (trivially_visible_alias): New
13746         (trivially_defined_alias): New.
13747         (remove_unreachable_alias_pairs): Rewrite.
13748         (finish_aliases_1): Reorganize code checking if alias is defined.
13749         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
13750         in LTO mode.
13751
13752 2011-01-11  Richard Guenther  <rguenther@suse.de>
13753
13754         PR tree-optimization/46076
13755         * tree-ssa.c (useless_type_conversion_p): Conversions from
13756         unprototyped to empty argument list function types are useless.
13757
13758 2011-01-11  Richard Guenther  <rguenther@suse.de>
13759
13760         PR middle-end/45235
13761         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
13762         volatile MEMs as MEM_READONLY_P.
13763
13764 2011-01-11  Richard Guenther  <rguenther@suse.de>
13765
13766         PR tree-optimization/47239
13767         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
13768
13769 2011-01-11  Jeff Law  <law@redhat.com>
13770
13771         PR tree-optimization/47086
13772         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
13773         IVs from statements that might throw.
13774
13775 2011-01-10  Jan Hubicka  <jh@suse.cz>
13776
13777         PR lto/45375
13778         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
13779
13780 2011-01-10  Jan Hubicka  <jh@suse.cz>
13781
13782         PR lto/45375
13783         * profile.c (read_profile_edge_counts): Ignore profile inconistency
13784         when correcting profile.
13785
13786 2011-01-10  Jan Hubicka  <jh@suse.cz>
13787
13788         PR lto/46083
13789         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
13790         DECL_FINI_PRIORITY.
13791         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
13792         Restore DECL_FINI_PRIORITY.
13793
13794 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13795
13796         * doc/gimple.texi: Fix quoting of multi-word return values in
13797         @deftypefn statements.  Ensure presence of return value.  Wrap
13798         overlong @deftypefn lines.
13799         (is_gimple_operand, is_gimple_min_invariant_address): Remove
13800         descriptions of removed functions.
13801         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
13802         of multi-word return value in @deftypefn statement.
13803
13804 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13805
13806         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
13807         (Conditional Expressions, Logical Operators)
13808         (Statement and operand traversals): Do not indent smallexample
13809         code.  Fix duplicate function argument in example.
13810
13811 2011-01-10  Jeff Law  <law@redhat.com>
13812
13813         PR tree-optimization/47141
13814         * ipa-split.c (split_function): Handle case where we are
13815         returning a value and the return block has a virtual operand phi.
13816
13817 2011-01-10  Jan Hubicka  <jh@suse.cz>
13818
13819         PR tree-optimization/47234
13820         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
13821         (pass_feedback_split_functions): Declare.
13822         * passes.c (init_optimization_passes): Add ipa-split as subpass of
13823         tree-profile.
13824         * ipa-split.c (gate_split_functions): Update comments; disable
13825         split-functions for profile_arc_flag and branch_probabilities.
13826         (gate_feedback_split_functions): New function.
13827         (execute_feedback_split_functions): New function.
13828         (pass_feedback_split_functions): New global var.
13829
13830 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
13831
13832         PR lto/46760
13833         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
13834         calling gimple_call_set_cannot_inline.
13835
13836 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
13837
13838         * config/darwin-sections.def: Remove unused section.
13839
13840 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
13841
13842         PR c++/47218
13843         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
13844
13845 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
13846
13847         PR objc/47232
13848         * c-parser.c (c_parser_declaration_or_fndef): Improved
13849         error message.
13850
13851 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
13852
13853         * config/i386/winnt.c (i386_pe_start_function): Make sure
13854         to switch back to function's section.
13855
13856 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
13857
13858         PR gcc/46902
13859         PR testsuite/46912
13860         * plugin.c: Move include of dlfcn.h from here...
13861         * system.h: ... to here.
13862
13863 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13864
13865         * doc/cpp.texi (C++ Named Operators): Fix markup for header
13866         file name.
13867         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
13868         two extra empty pages in PDF output.
13869
13870 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
13871
13872         PR objc/47078
13873         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
13874         for error recovery purposes behave as if it was not specified so
13875         that the default type is usd.
13876
13877 2011-01-07  Jan Hubicka  <jh@suse.cz>
13878
13879         PR tree-optmization/46469
13880         * ipa.c (function_and_variable_visibility): Clear needed flags on
13881         nodes with external decls; handle weakrefs merging correctly.
13882
13883 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
13884
13885         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
13886         not false.
13887
13888 2011-01-07  Jan Hubicka  <jh@suse.cz>
13889
13890         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
13891         and no longer claim that gold is required for linker plugin.
13892         * configure: Regenerate.
13893         * gcc.c (PLUGIN_COND): New macro.
13894         (LINK_COMMAND_SPEC): Use it.
13895         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
13896         * config.in (HAVE_LTO_PLUGIN): New.
13897         * configure.ac (--with-lto-plugin): New parameter; autodetect
13898         HAVE_LTO_PLUGIN.
13899
13900 2011-01-07  Jan Hubicka  <jh@suse.cz>
13901
13902         PR tree-optimization/46367
13903         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
13904         when we can update original.
13905         (cgraph_mark_inline_edge): Sanity check.
13906         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
13907
13908 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13909
13910         * config/spu/spu.h (ASM_COMMENT_START): Define.
13911
13912 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13913
13914         PR driver/42445
13915         * gcc.c (%>S): New.
13916         (SWITCH_KEEP_FOR_GCC): Likewise.
13917         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
13918         (do_spec_1): Handle "%>".
13919
13920         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
13921
13922 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
13923
13924         PR target/47201
13925         * config/i386/i386.c (ix86_delegitimize_address): If
13926         simplify_gen_subreg fails, return orig_x.
13927
13928         PR bootstrap/47187
13929         * value-prof.c (gimple_stringop_fixed_value): Handle
13930         lhs of the call properly.
13931
13932 2011-01-07  Jan Hubicka  <jh@suse.cz>
13933
13934         PR lto/45375
13935         * lto-opt.c (lto_reissue_options): Set flag_shlib.
13936
13937 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
13938
13939         * target.def (function_switched_text_sections): New hook.
13940         * doc/tm.texi: Regenerated.
13941         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13942         * final.c (default_function_switched_text_sections): New.
13943         (final_scan_insn): Call function_switched_text_sections when a
13944         mid-function section change occurs.
13945         * output.h (default_function_switched_text_sections): Declare.
13946         * config/darwin-protos.h (darwin_function_switched_text_sections):
13947         Likewise.
13948         * config/darwin.c (darwin_function_switched_text_sections): New.
13949         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
13950
13951 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
13952
13953         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
13954         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
13955         the secondary code fragment when outputting for DWARF == 2.
13956
13957 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
13958
13959         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13960         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
13961         Remove.
13962         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
13963         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13964
13965 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
13966
13967         PR debug/46704
13968         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
13969         when it is not empty.
13970
13971 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
13972
13973         Bobcat Enablement
13974         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
13975         (case ${target}): Add btver1.
13976         * config/i386/driver-i386.c (host_detect_local_cpu): Let
13977         -march=native recognize btver1 processors.
13978         * config/i386/i386-c.c (ix86_target_macros_internal): Add
13979         btver1 def_and_undef
13980         * config/i386/i386.c (struct processor_costs btver1_cost): New
13981         btver1 cost table.
13982         (m_BTVER1): New definition.
13983         (m_AMD_MULTIPLE): Includes m_BTVER1.
13984         (initial_ix86_tune_features): Add btver1 tune.
13985         (processor_target_table): Add btver1 entry.
13986         (static const char *const cpu_names): Add btver1 entry.
13987         (software_prefetching_beneficial_p): Add btver1.
13988         (ix86_option_override_internal): Add btver1 instruction sets.
13989         (ix86_issue_rate): Add btver1.
13990         (ix86_adjust_cost): Add btver1.
13991         * config/i386/i386.h (TARGET_BTVER1): New definition.
13992         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
13993         (enum processor_type): Add PROCESSOR_BTVER1.
13994         * config/i386/i386.md (define_attr "cpu"): Add btver1.
13995
13996 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13997
13998         PR target/43309
13999         * config/i386/i386.c (legitimize_tls_address)
14000         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14001         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14002         (tls_initial_exec_64_sun): New pattern.
14003
14004 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14005
14006         * doc/invoke.texi (Overall Options): Improve wording and markup
14007         of the description of -wrapper.
14008
14009 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14010
14011         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14012         rdynamic, threads): New Driver options.
14013
14014 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14015
14016         PR target/38118
14017         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14018         if coming from .tdata.
14019         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14020
14021 2011-01-06  Jan Hubicka  <jh@suse.cz>
14022
14023         PR lto/47188
14024         * collect2.c (main): Do not enable LTOmode when plugin is active.
14025
14026 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14027
14028         PR other/45915
14029         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14030         --version output if supported.
14031         * configure: Regenerate.
14032
14033 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
14034
14035         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14036         Driver options.
14037
14038 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
14039
14040         PR c/47150
14041         * c-convert.c (convert): When converting a complex expression
14042         other than COMPLEX_EXPR to a different complex type, ensure
14043         c_save_expr is called instead of save_expr, unless in_late_binary_op.
14044         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14045         when converting COMPLEX_TYPE.
14046
14047 2011-01-06  Ira Rosen  <irar@il.ibm.com>
14048
14049         PR tree-optimization/47139
14050         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14051         only the last reduction value is used outside the loop.  Update
14052         documentation.
14053
14054 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
14055
14056         * config/rtems.opt: New.
14057         * config.gcc (*-*-rtems*): Use rtems.opt.
14058
14059 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
14060
14061         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14062         processors do not support 3DNow instructions.
14063
14064 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14065
14066         * config/spu/spu.c (spu_option_override): Set parameter
14067         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14068
14069 2011-01-05  Jan Hubicka  <jh@suse.cz>
14070
14071         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14072         at the command line.
14073
14074 2011-01-05  Martin Jambor  <mjambor@suse.cz>
14075
14076         PR lto/47162
14077         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14078         deltas on streamed outgoing edges.
14079         (output_node_opt_summary): Output info for outgoing edges only when
14080         the node is in new parameter set.
14081         (output_cgraph_opt_summary): New parameter set, passed to the two
14082         aforementioned functions.  Update its forward declaration and its
14083         callee too.
14084
14085 2011-01-05  Tom Tromey  <tromey@redhat.com>
14086
14087         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14088         operator to c_finish_omp_atomic.
14089         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14090         (build_unary_op): Update.
14091         (build_modify_expr): Update.
14092         (build_asm_expr): Update.
14093
14094 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14095
14096         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14097         newly inserted insns.
14098         (pad_bb): Likewise.
14099         (spu_emit_branch_hint): Likewise.
14100         (insert_hbrp_for_ilb_runout): Likewise.
14101         (spu_machine_dependent_reorg): Call df_finish_pass after
14102         schedule_insns returns.
14103
14104 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14105
14106         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14107
14108 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14109
14110         PR tree-optimization/47005
14111         * tree-sra.c (struct access): Add 'non_addressable' bit.
14112         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14113         (decide_one_param_reduction): Return 0 if the parameter is passed by
14114         reference and one of the accesses in the group is non_addressable.
14115
14116 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14117
14118         PR tree-optimization/47056
14119         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14120         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
14121         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
14122
14123 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14124
14125         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14126         initializer.  Skip view conversions from aggregate types.
14127
14128 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
14129
14130         PR bootstrap/47055
14131         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14132
14133 2011-01-04  Philipp Thomas  <pth@suse.de>
14134
14135         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14136         obvious typo.
14137
14138 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14139
14140         * function.c (thread_prologue_and_epilogue_insns): Do not crash
14141         on empty epilogue sequences.
14142
14143 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
14144
14145         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14146         non-static): New Driver options.
14147
14148 2011-01-04  Jie Zhang  <jie@codesourcery.com>
14149
14150         PR driver/47137
14151         * gcc.c (default_compilers[]): Set combinable field to 0
14152         for all assembly languages.
14153
14154 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
14155
14156         * config/mips/loongson3a.md: New file.
14157         * config/mips/mips.md: Include loongson3a.md.
14158         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14159         TUNE_LOONGSON_3A.
14160
14161 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14162
14163         PR middle-end/47017
14164         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14165         instead of convert_memory_address_addr_space on the base expression.
14166
14167 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14168
14169         * config/spu/spu.c (spu_option_override): Update error text
14170         for bad -march= / -mtune= values.
14171
14172 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14173
14174         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14175         if branch-hint optimization will be performed.
14176
14177 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14178
14179         PR tree-optimization/47148
14180         * ipa-split.c (split_function): Convert arguments to
14181         DECL_ARG_TYPE if possible.
14182
14183         PR tree-optimization/47155
14184         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14185         when computing uns.
14186
14187         PR rtl-optimization/47157
14188         * combine.c (try_combine): If undobuf.other_insn becomes
14189         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14190         and set *new_direct_jump_p too.
14191
14192 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
14193
14194         PR tree-optimization/47021
14195         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14196
14197 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
14198
14199         * gcc.c (process_command): Update copyright notice dates.
14200         * gcov.c (print_version): Likewise.
14201         * gcov-dump.c (print_version): Likewise.
14202         * mips-tfile.c (main): Likewise.
14203         * mips-tdump.c (main): Likewise.
14204
14205 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14206
14207         PR tree-optimization/46801
14208         * tree-sra.c (type_internals_preclude_sra_p): Check whether
14209         aggregate fields start at byte boundary instead of the bit-field flag.
14210
14211 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14212
14213         PR driver/47137
14214         * gcc.c (main): Revert revision 168407.
14215
14216 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14217
14218         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14219
14220 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14221
14222         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14223         vector optab to expand vector/scalar shift, update gimple to vector.
14224
14225 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14226
14227         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14228         a thunk.
14229
14230 2011-01-03  Martin Jambor  <mjambor@suse.cz>
14231
14232         PR tree-optimization/46984
14233         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14234         HOST_WIDE_INT.
14235         (cgraph_create_indirect_edge): Fixed line length.
14236         (cgraph_indirect_call_info): Declare.
14237         (cgraph_make_edge_direct) Update declaration.
14238         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14239         (cgraph_create_indirect_edge): Use it.
14240         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
14241         callees.
14242         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14243         the new thunk_delta representation.
14244         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14245         HOST_WIDE_INT.
14246         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14247         (ipa_read_indirect_edge_info): Likewise.
14248         * lto-cgraph.c (output_edge_opt_summary): New function.
14249         (output_node_opt_summary): Call it on all outgoing edges.
14250         (input_edge_opt_summary): New function.
14251         (input_node_opt_summary): Call it on all outgoing edges.
14252
14253 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
14254
14255         PR driver/47137
14256         * gcc.c (main): Don't check have_o when settting combine_inputs.
14257
14258 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14259
14260         * regrename.c: Add general comment describing the pass.
14261         (struct du_head): Remove 'length' field.
14262         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14263         (regrename_optimize): Do not sort chains.  Rework comments, add others.
14264         Force renaming to the preferred class (if any) in the first pass and do
14265         not consider registers that belong to it in the second pass.
14266         (create_new_chain): Do not set 'length' field.
14267         (scan_rtx_reg): Likewise.
14268
14269 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
14270
14271         PR tree-optimization/47140
14272         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14273         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14274         to bit_value_binop.
14275
14276         PR rtl-optimization/47028
14277         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14278         parm_birth_insn instead of at the beginning of first bb.
14279
14280 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
14281
14282         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14283         Remove the word "see" before "@pxref".
14284         * doc/rtl.texi: Remove the word "see" before "@pxref".
14285
14286 2011-01-01  Jan Hubicka  <jh@suse.cz>
14287
14288         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14289         memory.
14290
14291 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
14292
14293         PR target/38662
14294         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
14295
14296 \f
14297 Copyright (C) 2011 Free Software Foundation, Inc.
14298
14299 Copying and distribution of this file, with or without modification,
14300 are permitted in any medium without royalty provided the copyright
14301 notice and this notice are preserved.