]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
28c14a04
AO
12011-05-31 Alexandre Oliva <aoliva@redhat.com>
2
3 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
4
70efc82d
AO
52011-05-31 Alexandre Oliva <aoliva@redhat.com>
6
7 * gengtype-state.c (read_state_params_structs): Initialize
8 previous.
9
6ba5d856
UB
102011-05-31 Uros Bizjak <ubizjak@gmail.com>
11
12 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
13 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
14
152011-05-31 Uros Bizjak <ubizjak@gmail.com>
16
17 * config/i386/i386.md (*movtf_internal): Avoid allocating general
18 registers. Penalize F*r->o alternative to prevent partial memory
19 stalls. Slightly penalize *roF->*r alternative. Generate SSE
20 CONST_DOUBLE immediates when optimizing function for size. Do not move
21 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
22 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
23 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
24 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
25 alternatives.
26 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
27
28 (fp_register_operand splitters): Use fp_register_operand
29 constraint. Do not use FP_REG_P in insn condition.
30 (any_fp_register_operand splitters): Use any_fp_register_operand
31 constraint. Do not use ANY_FP_REG_P in insn condition.
32
533c07c5
JH
332011-05-31 Jan Hubicka <jh@suse.cz>
34
35 * cgraph.h (cgraph_inline_failed_t): Give enum a name
36 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
37 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
38 (lto_output_edge): Use output_enum and var_len_unsigned.
39 (lto_output_varpool_node): Likewise.
40 (input_overwrite_node): Do not take resolution parameter;
41 extract it from a bitpack.
42 (input_node): Do not read resolution; use input_enum and
43 var_len_unsigned.
44 (input_varpool_node): Likewise.
45 (input_edge): Likewise.
46 (input_cgraph_1): Likewise.
47
2611db71
RG
482011-05-31 Richard Guenther <rguenther@suse.de>
49
50 * gimple.c (gimple_register_canonical_type): Do not register
51 any types via gimple_register_type.
52
b9e57365
JH
532011-05-31 Jan Hubicka <jh@suse.cz>
54
55 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
56 of thunks.
57
35979cc2
JJ
582011-05-31 Jakub Jelinek <jakub@redhat.com>
59
60 PR rtl-optimization/49235
61 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
62 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
63
8f7de592
IR
642011-05-31 Ira Rosen <ira.rosen@linaro.org>
65
66 PR tree-optimization/49093
67 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
68 data references.
69
8d8a3bda
DS
702011-05-31 Dodji Seketeli <dodji@redhat.com>
71
72 PR debug/49047
73 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 74 for concrete functions containing the code of cloned functions.
8d8a3bda 75
2e87621c
RG
762011-05-31 Richard Guenther <rguenther@suse.de>
77
78 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
79 to ...
80 (forward_propagate_into_comparison_1): ... this.
81 (forward_propagate_comparison): Rename to ...
82 (forward_propagate_into_comparison): ... this. Split out
83 real forward propagation code to ...
84 (forward_propagate_comparison): ... this.
85 (forward_propagate_into_gimple_cond): Remove looping.
86 (forward_propagate_into_cond): Likewise.
87 (simplify_not_neg_expr): Return whether we have done something.
88 (simplify_gimple_switch): Likewise.
89 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
90 (ssa_forward_propagate_and_combine): ... this. Re-structure
91 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 92 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
93 (pass_forwprop): Adjust.
94
5a880d5d
ILT
952011-05-30 Ian Lance Taylor <iant@google.com>
96
97 * godump.c (go_format_type): Correct length of name added to
98 obstack for anonymous field.
99
5f133038
KK
1002011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
101
102 PR target/49186
103 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
104 part of the second operand is 0.
105
b17d5426
UB
1062011-05-30 Uros Bizjak <ubizjak@gmail.com>
107
108 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
109 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
110 to memory for !TARGET_MEMORY_MISMATCH_STALL.
111 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 112 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
113 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
114 when optimizing function for size. Do not move CONST_DOUBLEs
115 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
116 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
117 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
118 check for ANY_FP_REGNO_P instead.
119 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
120 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
121 function for speed.
122 * config/i386/i386.c (ix86_option_override_internal): Do not
123 set TARGET_INTEGER_DFMODE_MOVES here.
124
a0cd843f
L
1252011-05-30 H.J. Lu <hongjiu.lu@intel.com>
126
127 PR target/49168
128 * config/i386/i386.md (*movtf_internal): Handle misaligned
129 load/store.
130
006a5f38
JJ
1312011-05-30 Jakub Jelinek <jakub@redhat.com>
132
133 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
134 DW_TAG_rvalue_reference_type even for
135 -gdwarf-4 -fno-debug-types-section.
136
6e96f98a
BS
1372011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
138
139 PR tree-optimization/46728
140 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
141 (build_and_insert_binop): New.
142 (gimple_expand_builtin_pow): Reorder args for
143 build_and_insert_call; use build_and_insert_binop; add more
144 optimizations for fractional exponents.
b17d5426 145
4f60111f
NF
1462011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
147
148 PR bootstrap/49190
149
150 Revert:
151 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
152
153 * tree.h (struct tree_identifier): Inherit from tree_typed, not
154 tree_common.
155 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
156 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
157 TS_BASE instead of TS_COMMON.
158 * varasm.c (assemble_name): Remove assert.
159
3fd7879d
RS
1602011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
161
162 * config.gcc: Keep obselete list sorted.
163
80060f7a
JJ
1642011-05-30 Jakub Jelinek <jakub@redhat.com>
165 Eric Botcazou <ebotcazou@adacore.com>
166
167 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
168 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
169 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
170 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
171 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
172
17e99cdb
RG
1732011-05-30 Richard Guenther <rguenther@suse.de>
174
175 * gimple.c (gimple_types_compatible_p_1): Compare record
176 and union type members properly.
177
42b05b6e
RG
1782011-05-30 Richard Guenther <rguenther@suse.de>
179
180 PR tree-optimization/49210
6ba5d856
UB
181 * ipa-split.c (split_function): Care for the case where the call
182 result is not trivially convertible to the result holding variable.
42b05b6e 183
f3321158
RG
1842011-05-30 Richard Guenther <rguenther@suse.de>
185
186 PR tree-optimization/49218
187 * tree-vrp.c (adjust_range_with_scev): Properly check whether
188 overflow occured.
189
d12d8efe
RG
1902011-05-30 Richard Guenther <rguenther@suse.de>
191
192 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
193 New function split out from ...
194 (forward_propagate_into_gimple_cond): ... here. Adjust.
195 (forward_propagate_into_cond): Likewise.
196 (forward_propagate_comparison): Also propagate into
197 comparisons on assignment RHS. Change return value to
198 behave similar to forward_propagate_into_cond.
199 (tree_ssa_forward_propagate_single_use_vars): Handle
200 strict-overflow warnings properly for forward_propagate_comparison.
201
df33b41f
RO
2022011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
203
204 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
205 from plugin linker.
206 * configure: Regenerate.
207
69940d4d
IR
2082011-05-30 Ira Rosen <ira.rosen@linaro.org>
209
210 PR tree-optimization/49199
211 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 212 non-reduction operands are either defined in the loop or by induction.
69940d4d 213
226c52aa
XDL
2142011-05-29 Xinliang David Li <davidxl@google.com>
215
216 * opts-global.c (handle_common_deferred_options): Handle new options.
217 * passes.c (register_one_dump_file): Call register_pass_name.
218 (execute_one_pass): Check explicit enable/disable flag.
219 (passr_hash): New function.
220 (passr_eq): Ditto.
221 (register_pass_name): Ditto.
222 (get_pass_by_name): Ditto.
223 (pass_hash): Ditto.
224 (pass_eq): Ditto.
225 (enable_pass): Ditto.
226 (disable_pass): Ditto.
227 (is_pass_explicitly_enabled_or_disabled): Ditto.
228
491d8eed
UB
2292011-05-29 Uros Bizjak <ubizjak@gmail.com>
230
231 * config/i386/i386.md (*movoi_internal_avx): Use
232 standard_sse_constant_opcode for alternative 0.
233 (*movti_internal_sse): Ditto.
234 (*movti_internal_rex64): Use standard_sse_constant_opcode for
235 alternative 2.
236 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
237 sselog1 type moves.
238 (*movsi_internal): Ditto.
239 (*movdi_internal): Ditto. Add ssecvt type moves.
240
eb93b31f
EB
2412011-05-29 Eric Botcazou <ebotcazou@adacore.com>
242
243 PR target/48830
244 * rtlanal.c (simplify_subreg_regno): Adjust comment.
245
3f831b7d
JJ
2462011-05-29 Jakub Jelinek <jakub@redhat.com>
247
248 PR rtl-optimization/49095
249 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
250 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
251
ee3ee488
RS
2522011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
253
254 PR target/43995
255 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
256 recurse_p argument. Only follow register copies if it is set,
257 and prevent mips_find_pic_call_symbol from recursing.
258 (mips_find_pic_call_symbol): Add a recurse_p argument.
259 Pass it to mips_pic_call_symbol_from_set.
260 (mips_annotate_pic_calls): Update accordingly.
261
65f3dedb
RS
2622011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
263
264 * emit-rtl.c (try_split): Use a loop to search for
265 NOTE_INSN_CALL_ARG_LOCATIONs.
266
61e374ab
RG
2672011-05-29 Richard Guenther <rguenther@suse.de>
268
269 PR tree-optimization/49217
270 * ipa-pure-const.c (propagate_pure_const): Fix typos.
271
fac009a8
JH
2722011-05-28 Jan Hubicka <jh@suse.cz>
273
274 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
275 length.
276 (string_slot_free): Remove
277 (create_output_block): Initialize obstack.
278 (destroy_output_block): Free obstack.
279 (lto_string_index): Add PERSISTENT parameter; do not duplicate
280 the string unless it needs to be added into the hash.
281 (lto_output_string_with_length): Add persistent attribute;
282 handle NULL strings.
283 (lto_output_string): Add PERSISTENT parameter.
284 (output_string_cst, output_identifier): Simplify.
285 (lto_output_location_bitpack): Update.
286 (lto_output_builtin_tree): Update.
287 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
288 (lto_output_string, lto_output_string_with_length): Remove
289 declarations; functions are static now.
fac009a8 290
fa766006
JH
2912011-05-28 Jan Hubicka <jh@suse.cz>
292
293 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
294 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
295 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
296 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
297 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
298 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
299 unpack_ts_decl_with_vis_value_fields,
300 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
301 lto_get_builtin_tree): Use enum and variable length i/o.
302 * basic-block.h (profile_status_d): Add PROFILE_LAST.
303 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
304 New functions.
305 (bp_pack_enum, bp_unpack_enum): New macros.
306
e092158b
RS
3072011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
308
309 * genrecog.c: Remove redundant forward declarations.
310
7ca2afa0
RS
3112011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
312
313 * config.gcc: Deprecate mips*-*-openbsd*.
314
a601a53a
RS
3152011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
316
317 PR bootstrap/49195
318 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
319 for match_op_dup.
320
fc64b448
AP
3212011-05-27 Andrew Pinski <pinskia@gmail.com>
322
323 PR middle-end/48981
324 * gengtype.c (vec_prefix_type): New function.
325 (note_def_vec): Use vec_prefix_type and change the length
326 attribute to be based on the prefix.
327 * vec.c: Include coretypes.h before vec.h.
328 (struct vec_prefix): Remove.
329 (vec_gc_p_reserve): Change the offsetof to sizeof.
330 (vec_gc_p_reserve_exact): Likewise.
331 (vec_heap_p_reserve): Likewise.
332 (vec_heap_p_reserve_exact): Likewise.
333 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
334 (vec_stack_p_reserve): Change the offsetof to sizeof.
335 (vec_stack_p_reserve_exact): Likewise.
336 * vec.h (struct vec_prefix): New struct definition.
337 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
338 (VEC_T_GTY(T,B)): Likewise.
339 (DEF_VEC_FUNC_P(T)): Use prefix field.
340 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
341 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
342
ba869341
BS
3432011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
344
345 PR tree-optimization/46728
346 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
347 (powi_as_mults): Add gimple_set_location.
348 (build_and_insert_call): New.
349 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
350 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 351
d296760d
AM
3522011-05-27 Alexander Monakov <amonakov@ispras.ru>
353
354 * doc/contrib.texi: Update copyright years.
355 (Contributors): Add Zdenek Sojka.
356
38e01f9e
NF
3572011-05-27 Nathan Froyd <froydnj@codesourcery.com>
358
359 * c-decl.c (c_push_function_context): Copy the current statement
360 list stack.
361 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
362 (finish_struct): Call building_stmt_list_p instead of checking
363 cur_stmt_list.
364 * c-parser.c (c_parser_postfix_expression): Likewise.
365 * c-typeck.c (c_end_compound_stmt): Likewise.
366 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
367 * tree-iterator.c (stmt_list_cache): Change to a VEC.
368 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
369 (free_stmt_list): Likewise.
370 * tree.h (struct tree_statement_list): Include typed_tree instead
371 of tree_common.
372 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
373 as TS_TYPED instead of TS_COMMON.
374
8950516e
RO
3752011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
376 Uros Bizjak <ubizjak@gmail.com>
377
378 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
379 (HAVE_AS_IX86_TLSGDPTL): Define.
380 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
381 (HAVE_AS_IX86_TLSLDMPLT): Define.
382 * configure: Regenerate.
383 * config.in: Regenerate.
384 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
385 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
386 TARGET_SUN_TLS, use @tlsgdplt or @plt.
387 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
388 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
389 @tlsldmplt or @plt.
390 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
391
b0bd15f7
BS
3922011-05-27 Bernd Schmidt <bernds@codesourcery.com>
393
394 * sched-int.h (struct _haifa_deps_insn_data): New members cond
395 and reverse_cond.
396 (INSN_COND, INSN_REVERSE_COND): New macros.
397 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
398 once.
399 (sched_get_condition_with_rev): Cache the results, and look them up
400 if possible.
401 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
402 are clobbered by the current insn.
403 * target.def (exposed_pipline): New sched data hook.
404 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
405 * doc/tm.texi: Regenerate.
406
fa65a9cf
BS
4072011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
408
409 PR tree-optimization/49170
410 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
411 sincos or cexp.
b0bd15f7 412
c2299dfe
RG
4132011-05-27 Richard Guenther <rguenther@suse.de>
414
415 PR middle-end/49189
416 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
417 of comparisons.
418
a95b23b4
BS
4192011-05-27 Bernd Schmidt <bernds@codesourcery.com>
420
421 * haifa-sched.c (sched_scan_info): Remove.
422 (schedule_block): Call sched_extend_luids rather than sched_init_luids
423 with NULL args.
424 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
425 Remove functions.
426 (sched_scan): Remove.
427 (sched_extend_luids): Renamed from luids_extend_insn and no longer
428 static. All callers changed.
429 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
430 static. All callers changed.
431 (sched_init_luids): Remove all arguments except the first. All
432 callers changed. Don't use sched_scan.
433 (haifa_init_h_i_d): Likewise.
434 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
435 manually rather than using sched_init_luids. Likewise with
436 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
437 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
438 rather than sched_init_luids with NULL args.
439 * sel-sched-ir.c (new_insns): Remove variable.
440 (sched_scan): New static function, previously in haifa-sched.c. Remove
441 all arguments but the first two; all callers changed.
442 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
443 rather than sched_init_luids.
444 (sel_init_bbs): Remove second argument. All callers changed.
445 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
446 with NULL arguments.
447 (create_insn_rtx_from_pattern): Likewise.
448 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
449 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
450 (sched_init_insn_luid, sched_extend_luids): Declare.
451 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
452 declarations.
453
f8f972fc
RB
4542011-05-27 Richard Guenther <rguenther@suse.de>
455
456 PR middle-end/49177
457 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
458 A CMP B ? (T) true : (T) false for non-integral types T again.
459
51a9ed47
JH
4602011-05-27 Jan Hubicka <jh@suse.cz>
461
462 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
463 so 0 means NULL string.
464 (lto_output_string_with_length): ... here.
f8f972fc
RB
465 (lto_output_string, output_string_cst, output_identifier): Update
466 handling of NULL strings.
51a9ed47
JH
467 (lto_output_location_bitpack): New function.
468 (lto_output_location): Use it.
469 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
470 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
471 len values.
472 * lto-streamer-in.c (string_for_index): Break out from ...; offset
473 values by 1.
491d8eed 474 (input_string_internal): ... here;
f8f972fc
RB
475 (input_string_cst, input_identifier, lto_input_string): Update handling
476 of NULL strings.
51a9ed47
JH
477 (lto_input_location_bitpack): New function
478 (lto_input_location): Use it.
f8f972fc
RB
479 (unpack_ts_type_common_value_fields): Pack align & alias in var len
480 values.
51a9ed47
JH
481 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
482 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
483 (bp_pack_value): Sanity check the value range.
484 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
485 New functions.
486 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
487 New functions.
488
dc38fc2e
HS
4892011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
490
491 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
492 call_arg_location instructions down the floor.
493
574e418a
VM
4942011-05-26 Vladimir Makarov <vmakarov@redhat.com>
495
496 PR rtl-optimization/49154
497 * ira.c (setup_pressure_classes): Process class without sublcasses
498 as a candidate for pressure classes.
499
6a1a787e
RS
5002011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
501
502 PR rtl-optimization/48575
503 * genrecog.c (position_type): New enum.
504 (position): New structure.
505 (decision): Use position structure instead of a string.
506 (root_pos, peep2_insn_pos_list): New variables.
507 (next_position, compare_positions): New functions.
508 (new_decision): Use position structures instead of strings.
509 (maybe_both_true): Likewise.
510 (change_state): Likewise.
511 (write_tree): Likewise.
512 (make_insn_sequence): Likewise.
513
92e948a8
NF
5142011-05-26 Nathan Froyd <froydnj@codesourcery.com>
515
516 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
517 TS_BASE instead of TS_COMMON.
518 (find_decls_types_r): Check for TS_TYPED structure before looking at
519 TREE_TYPE.
520 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
521 Add chain field.
522 (BLOCK_CHAIN): Use new chain field.
523
c61e40d3
PH
5242011-05-26 Pat Haugen <pthaugen@us.ibm.com>
525
526 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
527 moves expensive on Power7 also.
528
1f498652
RG
5292011-05-26 Richard Guenther <rguenther@suse.de>
530
531 * fold-const.c (fold_unary_loc): Remove bogus code.
532
a2fc3e63
NF
5332011-05-26 Nathan Froyd <froydnj@codesourcery.com>
534
535 * tree.h (struct tree_identifier): Inherit from tree_typed, not
536 tree_common.
537 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
538 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
539 TS_BASE instead of TS_COMMON.
540 * varasm.c (assemble_name): Remove assert.
541
d11bf18f
BS
5422011-05-26 Bernd Schmidt <bernds@codesourcery.com>
543
544 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
545 substituted first.
546 * libgcc-std.ver: Delete file.
547
ac8e1875
RG
5482011-05-26 Richard Guenther <rguenther@suse.de>
549
550 PR tree-optimization/48702
551 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
552 only when we know the base address is within bounds.
553 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
554 assume the base address of TARGET_MEM_REFs is in bounds.
555
7e32e652
RO
5562011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
557
558 PR target/49099
559 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
560 declaration in TARGET_SOLARIS.
561
43660e0b
HS
5622011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
563
564 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 565 The instruction is then expanded explicitly.
43660e0b
HS
566 (supported_compare): Callable instruction.
567 (compare): Likewise.
568
1537737f
JJ
5692011-05-26 Jakub Jelinek <jakub@redhat.com>
570
571 PR c++/49165
572 * gimplify.c (shortcut_cond_r): Don't special case
573 COND_EXPRs if they have void type on one of their arms.
574
7b1ac803
BS
5752011-05-26 Bernd Schmidt <bernds@codesourcery.com>
576
577 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
578 to reduce duplication, and to achieve a slightly more logical order
579 of operations.
580
1aa9438f
JJ
5812011-05-26 Jakub Jelinek <jakub@redhat.com>
582
583 PR tree-optimization/49161
584 * tree-vrp.c (struct case_info): New type.
585 (compare_case_labels): Sort case_info structs instead of
586 trees, and not primarily by CASE_LABEL uids but by
587 label_for_block indexes.
588 (find_switch_asserts): Put case labels into struct case_info
589 array instead of TREE_VEC, adjust sorting, compare label_for_block
590 values instead of CASE_LABELs.
591
50fed7bf
RR
5922011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
593
594 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
595 ("orndi3_neon"): Likewise.
596 ("bic<mode>3_neon"): Likewise.
597
48df3fa6
IR
5982011-05-26 Ira Rosen <ira.rosen@linaro.org>
599
600 PR tree-optimization/49038
601 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
602 Ensure at least one epilogue iteration if required by data
603 accesses with gaps.
604 * tree-vectorizer.h (struct _loop_vec_info): Add new field
605 to mark loops that require peeling for gaps.
606 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
607 (vect_get_known_peeling_cost): Take peeling for gaps into
608 account.
609 (vect_transform_loop): Generate epilogue if required by data
610 access with gaps.
611 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
612 loop as requiring an epilogue if there are gaps in the end of
613 the strided group.
614
53febcba
ILT
6152011-05-25 Ian Lance Taylor <iant@google.com>
616
617 * godump.c (go_format_type): Output the first field with a usable
618 Go type, if any.
619
dbbc4d4c
ILT
6202011-05-25 Ian Lance Taylor <iant@google.com>
621
622 * godump.c (go_format_type): Check for invalid type names, pointer
623 target types, and struct field types.
624
f03a5402
JM
6252011-05-25 Jason Merrill <jason@redhat.com>
626
627 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
628
c497c412
UB
6292011-05-25 Uros Bizjak <ubizjak@gmail.com>
630
631 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
632
e470affe
L
6332011-05-25 H.J. Lu <hongjiu.lu@intel.com>
634
635 * config/i386/i386.md (*movqi_extv_1)): Put back
636 "register_operand" check in "type" calculation.
637 (*movqi_extzv_2): Likewise.
638
6c81b2bc
L
6392011-05-25 H.J. Lu <hongjiu.lu@intel.com>
640
c497c412 641 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 642
0c007eb2
BS
6432011-05-25 Bernd Schmidt <bernds@codesourcery.com>
644
645 PR bootstrap/49160
646 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
647 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
648 __divxc3, __divtc3): Wrap definitions in #ifndef.
649
521ca78e
L
6502011-05-25 H.J. Lu <hongjiu.lu@intel.com>
651
652 PR target/49142
653 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
654 "register_operand" check and replace q_regs_operand with
655 QIreg_operand in "type" calculation.
656 (*movqi_extv_1): Likewise.
657 (*movqi_extzv_2_rex64): Likewise.
658 (*movqi_extzv_2): Likewise.
659
660 * config/i386/predicates.md (QIreg_operand): New.
661
29f8b844
RG
6622011-05-25 Richard Guenther <rguenther@suse.de>
663
664 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
665 type-based offset disambiguation, streamline MEM_REF and
666 TARGET_MEM_REF handling.
667
74838de3
L
6682011-05-25 H.J. Lu <hongjiu.lu@intel.com>
669
670 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
671 (bdesc_special_args): Add pause intrinsic.
672
673 * config/i386/i386.md (UNSPEC_PAUSE): New.
674 (pause): Likewise.
675 (*pause): Likewise.
676 * config/i386/ia32intrin.h (__pause): Likewise.
677
678 * doc/extend.texi (X86 Built-in Functions): Add documentation for
679 pause intrinsic.
680
d24ad7d6
BS
6812011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
682
683 PR tree-optimization/46728
684 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
685 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 686
d9f8303f
NF
6872011-05-25 Nathan Froyd <froydnj@codesourcery.com>
688
689 * tree.h (struct tree_exp): Inherit from struct tree_typed.
690 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
691 instead of TS_COMMON.
692
cdbf4541
BS
6932011-05-25 Bernd Schmidt <bernds@codesourcery.com>
694
695 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
696 LIBGCC2_GNU_PREFIX is defined.
697 (__N): New macro.
698 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
699 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
700 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
701 __clz_tab): Define using __N.
702 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
703 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
704 * target.def (libfunc_gnu_prefix): New hook.
705 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
706 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
707 * doc/tm.texi: Regenerate.
708 * system.h (LIBGCC2_GNU_PREFIX): Poison.
709 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
710 account.
711 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
712 (init_optabs): Likewise for the bswap libfuncs.
713 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
714 and divide.
715 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
716 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
717 * libgcc-std.ver: Remove.
718 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
719 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
720 libgcc-std.ver.
721 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
722 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
723 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
724 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
725 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
726 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
727 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
728 * config/fixed-bit.h (FIXED_OP): Define differently depending on
729 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
730 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
731
f242c0a5
JH
7322011-05-25 Jan Hubicka <jh@suse.cz>
733
734 * lto-streamer-out.c (output_record_start): Use lto_output_enum
735 (lto_output_tree): Use output_record_start.
736 * lto-streamer-in.c (input_record_start): Use lto_input_enum
737 (lto_get_pickled_tree): Use input_record_start.
738 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
739 (lto_value_range_error): New function.
740 * lto-streamer.h (lto_value_range_error): Declare.
741 (lto_output_int_in_range, lto_input_int_in_range): New functions.
742 (lto_output_enum, lto_input_enum): New macros.
743
a11e0df4
EB
7442011-05-25 Eric Botcazou <ebotcazou@adacore.com>
745
746 * common.opt (flag_stack_usage_info): New variable.
747 (-Wstack-usage): New option.
748 * doc/invoke.texi (Warning options): Document -Wstack-usage.
749 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
750 <OPT_fstack_usage>: Likewise.
751 * toplev.c (output_stack_usage): Handle -Wstack-usage.
752 * calls.c (expand_call): Test flag_stack_usage_info variable instead
753 of flag_stack_usage.
754 (emit_library_call_value_1): Likewise.
755 * explow.c (allocate_dynamic_stack_space): Likewise.
756 * function.c (instantiate_virtual_regs ): Likewise.
757 (prepare_function_start): Likewise.
758 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
759 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
760 * config/arm/arm.c (arm_expand_prologue): Likewise.
761 (thumb1_expand_prologue): Likewise.
762 * config/avr/avr.c (expand_prologue): Likewise.
763 * config/i386/i386.c (ix86_expand_prologue): Likewise.
764 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
765 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
766 * config/mips/mips.c (mips_expand_prologue): Likewise.
767 * config/pa/pa.c (hppa_expand_prologue): Likewise.
768 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
769 * config/s390/s390.c (s390_emit_prologue): Likewise.
770 * config/sh/sh.c (sh_expand_prologue): Likewise.
771 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
772 * config/spu/spu.c (spu_expand_prologue): Likewise.
773
e7cfe241
RG
7742011-05-25 Richard Guenther <rguenther@suse.de>
775
776 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
777 (gimple_canonical_types_compatible_p): Likewise.
778
c5235f4c
JH
7792011-05-25 Jan Hubicka <jh@suse.cz>
780
781 PR middle-end/49062
782 * ipa.c (function_and_variable_visibility): Only add to same
783 comdat group list if DECL_ONE_ONLY.
784
8242a0f6
AB
7852011-05-25 Andrey Belevantsev <abel@ispras.ru>
786
787 PR rtl-optimization/49014
788 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
789
642a011d
JJ
7902011-05-25 Jakub Jelinek <jakub@redhat.com>
791
792 PR target/49128
793 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
794
30a435d8
VM
7952011-05-24 Vladimir Makarov <vmakarov@redhat.com>
796
797 PR rtl-optimization/48757
798 * ira-build.c (loop_with_eh_edge_p): Rename to
799 loop_with_complex_edge_p, check edges on complexity, make function
800 conditional.
801 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
802 conditional.
803
24d1bbc7
EB
8042011-05-24 Eric Botcazou <ebotcazou@adacore.com>
805
806 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
807 force flag_ira_share_save_slots to 0.
808
65773087
EB
8092011-05-24 Eric Botcazou <ebotcazou@adacore.com>
810
811 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
812 (vt_initialize): Set PROLOGUE_BB unconditionally.
813 Add block comment about CFA_BASE_RTX machinery.
814 Reset FP_CFA_OFFSET to -1 on all invalid paths.
815 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
816
4e26ba90
NP
8172011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
818
819 PR objc/48187
820 * c-parser.c (c_parser_objc_class_instance_variables): More robust
821 parsing of syntax error in ObjC instance variable lists. In
822 particular, avoid an infinite loop if there is a stray ']'.
823 Updated error message.
824
936fd13c
ILT
8252011-05-24 Ian Lance Taylor <iant@google.com>
826
827 * godump.c (go_define): Don't accept a string immediately after
828 another operand.
829
f17333e3
ILT
8302011-05-24 Ian Lance Taylor <iant@google.com>
831
832 * godump.c (struct godump_container): Add invalid_hash field.
833 (go_format_type): Return false if type is found in invalid_hash.
834 (go_output_typedef): Add invalid type to invalid_hash.
835 (go_finish): Create and delete invalid_hash.
836
d24ad7d6 8372011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 838
78be79d5
BS
839 PR tree-optimization/46728
840 * tree-ssa-math-opts.c (powi_table): New.
841 (powi_lookup_cost): New.
842 (powi_cost): New.
843 (powi_as_mults_1): New.
844 (powi_as_mults): New.
845 (gimple_expand_builtin_powi): New.
846 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
847 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 848
caee412b
RO
8492011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
850
851 PR target/3746
852 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
853 mips-tdump native.
854 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
855 * mips-tdump.c: Likewise.
856
5eed4f27
L
8572011-05-24 H.J. Lu <hongjiu.lu@intel.com>
858
859 PR target/49128
860 * config/i386/driver-i386.c (host_detect_local_cpu): Always
861 add -mno-XXX. Handle FMA.
862
8c5fdaae
VM
8632011-05-24 Vladimir Makarov <vmakarov@redhat.com>
864
865 PR rtl-optimization/48633
866 * ira-build.c (loop_with_eh_edge_p): New function.
867 (mark_loops_for_removal): Use it.
868
8692011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
870
871 PR rtl-optimization/48971
872 * ira.c (setup_pressure_classes): Don't check register move cost
873 for classes with one registers. Don't add pressure class if there
874 is a pressure class with the same available hard registers.
875 Check contains_reg_of_mode. Fix a typo in collecting
876 temp_hard_regset. Ignore hard registers not belonging to a class.
877
df1f7315
UB
8782011-05-24 Uros Bizjak <ubizjak@gmail.com>
879
880 PR target/49133
881 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
882
ee0cb37c
EB
8832011-05-24 Eric Botcazou <ebotcazou@adacore.com>
884 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
885
886 PR gcov-profile/48845
887 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
888
6a20ce76
RG
8892011-05-24 Richard Guenther <rguenther@suse.de>
890
891 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
892 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
893 (gimple_types_compatible_p_1): Adjust.
894 (iterative_hash_canonical_type): Do not bother about complete vs.
895 incomplete types.
896 (gimple_canonical_types_compatible_p): Likewise.
897
2fcb858c
RO
8982011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
899
900 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
901
96d91dcf
RG
9022011-05-24 Richard Guenther <rguenther@suse.de>
903
904 PR bootstrap/49078
905 * gimple.c (gimple_register_canonical_type): Revert
906 previous change.
907 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
908 does not for a tree for the case where it matters. Cache
909 pointer-type alias-sets.
910
1ed1641d
JM
9112011-05-24 Joseph Myers <joseph@codesourcery.com>
912
913 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
914 (OBJS): Remove options.o, opts-common.o and prefix.o.
915 (OBJS-libcommon-target): New.
916 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
917 (BACKEND): Include libcommon-target.a.
918 (MOSTLYCLEANFILES): Include libcommon-target.a.
919 (libcommon-target.a): New.
920 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
921 prefix.o.
922
57dfdff0
JM
9232011-05-23 Joseph Myers <joseph@codesourcery.com>
924
925 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
926 parts of output shared with the driver.
927 * optc-gen.awk: Don't generate parts of output not shared with the
928 driver.
929 * opth-gen.awk: Remove GCC_DRIVER conditionals.
930 * doc/options.texi (SourcerInclude): Mention options-save.c.
931 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
932 (OBJS): Add options-save.o.
933 (options-save.c, options-save.o): New.
934 (options.o): Update dependencies.
935 (gcc-options.o): Remove.
936 (mostlyclean): Remove options-save.c.
937
0e0d82a7
JJ
9382011-05-23 Jakub Jelinek <jakub@redhat.com>
939
9166988f
JJ
940 PR debug/49032
941 * dbxout.c: Include cgraph.h.
942 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
943 and without value expr, return NULL if no varpool node exists for
944 it or if it is not needed.
945 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
946
0e0d82a7
JJ
947 PR c/49120
948 * c-decl.c (start_decl): Convert expr to void_type_node.
949
65712d5c
RS
9502011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
951
952 PR rtl-optimization/48826
953 * emit-rtl.c (try_split): When splitting a call that is followed
954 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
955
9025085e
JJ
9562011-05-23 Jakub Jelinek <jakub@redhat.com>
957
958 * cfgexpand.c (expand_debug_expr): For unused non-addressable
959 parameters passed in memory prefer using DECL_INCOMING_RTL over
960 the pseudos it will be copied into.
961
34a061be
L
9622011-05-23 H.J. Lu <hongjiu.lu@intel.com>
963
964 PR target/47315
965 * config/i386/i386.c (ix86_option_override_internal): Save the
966 initial options after checking vzeroupper.
967
c375a3a4
DL
9682011-05-23 David Li <davidxl@google.com>
969
970 PR tree-optimization/48988
971 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
972 Initialize has_valid_pred for each pred chain.
973
e1caba18
RG
9742011-05-23 Richard Guenther <rguenther@suse.de>
975
976 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
977 (iterative_hash_gimple_type): Always hash type names.
978
dde05067
NF
9792011-05-23 Nathan Froyd <froydnj@codesourcery.com>
980
981 * c-typeck.c (build_function_call_vec): Tweak call to
982 check_function_arguments.
983
094f6ab3
RG
9842011-05-23 Richard Guenther <rguenther@suse.de>
985
986 PR tree-optimization/49115
987 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
988 is not necessarily carried out, do not claim it kills the ref.
989 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
990
9a9822e1
RG
9912011-05-23 Richard Guenther <rguenther@suse.de>
992
993 PR middle-end/15419
994 * builtins.c (fold_builtin_memory_op): Be less restrictive about
995 what pointer types we accept for folding.
996
c8028650
RO
9972011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
998
999 * gthr-gnat.c: Remove.
1000 * gthr-gnat.h: Remove.
1001 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1002 * config/t-freebsd (LIB2ADDEH): Likewise.
1003 * config/t-linux (LIB2ADDEH): Likewise.
1004 * config/t-sol2 (LIB2ADDEH): Likewise.
1005 * config/ia64/t-vms (LIB2ADDEH): Likewise.
1006 * configure.ac (target_thread_file): Remove gnat handling.
1007 * configure: Regenerate.
1008 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1009
15882fe9
TG
10102011-05-23 Tristan Gingold <gingold@adacore.com>
1011 Eric Botcazou <ebotcazou@adacore.com>
1012
1013 * gcov.c (create_file_names): If no object directory is specified,
1014 keep the directory of the file.
1015
da90c957
RO
10162011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1017
1018 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1019 * configure: Regenerate.
1020
7bba408b
JJ
10212011-05-23 Jakub Jelinek <jakub@redhat.com>
1022
1023 PR middle-end/48973
1024 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1025 failed and the comparison has a single bit signed type, use
1026 constm1_rtx instead of const1_rtx for true value.
1027 (do_store_flag): If ops->type is single bit signed type, disable
1028 signel bit test optimization and pass -1 instead of 1 as last
1029 parameter to emit_store_flag_force.
1030
bc69f7ff
TV
10312011-05-23 Tom de Vries <tom@codesourcery.com>
1032
1033 PR target/45098
1034 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1035 function.
1036 (infer_loop_bounds_from_undefined): Use new function.
1037
29cedf8e
RS
10382011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1039
1040 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1041 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
1042 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1043 and -O0 otherwise.
1044 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1045
afe8b6ec
EB
10462011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1047
1048 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1049 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1050 returns true.
1051
872dab53
RS
10522011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1053
1054 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1055
145f6c5b
EB
10562011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1057
1058 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1059 UNSPEC_MOVE_PIC pattern.
1060
8ac79835
EB
10612011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1062
1063 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1064 (sparc-*-rtems*): Likewise.
1065 (sparc64-*-elf*): Likewise.
1066 (sparc64-*-rtems*): Likewise.
1067 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
1068 * config/sparc/t-crtin: New file.
1069 * config/sparc/t-sol2 (crti.o): Delete rule.
1070 (crtn.o): Likewise.
1071 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1072 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1073 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1074 (ENDFILE_SPEC): Add crtn.o.
1075
5fb43dd8
TV
10762011-05-22 Tom de Vries <tom@codesourcery.com>
1077
1078 PR middle-end/48689
1079 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1080 CODE_CONTAINS_STRUCT (TS_COMMON).
1081
ccb1b17b
JJ
10822011-05-22 Jakub Jelinek <jakub@redhat.com>
1083
1084 PR middle-end/49029
1085 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1086 only after deciding which mode to use.
1087
50ad7db2
TV
10882011-05-22 Tom de Vries <tom@codesourcery.com>
1089
1090 PR target/45098
dc0a3366 1091 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
1092 for call to get_shiftadd_cost.
1093
ef230b38
UB
10942011-05-22 Uros Bizjak <ubizjak@gmail.com>
1095
1096 PR target/49104
1097 * config/i386/cpuid.h (bit_MMXEXT): New define.
1098
15f072f9
NC
10992011-05-22 Nick Clifton <nickc@redhat.com>
1100
1101 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1102 initialisation of non-existant args[2] element. Use args[] array
1103 not arg[] array to pass arguments to build_function_type_list.
1104
e38fdc94
IR
11052011-05-22 Ira Rosen <ira.rosen@linaro.org>
1106
1107 PR tree-optimization/49087
ef230b38 1108 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 1109
5b018c65
JM
11102011-05-21 Jason Merrill <jason@redhat.com>
1111
1112 PR c++/49092
1113 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1114 static storage duration.
1115
abd9a770
EB
11162011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1117
1118 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1119 frame pointer.
1120
bd9a3248
EB
11212011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1122
1123 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1124 false if there are call-saved registers here...
1125 (sparc_can_use_return_insn_p): ...but here instead.
1126 (save_or_restore_regs): Fix thinko.
1127 (sparc_expand_prologue): Use current_function_is_leaf.
1128 (sparc_frame_pointer_required): Likewise.
1129
a5dfec9a
NC
11302011-05-21 Nick Clifton <nickc@redhat.com>
1131
1132 PR target/49098
1133 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1134
555c3771
NP
11352011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1136
1137 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1138 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1139
86fa5de4
JM
11402011-05-21 Joseph Myers <joseph@codesourcery.com>
1141
1142 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1143 * optc-gen.awk: Move common code to opt-read.awk.
1144 * opth-gen.awk: Likewise.
ef230b38 1145 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 1146
bce33ab2
NF
11472011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1148
1149 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1150
e6450c11
TV
11512011-05-20 Tom de Vries <tom@codesourcery.com>
1152
1153 PR target/45098
1154 * tree-ssa-loop-ivopts.c: Include expmed.h.
1155 (get_shiftadd_cost): New function.
1156 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1157
0e8b84ec
JJ
11582011-05-20 Jakub Jelinek <jakub@redhat.com>
1159
1160 PR bootstrap/49086
1161 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1162 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1163
946bdf67
JM
11642011-05-20 Joseph Myers <joseph@codesourcery.com>
1165
1166 * Makefile.in: Update comment referring to $(OBJS-common).
1167
c53aafdf
ILT
11682011-05-20 Ian Lance Taylor <iant@google.com>
1169
1170 * godump.c (go_output_typedef): Put enum constants in the macro
1171 hash table to avoid duplicate Go const definitions.
1172
2691e6d7
JM
11732011-05-20 Joseph Myers <joseph@codesourcery.com>
1174
1175 * Makefile.in (LIBDEPS): Add libcommon.a.
1176 (LIBS): Likewise.
1177 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1178 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1179 pretty-print.o and version.o.
1180 (OBJS-libcommon): New.
1181 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1182 (BACKEND): Add libcommon.a.
1183 (MOSTLYCLEANFILES): Likewise.
1184 (libcommon.a): New.
1185 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1186 (cpp$(exeext)): Likewise.
1187 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1188 pretty-print.o and input.o.
1189 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1190 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1191 (errors.o): Remove.
1192 (mips-tfile): Don't explicitly use version.o.
1193 (mips-tdump): Likewise.
1194 (gcov.o): Depend on $(DIAGNOSTIC_H).
1195 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1196 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1197 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1198 * gcov-dump.c: Include intl.h and diagnostic.h.
1199 (main): Initialize diagnostics.
1200 * gcov.c: Include diagnostic.h.
1201 (fnotice): Remove.
1202 (main): Initialize diagnostics.
1203 * lto-wrapper.c: Include diagnostic.h.
1204 (main): Initialize diagnostics.
1205
252b3e8c
MM
12062011-05-20 Michael Matz <matz@suse.de>
1207
1208 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1209
2ee36ba6
MM
12102011-05-20 Michael Matz <matz@suse.de>
1211 Richard Guenther <rguenther@suse.de>
1212
1213 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1214 use lto_streamer_cache_append directly instead of returning a VEC.
1215 (preload_common_node): Remove.
1216 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1217 track seen nodes.
1218 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1219
90ff582f
RG
12202011-05-20 Richard Guenther <rguenther@suse.de>
1221
1222 PR tree-optimization/49079
1223 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1224 MEM_REFs correctly for the trailing array access detection.
1225 Special case constants the same way as decls for overall size
1226 constraining.
1227
3cda91d8
UB
12282011-05-20 Uros Bizjak <ubizjak@gmail.com>
1229
1230 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1231 argument expansion.
1232
6c66f733
JJ
12332011-05-20 Jakub Jelinek <jakub@redhat.com>
1234
1235 PR tree-optimization/49073
3cda91d8
UB
1236 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1237 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
1238 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1239
0ea80a16
RG
12402011-05-20 Richard Guenther <rguenther@suse.de>
1241
1242 PR middle-end/48849
1243 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1244 of pointer types the same way the middle-end does.
1245
fb291a1e
RG
12462011-05-20 Richard Guenther <rguenther@suse.de>
1247
3cda91d8
UB
1248 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1249 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 1250
37cb25ed
QN
12512011-05-19 Quentin Neill <quentin.neill@amd.com>
1252
1253 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1254 (fma4_fmaddsub): Likewise
1255
a30726a4
JH
12562011-05-19 Jan Hubicka <jh@suse.cz>
1257
1258 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1259 (GIMPLE_TYPE_PAIR_SIZE): New macro.
1260 (type_pair_cache): New static var.
1261 (lookup_type_pair): Use fixed sized custom hash; make inline.
1262 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1263 calls of lookup_type_pair.
1264 (print_gimple_types_stats): Remove cache stats.
1265 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1266 and gtc_ob.
1267
0955cf61
UB
12682011-05-19 Uros Bizjak <ubizjak@gmail.com>
1269
1270 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1271 when TARGET_RDRND is active.
1272 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1273 Generate dummy SImode target register when target is NULL.
1274
12d844c8
JM
12752011-05-19 Joseph Myers <joseph@codesourcery.com>
1276
1277 * config/arm/arm-fpus.def: New.
1278 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1279 arm-fpus.def.
1280 * config/arm/arm-tables.opt: Regenerate.
1281 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1282 (arm_option_override): Don't decode FPU name to string here.
1283 * config/arm/arm.opt (mfpu=): Use Enum.
1284 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1285 Update dependencies.
1286
9e350e99
JM
12872011-05-19 Joseph Myers <joseph@codesourcery.com>
1288
1289 * collect2.c: Include diagnostic.h.
1290 (fatal_perror, fatal, error, fancy_abort): Remove.
1291 (main): Set progname. Call xmalloc_set_program_name and
1292 diagnostic_initialize.
1293 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1294 scan_libraries, resolve_lib_name): Call fatal_error instead of
1295 fatal and fatal_perror.
1296 * collect2.h (error, fatal, fatal_perror): Don't declare.
1297 * tlink.c: Include diagnostic-core.h.
1298 (recompile_files): Call fatal_error instead of fatal_perror.
1299 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1300 pretty-print.o and input.o.
1301 (collect2.o, tlink.o): Update dependencies.
1302
86ff4081
RO
13032011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1306
2ca48caa
RO
13072011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1308
1309 PR target/40483
1310 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1311 COMDAT group syntax, both SPARC and x86 variants.
1312 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1313 * configure: Regenerate.
1314 * config/sol2.h (TARGET_SOLARIS): Define.
1315 (PUSHSECTION_FORMAT): Remove.
1316 (SECTION_NAME_FORMAT): Define.
1317 * config/sol2.c: Include hashtab.h.
1318 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1319 expansion, using SECTION_NAME_FORMAT.
1320 (solaris_comdat_htab): New variable.
1321 (struct comdat_entry): Define.
1322 (comdat_hash): New function.
1323 (comdat_eq): New function.
1324 (solaris_elf_asm_comdat_section): New function.
1325 (solaris_define_comdat_signature): New function.
1326 (solaris_code_end): New function.
1327 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1328 (solaris_code_end): Declare.
1329 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1330 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1331 solaris_code_end.
1332 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1333 Remove ATTRIBUTE_UNUSED.
1334 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1335 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 1336 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
1337 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1338 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1339 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1340 (PUSHSECTION_FORMAT): Remove.
1341 (SECTION_NAME_FORMAT): Redefine.
1342
da5fb469
KT
13432011-05-19 Kai Tietz <ktietz@redhat.com>
1344
1345 * tree-cfg.c (verify_gimple_assign_binary): Barf on
1346 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1347 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1348
1651e703 13492011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
1350 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1351
1352 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1353
e497b9bd
RG
13542011-05-19 Richard Guenther <rguenther@suse.de>
1355
1356 PR middle-end/48985
1357 * tree-object-size.c (addr_object_size): If the pointed-to
1358 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1359
31b3ca64
RG
13602011-05-19 Richard Guenther <rguenther@suse.de>
1361
1362 * gimple.c (gimple_types_compatible_p_1): Compare names of
1363 the types themselves.
1364 (iterative_hash_gimple_type): And hash them that way.
1365 (gimple_register_type_1): If we register a main variant properly
1366 initialize the leader to ourselves.
1367
bb8d292d
TV
13682011-05-19 Tom de Vries <tom@codesourcery.com>
1369
1370 PR target/45098
1371 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1372 get_loop_invariant_expr_id.
1373 (get_loop_invariant_expr_id): Use get_expr_id.
1374 (parm_decl_cost): New function.
1375 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1376 Improve bound cost estimation. Use different inv_expr_id for elim and
1377 express cases.
1378
a53c5024
TV
13792011-05-19 Tom de Vries <tom@codesourcery.com>
1380
1381 PR target/45098
1382 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1383 cost_base.cost == 0.
1384
31f9eb59
L
13852011-05-18 H.J. Lu <hongjiu.lu@intel.com>
1386
1387 PR target/49002
1388 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1389 Properly handle load cast.
1390
681056ae
JJ
13912011-05-18 Jakub Jelinek <jakub@redhat.com>
1392
1393 PR tree-optimization/49039
1394 * tree-vrp.c (extract_range_from_binary_expr): For
1395 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1396 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1397
b5ee6752
TV
13982011-05-18 Tom de Vries <tom@codesourcery.com>
1399
1400 PR target/45098
1401 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1402
0bda47a3
UB
14032011-05-18 Uros Bizjak <ubizjak@gmail.com>
1404
1405 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1406 (*tls_global_dynamic_64): Ditto.
1407 (*tls_local_dynamic_base_32_gnu): Ditto.
1408 (*tls_local_dynamic_base_64): Ditto.
1409 (tls_initial_exec_64_sun): Ditto.
1410
033b0805
SH
14112011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
1412
1413 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1414 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1415 bf592-none.
1416 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1417 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1418 * config/bfin/bfin.c (bfin_cpus): Add bf592.
1419 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 1420 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
1421 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1422 * config/bfin/elf.h (LIB_SPEC): Add bf592.
1423
ba163417
JM
14242011-05-18 Joseph Myers <joseph@codesourcery.com>
1425
1426 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 1427 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
1428 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1429 target_thread_pointer, arm_structure_size_boundary, struct
1430 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1431 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
1432 (arm_option_override) Don't process most enumerated option values here.
1433 Don't process target_fpe_name here. Work with integer not string for
1434 structure size boundary; use separate diagnostics for each case.
ba163417
JM
1435 * config/arm/arm.h (enum float_abi_type, enum
1436 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1437 to arm-opts.h.
1438 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1439 arm_structure_size_boundary): Remove.
1440 * config/arm/arm.opt (mabi=): Use Enum and Init.
1441 (arm_abi_type): New Enum and EnumValue entries.
1442 (mfloat-abi=): Use Enum and Init.
1443 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 1444 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
1445 (mfp16-format=): Use Enum and Init.
1446 (arm_fp16_format_type): New Enum and EnumValue entries.
1447 (mstructure-size-boundary=): Use UInteger and Init.
1448 (mtp=): Use Enum and Init.
1449 (arm_tp_type): New Enum and EnumValue entries.
1450
179184e3
RG
14512011-05-18 Richard Guenther <rguenther@suse.de>
1452
1453 PR tree-optimization/49018
1454 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1455 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1456 gimple_has_side_effects.
1457
93b2a207
RG
14582011-05-18 Richard Guenther <rguenther@suse.de>
1459
1460 * gimple.c (gimple_register_type_1): New function, split out from ...
1461 (gimple_register_type): ... here. Avoid infinite recursion.
1462
b010117a
IR
14632011-05-18 Ira Rosen <ira.rosen@linaro.org>
1464
1465 PR tree-optimization/41881
1466 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1467 reduction_chains along with a macro for its access.
1468 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1469 (destroy_loop_vec_info): Free reduction chains.
1470 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1471 (vect_is_slp_reduction): New function.
1472 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1473 (vect_create_epilog_for_reduction): Support SLP reduction chains.
1474 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1475 definition types for reduction chains.
1476 (vect_supported_load_permutation_p): Don't allow permutations for
1477 reduction chains.
1478 (vect_analyze_slp_instance): Support reduction chains.
1479 (vect_analyze_slp): Try to build SLP instance from reduction chains.
1480 (vect_get_constant_vectors): Handle reduction chains.
1481 (vect_schedule_slp_instance): Mark the first statement of the
1482 reduction chain as reduction.
1483
e14c1050
IR
14842011-05-18 Ira Rosen <ira.rosen@linaro.org>
1485
1486 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1487 names for group elements access.
1488 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1489 reduction chains as well. Remove data reference and interleaving
1490 related words from the fields names.
1491 * tree-vect-loop.c (vect_transform_loop): Use new names for group
1492 elements access.
1493 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1494 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1495 vect_update_interleaving_chain, vect_same_range_drs,
1496 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1497 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1498 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1499 vect_analyze_group_access, vect_analyze_data_ref_access,
1500 vect_create_data_ref_ptr, vect_transform_strided_load,
1501 vect_record_strided_load_vectors): Likewise.
1502 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1503 vect_model_load_cost, vectorizable_store, vectorizable_load,
1504 vect_remove_stores, new_stmt_vec_info): Likewise.
1505 * tree-vect-slp.c (vect_build_slp_tree,
1506 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1507
51c213f7
RG
15082011-05-18 Richard Guenther <rguenther@suse.de>
1509
1510 PR middle-end/48989
1511 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1512 operand verification.
1513 (verify_gimple_assign_binary): Likewise.
1514 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1515 to non-1-precision BOOLEAN_TYPEs.
1516
8f5e5434
TV
15172011-05-18 Tom de Vries <tom@codesourcery.com>
1518
1519 PR target/45098
1520 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1521
116bc3a4
JJ
15222011-05-18 Jakub Jelinek <jakub@redhat.com>
1523
1524 PR tree-optimization/49000
1525 * tree-ssa.c (execute_update_addresses_taken): Call
1526 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
1527 be rewritten and decl has been marked for renaming, reset
1528 the debug stmt.
1529
26a8964c
JM
15302011-05-17 Joseph Myers <joseph@codesourcery.com>
1531
1532 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1533 enum_opts_set when testing if attributes have set -mfpmath=.
1534
82bd45d7
RS
15352011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
1536
1537 * config/mips/mips.c (mips_handle_option): Remove unused variable.
1538
267ffce3
UB
15392011-05-17 Uros Bizjak <ubizjak@gmail.com>
1540
1541 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1542 info->entry with 0
1543 * tree-inline.c (maybe_inline_call_in_expr): Initialize
1544 id.transform_lang_insert_block with NULL.
1545
15462011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
1547
1548 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1549 (output_fp_compare): Change args 3 and 4 to bool.
1550 (ix86_expand_call): Change arg 6 to bool.
1551 (ix86_attr_length_immediate_default): Change arg 2 to bool.
1552 (ix86_attr_length_vex_default): Change arg 3 to bool.
1553 * config/i386/i386.md: Update all uses.
1554 * config/i386/i386.c: Ditto.
1555 (ix86_flags_dependent): Change return type to bool.
1556
5beaf664
RG
15572011-05-17 Richard Guenther <rguenther@suse.de>
1558
1559 * gimple.c (type_hash_pair_compare): Fix comparison.
1560
008bad7a
RG
15612011-05-17 Richard Guenther <rguenther@suse.de>
1562
1563 * gimple.c (iterative_hash_gimple_type): Simplify singleton
1564 case some more, fix final hash value of the non-singleton case.
1565
36461340
RG
15662011-05-17 Richard Guenther <rguenther@suse.de>
1567
1568 PR bootstrap/49013
1569 Revert
1570 2011-05-16 Richard Guenther <rguenther@suse.de>
1571
1572 * gimple.c (gimple_types_compatible_p_1): Use names of the
1573 type itself, not its main variant.
1574 (iterative_hash_gimple_type): Likewise.
1575
6b6a59f3
RG
15762011-05-17 Richard Guenther <rguenther@suse.de>
1577
1578 * gimple.c (gimple_register_canonical_type): Use the main-variant
1579 leader for computing the canonical type.
1580
4ffc4134
NC
15812011-05-17 Nick Clifton <nickc@redhat.com>
1582
a1d8754e
NC
1583 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1584 moves.
1585
4ffc4134
NC
1586 * config/rx/rx.md: Add peephole to remove redundant extensions
1587 after loads.
39960f7a
NC
1588 (bitset_in_memory): Use rx_restricted_mem_operand.
1589 (bitinvert_in_memory): Likewise.
1590 (bitclr_in_memory): Likewise.
4ffc4134 1591
b3db92ac
KI
15922011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
1593 Nick Clifton <nickc@redhat.com>
1594
1595 * config/rx/rx.md: Add peepholes to match a register move followed
1596 by a comparison of the moved register. Replace these with an
1597 addition of zero that does both actions in one instruction.
1598
8637e32a
JJ
15992011-05-17 Jakub Jelinek <jakub@redhat.com>
1600
1601 PR target/48986
1602 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1603 predicate to allow CONST_INT.
1604 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1605
8023568e
JM
16062011-05-16 Joseph Myers <joseph@codesourcery.com>
1607
1608 * opts-common.c (opt_enum_arg_to_value): New.
1609 * opts.h (opt_enum_arg_to_value): Declare.
1610 * config/i386/i386.opt (fpmath): Remove.
1611 (mfpmath=): Use Enum, Init and Save.
1612 (fpmath_unit): New Enum and EnumValue entries.
1613 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1614 name for function fpmath state.
1615 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1616 * config/i386/i386.c: Include diagnostic.h.
1617 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 1618 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 1619 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 1620 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
1621 (x86_function_specific_save, ix86_function_specific_restore):
1622 Don't handle fpmath state specially.
1623 (ix86_function_specific_print): Pass fpmath state to
1624 ix86_target_string instead of printing in this function.
1625 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1626 Handle enum attributes.
1627 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1628 (ix86_valid_target_attribute_tree): Update option_strings
1629 handling. Handle fpmath as enum option.
1630 (ix86_can_inline_p): Update field names for function fpmath state.
1631 (ix86_expand_builtin): Update call to ix86_target_string.
1632 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1633 (ix86_fpmath): Remove.
1634 * config/i386/t-i386 (i386.o): Update dependencies.
1635
9e8d926e
JM
16362011-05-16 Joseph Myers <joseph@codesourcery.com>
1637
1638 PR preprocessor/48677
1639 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1640 from decoded_options[0], not from itself.
1641
f6449011
UB
16422011-05-16 Uros Bizjak <ubizjak@gmail.com>
1643
1644 * config/i386/constraints.md (z): New constraint.
1645 * config/i386/i386.c (c): New mode attribute.
1646 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1647 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1648 constraint for operand 0.
1649 (*call_vzeroupper): Ditto.
1650 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1651 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1652 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1653 Use "lzm" constraint for operand 0.
1654 (*call_pop_vzeroupper): Ditto.
1655 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1656 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1657 constraint for operand 0.
1658 (*sibcall_vzeroupper): Ditto.
1659 (*sibcall_rex64_ms_sysv): Ditto.
1660 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1661 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1662 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1663 (*sibcall_pop_vzeroupper): Ditto.
1664 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1665 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1666 mode iterator. Use "<c>zm" constraint for operand 1.
1667 (*call_value_vzeroupper): Ditto.
1668 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 1669 for operand 1.
f6449011
UB
1670 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1671 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1672 *call_value_pop_1. Use "lzm" constraint for operand 1.
1673 (*call_value_pop_vzeroupper): Ditto.
1674 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1675 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1676 mode iterator. Use "Uz" constraint for operand 1.
1677 (*sibcall_value_vzeroupper): Ditto.
1678 (*sibcall_value_rex64_ms_sysv): Ditto.
1679 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1680 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1681 constraint for operand 1.
1682 (*sibcall_value_pop_vzeroupper): Ditto.
1683 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1684 and "z" constraint for operand 2.
1685 (*tls_global_dynamic_32_gnu): Ditto.
1686 (*tls_local_dynamic_base_32_gnu): Ditto.
1687 (*tls_local_dynamic_base_64): Ditto.
1688 (*tls_local_dynamic_32_once): Ditto.
1689 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1690 Update all callers.
1691 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1692
c11b6902
RG
16932011-05-16 Richard Guenther <rguenther@suse.de>
1694
1695 * gimple.c (gimple_types_compatible_p_1): Use names of the
1696 type itself, not its main variant.
1697 (iterative_hash_gimple_type): Likewise.
1698
1e83b5f1
RG
16992011-05-16 Richard Guenther <rguenther@suse.de>
1700
f6449011
UB
1701 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1702 always visit pointer target and function result and argument types.
1e83b5f1 1703
62e36382
JM
17042011-05-16 Jason Merrill <jason@redhat.com>
1705
1706 PR c++/48999
1707 * tree-inline.c (copy_statement_list): Put back recursion.
1708
687027a4
GJL
17092011-05-16 Georg-Johann Lay <avr@gjlay.de>
1710
1711 PR target/27663
1712 PR target/41076
1713 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1714 * config/avr/avr.md ("*ior<mode>qi.byte0",
1715 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1716
f24a5190
GJL
17172011-05-16 Georg-Johann Lay <avr@gjlay.de>
1718
1719 PR target/45099
1720 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1721 register is needed for a function argument.
1722
3066f593
RG
17232011-05-16 Richard Guenther <rguenther@suse.de>
1724
1725 * gimple.c (struct type_hash_pair): New type.
1726 (type_hash_pair_compare): New function.
f6449011 1727 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 1728
b2ab2cf4
RE
17292011-05-16 Revital Eres <revital.eres@linaro.org>
1730
f6449011 1731 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 1732
dfb737fc
UB
17332011-05-15 Uros Bizjak <ubizjak@gmail.com>
1734
1735 * config/i386/i386.md (floating point move splitters): Fix
1736 usage of standard_80387_constant_p.
f6449011 1737 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 1738
8caa1de0
UB
17392011-05-15 Uros Bizjak <ubizjak@gmail.com>
1740
1741 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1742
8a519095
EB
17432011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1744
1745 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1746 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1747 (tree_ssa_lim_finalize): Likewise.
1748
479fecd3
UB
17492011-05-14 Uros Bizjak <ubizjak@gmail.com>
1750
1751 * config/i386/constraint.md (Yd, Yx): New register constraints.
1752 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1753 Yd conditional register constraint.
1754 (*movtf_internal): Use standard_sse_constant_opcode.
1755 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1756 Yx conditional register constraint.
1757 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1758 Yd conditional register constraint. Use standard_sse_constant_p to
1759 check for valid SSE constants and call standard_sse_constant_opcode to
1760 output SSE insn.
1761 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1762 constants and call standard_sse_constant_opcode to output SSE insn.
1763 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1764 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1765 optimize_size is set.
1766 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1767
2d8c9ad5
TB
17682011-05-14 Tobias Burnus <burnus@net-b.de>
1769
1770 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1771
411a20d6
MJ
17722011-05-13 Martin Jambor <mjambor@suse.cz>
1773
1774 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1775 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1776 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1777 (evaluate_conditions_for_ipcp_clone): Removed.
1778 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1779 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1780 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1781
dc764d10
EB
17822011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1783
1784 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1785 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1786 lieu of MAY_HAVE_DEBUG_STMTS.
1787 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1788 debug statements if !MAY_HAVE_DEBUG_STMTS.
1789
9f47a24e
MT
17902011-05-13 Martin Thuresson <martint@google.com>
1791
1792 PR gcov-profile/47793
1793 * libgcov.c (gcov_exit): Support relative profile paths.
1794 * doc/invoke.texi (-fprofile-dir): Update for above change.
1795
b8a71aed
RG
17962011-05-13 Richard Guenther <rguenther@suse.de>
1797
1798 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1799 type-pair caching, do not compare hashes.
1800
eb9f9259
NF
18012011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1802
1803 PR middle-end/48965
1804 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1805 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1806
3c6cbf7a
KT
18072011-05-13 Kai Tietz <ktietz@redhat.com>
1808
1809 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1810 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1811 compatible type for TRUTH_NOT_EXPR.
1812
2e7f5dc0
L
18132011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1814
dc764d10 1815 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
1816 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1817 can_create_pseudo_p ().
1818
e834e95c
RG
18192011-05-13 Richard Guenther <rguenther@suse.de>
1820
1821 PR lto/48978
1822 * gimple.c (iterative_hash_gimple_type): Revert change in
1823 pointer target and function result and argument hashing.
1824
34203483
UB
18252011-05-13 Uros Bizjak <ubizjak@gmail.com>
1826
1827 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1828 (*movxf_internal_nointeger): Ditto.
1829 (*movdf_internal_rex64): Ditto.
1830 (*movdf_internal): Ditto.
1831 (*movdf_internal_nointeger): Ditto.
1832 (*movsf_internal): Ditto.
1833 (sincos splitters): Use can_create_pseudo ().
1834
7eb68c06
JM
18352011-05-13 Joseph Myers <joseph@codesourcery.com>
1836
1837 * config/i386/i386-opts.h: New.
1838 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1839 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1840 ix86_section_threshold): Remove.
1841 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1842 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1843 OPT_mbranch_cost_.
1844 (ix86_option_override_internal): Don't decode strings for options
1845 other than -march=, -mtune= and -mfpmath=. Don't allow for
1846 __attribute__ uses in remaining diagnostics for options with
34203483 1847 string arguments. Don't check for integer arguments being negative.
7eb68c06 1848 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 1849 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
1850 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1851 ix86_branch_cost, ix86_section_threshold): Remove.
1852 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1853 HeaderInclude.
1854 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1855 but not Var.
1856 (masm=): Use Enum and Init.
1857 (asm_dialect): New Enum and EnumValue entries.
1858 (mbranch-cost=): Use UInteger.
1859 (mlarge-data-threshold=): Use UInteger and Init.
1860 (mcmodel=): Use Enum and Init.
1861 (cmodel): New Enum and EnumValue entries.
1862 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1863 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1864 mregparm=): Use UInteger.
1865 (mstringop-strategy=): Use Enum and Init.
1866 (stringop_alg): New Enum and EnumValue entries.
1867 (mtls-dialect=): Use Enum and Init.
1868 (tls_dialect): New Enum and EnumValue entries.
1869 (mabi=): Use Enum and Init.
1870 (calling_abi): New Enum and EnumValue entries.
1871 (mveclibabi=): Use Enum and Init.
1872 (ix86_veclibabi): New Enum and EnumValue entries.
1873
f67e203c
NC
18742011-05-13 Nick Clifton <nickc@redhat.com>
1875
34203483
UB
1876 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1877 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 1878
221df0b6
KT
18792011-05-13 Kai Tietz <ktietz@redhat.com>
1880
1881 PR middle-end/48984
1882 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1883 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1884 (gimple_boolify): Check for cast for boolean_type_node instead for
1885 BOOLEAN_TYPE.
1886
208cb8cb
RG
18872011-05-13 Richard Guenther <rguenther@suse.de>
1888
1889 PR tree-optimization/48172
1890 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1891 multiplying by number of iterations for equal step.
1892 (vect_create_cond_for_alias_checks): Likewise.
1893
b88ecf55
AS
18942011-05-13 Andreas Schwab <schwab@redhat.com>
1895
1896 * configure.ac: Use AS_HELP_STRING throughout.
1897 * configure: Regenerate.
1898
569b527e
L
18992011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1900
34203483 1901 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
1902 (ix86_emit_restore_regs_using_mov): Likewise.
1903 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1904
8b9a1428
AS
19052011-05-12 Anatoly Sokolov <aesok@post.ru>
1906
1907 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1908 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1909 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1910 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1911 RTX_OK_FOR_OLO10_P): ...here.
1912 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1913 SYMBOLIC_CONST.
1914
1d15f620
KT
19152011-05-12 Kai Tietz <ktietz@redhat.com>
1916
1917 * gimplify.c (gimple_boolify): Re-boolify expression
1918 arguments even if expression type is of kind BOOLEAN_TYPE.
1919 (gimplify_boolean_expr): Removed.
1920 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1921 and XOR. Additional take care that we keep expression's type.
1922 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1923 of TRUTH_AND|OR|XOR_EXPR.
1924
c2b5fc8d
JJ
19252011-05-12 Jakub Jelinek <jakub@redhat.com>
1926
1927 PR tree-optimization/48975
1928 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1929 on all bbs here and free and clear ifc_bbs at the end.
1930
61332f77
RG
19312011-05-12 Richard Guenther <rguenther@suse.de>
1932
1933 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1934 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1935 until after simple checks.
1936 (gimple_types_compatible_p): Likewise.
1937 (iterative_hash_gimple_type): Always hash pointer targets
1938 and function return and argument types.
1939 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1940 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1941 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1942 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1943 completely in the simple compare section.
1944 (gimple_register_canonical_type): Query the cache again after
1945 registering.
1946
e2a3a5f1
RG
19472011-05-12 Richard Guenther <rguenther@suse.de>
1948
1949 PR tree-optimization/48172
1950 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1951 the number of iterations from the segment size calculation.
1952 (vect_create_cond_for_alias_checks): Adjust.
1953
2c703f3a
JJ
19542011-05-12 Jakub Jelinek <jakub@redhat.com>
1955
1956 PR debug/48967
1957 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1958 if validate_subreg fails.
1959
19602011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
1961
1962 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1963 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1964 early.
1965
87e91fca
DD
19662011-05-12 DJ Delorie <dj@redhat.com>
1967
d53903d6 1968 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
1969 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1970 created builtin into rx_builtins array.
1971 (rx_builtin_decl): New function.
34203483 1972 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 1973
5f2f13fd
DD
19742011-05-12 DJ Delorie <dj@redhat.com>
1975 Nick Clifton <nickc@redhat.com>
1976
1977 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1978 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1979 (rx_is_legitimate_address): Add pre-decrement and post-increment
1980 addressing in HImode and QImode. Fix test for out of range
1981 REG+INT addressing.
87e91fca 1982 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 1983 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 1984 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 1985 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 1986
57421f45
JM
19872011-05-11 Jason Merrill <jason@redhat.com>
1988
1989 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1990
898c90c0
EB
19912011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1992
1993 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1994 reindent the subsequent block.
1995
79bec923
ST
19962011-05-11 Satoru Takabayashi <satorux@google.com>
1997 Paul Pluzhnikov <ppluzhnikov@google.com>
1998
34203483 1999 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
2000 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2001 * config.in: Add LINKER_HASH_STYLE.
2002 * configure.ac: Add --with-linker-hash-style.
2003 * configure: Regenerate.
79bec923 2004
d0340959
RG
20052011-05-11 Richard Guenther <rguenther@suse.de>
2006
2007 PR middle-end/48964
2008 * gimple.c (iterative_hash_canonical_type): Fix typo.
2009
cb032fee
UB
20102011-05-11 Uros Bizjak <ubizjak@gmail.com>
2011
2012 * config/i386/i386.c (legitimize_tls_address)
479fecd3 2013 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
2014 expanders directly for TARGET_GNU2_TLS. Determine pic and
2015 __tls_get_addr symbol reference here. Update call to
2016 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 2017 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
2018 expanders directly for TARGET_GNU2_TLS. Determine
2019 __tls_get_addr symbol reference here. Update call to
2020 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
2021 unique UNSPEC REG_EQUIV to libcall block.
2022 (ix86_tls_get_addr): Declare static.
2023 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2024 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2025 Do not determine pic and __tls_get_addr symbol reference here. Do not
2026 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2027 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2028 (tls_global_dynamic_64): Add operand 2. Do not determine
2029 __tls_get_addr symbol reference here. Do not call
2030 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2031 (tls_local_dynamic_base64): Ditto for operand 1.
2032
6d3cc8f0
EB
20332011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2034
2035 * function.c (expand_function_start): Initialize stack_check_probe_note
2036 only if the generic stack checking mechanism is used.
2037
51e020fc
RG
20382011-05-11 Richard Guenther <rguenther@suse.de>
2039
2040 PR tree-optimization/15256
2041 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2042 (A & B) | C, combine (A op CST1) op CST2.
2043 (tree_ssa_forward_propagate_single_use_vars): Only bother to
2044 visit assigns that have uses.
2045
51545682
NF
20462011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2047
cb032fee 2048 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
2049 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2050 (unpack_ts_type_common_value_fields): ...this. Update comment.
2051 (unpack_value_fields): Adjust for renaming.
2052 (lto_input_ts_type_tree_pointers): Split into...
2053 (lto_input_ts_type_common_tree_pointer): ...this and...
2054 (lto_input_ts_type_non_common_tree_pointers): ...this.
2055 (lto_input_tree_pointers): Adjust for above split.
2056 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2057 (pack_ts_type_common_value_fields): ...this. Update comment.
2058 (lto_output_ts_type_tree_pointers): Split into...
2059 (lto_output_ts_type_common_tree_pointers): ...this and...
2060 (lto_output_ts_type_non_common_tree_pointers): ...this.
2061 (lto_output_tree_pointers): Adjust for above split.
2062 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2063 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2064 * stor-layout.c (vector_type_mode): Adjust location of mode field.
2065 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2066 Define.
2067 (struct tree_type): Split into...
2068 (struct tree_type_common: ...this and...
2069 (struct tree_type_with_lang_specific): ...this and...
2070 (struct tree_type_non_common): ...this. Adjust accessor macros
2071 accordingly.
2072 (TYPE_VALUES_RAW): Define.
2073 (union tree_node): Update for above changes.
2074 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2075 TS_TYPE_NON_COMMON.
2076 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2077 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2078 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2079 * treestructu.def (TS_TYPE): Remove.
2080 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2081 Define.
2082
b03c3082
JJ
20832011-05-11 Jakub Jelinek <jakub@redhat.com>
2084
2085 PR debug/48159
2086 * tree-ssa.c (reset_debug_uses): New function.
2087 * tree-flow.h (reset_debug_uses): New prototype.
2088 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2089 * tree-loop-distribution.c (generate_loops_for_partition): Call
2090 reset_debug_uses on the stmts that will be removed. Keep around
2091 all debug stmts, don't count them as bits in partition bitmap.
2092 (generate_builtin): Don't count debug stmts or labels as bits in
2093 partition bitmap.
2094
b5e04de5
RG
20952011-05-11 Richard Guenther <rguenther@suse.de>
2096
2097 * gimple.c (gimple_type_hash_1): Merge with ...
2098 (gimple_type_hash): ... this.
2099 (gtc_visit): Remove mode parameter and simplify accordingly.
2100 (gimple_types_compatible_p_1): Likewise.
2101 (gimple_types_compatible_p): Likewise.
2102 (iterative_hash_gimple_type): Likewise.
2103 (visit): Likewise.
2104 (gimple_type_eq): Adjust.
2105
fc6970e4
RE
21062011-05-11 Revital Eres <revital.eres@linaro.org>
2107
2108 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2109 enters the branch create an anti edge in the opposite direction
2110 to prevent the creation of reg-moves.
2111 * modulo-sched.c: Adjust comment to reflect the fact we are
2112 scheduling closing branch.
2113 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2114 (stage_count): New field in struct partial_schedule.
2115 (calculate_stage_count): New function.
2116 (normalize_sched_times): Rename to reset_sched_times and handle
2117 incrementing the sched time of the nodes by a constant value
2118 passed as parameter.
2119 (duplicate_insns_of_cycles): Skip closing branch.
2120 (sms_schedule_by_order): Schedule closing branch.
2121 (ps_insn_find_column): Handle closing branch.
2122 (sms_schedule): Call reset_sched_times and adjust the code to
2123 support scheduling of the closing branch.
2124 (ps_insert_empty_row): Update calls to normalize_sched_times
2125 and rotate_partial_schedule functions.
2126
41a58a92
RG
21272011-05-11 Richard Guenther <rguenther@suse.de>
2128
2129 PR middle-end/48953
2130 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2131
e9f8dcf9
JM
21322011-05-11 Joseph Myers <joseph@codesourcery.com>
2133
cb032fee
UB
2134 * opts.c (finish_options): Move warning settings from process_options.
2135 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 2136
10c224a9
RG
21372011-05-11 Richard Guenther <rguenther@suse.de>
2138
2139 PR tree-optimization/18041
2140 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2141 (simplify_bitwise_binary): ... this. Handle operand conversions
2142 by applying them to the result instead.
2143 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2144
825b27de
RG
21452011-05-11 Richard Guenther <rguenther@suse.de>
2146
2147 * gimple.c (gimple_canonical_types_compatible_p): Split out
2148 from gimple_types_compatible_p and friends. Do not recurse
2149 to pointed-to types.
2150 (gimple_canonical_type_eq): Use it.
2151 (iterative_hash_canonical_type): Split out from
2152 iterative_hash_gimple_type and friends. Do not recurse
2153 to pointed-to types.
2154 (gimple_canonical_type_hash): Use it, allocate the hash here.
2155
ca756625
RE
21562011-05-11 Revital Eres <revital.eres@linaro.org>
2157
2158 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2159 recognizing doloop.
2160
b8abece3
RE
21612011-05-11 Revital Eres <revital.eres@linaro.org>
2162
2163 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2164 instead of PREV_INSN.
2165
ce7b3761
RE
21662011-05-11 Revital Eres <revital.eres@linaro.org>
2167
2168 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2169 * loop-doloop.c (doloop_condition_get): Likewise.
2170 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2171 (doloop_end): New.
2172 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2173
a9dc9d37
NF
21742011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2175
2176 * tree.def (CASE_LABEL_EXPR): Add an operand.
2177 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2178
96703596
JM
21792011-05-10 Joseph Myers <joseph@codesourcery.com>
2180
2181 * c-decl.c (c_override_global_bindings_to_false): Remove.
2182 (global_bindings_p): Don't check
2183 c_override_global_bindings_to_false.
2184 * c-tree.h (c_override_global_bindings_to_false): Remove.
2185 * c-typeck.c (composite_type): Don't set
2186 c_override_global_bindings_to_false.
2187
dbcc9f08
MM
21882011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2189
2190 PR target/48857, 48495
2191 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2192 (VSX_MODE): Ditto.
2193 (VSX_MOVE_MODE): Ditto.
2194 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2195 VSX vector types. Add V2DImode.
2196 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2197 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2198 (MODES_TIEABLE_P): Ditto.
2199
2200 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2201 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2202 VSX_VECTOR_MODE.
2203 (init_cumulative_args): Ditto.
2204 (rs6000_function_arg_boundary): Ditto.
2205 (rs6000_function_arg_advance_1): Ditto.
2206 (rs6000_function_arg): Ditto.
2207 (rs6000_function_ok_for_sibcall): Ditto.
2208 (emit_frame_save): Ditto.
2209 (rs6000_function_value): Ditto.
2210 (rs6000_libcall_value): Ditto.
2211
4a68b4ca
JM
22122011-05-10 Joseph Myers <joseph@codesourcery.com>
2213
2214 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2215 i386/darwin-lib.h to $libgcc_tm_file.
2216 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2217
bcb521e9
JM
22182011-05-10 Joseph Myers <joseph@codesourcery.com>
2219
2220 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2221
f10d3ac9
JM
22222011-05-10 Joseph Myers <joseph@codesourcery.com>
2223
cb032fee 2224 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
2225 * config/rs6000/rs6000-tables.opt: New file (generated).
2226 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2227 rs6000/rs6000-tables.opt to extra_options.
2228 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2229 * config/rs6000/rs6000.c (rs6000_select): Remove.
2230 (processor_target_table): Move contents to rs6000-cpus.def.
2231 (darwin_rs6000_override_options): Check
2232 global_options_set.x_rs6000_cpu_index instead of
2233 rs6000_select[1].string.
2234 (rs6000_option_override_internal): Likewise.
2235 (rs6000_handle_option): Don't assert that global structures are in
2236 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
2237 (rs6000_default_cpu): New variable.
2238 (rs6000_file_start): Set it instead of local default_cpu. Check
2239 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2240 global_options_set.x_rs6000_tune_index instead of rs6000_select.
2241 (rs6000_darwin_file_start): Check rs6000_default_cpu and
2242 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2243 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2244 rs6000_select): Remove.
2245 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2246 Remove.
2247 (mcpu=, mtune=): Use Var, Init, Enum and Save.
2248 * config/rs6000/t-rs6000
2249 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2250 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2251 global_options_set.x_rs6000_cpu_index instead of
2252 rs6000_select[1].string.
2253 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2254 global_options_set.x_rs6000_cpu_index instead of
2255 rs6000_select[1].string.
2256
80cf2e08
JM
22572011-05-10 Joseph Myers <joseph@codesourcery.com>
2258
2259 * config.gcc (libgcc_tm_file): Define instead of including files
2260 from ../../libgcc/config/ in tm_file.
cb032fee 2261 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
2262 * configure: Regenerate.
2263 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2264 libgcc_tm.h, cs-libgcc_tm.h): New.
2265 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2266 (clean): Remove libgcc_tm.h.
2267 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2268 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2269 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2270
fd01a351
GJL
22712011-05-10 Georg-Johann Lay <avr@gjlay.de>
2272
2273 PR target/48896
2274 * config/avr/avr.c (avr_ret_register): Return unsigned int
2275 instead of int.
2276 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2277 it to avr_libcall_value.
2278 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2279 expand_expr.
2280 (avr_expand_binop_builtin): Ditto.
2281 (avr_expand_unop_builtin): Ditto.
2282
34cc3c86
DD
22832011-05-10 DJ Delorie <dj@redhat.com>
2284
2285 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2286 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2287 * config/rx/rx.c (rx_align_for_label): Add label and
2288 uses_threshold parameters. Do not align when the label is not
2289 used enough.
2290 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2291
be173289
RG
22922011-05-10 Richard Guenther <rguenther@suse.de>
2293
2294 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2295 a series of conversions and apply foldings similar to what
2296 fold-const does.
2297 (tree_ssa_forward_propagate_single_use_vars): Call it.
2298
e7f78021
JJ
22992011-05-10 Jakub Jelinek <jakub@redhat.com>
2300
6ae70ea2
JJ
2301 PR tree-optimization/48611
2302 PR tree-optimization/48794
2303 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2304 referenced from RESX or EH_DISPATCH arguments.
2305
e7f78021
JJ
2306 PR debug/48928
2307 * dfp.c (decimal_to_decnumber): Handle conversion from
2308 dconst{1,2,m1,half}.
2309
fca132b9
UB
23102011-05-09 Uros Bizjak <ubizjak@gmail.com>
2311
2312 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2313 for !flag_prefer_avx128.
2314 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2315
e4c03378
EB
23162011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2317
2318 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2319 (fold_ternary_loc): Use expr_location_or.
2320
805d6a75
L
23212011-05-09 H.J. Lu <hongjiu.lu@intel.com>
2322
2323 PR debug/48853
2324 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2325 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2326 Pmode and mem_mode is not VOIDmode.
2327
e4c03378 23282011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 2329
e4c03378
EB
2330 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2331 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 2332
51e7f377
UB
23332011-05-09 Uros Bizjak <ubizjak@gmail.com>
2334
2335 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2336 (const_pow2_1_to_8_operand): Ditto.
2337 (const_pow2_1_to_128_operand): Ditto.
2338 (const_pow2_1_to_32768_operand): Ditto.
2339 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2340 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
2341 in insn constraint to check integer value of operand 3.
2342 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2343
2344 (PINSR_MODE): New mode iterator.
2345 (sse2p4_1): New mode attribute.
2346 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2347 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2348 iterator. Use const_int_operand instead of
2349 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
2350 exact_log2 in insn constraint to check integer value of operand 3.
2351
23522011-05-09 Uros Bizjak <ubizjak@gmail.com>
2353
2354 * config/i386/sse.md (blendbits): Remove mode attribute.
2355 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2356 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2357 Check integer value of operand 3 in insn constraint.
2358
0ca8de87
RG
23592011-05-09 Richard Guenther <rguenther@suse.de>
2360
2361 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2362 for diagnostics.
2363 (lto_symtab_merge): Likewise. Do not register types here.
2364 (lto_symtab_merge_decls_2): Likewise.
2365 (lto_symtab_merge_decls_1): Likewise.
2366 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2367 * gimple.c (enum gtc_mode): Declare.
2368 (gimple_types_compatible_p): Make static.
2369
a9e6994a
AK
23702011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2371
2372 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2373 temporary register to match Pmode.
2374
fb55d62e
UB
23752011-05-09 Uros Bizjak <ubizjak@gmail.com>
2376
2377 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2378 and *vec_concatv4si_1_avx.
2379
eb1485a6
UB
23802011-05-09 Uros Bizjak <ubizjak@gmail.com>
2381
2382 PR rtl-optimization/48927
2383 * ira-conflicts.c (commutative_constraint_p): Use
2384 recog_data.alternative_enabled_p to disable alternatives where
2385 "enabled" attribute is false.
2386 (get_dup_num): Ditto.
2387 * ira-lives.c (single_reg_class): Ditto.
2388 (ira_implicitly_set_insn_hard_regs): Ditto.
2389
c46d001a
EB
23902011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2391
2392 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2393 (dataflow_set_preserve_mem_locs): Likewise.
2394
23952011-05-09 Philipp Thomas <pth@suse.de>
2396
6d9e7c41
PT
2397 * config/mep/mep.c (mep_validate_vliw): Syntax description
2398 should not be translated.
2399
d371df6f
JM
24002011-05-09 Joseph Myers <joseph@codesourcery.com>
2401
2402 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2403 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 2404 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
2405 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2406 MIPS_ARCH_OPTION_NATIVE): Define.
2407 * config/mips/mips.c (mips_cpu_info_table): Move contents to
2408 mips-cpus.def.
2409 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2410 mips_parse_cpu): Remove.
2411 (mips_cpu_info_from_opt, mips_default_arch): New.
2412 (mips_handle_option): Don't assert that global structures are in
2413 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2414 (mips_option_override): Use new variables and functions to set
eb1485a6 2415 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
2416 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2417 definition.
2418 * config/mips/mips.opt (march=): Use ToLower and Enum.
2419 (mips): Use ToLower, Enum and Var.
2420 (mtune=): Use ToLower and Enum.
2421 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2422
4fc07af9
JH
24232011-05-08 Jan Hubicka <jh@suse.cz>
2424
2425 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2426 Arrange type pairs to be UID ordered.
2427 (gimple_lookup_type_leader): Make inline.
2428
2cf320a8
NC
24292011-05-09 Nick Clifton <nickc@redhat.com>
2430
61d6def5
NC
2431 PR target/48899
2432 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2433 PROCESSOR_DEFAULT.
2434
2cf320a8
NC
2435 PR target/48897
2436 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2437 variable 's'.
2438
4f82319d
CLT
24392011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
2440
2441 * combine.c (simplify_comparison): Abstract out parts into...
2442 (simplify_compare_const): ... new function.
2443 (try_combine): Generalize parallel arithmetic/compare combining
2444 to call simplify_compare_const() and CANONICALIZE_COMPARE().
2445
74605a11
JH
24462011-05-08 Jan Hubicka <jh@suse.cz>
2447
2448 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
2449 (cgraph_create_virtual_clone): Call hooks once virtual clone
2450 is finished.
74605a11 2451 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
2452 * ipa-cp.c (ipcp_estimate_growth): Use
2453 estimate_ipcp_clone_size_and_time.
74605a11
JH
2454 * ipa-inline-transform.c (clone_inlined_nodes): Update.
2455 * lto-cgraph.c (input_node): Update.
2456 * ipa-inline.c (recursive_inlining): Update.
2457 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2458 (evaluate_conditions_for_known_args): Break out from ...
2459 (evaluate_conditions_for_edge): ... here.
2460 (evaluate_conditions_for_ipcp_clone): New function.
2461 (inline_node_duplication_hook): Update clone summary based
2462 on parameter map.
2463 (estimate_callee_size_and_time): Rename to ...
2464 (estimate_node_size_and_time): take NODE instead of EDGE;
2465 take POSSIBLE_TRUTHS as argument.
2466 (estimate_callee_size_and_time): Update.
2467 (estimate_ipcp_clone_size_and_time): New function.
2468 (do_estimate_edge_time): Update.
2469
5c049507
RG
24702011-05-08 Richard Guenther <rguenther@suse.de>
2471
2472 PR middle-end/48908
2473 PR middle-end/48905
2474 * expmed.c (expand_shift_1): Compute adjusted constant shift
2475 amount manually.
2476
f64c36ba
EB
24772011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2478
2479 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2480
c461a957
EB
24812011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2482
2483 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2484
7c74e556
JW
24852011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
2486
2487 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2488
b4c0a884
JH
24892011-05-07 Jan Hubicka <jh@suse.cz>
2490
a9bcb3f0
EB
2491 * ipa-inline-transform.c (inline_call): Account when program size
2492 decreases.
b4c0a884 2493 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
2494 (edge_badness): Reorganize to be power 2 based; fix thinko when
2495 computing badness for negative growth; update comments to match
2496 reality; better dumps.
b4c0a884 2497
c99c0026
EB
24982011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2499
2500 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2501 type to bool and adjust comment.
2502 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2503 (fold_mathfn_compare): Remove calls to global_bindings_p.
2504 (fold_inf_compare): Likewise.
2505 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2506 * c-tree.h (global_bindings_p): Adjust prototype.
2507 * c-decl.c (global_bindings_p): Return bool and simplify.
2508
1400c8e5
ZD
25092011-05-07 Zdenek Dvorak <ook@ucw.cz>
2510
2511 PR tree-optimization/48837
2512 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2513 when accumulator transformation is performed.
2514
5d0878e7
JH
25152011-05-06 Jan Hubicka <jh@suse.cz>
2516
a9bcb3f0
EB
2517 * i386.h (ix86_tune_indices): Add
2518 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 2519 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
2520 * i386.c (initial_ix86_tune_features): Add
2521 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
2522 (software_prefetching_beneficial_p): Remove predicate.
2523 (ix86_option_override_internal): Use new macro.
2524
58696ce5
JH
25252011-05-06 Jan Hubicka <jh@suse.cz>
2526
2527 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2528
c47d0034
JH
25292011-05-06 Jan Hubicka <jh@suse.cz>
2530
2531 * cgraph.c (cgraph_add_thunk): Create real function node instead
2532 of alias node; finalize it and mark needed/reachale; arrange visibility
2533 to be right and add it into the corresponding same comdat group list.
2534 (dump_cgraph_node): Dump thunks.
2535 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
2536 cgraph_function_with_gimple_body_p,
2537 cgraph_first_function_with_gimple_body,
c47d0034
JH
2538 cgraph_next_function_with_gimple_body): New functions.
2539 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2540 New macros.
2541 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2542 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2543 * cgraphunit.c (cgraph_finalize_function): Only look into possible
2544 devirtualization when optimizing.
2545 (verify_cgraph_node): Verify thunks.
2546 (cgraph_analyze_function): Analyze thunks.
2547 (cgraph_mark_functions_to_output): Output thunks only in combination
2548 with function they are assigned to.
2549 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2550 alias into normal node.
2551 (assemble_thunks): New functoin.
2552 (cgraph_expand_function): Use it.
2553 * lto-cgraph.c (lto_output_node): Stream thunks.
2554 (input_overwrite_node): Stream in thunks.
2555 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2556 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2557 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2558 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2559 (inline_analyze_function): Do not care about thunk jump functions.
2560 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
2561 * ipa-prop.c (ipa_prop_write_jump_functions): Use
2562 cgraph_function_with_gimple_body_p.
2563 * passes.c (do_per_function_toporder): Use
2564 cgraph_function_with_gimple_body_p.
c47d0034
JH
2565 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2566 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2567 (function_called_by_processed_nodes_p): Likewise.
2568
d8f426ec
JM
25692011-05-06 Joseph Myers <joseph@codesourcery.com>
2570
2571 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2572 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2573 entries.
2574 (mabi=): Replace with separate entries for mabi=altivec,
2575 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2576 mabi=ieeelongdouble and mabi=ibmlongdouble.
2577 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2578 check for -mabi=spe without SPE ABI support here.
2579 (rs6000_handle_option): Replace OPT_mabi_ handling with
2580 OPT_mabi_altivec and OPT_mabi_spe handling.
2581
80bde45b
CC
25822011-05-06 Cary Coutant <ccoutant@google.com>
2583
2584 * dwarf2out.c (contains_subprogram_definition): New function.
2585 (should_move_die_to_comdat): Call it.
2586
a91926b9
JL
25872011-05-06 Jeff Law <law@redhat.com>
2588
2589 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2590 remove_ctrl_stmt_and_useless_edges.
2591 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2592 (fixup_template_block, thread_single_edge): Likewise.
2593 (mark_threaded_blocks): Use THREAD_TARGET.
2594
1fc1b66d
AM
25952011-05-06 Alan Modra <amodra@gmail.com>
2596
2597 PR target/48900
2598 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2599 const0_rtx as the arg to the dummy __tls_get_addr libcall.
2600
e194de64
UB
26012011-05-06 Uros Bizjak <ubizjak@gmail.com>
2602
2603 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2604 constraint modifier to "r".
2605
d740dc9e
JM
26062011-05-06 Joseph Myers <joseph@codesourcery.com>
2607
2608 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2609 fall through for OPT_mcmodel_.
2610
cab78b15
AK
26112011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2612
2613 * config/s390/s390.c (s390_asm_trampoline_template): Comment
2614 instruction sizes.
e194de64 2615 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 2616
ee6824ae
RR
26172011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2618
eb1485a6
UB
2619 PR target/47930
2620 * config/arm/arm.opt (marm): Document it.
2621 (mthumb): Reject negative variant.
ee6824ae 2622
9ef58464
UB
26232011-05-06 Uros Bizjak <ubizjak@gmail.com>
2624
2625 PR target/48898
2626 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2627 Fix typo in "ccvt" variable name.
2628
155b6176
TG
26292011-05-06 Tristan Gingold <gingold@adacore.com>
2630
2631 PR target/48895
2632 * config/vms/vms-ar.c (main): Remove cwd variable.
2633
3becc47b
JJ
26342011-05-06 Jakub Jelinek <jakub@redhat.com>
2635
2636 PR debug/48902
2637 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2638
3d528853
NF
26392011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2640
2641 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2642 * gimplify.c (gimplify_switch_expr): Likewise.
2643 * omp-low.c (expand_omp_sections): Likewise.
2644 * tree-eh.c (lower_try_finally_switch): Likewise.
2645 (lower_eh_dispatch): Likewise.
2646 * tree.h (build_case_label): Declare.
2647 * tree.c (build_case_label): Define.
2648
deb5046b
JM
26492011-05-05 Jason Merrill <jason@redhat.com>
2650
2651 PR c++/40975
2652 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2653 (copy_statement_list): Don't recurse.
2654 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2655 STATEMENT_LIST.
2656
013c0411
JM
26572011-05-05 Joseph Myers <joseph@codesourcery.com>
2658
2659 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2660 through from -mfpu= handling.
2661 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2662
a0905f8b
BS
26632011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2664
2665 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2666 POST_MODIFY.
2667
fc4538e4
SE
26682011-05-05 Steve Ellcey <sje@cup.hp.com>
2669
2670 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2671 for 11.31.
2672 (hppa[12]*-*-hpux11*): Ditto.
2673 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2674 * config/ia64/hpux-unix2003.h: New.
2675 * config/pa/pa-hpux1131.opt: New.
2676 * config/pa/pa-hpux1131.h: New.
2677 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2678 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 2679 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 2680
1e30c578
JJ
26812011-05-05 Jakub Jelinek <jakub@redhat.com>
2682
2683 PR debug/48853
2684 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2685 instead of mode as 3rd argument to recursive call.
2686 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2687 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2688 VOIDmode.
2689 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2690 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2691 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2692 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2693
d19eb620
JB
26942011-05-05 Julian Brown <julian@codesourcery.com>
2695
2696 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2697 parenthesis in D-register case.
2698
c860fe8c
JM
26992011-05-05 Joseph Myers <joseph@codesourcery.com>
2700
2701 * opt-functions.awk (var_type_struct): Handle Enum options.
2702 * optc-gen.awk: Don't check range of variables of character type.
2703 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2704 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2705 rs6000_sdata_name, rs6000_explicit_options): Remove.
2706 (rs6000_option_override_internal): Check for -malign-power here.
2707 Use global_options_set instead of rs6000_explicit_options.
2708 (rs6000_parse_fpu_option): Remove.
2709 (rs6000_handle_option): Access variables via opts and opts_set
2710 pointers. Use error_at and warning_at. Add fall-through
2711 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2712 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2713 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2714 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2715 here. Don't use rs6000_parse_fpu_option.
2716 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2717 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2718 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2719 (mrecip=): Use Var.
2720 (mspe): Use Var and Save.
2721 (mtraceback=): Use Enum and Var.
2722 (rs6000_traceback_type): New Enum and EnumValue entries.
2723 (mfloat-gprs=): Use Enum, Var and Save.
2724 (rs6000_float_gprs): New Enum and EnumValue entries.
2725 (mlong-double-): use Var and Save.
2726 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2727 (malign-): Use Enum and Var.
2728 (rs6000_alignment_flags): New Enum and EnumValue entries.
2729 (mfpu=): Use Enum.
2730 (fpu_type_t): New Enum and EnumValue entries.
2731 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2732 global_options_set instead of rs6000_explicit_options.
2733 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2734 global_options_set instead of rs6000_explicit_options.
2735 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2736 global_options_set instead of rs6000_explicit_options.
2737 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2738 global_options_set instead of rs6000_explicit_options.
2739 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2740 global_options_set instead of rs6000_explicit_options.
2741 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2742 global_options_set instead of rs6000_explicit_options.
2743 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2744 definition.
2745 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2746 global_options_set instead of rs6000_explicit_options.
2747 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2748 (rs6000_cmodel): New Enum and EnumValue entries.
2749 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2750 global_options_set instead of rs6000_explicit_options.
2751 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2752 (mtls-size=): Use Enum and Var.
2753 (rs6000_tls_size): New Enum and EnumValue entries.
2754
0691dde9
MM
27552011-05-05 Michael Matz <matz@suse.de>
2756
2757 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2758 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2759 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2760 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2761 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2762 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2763 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2764 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2765 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2766 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2767 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2768 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2769 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2770 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2771 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2772 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2773
86529a49
RG
27742011-05-05 Richard Guenther <rguenther@suse.de>
2775
2776 * expmed.c (expand_variable_shift): Rename to ...
2777 (expand_shift_1): ... this. Take an expanded shift amount.
2778 For rotates recurse directly not building trees for the shift amount.
2779 (expand_variable_shift): Wrap around expand_shift_1.
2780 (expand_shift): Adjust.
2781
d0228c2e
JJ
27822011-05-05 Jakub Jelinek <jakub@redhat.com>
2783
2784 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2785
907a08d9
EB
27862011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2787
2788 * tree.h (get_pending_sizes): Remove prototype.
2789 (put_pending_size): Likewise.
2790 (put_pending_sizes): Likewise.
2791 * stor-layout.c (pending_sizes): Delete.
2792 (get_pending_sizes): Likewise.
2793 (put_pending_size): Likewise.
2794 (put_pending_sizes): Likewise.
2795 (variable_size): Do not call put_pending_size and tidy up.
2796 * function.h (struct function): Remove dont_save_pending_sizes_p.
2797 * lto-streamer-in.c (input_function): Do not stream it.
2798 * lto-streamer-out.c (output_function): Likewise.
2799 * tree-inline.c (initialize_cfun): Do not copy it.
2800 * c-decl.c (store_parm_decls): Do not set it.
2801 * omp-low.c (create_task_copyfn): Likewise.
2802 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2803
386d9c57
UB
28042011-05-05 Uros Bizjak <ubizjak@gmail.com>
2805
2806 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2807 conditions.
2808 (*movdf_internal): Ditto.
2809 (*movdf_internal_nointeger): Ditto.
2810 (*movsf_internal): Ditto.
2811
a04a722b
JM
28122011-05-05 Joseph Myers <joseph@codesourcery.com>
2813
2814 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2815 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2816 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2817 (c_variable_size): Remove.
2818 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2819 call put_pending_sizes.
2820 (get_parm_info): Add parameter expr. Use it to set
2821 arg_info->pending_sizes.
2822 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2823 get_pending_sizes.
2824 * c-parser.c (c_parser_parms_declarator): Update call to
2825 c_parser_parms_list_declarator.
2826 (c_parser_parms_list_declarator): Take parameter expr. Update
2827 call to push_parm_decl. Update recursive call. Don't call
2828 get_pending_sizes. Update calls to get_parm_info.
2829 (c_parser_objc_method_definition): Update calls to
2830 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 2831 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
2832 (c_parser_objc_method_decl): Add parameter expr. Update call to
2833 grokparm.
386d9c57 2834 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
2835 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2836 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2837
c92a6f97
MH
28382011-05-05 Michael Hope <michael.hope@linaro.org>
2839
386d9c57
UB
2840 PR pch/45979
2841 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2842 __ARM_EABI__ hosts.
c92a6f97 2843
07ea0048
UW
28442011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2845
2846 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2847 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2848 (spu_output_mi_thunk): New function.
2849
d634bfa1
RO
28502011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2851
2852 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2853 targetm.asm_out.print_operand.
2854 * config/sol2.c: Include target.h.
2855
40fda55b
JH
28562011-05-04 Jan Hubicka <jh@suse.cz>
2857
2858 * ipa-inline.c (reset_edge_caches): New function.
2859 (update_caller_keys): Add check_inlinablity_for; do not
2860 reset edge caches; remove now unnecesary loop.
386d9c57 2861 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
2862 (update_all_callee_keys): Likewise.
2863 (inline_small_functions): Sanity check cache; update code
2864 recomputing it.
2865
0360f70d
BS
28662011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2867
2868 PR rtl-optimization/47612
2869 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2870 as the last insn of the sequence to be moved.
2871
7a994646
TB
28722011-05-04 Tobias Burnus <burnus@net-b.de>
2873
2874 PR fortran/48864
2875 * doc/invoke.texi (Ofast): Document that it
2876 enables Fortran's -fno-protect-parens.
2877
7a2f7208
UB
28782011-05-04 Uros Bizjak <ubizjak@gmail.com>
2879
2880 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2881
a2d42931
EB
28822011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2883
2884 * stor-layout.c (variable_size): Do not issue errors.
2885
f81b1a3d
RG
28862011-05-04 Richard Guenther <rguenther@suse.de>
2887
2888 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2889 for array-ref indices.
2890 (tree_coverage_counter_addr): Likewise.
2891 (build_fn_info_type): Use size_int for index types.
2892 (build_gcov_info): Likewise.
2893
c62c040f
RG
28942011-05-04 Richard Guenther <rguenther@suse.de>
2895
2896 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2897 to build_int_cst.
2898 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2899 for constructor indices.
2900 (push_init_level): Likewise.
2901
1e3287d0
RG
29022011-05-04 Richard Guenther <rguenther@suse.de>
2903
2904 * explow.c (promote_mode): Move variable declarations before code.
2905
6c32445b
NF
29062011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2907
2908 * tree.h (build_function_type_array): Declare.
2909 (build_varargs_function_type_array): Declare.
2910 (build_function_type_vec, build_varargs_function_type_vec): Define.
2911 * tree.c (build_function_type_array_1): New function.
2912 (build_function_type_array): New function.
2913 (build_varargs_function_type_array): New function.
2914
fdabf269
RS
29152011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2916
2917 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2918 before setting STMT_VINFO_TYPE.
2919
a207915a
UW
29202011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2921
2922 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2923 instead of spu_pass_by_reference.
2924
5e617be8
AK
29252011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2926
2927 * calls.c (emit_library_call_value_1): Invoke
2928 promote_function_mode hook on libcall arguments.
2929 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2930 argument being NULL.
2931 * targhooks.c (default_promote_function_mode): Lisewise.
2932 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2933 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2934
2935 * doc/tm.texi: Document that TYPE argument might be NULL.
2936
486d04be
SH
29372011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2938
2939 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2940
9b19b026
SH
29412011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2942
2943 From Bernd Schmidt
2944 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2945
502bc3df
RO
29462011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2947
2948 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2949 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2950 Move ...
2951 * mips-tfile.c: ... here.
2952 Don't include coretypes.h, tm.h, filenames.h.
2953 (saber_stop): Remove definition and all calls.
2954 [__SABER__]: Remove.
2955 (__LINE__): Remove default.
2956 (Size_t, Ptrdiff_t): Remove definitions.
2957 Replace by size_t, ptrdiff_t.
2958 [!MIPS_DEBUGGING_INFO]: Remove.
2959 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2960 (progname): Add const.
2961 (STATIC): Remove.
2962 Replace all uses by static.
2963 (ALIGN_SYMTABLE_OFFSET): Remove default.
2964 * mips-tdump.c: Don't include coretypes.h, tm.h.
2965 Remove !MIPS_IS_STAB guard.
2966 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2967 $(TM_H), filenames.h dependencies.
2968 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2969
991eb6ef
SH
29702011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2971
2972 From Jie Zhang
2973 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2974 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2975
420ccc84
SH
29762011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2977
2978 From Bernd Schmidt
2979 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2980 account and save/restore RETS.
2981 (PROFILE_BEFORE_PROLOGUE): Define.
2982 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2983 the push insn to use predecrement.
2984
9f8d69ee
SH
29852011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2986
2987 From Jie Zhang
2988 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2989
662c03f4
NC
29902011-05-04 Nick Clifton <nickc@redhat.com>
2991
2992 * config/mn10300/mn10300.c: Include cfgloop.h.
2993 (DUMP): New macro.
2994 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2995 Lcc or a FLcc insn into the instruction stream.
2996 (mn10300_block_contains_call): New function. Returns true if the
2997 given basic block contains a CALL insn.
2998 (mn10300_loop_contains_call_insn): New function. Returns true if
2999 the given loop contains a CALL insn.
3000 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
3001 to use the SETLB and Lcc or FLcc insns.
3002 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3003 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3004 * config/mn10300/mn10300.opt (msetlb): New option. Used to
3005 disable the SETLB optimization.
3006 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3007 __SETLB__ or __NO_SETLB__.
3008 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3009 (movsf_internal): Handle MDR register.
3010 (cmpsi): Make visible.
3011 (setlb): New pattern.
3012 (Lcc): New pattern.
3013 (FLcc): New pattern.
3014
843b6915
UB
30152011-05-04 Uros Bizjak <ubizjak@gmail.com>
3016
3017 PR target/48860
3018 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3019 for reg<->xmm moves.
3020 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3021 (vec_concatv2di_rex64_sse): Ditto.
3022 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3023 (*vec_extractv2di_1_rex64): Ditto.
3024
3025 Revert:
3026 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3027
3028 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3029 reg<->xmm moves.
3030 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3031
d35936ab
RG
30322011-05-04 Richard Guenther <rguenther@suse.de>
3033
3034 * tree.h (int_const_binop): Remove notrunc argument.
3035 * fold-const.c (int_const_binop): Remove notrunc argument. Always
3036 create integer constants that are properly truncated.
3037 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3038 (const_binop): Remove zero notrunc argument to int_const_binop.
3039 (size_binop_loc): Likewise.
3040 (fold_div_compare): Likewise.
3041 (maybe_canonicalize_comparison_1): Likewise.
3042 (fold_comparison): Likewise.
3043 (fold_binary_loc): Likewise.
3044 (multiple_of_p): Likewise.
3045 * expr.c (store_constructor): Likewise.
3046 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3047 (maybe_fold_stmt_addition): Likewise.
3048 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3049 * stor-layout.c (layout_type): Likewise.
3050 * tree-data-ref.c (tree_fold_divides_p): Likewise.
3051 * tree-sra.c (build_ref_for_offset): Likewise.
3052 (build_user_friendly_ref_for_offset): Likewise.
3053 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3054 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3055 * tree-ssa-loop-niter.c (inverse): Likewise.
3056 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3057 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3058 * tree-switch-conversion.c (check_range): Likewise.
3059 (build_constructors): Likewise.
3060 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3061 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3062 (extract_range_from_assert): Likewise.
3063 (vrp_int_const_binop): Likewise.
3064 (extract_range_from_binary_expr): Likewise.
3065 (extract_range_from_unary_expr): Likewise.
3066 (check_array_ref): Likewise.
3067 (find_case_label_range): Likewise.
3068 (simplify_div_or_mod_using_ranges): Likewise.
3069 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3070 comparing case labels for merging.
3071
8992c063
MW
30722011-05-03 Mark Wielaard <mjw@redhat.com>
3073
3074 * dwarf2out.c (debug_str_hash_forced): Removed.
3075 (gen_label_for_indirect_string): Removed.
3076 (get_debug_string_label): Removed.
3077 (AT_string_form): Generate label directly.
3078 (output_indirect_string): Test indirect_string_node for
3079 DW_FORM_strp instead of checking label and refcount.
3080 (prune_indirect_string): Removed.
3081 (prune_unused_types): Don't check debug_str_hash_forced or
3082 call prune_indirect_string.
3083
4868e6ea
AO
30842011-05-04 Alexandre Oliva <aoliva@redhat.com>
3085
3086 PR other/48093
3087 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3088
01a5c0ab
AO
30892011-05-04 Alexandre Oliva <aoliva@redhat.com>
3090
3091 PR debug/47994
3092 PR debug/47919
3093 * combine.c (try_combine): Skip debug insns at m_split tests.
3094
6ac00218
MW
30952011-04-26 Mark Wielaard <mjw@redhat.com>
3096
3097 PR42288
3098 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3099 when info_section_emitted.
3100
3af42a7b
JM
31012011-05-03 Joseph Myers <joseph@codesourcery.com>
3102
3103 * config/mips/mips-opts.h: New.
3104 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3105 to mips-opts.h.
3106 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3107 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3108 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3109 via opts pointer.
3110 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3111 mips-opts.h.
3112 (mips_abi, mips_code_readable): Don't declare.
843b6915 3113 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
3114 (mabi=): Use Enum and Var.
3115 (mips_abi): New Enum and EnumValue entries.
3116 (mcode-readable=): Use Enum and Var.
3117 (mips_code_readable_setting): New Enum and EnumValue entries.
3118 (mr10k-cache-barrier=): Use Enum and Var.
3119 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3120
1cb1a99f
JH
31212011-05-03 Jan Hubicka <jh@suse.cz>
3122
3123 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3124 replace hash by pointer map.
3125 (cgraph_node_set_element_def, cgraph_node_set_element,
3126 const_cgraph_node_set_element, varpool_node_set_element_def,
3127 varpool_node_set_element, const_varpool_node_set_element): Remove.
3128 (free_cgraph_node_set, free_varpool_node_set): New function.
3129 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3130 * tree-emutls.c: Free varpool node set.
3131 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3132 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3133 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3134 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3135 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3136 Move here from ipa.c; implement using pointer_map
3137 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3138 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3139 debug_cgraph_node_set, varpool_node_set_new,
3140 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3141 dump_varpool_node_set, debug_varpool_node_set):
3142 Move to ipa-uitls.c.
3143 * passes.c (ipa_write_summaries): Update.
3144
7f31f4db
SH
31452011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3146
7a2f7208
UB
3147 From Mike Frysinger:
3148 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3149 bf542/bf544/bf547/bf548/bf549.
7f31f4db 3150
b70fce6d
UB
31512011-05-03 Uros Bizjak <ubizjak@gmail.com>
3152
3153 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3154
265b1d82
SH
31552011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3156
3157 From Bernd Schmidt:
3158 * config/bfin/bfin.md (MOVCC): New mode_macro.
3159 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3160 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3161 comments from generated assembly.
3162
f0b568f3
SH
31632011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3164
3165 From Bernd Schmidt
3166 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3167 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3168 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3169 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3170 * config/bfin/lib1funcs.asm (___muldi3): New function.
3171
2c67cf6e
NF
31722011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3173
3174 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3175 build_function_type_list instead of build_function_type.
3176 Rearrange initialization of `args' to do so.
3177
f9ac28ad
NF
31782011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3179
3180 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3181 instead of build_function_type.
3182
22b8798c
NF
31832011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3184
3185 * config/rs6000/rs6000.c (spe_init_builtins): Call
3186 build_function_type_list instead of build_function_type.
3187 (paired_init_builtins, altivec_init_builtins): Likewise.
3188 (builtin_function_type): Likewise.
3189
4cb44528
NF
31902011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3191
3192 * config/sh/sh.c (sh_media_init_builtins): Call
3193 build_function_type_list instead of build_function_type.
3194
4c203a6a
NF
31952011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3196
3197 * config/sparc/sparc.c (sparc_file_end): Call
3198 build_function_type_list instead of build_function_type.
3199
d6a3d62b
NF
32002011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3201
3202 * config/alpha/alpha.c (alpha_init_builtins): Call
3203 build_function_type_list instead of build_function_type.
3204
de530b86
NF
32052011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3206
3207 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3208 build_function_type_list instead of build_function_type.
3209
baeec5f2
NF
32102011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3211
3212 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3213 build_function_type_list instead of build_function_type.
3214 Delete `endlink' variable.
3215
c19afe52
NF
32162011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3217
3218 * config/avr/avr.c (avr_init_builtins): Call
3219 build_function_type_list instead of build_function_type.
3220
a341df0a
NF
32212011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3222
3223 * config/picochip/picochip.c (picochip_init_builtins): Call
3224 build_function_type_list instead of build_function_type.
3225 Delete `endlink' variable.
3226
2102b1e1
NF
32272011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3228
3229 * config/bfin/bfin.c (bfin_init_builtins): Call
3230 build_function_type_list instead of build_function_type.
3231
9f111209
SH
32322011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3233
3234 From Bernd Schmidt
3235 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3236 that's not CONST_INT. Seemingly redundant check is due to PR39768.
3237
7071d064
SH
32382011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3239
3240 From Jie Zhang:
3241 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3242 libbffastfp overrides libgcc when -mfast-fp.
3243
748f7574 32442011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
3245
3246 Originally from Bernd Schmidt
3247 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3248 * config/bfin/bfin.c (override_options): Test it and error if
3249 TARGET_FDPIC.
3250
1a3a9152
SH
32512011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3252
3253 Originally From Bernd Schmidt
3254 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3255 FD-PIC.
3256
7134c090
JL
32572011-05-03 Jeff Law <law@redhat.com>
3258
3259 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3260 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3261 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
3262 than accessing AUX field directly. Free the AUX field before
3263 clearing it.
7134c090
JL
3264 (thread_block, thread_through_loop_header): Likewise.
3265 (thread_single_edge, mark_threaded_blocks): Likewise.
3266 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
3267 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 3268
2c7eebae
BS
32692011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3270
3271 * function.c (init_function_start): Call decide_function_section.
3272 * varasm.c (decide_function_section): New function.
3273 (assemble_start_function): When not using
3274 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3275 or first_function_block_is_cold.
3276 * rtl.h (decide_function_section): Declare.
3277
17038fcf
JJ
32782011-05-03 Uros Bizjak <ubizjak@gmail.com>
3279 Jakub Jelinek <jakub@redhat.com>
3280
3281 PR target/48774
3282 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3283 only succeed if req_mode is the same as set_mode.
3284
3810076b
BS
32852011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3286
3287 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3288 * genemit.c (gen_exp): Handle RETURN.
3289 * emit-rtl.c (verify_rtx_sharing): Likewise.
3290 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3291 * rtl.c (copy_rtx): RETURN is shared.
3292 * rtl.h (enum global_rtl_index): Add GR_RETURN.
3293 (ret_rtx): New.
3294 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3295 * config/s390/s390.c (s390_emit_epilogue): Likewise.
3296 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3297 * config/cris/cris.c (cris_expand_return): Likewise.
3298 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3299 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3300 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3301 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3302 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3303 Likewise.
3304 * config/v850/v850.c (expand_epilogue): Likewise.
3305 * config/bfin/bfin.c (bfin_expand_call): Likewise.
3306 * config/arm/arm.md (epilogue): Likewise.
3307 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3308 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3309 variable to ret_reg.
3310
9efdb4ad
RG
33112011-05-03 Richard Guenther <rguenther@suse.de>
3312
3313 PR lto/48846
3314 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3315 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3316 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3317
60a45536
RG
33182011-05-03 Richard Guenther <rguenther@suse.de>
3319
3320 * c-decl.c (grokdeclarator): Instead of looking at
3321 TREE_OVERFLOW check if the constant fits in the index type.
3322
3188ed59
RS
33232011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3324
3325 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3326 (vec_store_lanes<mode><mode>): Likewise.
3327
272c6793
RS
33282011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3329
3330 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3331 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3332 convert_optab_index values.
3333 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3334 * genopinit.c (optabs): Initialize the new optabs.
3335 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3336 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3337 (expand_STORE_LANES): New functions.
3338 * tree.h (build_array_type_nelts): Declare.
3339 * tree.c (build_array_type_nelts): New function.
3340 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3341 (vect_model_load_cost): Likewise.
3342 (vect_store_lanes_supported, vect_load_lanes_supported)
3343 (vect_record_strided_load_vectors): Declare.
3344 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3345 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3346 (vect_transform_strided_load): Split out statement recording into...
3347 (vect_record_strided_load_vectors): ...this new function.
3348 * tree-vect-stmts.c (create_vector_array, read_vector_array)
3349 (write_vector_array, create_array_ref): New functions.
3350 (vect_model_store_cost): Add store_lanes_p argument.
3351 (vect_model_load_cost): Add load_lanes_p argument.
3352 (vectorizable_store): Try to use store-lanes functions for
3353 interleaved stores.
3354 (vectorizable_load): Likewise load-lanes and loads.
3355 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3356 to vect_model_store_cost.
3357 (vect_build_slp_tree): Likewise vect_model_load_cost.
3358
0f6d54f7
RS
33592011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3360
3361 * hooks.h (hook_bool_mode_uhwi_false): Declare.
3362 * hooks.c (hook_bool_mode_uhwi_false): New function.
3363 * target.def (array_mode_supported_p): New hook.
3364 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3365 * doc/tm.texi: Regenerate.
3366 * stor-layout.c (mode_for_array): New function.
3367 (layout_type): Use it.
3368 * config/arm/arm.c (arm_array_mode_supported_p): New function.
3369 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3370
b15eacc7
EB
33712011-05-03 Eric Botcazou <ebotcazou@adacore.com>
3372
3373 PR target/48723
3374 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3375 for -fstack-check if the size to allocate is negative.
3376
575bfb00
LC
33772011-05-02 Lawrence Crowl <crowl@google.com>
3378
3379 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3380 (timevar_cond_start): New for starting a timer only when it is not
3381 already running.
3382 (timevar_cond_stop): New for stopping a timer when it was not already
3383 running.
3384
3385 * timevar.c (timevar_stop): Enable start/stop timers to start again.
3386 (timevar_cond_start): New as above.
3387 (timevar_cond_stop): New as above.
3388
3389 * timevar.def: Add start/stop timers for compiler phases,
3390 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3391 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3392 and TV_PHASE_FINALIZE.
3393 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3394 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3395 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3396 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3397 Make unused TV_OVERLOAD into a start/stop timer.
3398
3399 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3400 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3401 to indicate that they are start/stop timers.
3402
3403 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3404 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3405 Move initialization to do_compile.
3406 (do_compile): Add initialization from above.
3407 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3408
3409 * c-decl.c (c_write_global_declarations): Add start/stop of
3410 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3411
3412 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3413 or TV_PARSE_INLINE, as appropriate.
3414 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3415 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3416
3533b943
JM
34172011-05-02 Jason Merrill <jason@redhat.com>
3418
3419 PR c++/40975
3420 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3421
2609a0ce
SM
34222011-05-02 Simon Martin <simartin@users.sourceforge.net>
3423
3424 PR c/35445
3425 * c-decl.c (finish_decl): Only create a composite if the types are
3426 compatible.
3427
6b0e4cbb
JM
34282011-05-02 Joseph Myers <joseph@codesourcery.com>
3429
3430 * config/fr30/fr30-protos.h (Mmode): Don't define.
3431 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
3432 definition where used.
3433 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3434 define. Expand definitions where used.
3435 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3436 Expand definitions where used.
3437 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3438 rx_function_arg, rx_function_arg_advance,
3439 rx_function_arg_boundary): Expand definitions of those macros.
3440 * config/v850/v850-protos.h (Mmode): Don't define. Expand
3441 definition where used.
3442
4e938ce6
UB
34432011-05-02 Uros Bizjak <ubizjak@gmail.com>
3444
3445 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3446 reg<->xmm moves.
3447 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3448 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
3449 with *movv2sf_internal_rex64_avx.
3450 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3451 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3452 Use %v prefix in insn mnemonic to handle TARGET_AVX.
3453 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
3454 "vex" in "prefix" attribute calculation.
3455 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
3456
36019c19
SH
34572011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
3458
7a2f7208
UB
3459 PR target/47951
3460 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3461 inputs match the output.
36019c19 3462
f69ea688
AS
34632011-05-02 Andreas Schwab <schwab@linux-m68k.org>
3464
3465 PR target/47955
3466 * config/m68k/m68k.c (m68k_expand_prologue): Set
3467 current_function_static_stack_size.
3468
c33406f5
JH
34692011-05-02 Jan Hubicka <jh@suse.cz>
3470
3471 * lto-streamer.c (lto_streamer_cache_insert_1,
3472 lto_streamer_cache_lookup, lto_streamer_cache_create,
3473 lto_streamer_cache_delete): Use pointer map instead of hashtable.
3474 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3475
47c94d21
JM
34762011-05-02 Joseph Myers <joseph@codesourcery.com>
3477
3478 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3479 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3480 config/m68k/t-opts: New files.
3481 * config/m68k/m68k-tables.opt: New file (generated).
3482 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3483 extra_options and m68k/t-opts to tmake_file.
3484 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3485 (all_isas): Initialize using m68k-isas.def.
3486 (all_microarchs): Initialize using m68k-microarchs.def.
3487 (m68k_find_selection): Remove.
3488 (m68k_handle_option): Don't assert that global structures are in
3489 use. Use error_at. Access variables via opts pointer. Don't
3490 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
3491 directly for -m68020-40 and -m68020-60.
3492 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3493 m68k_tune_entry here.
3494 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3495 to m68k-opts.h.
3496 (m68k_library_id_string): Remove declaration.
4e938ce6 3497 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
3498 (m68k_library_id_string): New Variable.
3499 (march=, mcpu=, mtune=): Use Enum and Var.
3500
e562bf36
RG
35012011-05-02 Richard Guenther <rguenther@suse.de>
3502
3503 * varasm.c (output_constructor_regular_field): Compute zero-based
3504 index with double-ints. Make sure to ICE instead of producing
3505 wrong code.
3506 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3507 in asserts. Properly use a signed type.
3508
6bec6c98
UB
35092011-05-02 Uros Bizjak <ubizjak@gmail.com>
3510
3511 * config/i386/sse.md (V): New mode iterator.
3512 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
3513 TARGET_SSE2.
3514 (V_256): Rename from AVX256MODE.
3515 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
3516 condition to all users.
3517 (VF1): Ditto.
3518 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
3519 condition to all users.
3520 (VF_128): Make V4SF mode unconditional.
3521 (VF_256): Rename from AVX256MODEF2P.
3522 (VI4F_128): Rename from SSEMODE4S.
3523 (VI8F_128): Rename from SSEMODE2D.
3524 (VI4F_256): Rename from AVX256MODE8P.
3525 (VI8F_256): Rename from AVX256MODE4P.
3526 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3527 (ssescalarmodesuffix): Remove SF and DF modes.
3528 (SSEMODE124): Remove.
3529 (SSEMODE1248): Ditto.
3530 (SSEMODEF2P): Ditto.
3531 (AVXMODEF2P): Ditto.
3532 (AVXMODEFDP): Ditto.
3533 (AVXMODEFSP): Ditto.
3534 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3535 unconditional.
3536 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
3537 unconditional.
3538 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3539 xop_pcmov_<mode>256. Use V mode iterator.
3540
3541 Adjust RTX patterns globally for renamed mode attributes.
3542
2dfdcb4b
UW
35432011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3544
3545 * haifa-sched.c (sched_emit_insn): Emit insn before first
3546 non-scheduled insn. Inform back-end about new insn. Add
3547 new insn to scheduled_insns list.
3548
90bc4623
RG
35492011-05-02 Richard Guenther <rguenther@suse.de>
3550
3551 PR tree-optimization/48822
3552 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3553 (process_scc): Indicate which iteration we start.
3554
bc0fe8cb
JH
35552011-05-02 Jan Hubicka <jh@suse.cz>
3556
3557 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3558 (lto_section_overrun): New.
3559 * lto-section-out.c (append_block): Rename to ...
3560 (lto_append_block): ... this one; export.
3561 (lto_output_1_stream): Move lto lto-streamer.h
3562 (lto_output_data_stream): Update.
3563 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3564 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3565 functions.
3566
f070a9d1
RG
35672011-05-02 Richard Guenther <rguenther@suse.de>
3568
3569 * tree.c (tree_code_counts): New global array.
3570 (record_node_allocation_statistics): Count individual tree codes.
3571 (dump_tree_statistics): Dump individual code stats.
3572
09dfe187
JH
35732011-05-01 Jan Hubicka <jh@suse.cz>
3574
3575 * ipa-inline.c (caller_growth_limits): Fix thinko when
3576 looking for largest stack frame.
3577 * ipa-inline.h (dump_inline_summary): Declare.
3578 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3579 on stack usage.
3580 (dump_inline_summary): Export.
3581 (debug_inline_summary): Declare as DEBUG_FUNCTION.
3582
6f76a878
AS
35832011-05-01 Anatoly Sokolov <aesok@post.ru>
3584
3585 * reginfo.c (memory_move_cost): Change rclass argument type form
3586 'enum reg_class' to reg_class_t.
3587 * reload.h (memory_move_cost): Update prototype.
3588 * postreload.c reload_cse_simplify_set): Change type dclass var to
3589 reg_class_t.
3590 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3591 Update prototype.
3592 (ira_allocate_and_set_costs): Change aclass argument type form
3593 'enum reg_class' to reg_class_t.
6bec6c98 3594 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
3595 Change aclass argument type to reg_class_t.
3596 (update_conflict_hard_reg_costs): Change type aclass and pref vars
3597 to reg_class_t.
3598 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3599 memory_move_cost call.
3600
3601 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3602 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3603 Change type tmp var to reg_class_t.
3604
9a4ac625
JH
36052011-04-30 Jan Hubicka <jh@suse.cz>
3606
3607 * ipa-inline.c (can_inline_edge_p): Disregard limits when
3608 inlining into function with flatten attribute.
3609 (want_inline_small_function_p): Be more realistic about inlining
3610 cold calls where callee size grows.
3611
dd8352ee
JH
36122011-04-30 Jan Hubicka <jh@suse.cz>
3613
3614 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3615 flags.
3616
46e43d2b
AS
36172011-04-30 Anatoly Sokolov <aesok@post.ru>
3618
3619 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3620 PRINT_OPERAND_PUNCT_VALID_P): Remove.
3621 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3622 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3623 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3624 (print_operand): Rename to...
3625 (sparc_print_operand): ...this. Make static. Adjust
3626 sparc_print_operand function call.
3627 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3628 functions.
3629
ecb62563
JH
36302011-04-30 Jan Hubicka <jh@suse.cz>
3631
6bec6c98 3632 PR middle-end/48752
ecb62563
JH
3633 * ipa-inline.c (early_inliner): Disable when doing late
3634 addition of function.
3635
edb9b69e
JJ
36362011-04-30 Jakub Jelinek <jakub@redhat.com>
3637
be80a87e
JJ
3638 * dwarf2out.c (get_address_mode): New inline.
3639 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3640 if not dwarf_strict emit
3641 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3642 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3643 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3644 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3645 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3646 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3647 mem_loc_descriptor callers.
3648 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3649 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3650 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3651 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3652 (base_types): New variable.
3653 (get_base_type_offset, calc_base_type_die_sizes,
3654 base_type_for_mode, mark_base_types, base_type_cmp,
3655 move_marked_base_types): New functions.
3656 (calc_die_sizes): Assert that die_offset is 0 or equal to
3657 next_die_offset.
3658 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3659 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3660 callers. If not dwarf_strict, call mem_loc_descriptor even for
3661 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3662 (gen_subprogram_die): Don't give up on call site parameters
3663 with non-integral or large integral modes. Adjust
3664 mem_loc_descriptor callers.
3665 (prune_unused_types): Call prune_unused_types_mark on base_types
3666 vector entries.
3667 (resolve_addr): Call mark_base_types.
3668 (dwarf2out_finish): Call move_marked_base_types.
3669
edb9b69e
JJ
3670 PR tree-optimization/48809
3671 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3672 type.
3673 (gen_inbound_check): Don't compute index_expr - range_min in utype
3674 again, instead reuse SSA_NAME initialized in build_arrays.
3675 Remove two useless gsi_for_stmt calls.
3676
a6545a3d
JL
36772011-04-29 Jeff Law <law@redhat.com>
3678
3679 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3680
af8bca3c
MJ
36812011-04-29 Martin Jambor <mjambor@suse.cz>
3682
3683 * cgraph.h (cgraph_postorder): Remove declaration.
3684 * ipa-utils.h (ipa_free_postorder_info): Declare.
3685 (ipa_reverse_postorder): Likewise.
3686 * cgraphunit.c: Include ipa-utils.h.
3687 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3688 * ipa-inline.c: Include ipa-utils.h.
3689 (ipa_inline): Update call to ipa_reverse_postorder.
3690 * ipa-pure-const.c (propagate_pure_const): Update call to
3691 ipa_reduced_postorder and ipa_print_order. Call
3692 ipa_free_postorder_info to clean up.
3693 (propagate_nothrow): Likewise.
3694 * ipa-reference.c (propagate): Removed a useless call to
3695 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3696 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3697 * ipa.c: Include ipa-utils.h.
3698 (ipa_profile): Update call to ipa_reverse_postorder.
3699 (cgraph_postorder): Moved to...
3700 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3701 (ipa_utils_print_order): Renamed to ipa_print_order.
3702 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3703 comments.
3704 (ipa_free_postorder_info): New function.
3705 * passes.c: Include ipa-utils.h.
3706 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3707 (ipa_write_summaries): Likewise.
3708 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3709 (cgraphunit.o): Likewise.
3710 (ipa.o): Likewise.
3711 (ipa-inline.o): Likewise.
3712
b15c64ee
JH
37132011-04-29 Jan Hubicka <jh@suse.cz>
3714
3715 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3716 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3717 * ipa-inline.h (clause_t): Turn into unsigned int.
3718 * ipa-inline-analysis.c (add_clause): Do more simplification.
3719 (and_predicates): Shortcut more cases.
3720 (predicates_equal_p): Move forward; check that clauses are properly
3721 ordered.
3722 (or_predicates): Shortcut more cases.
3723 (edge_execution_predicate): Rewrite as...
3724 (set_cond_stmt_execution_predicate): ... this function; handle
3725 __builtin_constant_p.
3726 (set_switch_stmt_execution_predicate): New .
3727 (compute_bb_predicates): New.
3728 (will_be_nonconstant_predicate): Update TODO.
3729 (estimate_function_body_sizes): Use compute_bb_predicates
3730 and free them later, always try to estimate if stmt is constant.
3731 (estimate_time_after_inlining, estimate_size_after_inlining):
3732 Gracefully handle optimized out edges.
3733 (read_predicate): Fix off by one error.
3734
a88fdc2a
NP
37352011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3736
3737 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3738
d984c8ef
XDL
37392011-04-27 Xinliang David Li <davidxl@google.com>
3740
3741 * tree-profile.c (init_ic_make_global_vars): Set
3742 tls attribute on ic vars.
3743 * coverage.c (coverage_end_function): Initialize
3744 function_list with zero.
3745
45a2c477
RG
37462011-04-29 Richard Guenther <rguenther@suse.de>
3747
3748 * builtins.c (fold_builtin_classify_type): Use integer_type_node
3749 for the type of the result.
3750 (fold_builtin_isascii): Likewise.
3751 (fold_builtin_toascii): Use integer_type_node where appropriate.
3752 (fold_builtin_logb): Likewise.
3753 (fold_builtin_frexp): Likewise.
3754 (fold_builtin_strstr): Likewise.
3755 (fold_builtin_strpbrk): Likewise.
3756 (fold_builtin_fputs): Likewise.
3757 (fold_builtin_sprintf): Likewise.
3758 (fold_builtin_snprintf): Likewise.
3759 (fold_builtin_printf): Likewise.
3760 (do_mpfr_remquo): Use a proper type for the assigned constant.
3761 (do_mpfr_lgamma_r): Likewise.
3762 * dwarf2out.c (resolve_one_addr): Use size_int.
3763 * except.c (init_eh): Likewise.
3764 (assign_filter_values): Use integer_type_node for filter values.
3765 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3766 indices.
3767 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3768 for EH region numbers.
3769 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3770 for the shift amount.
3771
eb6c3df1
RG
37722011-04-29 Richard Guenther <rguenther@suse.de>
3773
3774 * expr.h (expand_shift): Rename to ...
3775 (expand_variable_shift): ... this.
3776 (expand_shift): Take a constant shift amount.
3777 * expmed.c (expand_shift): Rename to ...
3778 (expand_variable_shift): ... this.
3779 (expand_shift): New wrapper around expand_variable_shift.
3780 * expr.c (convert_move, emit_group_load_1, emit_group_store,
3781 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3782 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3783 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3784 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3785 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3786 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3787 emit_store_flag_1, emit_store_flag): Likewise.
3788 * builtins.c (expand_builtin_signbit): Likewise.
3789 * calls.c (load_register_parameters): Likewise.
3790 * function.c (assign_parm_setup_block): Likewise.
3791 * lower-subreg.c (resolve_shift_zext): Likewise.
3792 * optabs.c (widen_bswap, expand_abs_nojump,
3793 expand_one_cmpl_abs_nojump, expand_float): Likewise.
3794 * spu/spu.c (spu_expand_extv): Likewise.
3795 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3796
9f616812
RG
37972011-04-29 Richard Guenther <rguenther@suse.de>
3798
3799 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3800 for the remapped region number.
3801 * predict.c (build_predict_expr): Use integer_type_node for the
3802 predict kind.
3803 * fold-const.c (fold_binary_loc): Use integer_type_node for
3804 the shift amount. Use a proper type for the PLUS_EXPR operand.
3805
b823cdfe
MM
38062011-04-29 Michael Matz <matz@suse.de>
3807
3808 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3809 other trees that just builtins.
3810 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3811
413581ba
RG
38122011-04-29 Richard Guenther <rguenther@suse.de>
3813
3814 * tree-nested.c (get_trampoline_type): Use size_int.
3815 (get_nl_goto_field): Likewise.
3816 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3817 for all indexes.
3818 (lower_eh_constructs_2): Likewise.
3819 (lower_resx): Likewise.
3820 (lower_eh_dispatch): Likewise.
3821 * tree-mudflap.c (mf_build_string): Use size_int.
3822 (mudflap_register_call): Use integer_type_node for the flag.
3823 (mudflap_enqueue_constant): Use size_int.
3824 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3825 instead of rebuilding it.
3826
5c04e9f4
RG
38272011-04-29 Richard Guenther <rguenther@suse.de>
3828
3829 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3830 Handle OBJ_TYPE_REF.
3831 (find_func_aliases_for_call): Use it more consistently.
3832
5c24671b
AO
38332011-04-29 Alexandre Oliva <aoliva@redhat.com>
3834
3835 * haifa-sched.c (last_nondebug_scheduled_insn): New.
3836 (rank_for_schedule): Use it.
3837 (schedule_block): Set it.
3838
10adac51
XDL
38392011-04-28 David Li <davidxl@google.com>
3840
3841 * tree.c (crc32_string): Use crc32_byte.
3842 (crc32_byte): New function.
3843 * tree.h (crc32_byte): New function.
3844 * gcov.c (read_graph_file): Handle new cfg_cksum.
3845 (read_count_file): Ditto.
3846 * profile.c (instrument_values): Ditto.
3847 (get_exec_counts): Ditto.
3848 (read_profile_edge_counts): Ditto.
3849 (compute_branch_probabilities): Ditto.
3850 (compute_value_histograms): Ditto.
3851 (branch_prob): Ditto.
3852 (end_branch_prob): Ditto.
3853 * coverage.c (read_counts_file): Ditto.
3854 (get_coverage_counts): Ditto.
3855 (tree_coverage_counter_addr): Ditto.
3856 (coverage_checksum_string): Ditto.
3857 (coverage_begin_output): Ditto.
3858 (coverage_end_function): Ditto.
3859 (build_fn_info_type): Ditto.
3860 (build_fn_info_value): Ditto.
3861 * libgcov.c (gcov_exit): Ditto.
3862 * gcov-dump.c (tag_function): Ditto.
3863 (compute_checksum): Remove.
3864
5d6358a5
AM
38652011-04-29 Alan Modra <amodra@gmail.com>
3866
3867 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3868 unspec plus offset. Tidy macho code.
3869
85ad2ef5
MJ
38702011-04-29 Martin Jambor <mjambor@suse.cz>
3871
3872 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3873 node instead of a decl. Update all callers.
3874 * cgraph.h: Update declaration.
3875
437f4a00
IR
38762011-04-28 Ira Rosen <ira.rosen@linaro.org>
3877
3878 PR tree-optimization/48765
3879 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3880 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3881 to indicate if loop aware SLP is being used. Scan the statements
3882 and update the vectorization factor according to the type of
3883 vectorization before statement analysis.
3884 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3885 pass it to vect_analyze_loop_operations.
3886 (vectorizable_reduction): Set number of copies to 1 in case of pure
3887 SLP statement.
3888 * tree-vect-stmts.c (vectorizable_conversion,
3889 vectorizable_assignment, vectorizable_shift,
3890 vectorizable_operation, vectorizable_type_demotion,
3891 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3892 Likewise.
3893 (vectorizable_condition): Move the check that it is not SLP
3894 vectorization before the number of copies check.
3895 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3896 to vectorize the loop using SLP.
3897
c6fc44f3
JJ
38982011-04-28 Jakub Jelinek <jakub@redhat.com>
3899
3900 PR middle-end/48597
3901 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3902 inline asm.
3903
6c0170ea
JM
39042011-04-28 Joseph Myers <joseph@codesourcery.com>
3905
3906 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3907 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3908 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3909 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3910 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3911 linux*.h headers.
6bec6c98 3912 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
3913 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3914 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3915 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 3916 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
3917 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3918 REG_NAME.
3919 * config/i386/linux.h (REG_NAME): Don't define.
3920 * config/i386/linux64.h (REG_NAME): Don't define.
3921 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3922 Undefine before defining.
3923
970dabbd
JH
39242011-04-28 Jan Hubicka <jh@suse.cz>
3925
6bec6c98
UB
3926 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3927 nonconstant_names array.
970dabbd
JH
3928 (estimate_function_body_sizes): Build nonconstant_names array; handle
3929 BUILT_IN_CONSTANT_P.
3930
8d3e3924
RG
39312011-04-28 Richard Guenther <rguenther@suse.de>
3932
3933 PR bootstrap/48804
3934 Revert
3935 2011-04-28 Richard Guenther <rguenther@suse.de>
3936
3937 * tree-ssa-structalias.c (solve_constraints): Build succ graph
3938 as late as possible.
6bec6c98 3939
8576f20a
RG
39402011-04-28 Richard Guenther <rguenther@suse.de>
3941
3942 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3943 (debug_constraint): Do it here.
3944 (dump_constraints): And here.
3945 (rewrite_constraints): And here.
3946 (dump_constraint_edge): Remove.
3947 (dump_constraint_graph): Rewrite to produce DOT output.
3948 (solve_constraints): Build succ graph as late as possible.
3949 Dump constraint graphs before and after solving.
3950
e38811ce
RG
39512011-04-28 Richard Guenther <rguenther@suse.de>
3952
3953 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3954 New function split out from ...
3955 (find_func_aliases): ... here. Call it.
3956 (find_func_aliases_for_call): Likewise.
3957
fbaf0d0c
GDR
39582011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3959
3960 * internal-fn.h (internal_fn_name_array): Declare.
3961 (internal_fn_flags_array): Likewise.
3962
cbb734aa
UB
39632011-04-27 Uros Bizjak <ubizjak@gmail.com>
3964
3965 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
3966 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3967 Move from sse.md.
3968 (ssemodefsuffix): Remove.
3969 (ssevecmodesuffix): New mode attribute.
3970 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3971 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3972 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3973 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3974 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3975 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3976 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3977 ssemodesuffix mode attribute.
3978 (float splitters): Use ssevecmodesuffix mode attribute.
3979 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3980 (sseinsmode): Rename from avxvecmode.
3981 (avxsizesuffix): Rename from avxmodesuffix.
3982 (sseintvecmode): Rename from avxpermvecmode.
3983 (ssedoublevecmode): Rename from ssedoublesizemode.
3984 (ssehalfvecmode): Rename from avxhalfvecmode.
3985 (ssescalarmode): Rename from avxscalarmode.
3986 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3987 templates for ssemodesuffix mode attribute.
3988 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3989 mode attribute.
3990
3991 Adjust RTX patterns globally for renamed mode attributes.
3992
991278ab
JH
39932011-04-27 Jan Hubcika <jh@suse.cz>
3994
3995 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3996 * ipa-inline-analysis.c: Include alloc-pool.h.
3997 (edge_predicate_pool): New.
3998 (trye_predicate_p): New function
3999 (false_predicate_p): New function.
4000 (add_clause): Sanity check that false clauses are "optimized";
4001 never add clauses to predicate that is already known to be false.
4002 (and_predicate): Use flase_predicate_p.
4003 (evaulate_predicate): Rename to ...
4004 (evaluate_predicate): ... this one; update all callers; assert
4005 that false is not listed among possible truths.
4006 (dump_predicate): Use true_predicate_p.
4007 (account_size_time): Use false_predicate_p.
4008 (evaulate_conditions_for_edge): Rename to ...
4009 (evaluate_conditions_for_edge) ... this one.
4010 (edge_set_predicate): New function.
4011 (inline_edge_duplication_hook): Duplicate edge predicates.
4012 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 4013 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
4014 (dump_inline_summary): Update.
4015 (estimate_function_body_sizes): Set edge predicates.
4016 (estimate_calls_size_and_time): Handle predicates.
4017 (estimate_callee_size_and_time): Update.
4018 (remap_predicate): Add toplev_predicate; update comment.
4019 (remap_edge_predicates): New function.
4020 (inline_merge_summary): Compute toplev predicate; update.
4021 (read_predicate): New function.
4022 (read_inline_edge_summary): Use it.
4023 (inline_read_section): Likewise.
4024 (write_predicate): New function.
4025 (write_inline_edge_summary): Use it.
4026 (inline_write_summary): Likewise.
4027 (inline_free_summary): Free alloc pool and edge summary vec.
4028
648b5f85
RG
40292011-04-27 Richard Guenther <rguenther@suse.de>
4030
4031 * tree-ssa-structalias.c (changed_count): Remove.
4032 (changed): Use a bitmap.
4033 (unify_nodes): Adjust.
4034 (do_sd_constraint): Likewise.
4035 (do_ds_constraint): Likewise.
4036 (do_complex_constraint): Likewise.
4037 (solve_graph): Likewise.
4038
4d5dcfb2
JH
40392011-04-27 Jan Hubicka <jh@suse.cz>
4040
4041 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4042
200eb7d2
UB
40432011-04-27 Uros Bizjak <ubizjak@gmail.com>
4044
4045 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4046 (avx_vperm2f128_*_operand): Ditto.
4047 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4048 Use avx_vpermilp_parallel in insn condition.
4049 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4050 Use avx_vperm2f128_parallel in insn condition.
4051
7d6e2521
RG
40522011-04-27 Richard Guenther <rguenther@suse.de>
4053
4054 * Makefile.in (tree-ssa-structalias.o): Remove
4055 gt-tree-ssa-structalias.h dependency.
4056 (GTFILES): Remove tree-ssa-structalias.c.
4057 * tree.c (allocate_decl_uid): New function.
4058 (make_node_stat): Use it.
4059 (copy_node_stat): Likewise.
4060 * tree.h (allocate_decl_uid): Declare.
4061 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4062 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4063 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 4064 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
4065 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4066 (struct heapvar_map): Likewise.
4067 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4068 heapvar_insert): Likewise.
4069 (make_heapvar_for): Rename to ...
4070 (make_heapvar): ... this. Simplify.
4071 (fake_var_decl_obstack): New global var.
4072 (build_fake_var_decl): New function.
4073 (make_constraint_from_heapvar): Adjust.
4074 (handle_lhs_call): Likewise.
4075 (create_function_info_for): Likewise.
4076 (intra_create_variable_infos): Likewise.
4077 (init_alias_vars): Allocate fake_var_decl_obstack.
4078 (init_alias_heapvars, delete_alias_heapvars): Remove.
4079 (compute_points_to_sets): Do not call init_alias_heapvars.
4080 (ipa_pta_execute): Likewise.
4081 (delete_points_to_sets): Free fake_var_decl_obstack.
4082
526ed6c2
UW
40832011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4084
4085 * config/spu/divmovti4.c (union qword_UTItype): New data type.
4086 (si_from_UTItype, si_to_UTItype): New functions.
4087 (__udivmodti4): Use them to implement type-punning.
4088 * config/spu/multi3.c (union qword_TItype): New data type.
4089 (si_from_TItype, si_to_TItype): New functions.
4090 (__multi3): Use them to implement type-punning.
4091
c187d33c
UW
40922011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4093
4094 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4095
40982661
JH
40962011-04-27 Jan Hubicka <jh@suse.cz>
4097
4098 * ipa-prop.c (function_insertion_hook_holder): New holder.
4099 (ipa_add_new_function): New function.
200eb7d2
UB
4100 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4101 Register/deregister holder.
40982661 4102
9aef53ee
RG
41032011-04-27 Richard Guenther <rguenther@suse.de>
4104
4105 PR tree-optimization/48772
200eb7d2 4106 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 4107
f63d806d
RG
41082011-04-27 Richard Guenther <rguenther@suse.de>
4109
4110 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4111 TARGET_MEM_REF handling.
4112
e1ea7451
NC
41132011-04-27 Nick Clifton <nickc@redhat.com>
4114
9b5db25d
NC
4115 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4116 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4117 (REG_CLASS_NAMES): Likewise.
4118 (REG_CLASS_CONTENTS): Likewise.
4119 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4120 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4121 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
4122 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
4123 (EVEN_REGS): New macro. Alias for QUAD_REGS.
4124 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4125 duplicate register classes.
97d20907 4126 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
4127 (frv_register_move_cost): Likewise.
4128
e1ea7451
NC
4129 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4130 end of the regno_reg_class array.
4131
5c2f94b4
JJ
41322011-04-27 Jakub Jelinek <jakub@redhat.com>
4133
4134 PR c/48742
4135 * c-typeck.c (build_binary_op): Don't wrap arguments if
4136 int_operands is true.
4137
57a944d7
KK
41382011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
4139
4140 PR target/48767
4141 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4142 targetm.calls.must_pass_in_stack for void type.
4143
898b8927
JH
41442011-04-26 Jan Hubicka <jh@suse.cz>
4145
4146 * cgraphbuild.c (build_cgraph_edges): Update call
4147 of cgraph_create_edge and cgraph_create_indirect_edge.
4148 * cgraph.c (cgraph_create_edge_including_clones,
4149 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4150 cgraph_update_edges_for_call_stmt_node): Do not take nest
4151 argument; do not initialize call_stmt_size/time.
4152 (dump_cgraph_node): Do not dump nest.
4153 (cgraph_clone_edge): Do not take loop_nest argument;
4154 do not propagate it; do not clone call_stmt_size/time.
4155 (cgraph_clone_node): Likewise.
4156 (cgraph_create_virtual_clone): Update.
4157 * cgraph.h (struct cgraph_edge): Remove
4158 call_stmt_size/call_stmt_time/loop_nest.
4159 (cgraph_create_edge, cgraph_create_indirect_edge,
4160 cgraph_create_edge_including_clones, cgraph_clone_node): Update
4161 prototype.
4162 * tree-emutls.c (gen_emutls_addr): Update.
4163 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4164 loop_nest; handle indirect calls, too.
4165 (clone_inlined_nodes): Do not care about updating inline summaries.
4166 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4167 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4168 stream call_stmt_size/call_stmt_time/loop_nest.
4169 * ipa-inline.c (edge_badness): Update.
4170 (ipa_inline): dump summaries after inlining.
4171 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 4172 New.
898b8927
JH
4173 (inline_edge_summary): New function.
4174 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4175 (inline_edge_removal_hook): Handle edge summaries.
4176 (inline_edge_duplication_hook): New hook.
4177 (inline_summary_alloc): Alloc hooks.
4178 (initialize_growth_caches): Do not register removal hooks.
4179 (free_growth_caches); Do not free removal hook.
4180 (dump_inline_edge_summary): New function.
4181 (dump_inline_summary): Use it.
4182 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4183 (inline_update_callee_summaries): New function.
4184 (inline_merge_summary): Use it.
4185 (do_estimate_edge_time, do_estimate_edge_growth): Update.
4186 (read_inline_edge_summary): New function.
4187 (inline_read_section): Use it.
4188 (write_inline_edge_summary): New function.
4189 (inline_write_summary): Use it.
4190 (inline_free_summary): Free edge new holders.
4191 * tree-inline.c (copy_bb): Update.
4192
ffa03772
JM
41932011-04-26 Jason Merrill <jason@redhat.com>
4194
4195 * tree-eh.c (lower_try_finally_switch): Create the label along with
4196 the CASE_LABEL_EXPR.
4197
6d7b45ad
DM
41982011-04-26 David S. Miller <davem@davemloft.net>
4199 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4200
4201 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4202 * configure: Regenerate.
4203
df10b6d4
MM
42042011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4205
4206 PR target/48258
4207 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4208 reduction.
4209 (VEC_reduc): New code iterator and splitters for vector reduction.
4210 (VEC_reduc_name): Ditto.
4211 (VEC_reduc_rtx): Ditto.
4212 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4213 (reduc_<VEC_reduc_name>_v4sf): Ditto.
4214
4215 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4216 support for extracting SF on VSX.
4217
4218 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4219 generating xscvspdp.
4220 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4221 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4222 double add, minimum, maximum vector reduction.
4223 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4224 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4225 optimize double vector reduction.
4226 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4227
35a5db04
JM
42282011-04-26 Joseph Myers <joseph@codesourcery.com>
4229
4230 * config/fr30/fr30.h (inhibit_libc): Don't define.
4231 * config/m32r/m32r-protos.h: Correct comment.
4232 * config/v850/v850.h (GHS_default_section_names,
4233 GHS_current_section_names): Use tree, not union tree_node *.
4234
2f964ad6
XDL
42352011-04-26 Xinliang David Li <davidxl@google.com>
4236
200eb7d2 4237 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
4238 * c-family/c-opts.c (c_common_handle_option): Set
4239 warn_maybe_uninitialized.
4240 * opts.c (common_handle_option): Ditto.
4241 * common.opt: New option.
4242 * tree-ssa.c (warn_uninit): Add one more parameter.
4243 (warn_uninitialized_var): Pass warning code.
4244 * tree-flow.h: Interface change.
4245
4246
9c7bd91a
RO
42472011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4248
200eb7d2 4249 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
4250 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4251 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4252
c2f36e21
RO
42532011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4254
4255 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4256 * config/mips/mips.opt (mmips-tfile): Remove.
4257
4258 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4259 mips-tdump reference to ...
200eb7d2 4260 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
4261 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4262 reference by Tru64 UNIX.
4263
2c9da85b
JJ
42642011-04-26 Jakub Jelinek <jakub@redhat.com>
4265
0c5f6539
JJ
4266 PR debug/48768
4267 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4268 is error_mark_node, set value to NULL.
4269
2c9da85b
JJ
4270 PR tree-optimization/48734
4271 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4272 if return value from maybe_fold_*_comparsions isn't something
4273 the code is prepared to handle.
4274
77fa1d54
UB
42752011-04-26 Uros Bizjak <ubizjak@gmail.com>
4276
4277 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4278 mode check.
4279 (ext_QIreg_nomode_operands): Remove.
4280 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4281 (*andsi_1): Ditto.
4282 (*andhi_1): Ditto.
4283
0e2a6c2b
AS
42842011-04-26 Andrew Stubbs <ams@codesourcery.com>
4285
4286 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4287
961562d8
RB
42882011-04-26 Richard Guenther <rguenther@suse.de>
4289
4290 * c-typeck.c (build_unary_op): Do not expand array-refs via
4291 pointer arithmetic. Only adjust qualifiers for function types.
4292
42932011-04-26 Richard Guenther <rguenther@suse.de>
4294
4295 PR middle-end/48694
4296 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4297 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
4298 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
4299 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 4300
a0d260fc
PC
43012011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
4302
6bec6c98 4303 * doc/extend.texi: Document __underlying_type.
a0d260fc 4304
4d583bb9
SB
43052011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
4306
4307 * config/rs6000/titan.md (automata_option "progress"): Remove.
4308
1f3fcdc3
JL
43092011-04-25 Jeff Law <law@redhat.com>
4310
4311 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4312
e5b0dad8
JK
43132011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
4314
4315 * system.h (ENUM_BITFIELD): Remove.
4316
5157a881 43172011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 4318 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
4319
4320 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4321 for STORE_FLAG_VALUE==-1 case.
4322
ed4c109e
RS
43232011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
4324
4325 PR target/43804
4326 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4327 LEGITIMATE_PIC_OPERAND_P.
4328
f3181aa2
JH
43292011-04-24 Jan Hubicka <jh@suse.cz>
4330
4331 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4332 WPA hack.
77fa1d54
UB
4333 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4334 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4335 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
4336 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4337 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4338 Sanity check predicate length.
4339 (remap_predicate): Likewise; sanity check jump functions.
4340 (inline_read_section, inline_write_summary): Sanity check
4341 predicate length.
4342
5307cbaa
PC
43432011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
4344
4345 PR other/48748
4346 * doc/extend.texi (Type Traits): Document __is_standard_layout,
4347 __is_literal_type, and __is_trivial; update throughout about
4348 possibly cv-qualified void types.
4349
bebd5f99
GP
43502011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
4351
4352 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4353 testsuite and make it version agnostic.
4354
7ee28a74
JH
43552011-04-22 Jan Hubicka <jh@suse.cz>
4356
4357 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4358
16997bc0
JJ
43592011-04-23 Jakub Jelinek <jakub@redhat.com>
4360
4361 PR c/48685
4362 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4363 to VOID_TYPE even around MODIFY_EXPR.
4364
f94d4ab1
MS
43652011-04-22 Mike Stump <mikestump@comcast.net>
4366
1a84c183 4367 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
4368 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4369 comment.
4370
632b4f8e
JH
43712011-04-22 Jan Hubicka <jh@suse.cz>
4372
4373 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
4374 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4375 ipa-prop.c; update all uses.
632b4f8e 4376 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
4377 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4378 merge summary of inlined function into former caller.
632b4f8e
JH
4379 * ipa-inline.c (max_benefit): Remove.
4380 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
4381 (update_caller_keys): Use
4382 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
4383 (update_callee_keys): Likewise.
4384 (update_all_callee_keys): Likewise.
77fa1d54
UB
4385 (inline_small_functions): Do not collect max_benefit; do not reset
4386 estimated_growth; call free_growth_caches and initialize_growth_caches.
4387 * ipa-inline.h (struct condition, type clause_t, struct predicate,
4388 struct size_time_entry): New structures.
632b4f8e 4389 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
4390 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4391 and estimated_growth.
632b4f8e
JH
4392 (edge_growth_cache_entry): New structure.
4393 (node_growth_cache, edge_growth_cache): New global vars.
4394 (estimate_growth): Turn into inline.
4395 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4396 initialize_growth_caches, free_growth_caches): Declare.
4397 (estimate_edge_growth): Rewrite.
4398 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
4399 (reset_node_growth_cache, reset_edge_growth_cache): New inline
4400 functions.
632b4f8e
JH
4401 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4402 (NUM_CONDITIONS): New constant.
4403 (predicate_conditions): New enum.
4404 (IS_NOT_CONSTANT): New constant.
4405 (edge_removal_hook_holder): New var.
4406 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
4407 (true_predicate, single_cond_predicate, false_predicate,
4408 not_inlined_predicate, add_condition, add_clause, and_predicates,
4409 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4410 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
4411 evaulate_conditions_for_edge): New functions.
4412 (inline_summary_alloc): Move to heap.
4413 (inline_node_removal_hook): Clear condition and entry vectors.
4414 (inline_edge_removal_hook): New function.
4415 (initialize_growth_caches, free_growth_caches): New function.
4416 (dump_inline_summary): Update.
4417 (edge_execution_predicate): New function.
4418 (will_be_nonconstant_predicate): New function.
4419 (estimate_function_body_sizes): Compute BB and constantness predicates.
4420 (compute_inline_parameters): Do not clear estimated_growth.
4421 (estimate_edge_size_and_time): New function.
4422 (estimate_calls_size_and_time): New function.
4423 (estimate_callee_size_and_time): New function.
4424 (remap_predicate): New function.
4425 (inline_merge_summary): New function.
4426 (do_estimate_edge_time): New function based on...
4427 (estimate_edge_time): ... this one.
4428 (do_estimate_edge_growth): New function.
4429 (do_estimate_growth): New function based on....
4430 (estimate_growth): ... this one.
4431 (inline_analyze_function): Analyze after deciding on jump functions.
4432 (inline_read_section): New function.
4433 (inline_read_summary): Use it.
4434 (inline_write_summary): Write all the new data.
4435 * ipa-prop.c (ipa_get_param_decl_index): Export.
4436 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
4437 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4438 Declare.
4439 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
4440 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4441 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4442 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4443 cgraph_edge_inlinable_p): Remove.
4444 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
4445 (cgraph_process_new_functions): Update call of
4446 compute_inline_parameters.
632b4f8e 4447
1df5b0db
RG
44482011-04-22 Richard Guenther <rguenther@suse.de>
4449
4450 * tree.c (build_int_cst): Properly create canonicalized integer
4451 constants.
4452 (build_int_cst_type): Remove scary comments.
4453
ae01169c
XDL
44542011-04-22 Xinliang David Li <davidxl@google.com>
4455
4456 * toplev.c (process_options): Enable -Werror=coverage-mismatch
4457 by default when -Wno-error is not specified.
4458 * opts-global.c (decode_options): Remove call to
4459 control_warning_options.
4460
93dfac24
JJ
44612011-04-22 Jakub Jelinek <jakub@redhat.com>
4462
4463 PR tree-optimization/48717
4464 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4465 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4466
1b5f5069
JM
44672011-04-22 Joseph Myers <joseph@codesourcery.com>
4468
4469 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
4470 definition where used.
4471
144f4153
JJ
44722011-04-22 Jakub Jelinek <jakub@redhat.com>
4473
4474 PR c/48716
4475 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4476 TREE_STATIC variables declared inside of some OpenMP construct.
4477
f9fd305b
MJ
44782011-04-22 Martin Jambor <mjambor@suse.cz>
4479
4480 PR middle-end/48585
1d284ec5 4481 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 4482
49819fef
AM
44832011-04-22 Alexander Monakov <amonakov@ispras.ru>
4484
4485 PR c/36750
4486 * c-typeck.c (pop_init_level): Do not warn about initializing
4487 with ` = {0}'.
4488
401f6699
AM
44892011-04-22 Alan Modra <amodra@gmail.com>
4490
4491 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4492 when returning call_cookie.
4493 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4494 pointers, to functions with no more vector args than the current
4495 function, and some non-local calls for ABI_V4.
4496 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4497 sibcall_nonlocal_aix64): Combine to ..
4498 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
4499 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4500 (sibcall_value_nonlocal_aix<mode>): ..likewise.
4501 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4502 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
4503 operand.
4504 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4505 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4506 sibcall_value_symbolic_64): Delete.
4507
903d1e67
XDL
45082011-04-21 Xinliang David Li <davidxl@google.com>
4509
4510 * cgraph.h: Remove pid.
4511 * cgraph.c: Remove pid.
4512 * value-prof.c (init_node_map): New function.
4513 (del_node_map): New function.
4514 (find_func_by_funcdef_no): New function.
4515 (gimple_ic_transform): Call new function.
4516 * cgraphunit.c (cgraph_finalize_function): Remove pid.
4517 * function.c (get_last_funcdef_no): New function.
4518 * function.h (get_last_funcdef_no): New function.
4519 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4520 to libgcov function.
4521 (tree-profiling): Call node map init and delete function.
4522
7378e95f
ILT
45232011-04-21 Ian Lance Taylor <iant@google.com>
4524
4525 * godump.c (go_format_type): Use exported Go name for anonymous
4526 field name.
4527
e84a6fcf
NF
45282011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4529
4530 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4531 Call builtin_function_type_list instead of builtin_function_type.
4532 (UNARY, BINARY, TRINARY, QUAD): Likewise.
4533
4fe058e2
NF
45342011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4535
4536 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4537 build_function_type_list instead of build_function_type.
4538 Delete variable `endlink'.
4539
1ba0a2d2
NF
45402011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4541
4542 * config/s390/s390.c (s390_init_builtins): Call
4543 build_function_type_list instead of build_function_type.
4544
c0676219
NF
45452011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4546
4547 * config/ia64/ia64.c (ia64_init_builtins): Call
4548 build_function_type_list instead of builtin_function_type.
4549
6ddfda8a
ER
45502011-04-21 Easwaran Raman <eraman@google.com>
4551
3a6448ea 4552 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
4553 (add_stack_var): ...and its reference here...
4554 (expand_stack_vars): ...and here.
4555 (stack_var_cmp): Sort by descending order of size.
4556 (partition_stack_vars): Change heuristic.
1d284ec5 4557 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
4558 (dump_stack_var_partition): Add newline after each partition.
4559
23756963
DA
45602011-04-21 Dimitrios Apostolou <jimis@gmx.net>
4561 Jeff Law <law@redhat.com>
4562
77fa1d54 4563 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
4564 * gengtype.c (matching_file_name_substitute): Likewise.
4565
aa2a43d2
RG
45662011-04-21 Richard Guenther <rguenther@suse.de>
4567
4568 PR lto/48703
1d284ec5 4569 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 4570
4d931f41
EB
45712011-04-21 Eric Botcazou <ebotcazou@adacore.com>
4572
4573 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4574
f103fa7a
RG
45752011-04-21 Richard Guenther <rguenther@suse.de>
4576
4577 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4578 file name.
4579
e19f6650
RG
45802011-04-21 Richard Guenther <rguenther@suse.de>
4581
4582 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4583 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4584 Use DECL_P, not SSA_VAR_P.
4585 (ptr_derefs_may_alias_p): Likewise.
4586 (ptr_deref_may_alias_ref_p_1): Likewise.
4587 (decl_refs_may_alias_p): Likewise.
4588 (refs_may_alias_p_1): Likewise.
4589 (ref_maybe_used_by_call_p_1): Likewise.
4590 (call_may_clobber_ref_p_1): Likewise.
4591 (indirect_ref_may_alias_decl_p): Assume indirect refrences
4592 are either MEM_REF or TARGET_MEM_REF.
4593 (indirect_refs_may_alias_p): Likewise.
4594 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4595 for MEM_EXPR of indirect calls.
4596
9d1831bb
TG
45972011-04-21 Tristan Gingold <gingold@adacore.com>
4598
4599 * vmsdbgout.c (write_srccorr): Compute file length from the string.
4600 (dst_file_info_struct): Remove flen field.
4601 (lookup_filename): Remove code that set flen field.
4602
f199c029
TG
46032011-04-21 Tristan Gingold <gingold@adacore.com>
4604
4605 * config/ia64/ia64.c (ia64_start_function): Add a guard.
4606
2894086e
UB
46072011-04-21 Uros Bizjak <ubizjak@gmail.com>
4608
4609 PR target/48708
4610 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4611 vec_extract and vec_concat for non-SSE4_1 targets.
4612
53f94a5c
RG
46132011-04-21 Richard Guenther <rguenther@suse.de>
4614
4615 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4616 return statements.
4617
f0dca5ba
JM
46182011-04-21 Joseph Myers <joseph@codesourcery.com>
4619
4620 * config/i386/cygming.h (union tree_node, TREE): Don't define or
4621 undefine.
4622 (FILE): Don't undefine.
4623
984514ac
JM
46242011-04-21 Joseph Myers <joseph@codesourcery.com>
4625
4626 * config/alpha/alpha.c (struct machine_function): Use rtx, not
4627 struct rtx_def *.
4628 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4629 struct rtx_def *.
4630 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 4631 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
4632 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4633 rtx_def *.
4634 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
4635 definitions where used.
4636 * config/microblaze/microblaze.h (struct microblaze_args): Use
4637 rtx, not struct rtx_def *.
4638 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4639 rtx_def *.
2894086e
UB
4640 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4641 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
4642 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4643 not struct rtx_def *.
4644 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4645 struct rtx_def *.
4646 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4647 rtx_def *.
2894086e 4648 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 4649
0b5a2724
RS
46502011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4651
4652 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4653 operand_equal_p to compare DR_BASE_ADDRESSes.
4654 (vect_check_interleaving): Likewise.
4655
4b18d683
RS
46562011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4657
4658 PR target/46329
4659 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4660 for all Neon struct constants.
4661
1a627b35
RS
46622011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4663
4664 * target.def (legitimate_constant_p): New hook.
4665 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4666 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4667 * doc/tm.texi: Regenerate.
4668 * hooks.h (hook_bool_mode_rtx_true): Declare.
4669 * hooks.c (hook_bool_mode_rtx_true): Define.
4670 * system.h (LEGITIMATE_CONSTANT_P): Poison.
4671 * calls.c (precompute_register_parameters): Replace uses of
4672 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4673 (emit_library_call_value_1): Likewise.
4674 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4675 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4676 * ira-costs.c (scan_one_insn): Likewise.
4677 * recog.c (general_operand, immediate_operand): Likewise.
4678 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4679 * reload1.c (init_eliminable_invariants): Likewise.
4680
4681 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4682 mode argument.
4683 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4684 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4685 argument.
4686 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4687 * config/alpha/predicates.md (input_operand): Update call to
4688 alpha_legitimate_constant_p.
4689
4690 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4691 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4692 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4693 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4694 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4695 (arm_legitimate_constant_p): New functions.
4696 (arm_cannot_force_const_mem): Make static.
4697
4698 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4699
4700 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4701 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4702 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4703 instead of bfin_legitimate_constant_p.
4704 (bfin_legitimate_constant_p): Make static. Add a mode argument.
4705 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4706
4707 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4708
4709 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4710
4711 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4712 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4713 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4714 (frv_legitimate_constant_p): Make static. Add a mode argument.
4715
4716 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4717 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4718 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4719
4720 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4721 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4722 * config/i386/i386.c (legitimate_constant_p): Rename to...
4723 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
4724 argument.
4725 (ix86_cannot_force_const_mem): Update accordingly.
4726 (ix86_legitimate_address_p): Likewise.
4727 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4728 * config/i386/i386.md: Update commentary.
4729
4730 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4731 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4732 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4733 (ia64_legitimate_constant_p): Make static. Add a mode argument.
4734
4735 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4736
4737 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4738 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4739 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4740 (lm32_legitimate_constant_p): Make static. Add a mode argument.
4741
4742 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4743 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4744 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4745
4746 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4747 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4748 (m32r_legitimate_constant_p): New function.
4749
4750 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4751 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4752 LEGITIMATE_CONSTANT_P.
4753 (LEGITIMATE_CONSTANT_P): Delete.
4754 * config/m68k/m68k.c (m68k_expand_prologue): Call
4755 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4756 (m68k_legitimate_constant_p): New function.
4757 * config/m68k/m68k.md: Update comments.
4758
4759 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4760 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4761 (mcore_legitimate_constant_p): New function.
4762
4763 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4764 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4765 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4766 Add a mode argument.
4767 (mep_legitimate_address): Update accordingly.
4768 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4769
4770 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4771 Delete.
4772 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4773 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4774 static. Check OP's mode for VOIDmode.
4775 (microblaze_legitimate_constant_p): New function.
4776 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4777
4778 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4779 * config/mips/mips.c (mips_legitimate_constant_p): New function.
4780 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4781 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4782 * config/mips/predicates.md: Update comments.
4783
4784 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4785 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4786 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4787 (mmix_legitimate_constant_p): Make static, return a bool, and take
4788 a mode argument.
4789 (mmix_print_operand_address): Update accordingly.
4790
4791 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4792 Delete.
4793 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
4794 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4795 static. Add a mode argument.
1a627b35
RS
4796 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4797
4798 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4799
4800 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4801 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4802 (pa_legitimate_constant_p): New function.
4803
4804 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4805
4806 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4807 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4808 (pdp11_legitimate_constant_p): New function.
4809
4810 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4811 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4812 (rs6000_legitimate_constant_p): New function.
4813
4814 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4815 (rx_legitimate_constant_p): ...this.
4816 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4817 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4818 (rx_legitimate_constant_p): ...this.
4819 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4820 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4821
4822 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4823 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4824 * config/s390/s390.c (legitimate_constant_p): Rename to...
4825 (s390_legitimate_constant_p): ...this. Make static, return a bool,
4826 and add a mode argument.
4827 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4828
4829 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4830
4831 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4832 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4833 (sh_legitimate_constant_p): New function.
4834
4835 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4836 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4837 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4838 (legitimate_constant_p): Rename to...
4839 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
4840 argument.
4841 (constant_address_p): Update accordingly.
4842
4843 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4844 argument and return a bool.
4845 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4846 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4847 (spu_legitimate_constant_p): Add a mode argument and return a bool.
4848 (spu_rtx_costs): Update accordingly.
4849 * config/spu/predicates.md (vec_imm_operand): Likewise.
4850
4851 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4852
4853 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4854 * config/v850/v850.c (v850_legitimate_constant_p): New function.
4855 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4856
4857 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4858 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4859 * config/vax/vax.c (legitimate_constant_p): Likewise.
4860
4861 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4862 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4863 (xtensa_legitimate_constant_p): New function.
4864
fbbf66e7
RS
48652011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4866
4867 * target.def (cannot_force_const_mem): Add a mode argument.
4868 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4869 * doc/tm.texi: Regenerate.
4870 * hooks.h (hook_bool_mode_rtx_false): Declare.
4871 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4872 (hook_bool_mode_const_rtx_true): Likewise.
4873 (hook_bool_mode_rtx_false): New function.
4874 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4875 to be non-VOID. Update call to cannot_force_const_mem.
4876 (find_reloads): Update accordingly.
4877 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4878 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4879 argument.
4880 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4881 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4882 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4883 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4884 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4885 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4886 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4887 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4888 (m68k_cannot_force_const_mem): ...this new function.
4889 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4890 argument.
4891 (mips_const_insns, mips_legitimize_const_move): Update calls.
4892 (mips_secondary_reload_class): Likewise.
4893 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4894 (pa_cannot_force_const_mem): ...this new function.
2894086e 4895 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
4896 (rs6000_cannot_force_const_mem): ...this new function.
4897 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4898 argument.
4899 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4900 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4901 to...
4902 (xtensa_cannot_force_const_mem): ...this new function.
4903
b861891b
NF
49042011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4905
4906 * config/mips/mips.c (mips16_build_function_stub): Call
4907 build_function_type_list instead of build_function_type.
4908 (mips16_build_call_stub): Likewise.
4909
34149ed5
NF
49102011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4911
4912 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4913 instead of build_function_type.
4914
12526412
NF
49152011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4916
4917 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4918 instead of build_function_type.
4919
3b84d61f
UB
49202011-04-20 Uros Bizjak <ubizjak@gmail.com>
4921
4922 PR target/48678
4923 * config/i386/i386.md (insv): Change operand 0 constraint to
4924 "register_operand". Change operand 1 and 2 constraint to
4925 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
4926 * config/i386/sse.md (sse4_1_pinsrb): Export.
4927 (sse2_pinsrw): Ditto.
4928 (sse4_1_pinsrd): Ditto.
4929 (sse4_1_pinsrq): Ditto.
4930 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
4931 * config/i386/i386.c (ix86_expand_pinsr): New.
4932
4a25752b
ER
49332011-04-20 Easwaran Raman <eraman@google.com>
4934
4935 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
4936 containing union type only with -fstrict-aliasing.
4937
04695783
JM
49382011-04-20 Jim Meyering <meyering@redhat.com>
4939
4940 Remove useless if-before-free tests.
4941 * calls.c (expand_call, save_area): Likewise.
4942 * cfgcleanup.c (try_forward_edges): Likewise.
4943 * collect2.c (collect_execute): Likewise.
4944 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
4945 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
4946 * coverage.c (coverage_checksum_string): Likewise.
4947 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
4948 * cselib.c (cselib_init): Likewise.
4949 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
4950 (df_set_clean_cfg): Likewise.
4951 * function.c (free_after_compilation): Likewise.
4952 * gcc.c (do_spec_1, main): Likewise.
4953 * gcov.c (create_file_names): Likewise.
4954 * gensupport.c (identify_predicable_attribute): Likewise.
4955 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
4956 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
4957 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
4958 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
4959 * ipa-pure-const.c (local_pure_const): Likewise.
4960 * ipa-reference.c (propagate): Likewise.
4961 * ira-costs.c (free_ira_costs): Likewise.
4962 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
4963 * matrix-reorg.c (mat_free): Likewise.
4964 * prefix.c (get_key_value): Likewise.
4965 * profile.c (compute_value_histograms): Likewise.
4966 * reload1.c (free_reg_equiv): Likewise.
4967 * sched-deps.c (free_deps): Likewise.
4968 * sel-sched-ir.c (fence_clear): Likewise.
4969 * sese.c (set_rename, if_region_set_false_region): Likewise.
4970 * tree-data-ref.c (free_rdg): Likewise.
4971 * tree-eh.c (lower_try_finally): Likewise.
4972 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
4973 * tree-ssa-live.c (delete_var_map): Likewise.
4974 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
4975 * tree-ssa-pre.c (phi_trans_add): Likewise.
4976
6788475a
JJ
49772011-04-20 Jakub Jelinek <jakub@redhat.com>
4978
4979 PR tree-optimization/48611
4980 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
4981 beyond ERT_MUST_NOT_THROW region.
4982
0eda4033
CM
49832011-04-20 Catherine Moore <clm@codesourcery.com>
4984
4985 * config/mips/mips.opt (mfix-24k): New.
4986 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
4987 * config/mips/mips.md (length): Increase by 4 for stores if
4988 fixing 24K errata.
4989 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
4990 all noreorder if fixing 24K errata.
4991 * doc/invoke.texi: Document mfix-24k.
4992
01475747
CLT
49932011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
4994
4995 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 4996 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 4997
bc2c1a60
AS
49982011-04-20 Andrew Stubbs <ams@codesourcery.com>
4999
5000 * config/arm/arm.c (arm_gen_constant): Move movw support ....
5001 (const_ok_for_op): ... to here.
5002
583722ee
KT
50032011-04-20 Kai Tietz <ktietz@redhat.com>
5004
2894086e
UB
5005 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5006 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 5007
422c0989
AS
50082011-04-20 Andrew Stubbs <ams@codesourcery.com>
5009
5010 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5011
d7978bff
RG
50122011-04-20 Richard Guenther <rguenther@suse.de>
5013
5014 PR tree-optimization/47892
5015 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5016 are if-convertible.
5017
818412ba
EB
50182011-04-20 Eric Botcazou <ebotcazou@adacore.com>
5019
5020 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5021
b501ce4e
TG
50222011-04-20 Tristan Gingold <gingold@adacore.com>
5023
5024 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5025
516edfdd
GJL
50262011-04-20 Georg-Johann Lay <avr@gjlay.de>
5027
5028 PR target/18145
5029
5030 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5031 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5032 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5033 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5034 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5035
5036 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5037 New prototype.
5038
5039 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5040 (avr_asm_named_section, avr_asm_output_aligned_common,
5041 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5042 New functions to update...
5043 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5044 (avr_asm_init_sections): Overwrite section callbacks for
5045 data_section, bss_section.
5046 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5047 from here to...
5048 (avr_file_end): ...here.
5049
dafc9511
RG
50502011-04-20 Richard Guenther <rguenther@suse.de>
5051
5052 PR middle-end/48695
5053 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 5054 objects and types here. Adjust for their offset before comparing.
dafc9511 5055
1da0876c
RS
50562011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5057
5058 * tree-vect-stmts.c (vectorizable_store): Only chain one related
5059 statement per copy.
5060
25583c4f
RS
50612011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5062
5063 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5064 (GIMPLE_H): Include $(INTERNAL_FN_H).
5065 (OBJS-common): Add internal-fn.o.
5066 (internal-fn.o): New rule.
5067 * internal-fn.def: New file.
5068 * internal-fn.h: Likewise.
5069 * internal-fn.c: Likewise.
5070 * gimple.h: Include internal-fn.h.
5071 (GF_CALL_INTERNAL): New gf_mask.
5072 (gimple_statement_call): Put fntype into a union with a new
5073 internal_fn field.
5074 (gimple_build_call_internal): Declare.
5075 (gimple_build_call_internal_vec): Likewise.
5076 (gimple_call_same_target_p): Likewise.
5077 (gimple_call_internal_p): New function.
5078 (gimple_call_internal_fn): Likewise.
5079 (gimple_call_fntype): Return null for internal calls.
5080 (gimple_call_set_fntype): Assert that the function is not internal.
5081 (gimple_call_set_fn): Likewise.
5082 (gimple_call_set_fndecl): Likewise.
5083 (gimple_call_set_internal_fn): New function.
5084 (gimple_call_addr_fndecl): Handle null functions.
5085 (gimple_call_return_type): Likewise null types.
5086 * gimple.c (gimple_build_call_internal_1): New function.
5087 (gimple_build_call_internal): Likewise.
5088 (gimple_build_call_internal_vec): Likewise.
5089 (gimple_call_same_target_p): Likewise.
5090 (gimple_call_flags): Handle calls to internal functions.
5091 (gimple_call_fnspec): New function.
5092 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5093 (gimple_has_side_effects): Handle null functions.
5094 (gimple_rhs_has_side_effects): Likewise.
5095 (gimple_call_copy_skip_args): Handle calls to internal functions.
5096 * cfgexpand.c (expand_call_stmt): Likewise.
5097 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5098 * gimple-fold.c (gimple_fold_call): Handle null functions.
5099 (gimple_fold_stmt_to_constant_1): Don't fold
5100 calls to internal functions.
5101 * gimple-low.c (gimple_check_call_args): Handle calls to internal
5102 functions.
5103 * gimple-pretty-print.c (dump_gimple_call): Likewise.
5104 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5105 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5106 (do_warn_unused_result): Likewise.
5107 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5108 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5109 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5110 the target of a call.
5111 (initialize_hash_element): Update accordingly.
5112 (hashable_expr_equal_p): Use gimple_call_same_target_p.
5113 (iterative_hash_hashable_expr): Handle calls to internal functions.
5114 (print_expr_hash_elt): Likewise.
5115 * tree-ssa-pre.c (can_value_number_call): Likewise.
5116 (eliminate): Handle null functions.
5117 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5118 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5119 (find_func_aliases): Likewise.
5120 * value-prof.c (gimple_ic_transform): Likewise.
5121 (gimple_indirect_call_to_profile): Likewise.
5122 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5123 * lto-streamer-out.c (output_gimple_stmt): Likewise.
5124
1a3118e9
JH
51252011-04-19 Jan Hubicka <jh@suse.cz>
5126
5127 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
5128 * ipa-inline.c (inline_small_functions): Compute summaries first,
5129 populate heap later.
1a3118e9 5130
fee8b6da
JH
51312011-04-19 Jan Hubicka <jh@suse.cz>
5132
5133 * cgraph.h (save_inline_function_body): Remove.
5134 * ipa-inline-transform.c: New file, broke out of...
5135 * ipa-inline.c: ... this one; Update toplevel comment.
5136 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5137 make global.
5138 (update_noncloned_frequencies): Move to ipa-inline-transform.c
5139 (cgraph_mark_inline_edge): Rename to inline_call; move to
5140 ipa-inline-transform.c.
5141 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5142 move to ipa-inline-transform.c
5143 (recursive_inlining, inline_small_functions, flatten_function,
5144 ipa_inline, inline_always_inline_functions,
5145 early_inline_small_functions): Update.
5146 (inline_transform): Move to ipa-inline-transform.c.
5147 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5148 Declare.
5149 * Makefile.in (ipa-inline-transform.o): New file.
5150 * cgraphunit.c (save_inline_function_body): Move to
5151 ipa-inline-transform.c
5152
f0679612
DD
51532011-04-19 DJ Delorie <dj@redhat.com>
5154
5155 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5156 registers if we already know there aren't any.
5157 (m32c_emit_epilogue): Don't emit a barrier here.
5158 (m32c_emit_eh_epilogue): Likewise.
5159 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5160 operands at expand time.
5161 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5162 int" wchar type.
5163 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5164 duplicates. Provide aliases instead.
5165 * config/m32c/prologue.md (eh_return): Emit a barrier here.
5166 (eh_epilogue): Add a "(return)" here as a hint to other parts of
5167 the compiler.
5168
32257ddc
AS
51692011-04-19 Anatoly Sokolov <aesok@post.ru>
5170
5171 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5172 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5173 (general_or_i64_p, sparc_register_move_cost): New function.
5174
60bea929
RO
51752011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5176
5177 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 5178 Add lynx, mipssde. Sort table.
60bea929 5179
444b3995 51802011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 5181
9d12f71a
EB
5182 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5183 not negative.
444b3995 5184
d708ce50
JJ
51852011-04-19 Jakub Jelinek <jakub@redhat.com>
5186
5187 PR target/48678
5188 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5189 is a SUBREG with non-MODE_INT mode inside of it.
5190
49c471e3
MJ
51912011-04-19 Martin Jambor <mjambor@suse.cz>
5192
5193 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5194 also according to actual contants.
5195 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5196 (gimple_fold_call): Use it.
5197 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5198
0004f992
MJ
51992011-04-19 Martin Jambor <mjambor@suse.cz>
5200
5201 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5202 non-pointer assignments.
5203
40591473
MJ
52042011-04-19 Martin Jambor <mjambor@suse.cz>
5205
5206 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5207 account anc_offset and otr_type from the indirect edge info.
5208 * ipa-prop.c (get_ancestor_addr_info): New function.
5209 (compute_complex_ancestor_jump_func): Assignment analysis moved to
5210 get_ancestor_addr_info, call it.
5211 (ipa_note_param_call): Do not initialize information about polymorphic
5212 calls, return the indirect call graph edge. Remove the last
5213 parameter, adjust all callers.
5214 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5215 parameters. Initialize polymorphic information in the indirect edge.
5216
abe36b81
EB
52172011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5218
5219 PR lto/48148
5220 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5221 the types if they have different enumeration identifiers.
5222
e6416b30
JH
52232011-04-19 Jan Hubicka <jh@suse.cz>
5224
5225 * cgraph.h (cgraph_optimize_for_size_p): Declare.
5226 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5227 * predict.c (cgraph_optimize_for_size_p): Break out from ...
5228 (optimize_function_for_size_p) ... here.
5229
d39132ea
RG
52302011-04-19 Richard Guenther <rguenther@suse.de>
5231
5232 PR lto/48207
5233 * tree.c (free_lang_data): Do not reset the decl-assembler-name
5234 langhook.
5235
ff7037dc
EB
52362011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5237
5238 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5239 if DECL_NO_INLINE_WARNING_P is set on the function.
5240
c1ee2892
BS
52412011-04-19 Bernd Schmidt <bernds@codesourcery.com>
5242
5243 PR fortran/47976
5244 * reload1.c (inc_for_reload): Return void. All callers changed.
5245 (emit_input_reload_insns): Don't try to delete previous output
5246 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
5247
52482011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
5249
5250 * gengtype.h: Updated copyright year.
5251 (struct input_file_st): Add inpisplugin field.
5252 (type_fileloc): New function.
5253 * gengtype.c
5254 (write_typed_struct_alloc_def): Add gcc_assert.
5255 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5256 (write_typed_alloc_defns): Don't output for plugin files.
5257 (input_file_by_name): Clear inpisplugin field.
5258 (main): Set inpisplugin field for plugin files.
5259
897e0a89
NP
52602011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
5261
5262 * gengtype-state.c (string_eq): New.
5263 (read_state): Use string_eq instead of strcmp when creating the
5264 state_ident_tab.
5265
363ee90e
WG
52662011-04-19 Wei Guozhi <carrot@google.com>
5267
5268 PR target/47855
5269 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5270 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5271 linkage.
5272 * config/arm/constraints.md (Uu): New constraint.
5273 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5274
18a24fed
TG
52752011-04-19 Tristan Gingold <gingold@adacore.com>
5276
5277 * config.gcc (-*-*-*vms): Added.
5278 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5279 definitions moved.
5280 * config/vms/vms-ld.c: New file.
5281 * config/vms/vms-ar.c: New file.
5282 * config/vms/t-vmsnative: New file.
5283
1c13f168
XDL
52842011-04-18 Xinliang David Li <davidxl@google.com>
5285
5286 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5287
84825707
JJ
52882011-04-18 Jakub Jelinek <jakub@redhat.com>
5289
5290 PR middle-end/48661
5291 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5292 if TREE_TYPE (v) is non-NULL.
5293
5294 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5295 gimple_get_virt_mehtod_for_binfo.
5296 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5297 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5298 callers.
5299 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5300
7d4f8d02 53012011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
5302 Steve Ellcey <sje@cup.hp.com>
5303
7d4f8d02
EB
5304 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5305 use its mode as source mode if it isn't VOIDmode.
7254cb57 5306
474e8e70
DCR
53072011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
5308
5309 * doc/passes.texi: Fill crossref nodes.
5310
cff41484
JM
53112011-04-18 Jim Meyering <meyering@redhat.com>
5312
7d4f8d02 5313 Fix doubled-word typos in comments and strings
cff41484
JM
5314 * config/alpha/vms-unwind.h: s/for for/for/
5315 * config/arm/unwind-arm.h: Likewise.
5316 * config/microblaze/microblaze.c: Likewise.
5317 * config/sh/constraints.md: s/in in/in/
5318 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5319
f60c2554
UB
53202011-04-18 Uros Bizjak <ubizjak@gmail.com>
5321
5322 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5323 (AVX_FLOAT_MODE_P): Ditto.
5324 (AVX128_VEC_FLOAT_MODE_P): Ditto.
5325 (AVX256_VEC_FLOAT_MODE_P): Ditto.
5326 (AVX_VEC_FLOAT_MODE_P): Ditto.
5327 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5328 (UNSPEC_MASKSTORE): Ditto.
5329 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5330 Merge from <sse>_movmsk<ssemodesuffix> and
5331 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
5332 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
5333 iterator.
5334 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5335 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5336 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5337
09a2806f
JH
53382011-04-18 Jan Hubicka <jh@suse.cz>
5339
8a8dccb2
JH
5340 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5341
09a2806f
JH
5342 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5343 (want_inline_function_called_once_p): Break out the logic from
5344 ipa_inline.
5345 (edge_badness): Ensure that profile is not misupdated.
5346 (lookup_recursive_calls): Prioritize by call frequencies.
5347 (inline_small_functions): Move program size estimates here;
5348 actually process whole queue even when unit growth has been
5349 met. (to properly compute inline_failed reasons and for the
f60c2554 5350 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
5351 (ipa_inline): Remove unit summary code; first inline hot calls
5352 of functions called once, cold calls next.
5353 (order, nnodes): Remove unused variables.
5354 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5355 (GTFILES): Remove ipa-inline.c
5356 * sel-sched.c (fill_insns): Silence uninitialized var warning.
5357
3eea52ef
EB
53582011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5359
5360 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5361
229a1c59 53622011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 5363 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
5364
5365 * arm.c (neon_builtin_type_bits): Remove.
5366 (typedef enum neon_builtin_mode): New.
5367 (T_MAX): Don't define.
5368 (typedef enum neon_builtin_datum): Remove bits, codes[],
5369 num_vars and base_fcode. Add mode, code and fcode.
5370 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5371 VAR10): Change accordingly.
5372 (neon_builtin_data[]): Change accordingly
5373 (arm_init_neon_builtins): Change accordingly.
5374 (neon_builtin_compare): Remove.
5375 (locate_neon_builtin_icode): Remove.
5376 (arm_expand_neon_builtin): Change accordingly.
5377
5378 * arm.h (enum arm_builtins): Move to ...
5379 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5380
5381 * arm.c (arm_builtin_decl): Declare.
5382 (TARGET_BUILTIN_DECL): Define.
5383 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5384 (arm_builtin_decls[]): New.
5385 (arm_init_neon_builtins): Store builtin declarations in
5386 arm_builtin_decls[].
5387 (arm_init_tls_builtins): Likewise.
5388 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
5389 (arm_builtin_decl): New.
5390
75e802cc
RG
53912011-04-18 Richard Guenther <rguenther@suse.de>
5392
5393 * tree.c (upper_bound_in_type): Build properly canonicalized
5394 INTEGER_CSTs.
5395 (lower_bound_in_type): Likewise.
5396
3b45a007
RG
53972011-04-18 Richard Guenther <rguenther@suse.de>
5398
5399 * gimple.h (gimple_call_addr_fndecl): New function.
5400 (gimple_call_fndecl): Use it.
5401 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5402 for direct calls.
5403 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5404 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5405
d25a79ea
RG
54062011-04-18 Richard Guenther <rguenther@suse.de>
5407
5408 PR middle-end/48650
5409 * tree.c (build_string): STRING_CST is now derived from tree_typed.
5410
7d5fc814
EB
54112011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5412
5413 PR lto/48492
5414 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5415 DECL_IN_CONSTANT_POOL without RTL.
5416
7e7cfcf6
UW
54172011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
5418 Ira Rosen <ira.rosen@linaro.org>
5419
5420 PR target/48252
5421 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5422 to match neon_vzip/vuzp/vtrn_internal.
5423 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5424 outputs explicitly dependent on both inputs.
5425 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5426
49eab32e
JJ
54272011-04-18 Jakub Jelinek <jakub@redhat.com>
5428
5429 PR tree-optimization/48616
5430 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5431 whether the shift is by scalar or vector based on whether all SLP
5432 scalar stmts have the same rhs.
5433
e54170f4
CLT
54342011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
5435
5436 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5437 memory operands.
5438
b14ee6c9
RS
54392011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
5440
269e0e18 5441 PR target/43700
b14ee6c9
RS
5442 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5443 registers.
5444
10158cd3
JH
54452011-04-17 Jan Hubicka <jh@suse.cz>
5446
5447 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
5448 * cgrpahunit.c (cgraph_finalize_function): Do not set
5449 finalized_by_frontend.
10158cd3
JH
5450 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5451 finalized_by_frontend.
5452
2e9bb6ba
JH
54532011-04-17 Jan Hubicka <jh@suse.cz>
5454
5455 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5456 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5457 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
5458 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5459 method.
2e9bb6ba
JH
5460 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5461 gimple-fold.c
5462 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5463
beb628e1
EB
54642011-04-17 Eric Botcazou <ebotcazou@adacore.com>
5465
5466 PR lto/48538
5467 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5468 is non-null before accessing it.
5469 (input_cgraph): Remove trailing spaces.
5470
3e2fdd24
RE
54712011-04-17 Revital Eres <revital.eres@linaro.org>
5472
5473 * params.def (sms-min-sc): New param flag.
5474 * modulo-sched.c (sms_schedule): Use it.
5475 * doc/invoke.texi (sms-min-sc): Document it.
5476
4c0f7679
JH
54772011-04-17 Jan Hubicka <jh@suse.cz>
5478
5479 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5480 present, also set gimple_call_set_cannot_inline.
5481 * ipa-inline.c: Update toplevel comment.
5482 (MAX_TIME): Remove.
5483 (cgraph_clone_inlined_nodes): Fix linebreaks.
5484 (cgraph_check_inline_limits): Restructure to ...
5485 (caller_growth_limits): ... this one; be more tolerant
5486 on growth in nested inline chains; add explanatory comment;
5487 fix stack accounting thinko introduced by previous patch.
5488 (cgraph_default_inline_p): Remove.
5489 (report_inline_failed_reason): New function.
5490 (can_inline_edge_p): New function.
5491 (can_early_inline_edge_p): New function.
5492 (leaf_node_p): Move upwards in file.
5493 (want_early_inline_function_p): New function.
5494 (want_inline_small_function_p): New function.
5495 (want_inline_self_recursive_call_p): New function.
5496 (cgraph_edge_badness): Rename to ...
5497 (edge_badness) ... this one; fix linebreaks.
5498 (update_edge_key): Update call of edge_baddness; add
5499 detailed dump about queue updates.
5500 (update_caller_keys): Use can_inline_edge_p and
5501 want_inline_small_function_p.
5502 (cgraph_decide_recursive_inlining): Rename to...
5503 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
5504 want_inline_self_recursive_call_p; simplify and remove no longer
5505 valid FIXME.
4c0f7679
JH
5506 (cgraph_set_inline_failed): Remove.
5507 (add_new_edges_to_heap): Use can_inline_edge_p and
5508 want_inline_small_function_p.
5509 (cgraph_decide_inlining_of_small_functions): Rename to ...
5510 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
5511 can/want predicates; cleanup debug ouput; work edges till fibheap
5512 is exhausted and do not stop once unit growth is reached; remove
5513 later loop processing remaining edges.
4c0f7679
JH
5514 (cgraph_flatten): Rename to ...
5515 (flatten_function): ... this one; use can_inline_edge_p
5516 and can_early_inline_edge_p predicates.
5517 (cgraph_decide_inlining): Rename to ...
5518 (ipa_inline): ... this one; remove unreachable nodes before
5519 inlining functions called once; simplify the pass.
5520 (cgraph_perform_always_inlining): Rename to ...
5521 (inline_always_inline_functions): ... this one; use
f60c2554 5522 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
5523 (cgraph_decide_inlining_incrementally): Rename to ...
5524 (early_inline_small_functions): ... this one; simplify
5525 using new predicates; cleanup; make dumps prettier.
5526 (cgraph_early_inlining): Rename to ...
5527 (early_inliner): newer inline regular functions into always-inlines;
5528 fix updating of call stmt summaries.
5529 (pass_early_inline): Update for new names.
5530 (inline_transform): Fix formating.
5531 (gate_cgraph_decide_inlining): Rename to ...
5532 (pass_ipa_inline): ... this one.
5533 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5534 * ipa-inline-analysis.c (dump_inline_summary): Update.
5535 (compute_inline_parameters): Do not compute disregard_inline_limits;
5536 look for mismatching arguments.
5537 (estimate_growth): Fix handlig of non-trivial self recursion.
5538 (inline_read_summary): Do not read info->disregard_inline_limits.
5539 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
5540 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5541 and move all checks into can_inline_edge_p predicate; re-enable code
5542 comparing optimization levels.
4c0f7679
JH
5543 (expand_call_inline): Do not test inline_forbidden_into_p.
5544 * Makefile.in (ipa-inline.o): Update arguments.
5545
54333b7c
RE
55462011-04-17 Revital Eres <revital.eres@linaro.org>
5547
5548 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5549
42c2bf92
RE
55502011-04-17 Revital Eres <revital.eres@linaro.org>
5551
5552 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5553
b183e9e0
MM
55542011-04-17 Michael Matz <matz@suse.de>
5555
5556 PR tree-optimization/48622
5557 PR lto/48645
5558 * ipa-inline-analysis.c (inline_read_summary): Read size/time
5559 in same order as they're written.
5560
b8a17fa2
JDA
55612011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5562
5563 * config/pa/predicates.md: Reorganize and simplify predicates.
5564 Eliminate duplicate code checks.
5565 (arith_operand): Rename to arith14_operand
5566 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5567 * config/pa/pa.md: Use renamed operands.
5568 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5569 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5570 arith11_operand, adddi3_operand, indexed_memory_operand,
5571 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5572 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5573 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5574 move_dest_operand, move_src_operand, prefetch_cc_operand,
5575 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5576 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5577 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5578 div_operand, int5_operand, movb_comparison_operator,
5579 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5580 arith_double_operand, ireg_operand, lhs_lshift_operand,
5581 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5582 integer_store_memory_operand): Likewise.
5583 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5584 (integer_store_memory_operand, read_only_operand,
5585 function_label_operand, borx_reg_operand,
5586 non_hard_reg_operand): Likewise.
5587 (eq_neq_comparison_operator): Delete unused operator.
5588 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5589 function_label_operand.
5590 (emit_move_sequence): Likewise.
5591
8dfb9f16
UB
55922011-04-16 Uros Bizjak <ubizjak@gmail.com>
5593
5594 * config/i386/sse.md (sseunpackmode): New mode attribute.
5595 (ssepackmode): Ditto.
5596 (vec_pack_trunc_<mode>): Macroize expander from
5597 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5598 (vec_unpacks_lo_<mode>): Macroize expander from
5599 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5600 (vec_unpacks_hi_<mode>): Macroize expander from
5601 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5602 (vec_unpacku_lo_<mode>): Macroize expander from
5603 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5604 (vec_unpacku_hi_<mode>): Macroize expander from
5605 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5606 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5607 ix86_expand_sse4_unpack.
5608 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5609
e7f23018
JH
56102011-04-16 Jan Hubicka <jh@suse.cz>
5611
5612 * cgraphbuild.c: Include ipa-inline.h.
5613 (reset_inline_failed): Use initialize_inline_failed.
5614 * cgraph.c: Include ipa-inline.h.
5615 (cgraph_create_node_1): Do not initialize estimated_growth.
5616 (initialize_inline_failed): More to ipa-inline-analysis.c
5617 (dump_cgraph_node): Do not dump inline flags.
5618 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5619 and disregard_inline_limits flags.
5620 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5621 time, size, estimated_growth.
8dfb9f16
UB
5622 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5623 Update.
e7f23018
JH
5624 * cgraphunit.c (cgraph_decide_is_function_needed): Use
5625 DECL_DISREGARD_INLINE_LIMITS.
5626 (cgraph_analyze_function): Do not initialize
5627 node->local.disregard_inline_limits.
5628 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5629 inlinable, versionable and disregard_inline_limits.
5630 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
5631 cgraph_check_inline_limits, cgraph_default_inline_p,
5632 cgraph_edge_badness, update_caller_keys, update_callee_keys,
5633 add_new_edges_to_heap): Update.
5634 (cgraph_decide_inlining_of_small_function): Update; set
5635 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
5636 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5637 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
5638 * ipa-inline.h (inline_summary): Add inlinable, versionable,
5639 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5640 time, size and estimated_growth parameters.
e7f23018
JH
5641 (estimate_edge_growth): Update.
5642 (initialize_inline_failed): Declare.
5643 * ipa-split.c: Include ipa-inline.h
5644 (execute_split_functions): Update.
5645 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5646 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5647 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5648 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5649 estimated_growth to INT_MIN.
5650 (inline_node_duplication_hook): Likewise.
5651 (dump_inline_summary): Dump new fields.
5652 (compute_inline_parameters): Update.
5653 (estimate_edge_time, estimate_time_after_inlining,
5654 estimate_size_after_inlining, estimate_growth, inline_read_summary,
5655 inline_write_summary):
5656 (initialize_inline_failed): Move here from cgraph.c.
5657 * tree-sra.c: Include ipa-inline.h.
5658 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
5659 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5660 ipa-inline.h.
e7f23018 5661
e81b8564
UB
56622011-04-16 Uros Bizjak <ubizjak@gmail.com>
5663
5664 * config/i386/sse.md (V16): New mode iterator.
5665 (VI1, VI8): Ditto.
5666 (AVXMODEQI, AVXMODEDI): Remove.
5667 (sse2, sse3): New mode attribute.
5668 (mov<mode>): Use V16 mode iterator.
5669 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5670 (push<mode>1): Use V16 mode iterator.
5671 (movmisalign<mode>): Ditto.
5672 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5673 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5674 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5675 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5676 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5677 avx_movdqu<avxmodesuffix>.
5678 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5679 *avx_movdqu<avxmodesuffix>.
5680 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5681 avx_lddqu<avxmodesuffix>.
5682 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5683 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5684 avx_movnt<AVXMODEDI:mode>.
5685 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5686 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5687
4743d438
BS
56882011-04-16 Bernd Schmidt <bernds@codesourcery.com>
5689
5690 PR target/48629
5691 * haifa-sched.c (prune_ready_list, schedule_block): Use
5692 sched_pressure_p rather than flag_sched_pressure.
5693
748f7574 56942011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
5695
5696 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5697 cgraph_get_node instead of cgraph_get_create_node.
5698
2ba172e0
JJ
56992011-04-15 Jakub Jelinek <jakub@redhat.com>
5700
5701 * cfgexpand.c (expand_debug_expr): Use
5702 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5703
63d2a353
MM
57042011-04-15 Michael Matz <matz@suse.de>
5705
5706 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5707 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5708 * function.c (gimplify_parameters): Ditto.
5709 * gimplify.c (gimplify_vla_decl): Ditto.
5710
5711 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5712 (gimple_call_set_alloca_for_var): New inline function.
5713 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
5714 * gimple.c (gimple_build_call_from_tree): Remember
5715 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
5716 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5717
5718 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5719 calls if they were for VLA objects.
5720
dee74c34
MJ
57212011-04-15 Martin Jambor <mjambor@suse.cz>
5722
5723 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5724 of ADR_EXPRs.
5725
8e5837bc
MJ
57262011-04-15 Martin Jambor <mjambor@suse.cz>
5727
5728 PR middle-end/48601
5729 * tree-emutls.c (lower_emutls_function_body): Call
5730 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
5731 result is non-NULL.
5732
0dc33c3c
NP
57332011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
5734
5735 * c-decl.c (detect_field_duplicates): Call
5736 objc_detect_field_duplicates instead of objc_get_interface_ivars.
5737
edcdea5b
NF
57382011-04-15 Nathan Froyd <froydnj@codesourcery.com>
5739
5740 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5741 * gimple.c (gimple_asm_clobbers_memory_p): Define.
5742 * ipa-pure-const.c (check_stmt): Call it.
5743 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5744
8456558d
RG
57452011-04-15 Richard Guenther <rguenther@suse.de>
5746
5747 PR tree-optimization/48290
5748 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5749 Properly decide inhibiting propagation based on the valueized
5750 operand. Do loop-closed SSA form preserving here ...
5751 (init_copy_prop): ... not here.
5752
266446be
L
57532011-04-15 H.J. Lu <hongjiu.lu@intel.com>
5754
5755 PR target/48612
5756 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5757 (*ieee_smax<mode>3): Likewise.
5758
17465c6e
AK
57592011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5760
5761 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5762 Replace match_operand with match_dup for the third operand in
5763 these expanders.
5764
bce204e5
MK
57652011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5766
5767 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5768 to track processing of conditionals. Update all callers.
5769 (try_combine, simplify_if_then_else): Update.
5770
3162fdf4
MK
57712011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5772
5773 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5774 -fsched-pressure.
5775
79002a57 57762011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 5777
79002a57
GJL
5778 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5779 instead of match_operand for operand 3.
5780
4fd3a105
RS
57812011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
5782
5783 * recog.h (insn_operand_data): Add an "allows_mem" field.
5784 * genoutput.c (output_operand_data): Initialize it.
5785 * optabs.c (maybe_legitimize_operand_same_code): New function.
5786 (maybe_legitimize_operand): Use it when matching the original
5787 op->value.
5788
ad19c4be
EB
57892011-04-15 Eric Botcazou <ebotcazou@adacore.com>
5790
5791 * gimplify.c: Fix issues in comments throughout.
5792 (voidify_wrapper_expr): Fix long line.
5793 (build_stack_save_restore): Likewise.
5794 (gimplify_loop_expr): Likewise.
5795 (gimplify_compound_lval): Likewise.
5796 (gimplify_init_ctor_eval): Likewise.
5797 (gimplify_modify_expr_rhs): Likewise.
5798 (omp_notice_threadprivate_variable): Likewise.
5799
b25aa0e8 58002011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 5801
b25aa0e8
EB
5802 * cfgexpand.c (expand_call_stmt): Convert the function type to the
5803 original one if this is not a builtin function.
e7925582 5804
09db7afe
JJ
58052011-04-14 Jakub Jelinek <jakub@redhat.com>
5806
5807 PR target/48605
5808 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5809 offset it as needed based on top 2 bits in operands[3], change
5810 MEM mode to SFmode and mask those 2 bits away from operands[3].
5811
c59633d9
NP
58122011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5813
5814 * c-parser.c (c_parser_objc_protocol_definition): Updated for
5815 change from objc_declare_protocols() to objc_declare_protocol().
5816
5e60198b
UB
58172011-04-14 Uros Bizjak <ubizjak@gmail.com>
5818
5819 * config/i386/sse.md (sse4_1): New mode attribute.
5820 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5821 avx_blend<ssemodesuffix><avxmodesuffix> and
5822 sse4_1_blend<ssemodesuffix> using VF mode iterator.
5823 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5824 avx_blendv<ssemodesuffix><avxmodesuffix> and
5825 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5826 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5827 avx_dp<ssemodesuffix><avxmodesuffix> and
5828 sse4_1_dp<ssemodesuffix> using VF mode iterator.
5829 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5830 (sse4_1_packusdw): Merge with *avx_packusdw.
5831 (sse4_1_pblendvb): Merge with *avx_pblendvb.
5832 (sse4_1_pblendw): Merge with *avx_pblendw.
5833 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5834 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5835 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5836 VF mode iterator.
5837 (sse4_1_round<ssescalarmodesuffix>): Merge with
5838 *avx_round<ssescalarmodesuffix>.
5839 (aesenc): Merge with *avx_aesenc.
5840 (aesenclast): Merge with *avx_aesenclast.
5841 (aesdec): Merge with *avx_aesdec.
5842 (aesdeclast): Merge with *avx_aesdeclast.
5843 (pclmulqdq): Merge with *pclmulqdq.
5844 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5845 New predicate.
5846 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5847
6f197850
L
58482011-04-14 H.J. Lu <hongjiu.lu@intel.com>
5849
5850 PR middle-end/48608
5851 * cfgexpand.c (get_decl_align_unit): Renamed to ...
5852 (align_local_variable): This. Update DECL_ALIGN.
5853 (add_stack_var): Updated.
5854 (expand_one_stack_var): Likewise.
5855
4a5ba3ed
RG
58562011-04-14 Richard Guenther <rguenther@suse.de>
5857
5858 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5859 Remove.
5860 (dse_initialize_block_local_data, dse_leave_block,
5861 record_voperand_set, get_stmt_uid): Likewise.
5862 (dse_possible_dead_store_p): Allow any kind of killing stmt.
5863 (dse_optimize_stmt): Remove voperand set handling code.
5864 Simplify and improve to handle any kind of killing stmt.
5865 (dse_record_phi): Remove.
5866 (dse_enter_block): Simplify.
5867 (tree_ssa_dse): Likewise.
5868 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5869
10a5dd5d
JH
58702011-04-14 Jan Hubicka <jh@suse.cz>
5871
5872 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5873 * cgraph.h (struct inline_summary): Move to ipa-inline.h
5874 (cgraph_local_info): Remove inline_summary.
5875 * ipa-cp.c: Include ipa-inline.h.
5876 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5877 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5878 accesor.
5879 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5880 (input_overwrite_node): Do not set inline summary.
5881 (input_node): Do not stream inline summary.
5882 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5883 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5884 growth; we do not have inline parameters computed for that anyway.
5885 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5886 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5887 (inline_summary_t): New type and VECtor.
5888 (debug_inline_summary, dump_inline_summaries): Declare.
5889 (inline_summary): Use VOCtor.
5890 (estimate_edge_growth): Kill hack computing call stmt size directly.
5891 * lto-section-in.c (lto_section_name): Add inline section.
5892 * ipa-inline-analysis.c: Include lto-streamer.h
5893 (node_removal_hook_holder, node_duplication_hook_holder): New holders
5894 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5895 (inline_summary_vec): Define.
5896 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5897 dump_inline_summaries): New functions.
5e60198b
UB
5898 (estimate_function_body_sizes): Properly compute size/time of outgoing
5899 calls.
5900 (compute_inline_parameters): Alloc inline_summary; do not compute
5901 size/time of incomming calls.
10a5dd5d
JH
5902 (estimate_edge_time): Avoid missing time summary hack.
5903 (inline_read_summary): Read inline summary info.
5904 (inline_write_summary): Write inline summary info.
5905 (inline_free_summary): Free all hooks and inline summary vector.
5906 * lto-streamer.h: Add LTO_section_inline_summary section.
5907 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5908 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5909
b602d918
RS
59102011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5911
5912 * tree-vectorizer.h (vect_strided_store_supported): Add a
5913 HOST_WIDE_INT argument.
5914 (vect_strided_load_supported): Likewise.
5915 (vect_permute_store_chain): Return void.
5916 (vect_transform_strided_load): Likewise.
5917 (vect_permute_load_chain): Delete.
5918 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5919 count argument. Check that the count is a power of two.
5920 (vect_strided_load_supported): Likewise.
5921 (vect_permute_store_chain): Return void. Update after above changes.
5922 Assert that the access is supported.
5923 (vect_permute_load_chain): Likewise.
5924 (vect_transform_strided_load): Return void.
5925 * tree-vect-stmts.c (vectorizable_store): Update calls after
5926 above interface changes.
5927 (vectorizable_load): Likewise.
5928 (vect_analyze_stmt): Don't check for strided powers of two here.
5929
ab4472fa
RG
59302011-04-14 Richard Guenther <rguenther@suse.de>
5931
5932 PR tree-optimization/48590
5933 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
5934 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5935 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
5936 BUILT_IN_STACK_SAVE.
5937 * tree-ssa-dce.c (propagate_necessity): Handle
5938 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
5939
32dabdaf
NP
59402011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5941
5942 * c-parser.c (c_parser_objc_class_declaration): Updated call to
5943 objc_declare_class.
5944
daade206
RG
59452011-04-14 Richard Guenther <rguenther@suse.de>
5946
5947 * tree.h (get_object_alignment_1): Declare.
5948 * builtins.c (get_object_alignment_1): Split out worker from ...
5949 (get_object_alignment): ... here.
5950 * fold-const.c (get_pointer_modulus_and_residue): Use
5951 get_object_alignment_1.
5952
920e8172
RS
59532011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5954
5955 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
5956 type parameter.
5957 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
5958 parameter. Generalise code to handle arrays as well as vectors.
5959 (vect_setup_realignment): Update accordingly.
5960 * tree-vect-stmts.c (vectorizable_store): Likewise.
5961 (vectorizable_load): Likewise.
5962
5ce1ee7f
RS
59632011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5964
5965 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
5966 within the per-copy loop.
5967
6438fe33 59682011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
5969
5970 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
5971 in the dump file.
5972
6438fe33 59732011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
5974
5975 * doc/options.texi (Negative): Explicitly mention that the
5976 Negative chain must be circular.
5977
61e46a7d
NF
59782011-04-14 Nathan Froyd <froydnj@codesourcery.com>
5979
5980 * function.h (block_chainon): Declare.
5981 * function.c (block_chainon): Define.
5982
43ea6502 59832011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 5984 Eric Weddington <eric.weddington@atmel.com>
748f7574 5985 Georg-Johann Lay <avr@gjlay.de>
5e60198b 5986
f60c2554 5987 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
5988 New Includes
5989 (avr_init_builtins, avr_expand_builtin,
5990 avr_expand_delay_cycles, avr_expand_unop_builtin,
5991 avr_expand_binop_builtin ): New functions.
5992 (avr_builtin_id): New enum
5993 (struct avr_builtin_description): New struct
5994 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
5995 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 5996
43ea6502 5997 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 5998 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
5999 UNSPECV_DELAY_CYCLES): new enumeration values
6000 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6001 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6002 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6003 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6004 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6005 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6006 "fmulsu"): New insns
5e60198b 6007
43ea6502
AS
6008 * config/avr/avr-c.c: fix line endings
6009 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6010 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6011 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6012 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6013 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 6014
43ea6502
AS
6015 * doc/extend.texi (AVR Built-in Functions): New node
6016 (Target Builtins): Add documentation of AVR
6017 built-in functions.
6018
8a9b55f3
GJL
60192011-04-14 Georg-Johann Lay <avr@gjlay.de>
6020
6021 PR target/44643
6022 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6023 alone. Error if non-const data has attribute progmem.
6024
94bd1825
NF
60252011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6026
6027 * tree.h (struct tree_constructor): Include tree_typed instead of
6028 tree_common.
6029 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6030 TS_TYPED instead of TS_COMMON.
6031
5e60198b 60322011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
6033
6034 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6035 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6036 (sse2_psadbw): Merge with *avx_psadbw.
6037 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6038 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6039 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6040 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6041 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6042 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6043 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6044 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6045 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6046 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6047 (ssse3_palignrti): Merge with *avx_palignrti.
6048
4b1a4694
NF
60492011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6050
6051 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6052 * tree-ssanames.c (fini_ssanames): VEC_free it.
6053 (make_ssa_name_fn): Update for VECness of free_ssanames.
6054 (release_ssa_name, release_dead_ssa_names): Likewise.
6055 * tree.h (struct tree_ssa_name): Include tree_typed instead of
6056 tree_common.
6057 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6058 TS_TYPED instead of TS_COMMON.
6059
4da3b811
NF
60602011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6061
6062 * postreload-gcse.c (gcse_after_reload_main): Add calls to
6063 statistics_counter_event.
6064 * tree-ssa-copyrename.c (stats): Define.
6065 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
6066 statistics_counter_event.
6067 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6068 (bswap_stats, widen_mul_stats): Define.
6069 (insert_reciprocals): Increment rdivs_inserted.
6070 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
6071 rfuncs_inserted. Add calls to statistics_counter_event.
6072 (execute_cse_sincos_1): Increment inserted.
6073 (execute_cse_sincos): Zeroize sincos_stats. Add call to
6074 statistics_counter_event.
6075 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
6076 of bswap_stats. Add calls to statistics_counter_event.
6077 (convert_mult_to_widen): Increment widen_mults_inserted.
6078 (convert_plusminus_to_widen): Increment maccs_inserted.
6079 (convert_mult_to_fma): Increment fmas_inserted.
6080 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
6081 calls to statistics_counter_event.
6082
89fa552a
VM
60832011-04-13 Vladimir Makarov <vmakarov@redhat.com>
6084
6085 PR rtl-optimization/48455
6086 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6087 `temp_costs->mem_cost'.
6088
03dfc36d
JH
60892011-04-13 Jan Hubicka <jh@suse.cz>
6090
6091 * ipa-inline.h: New file.
6092 * ipa-inline-analysis.c: New file. Broken out of ...
6093 * ipa-inline.c: ... this file; update toplevel comment;
6094 include ipa-inline.h
6095 (inline_summary): Move to ipa-inline.h
6096 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6097 ipa-inline-analysis.c.
7d4f8d02
EB
6098 (cgraph_estimate_time_after_inlining): Rename to
6099 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
6100 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6101 to estimate_edge_growth.
6102 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6103 rename to estimate_size_after_inlining.
6104 (cgraph_mark_inline_edge): Update for new naming convention.
6105 (cgraph_check_inline_limits): Likewise.
6106 (cgraph_edge_badness): Likewise.
6107 (cgraph_decide_recursive_inlining): Likewise.
6108 (cgraph_decide_inlining_of_small_functions): Likewise.
6109 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
6110 (cgraph_estimate_growth): Rename to estimate_growth; move to
6111 ipa-inline-analysis.c.
03dfc36d
JH
6112 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6113 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6114 (compute_inline_parameters): Likewise.
6115 (compute_inline_parameters_for_current): Likewise.
6116 (pass_inline_parameters): Likewise.
6117 (inline_indirect_intraprocedural_analysis): Likewise.
6118 (analyze_function): Rename to inline_analyze_function; likewise.
6119 (add_new_function): Move to ipa-inline-analysis.c.
6120 (inline_generate_summary): Likewise.
6121 (inline_read_summary): Likewise.
6122 (inline_write_summary): Likewise.
6123 * Makefile.in (ipa-inline-analysis.c): New file.
6124
7673c962
RO
61252011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6126
6127 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6128 * configure: Regenerate.
6129
9698252f
NF
61302011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6131
6132 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6133 instead of tree_common.
6134 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6135 Likewise.
6136 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6137 TS_TYPED rather than TS_COMMON.
6138 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6139
3a7bfdd5
GJL
61402011-04-01 Georg-Johann Lay <avr@gjlay.de>
6141
6142 PR target/45263
86d83530
GJL
6143 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6144 r20 around calls of __tablejump_elpm__
3a7bfdd5 6145
20790697
JJ
61462011-04-13 Jakub Jelinek <jakub@redhat.com>
6147
6148 PR middle-end/48591
6149 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6150 NULL.
6151 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6152
094d7661
BS
61532011-04-13 Bernd Schmidt <bernds@codesourcery.com>
6154
6155 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6156 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6157 (cfi_vec): New typedef.
6158 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6159 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6160 (cie_cfi_vec): New static variable.
6161 (cie_cfi_head): Delete.
6162 (add_cfi): Accept a cfi_vec * as first argument. All callers and
6163 declaration changed. Use vector rather than list operations.
6164 (new_cfi): Don't initialize the dw_cfi_next field.
6165 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6166 rather than list operations.
6167 (lookup_cfa): Use vector rather than list operations.
6168 (output_cfis): New argument upto. Accept a cfi_vec rather than
6169 a dw_cfi_ref list head as argument. All callers changed.
6170 Iterate over the vector using upto as a maximum index.
6171 (output_all_cfis): New static function.
6172 (output_fde): Use vector rather than list operations. Use the
6173 new upto argument for output_cfis rather than manipulating a
6174 list.
6175 (dwarf2out_begin_prologue): Change initializations to match
6176 new struct members.
6177 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6178 from the vector length rather than searching for the end of a list.
6179 Use output_all_cfis.
6180 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6181
673a5740
NC
61822011-04-13 Nick Clifton <nickc@redhat.com>
6183
6184 * config/rx/rx.md (movmemsi): Do not use this pattern when
6185 volatile pointers are involved.
6186
1ee8b298
UB
61872011-04-13 Uros Bizjak <ubizjak@gmail.com>
6188
6189 * config/i386/sse.md (pinsrbits): Remove.
6190 (sse2_packsswb): Merge with *avx_packsswb.
6191 (sse2_packssdw): Merge with *avx_packssdw.
6192 (sse2_packuswb): Merge with *avx_packuswb.
6193 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6194 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6195 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6196 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6197 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6198 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6199 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6200 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6201 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6202 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6203 (sse2_loadld): Merge with *avx_loadld.
6204 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6205 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6206 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6207 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6208 (vec_concatv2di): Merge with *vec_concatv2di_avx.
6209
81f653d6
NF
62102011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6211
6212 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6213 calling TREE_CHAIN.
6214 * print-tree.c (print_node): Likewise.
6215 * tree-inline.c (copy_tree_r): Likewise.
6216 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6217 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6218 instead of TS_COMMON.
6219 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6220 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6221 (copy_node_stat): Zero TREE_CHAIN only if necessary.
6222 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6223 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6224 ...and these...
6225 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6226 * tree.h: ...here.
6227 (TREE_CHAIN): Check for a TS_COMMON structure.
6228 (TREE_TYPE): Check for a TS_TYPED structure.
6229
748f7574 62302011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
6231
6232 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6233 cgraph_get_create_node instead of cgraph_node.
6234
eb345401
NP
62352011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6236
6237 * c-parser.c (c_parser_initelt): Updated call to
6238 objc_build_message_expr.
6239 (c_parser_postfix_expression): Likewise.
6240
a6c46762
KT
62412011-04-12 Kai Tietz <ktietz@redhat.com>
6242
6243 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6244 MASK_MS_BITFIELD_LAYOUT bit.
6245
b4ccfed9
JJ
62462011-04-12 Jakub Jelinek <jakub@redhat.com>
6247
6248 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6249 assert it is always true.
6250 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6251 moves.
6252
0d8a2528
NP
62532011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6254
6255 * c-parser.c (c_lex_one_token): Rewritten conditional used when
6256 compiling Objective-C to be more efficient.
6257
06bd234a
AF
62582011-04-12 Axel Freyn <axel-freyn@gmx.de>
6259
6260 * opts-common.c (decode_cmdline_options_to_array): Remove variable
6261 argv_copied.
6262
28569ac3
RS
62632011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6264
6265 * recog.h, genoutput.c, optabs.c: Revert last patch.
6266
ae59e00d
RR
62672011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6268
81b1e7eb
UB
6269 PR target/48090
6270 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 6271
cff1b7e0
RS
62722011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6273
6274 * recog.h (insn_operand_data): Add an "allows_mem" field.
6275 * genoutput.c (output_operand_data): Initialize it.
6276 * optabs.c (maybe_legitimize_operand_same_code): New function.
6277 (maybe_legitimize_operand): Use it when matching the original
6278 op->value.
6279
77059241
RS
62802011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6281
6282 * genpreds.c (process_define_predicate): Move most processing
6283 to gensupport.c. Continue to validate the expression.
6284 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6285 (process_define_predicate): Move processing to gensupport.c.
6286 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6287 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6288 (compute_predicate_codes): Moved from genrecog.c. Add lineno
6289 argument.
6290 (valid_predicate_name_p): New function, split out from old
6291 genpreds.c:process_define_predicate.
6292 (process_define_predicate): New function, combining code from
6293 old genpreds.c and genrecog.c functions.
6294 (process_rtx): Call it for DEFINE_PREDICATE and
6295 DEFINE_SPECIAL_PREDICATE.
6296
6308e208
RS
62972011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6298
6299 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6300 size of a '%A' memory reference.
6301 (T_DREG, T_QREG): New neon_builtin_type_bits.
6302 (arm_init_neon_builtins): Assert that the load and store operands
6303 are neon_struct_operands.
6304 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6305 (NEON_ARG_MEMORY): New builtin_arg.
6306 (neon_dereference_pointer): New function.
6307 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6308 Handle NEON_ARG_MEMORY.
6309 (arm_expand_neon_builtin): Update after above interface changes.
6310 Use NEON_ARG_MEMORY for loads and stores.
6311 * config/arm/predicates.md (neon_struct_operand): New predicate.
6312 * config/arm/iterators.md (V_two_elem): Tweak formatting.
6313 (V_three_elem): Use BLKmode for accesses that have no associated mode.
6314 (V_four_elem): Tweak formatting.
6315 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6316 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6317 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6318 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6319 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6320 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6321 (neon_vst4<mode>): Replace pointer operand with a memory operand.
6322 Use %A in the output template.
6323 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6324 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6325 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6326 the width of the memory access. Remove post-increment.
6327 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6328
e5db8f2f
NC
63292011-04-12 Nick Clifton <nickc@redhat.com>
6330
6331 * config/v850/v850.c (expand_prologue): Do not use the CALLT
6332 instruction for interrupt handlers if the target is the basic V850
6333 architecture.
6334 (expand_epilogue): Likewise.
6335
74f091d6
JJ
63362011-04-12 Jakub Jelinek <jakub@redhat.com>
6337
6338 PR rtl-optimization/48549
6339 * combine.c (propagate_for_debug): Also stop after BB_END of
6340 this_basic_block. Process LAST and just stop processing after it.
6341 (combine_instructions): If last_combined_insn has been deleted,
6342 set last_combined_insn to its PREV_INSN.
6343
f20ca725
RG
63442011-04-12 Richard Guenther <rguenther@suse.de>
6345
6346 PR tree-optimization/46076
6347 * gimple.h (struct gimple_statement_call): Add fntype field.
6348 (gimple_call_fntype): Adjust.
6349 (gimple_call_set_fntype): New function.
6350 * gimple.c (gimple_build_call_1): Set the call function type.
6351 * gimplify.c (gimplify_call_expr): Preserve the function
6352 type the frontend used for the call.
6353 (gimplify_modify_expr): Likewise.
6354 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6355 function type.
6356 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6357 function type.
6358 * tree-ssa.c (useless_type_conversion_p): Function pointer
6359 conversions are useless.
6360
a358e188
MJ
63612011-04-12 Martin Jambor <mjambor@suse.cz>
6362
6363 * cgraph.h (cgraph_node): Remove function declaration.
6364 (cgraph_create_node): Declare.
6365 (cgraph_get_create_node): Likewise.
6366 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6367 Updated all callers.
6368 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6369 the decl does not already exist. Call cgraph_get_create_node instead
6370 of cgraph_node.
6371 (cgraph_get_create_node): New function.
6372 (cgraph_same_body_alias): Update comment.
6373 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6374 assert it does not return NULL.
6375 (cgraph_update_edges_for_call_stmt): Likewise.
6376 (cgraph_clone_edge): Likewise.
6377 (cgraph_create_virtual_clone): Likewise.
6378 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6379 instead of cgraph_node.
6380 (cgraph_add_new_function): Call cgraph_create_node or
6381 cgraph_get_create_node instead of cgraph_node.
6382 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6383 instead of cgraph_node.
6384 (record_eh_tables): Likewise.
6385 (mark_address): Likewise.
6386 (mark_load): Likewise.
6387 (build_cgraph_edges): Call cgraph_get_create_node instead
6388 of cgraph_node.
6389 (rebuild_cgraph_edges): Likewise.
6390 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6391 instead of cgraph_node.
6392 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6393 cgraph_node.
6394 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6395 cgraph_create_node instead of cgraph_node.
6396 * c-decl.c (finish_function): Call cgraph_get_create_node instead
6397 of cgraph_node.
6398 * lto-cgraph.c (input_node): Likewise.
6399 * lto-streamer-in.c (input_function): Likewise.
6400 * varasm.c (mark_decl_referenced): Likewise.
6401 (assemble_alias): Likewise.
6402
fe660d7b
MJ
64032011-04-12 Martin Jambor <mjambor@suse.cz>
6404
6405 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6406 instead of cgraph_node and assert it does not return NULL.
6407 * lto-streamer-in.c (lto_read_body): Likewise.
6408 * omp-low.c (new_omp_context): Likewise.
6409 (create_task_copyfn): Likewise.
6410 * tree-emutls.c (lower_emutls_function_body): Likewise.
6411 * matrix-reorg.c (transform_allocation_sites): Likewise.
6412
bae5cddf
JJ
64132011-04-12 Jakub Jelinek <jakub@redhat.com>
6414
6415 PR c/48552
6416 * c-typeck.c (build_asm_expr): Error out on attempts to use
6417 void type outputs or inputs for constraints that allow reg or
6418 don't allow memory.
6419
06eb52ca
CLT
64202011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
6421 Richard Earnshaw <rearnsha@arm.com>
6422
6423 PR target/48250
6424 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6425 to use sign-magnitude offsets. Reject unsupported unaligned
6426 cases. Add detailed description in comments.
6427 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6428 condition from TARGET_32BIT to TARGET_ARM.
6429
648a616b
NF
64302011-04-11 Nathan Froyd <froydnj@codesourcery.com>
6431
6432 * tree.h (struct typed_tree): New.
6433 (struct tree_common): Include it instead of tree_base.
6434 (TREE_TYPE): Update for new location of type field.
6435 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6436 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6437 (union tree_node): Add typed field.
6438 * treestruct.def (TS_TYPED): New.
6439 * lto-streamer.c (check_handled_ts_structures): Handle it.
6440 * tree.c (MARK_TS_TYPED): New macro.
6441 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6442
1e6d1da0
EB
64432011-04-11 Eric Botcazou <ebotcazou@adacore.com>
6444
6445 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6446 (force_nonfallthru): Do not alter the loop nest if no basic block
6447 was created.
6448
64492011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
6450
6451 * config/i386/sse.md (VI): New mode iterator.
6452 (SSEMODEI): Remove.
6453 (AVX256MODEI): Ditto.
6454 (AVXMODEF4P): Ditto.
6455 (avxvecpsmode): Ditto.
6456 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
6457 (sse2_andnot<mode>3): New expander.
6458 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6459 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
6460 (<any_logic:code><mode>3): Use VI mode iterator.
6461 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6462 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
6463 (*andnottf3): Handle AVX three-operand constraints.
6464 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6465
b1372d5d 64662011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 6467 Robert Millan <rmh@gnu.org>
b1372d5d
JM
6468
6469 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6470 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6471 GNU_USER_DYNAMIC_LINKER64): Define.
6472 (REG_NAME): Don't undefine.
6473 (MD_UNWIND_SUPPORT): Undefine.
6474 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6475 (REG_NAME): Don't undefine.
6476 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 6477 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 6478
761c0c6e
JM
64792011-04-11 Joseph Myers <joseph@codesourcery.com>
6480
6481 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6482 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6483
26e0228f
XDL
64842011-04-11 Xinliang David Li <davidxl@google.com>
6485
6486 * value-profile.c (check_ic_target): New function.
6487 (gimple_ic_transform): Sanity check indirect call target.
6488 * gimple-low.c (gimple_check_call_args): Interface change.
6489 (gimple_check_call_matching_types): New function.
6490 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
6491
64922011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
6493
6494 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6495 tree-pretty-print.h & realmpfr.h.
6496
a58dfa49
VM
64972011-04-11 Vladimir Makarov <vmakarov@redhat.com>
6498
6499 PR middle-end/48464
6500 * ira.c (setup_pressure_classes): Fix typo in loop condition.
6501 (setup_allocno_and_important_classes): Ditto.
6502
107fd1c1
JM
65032011-04-11 Joseph Myers <joseph@codesourcery.com>
6504
6505 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6506 GNU_USER_DYNAMIC_LINKER.
6507 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6508 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6509 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6510 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6511 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6512 GNU_USER_TARGET_OS_CPP_BUILTINS.
6513 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6514 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6515 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6516 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6517 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6518 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6519 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6520 GNU_USER_TARGET_OS_CPP_BUILTINS.
6521 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6522 GNU_USER_DYNAMIC_LINKER.
6523 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6524 GNU_USER_TARGET_OS_CPP_BUILTINS.
6525 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6526 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6527 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6528 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6529 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6530 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6531 GNU_USER_DYNAMIC_LINKER64): Remove.
6532 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6533 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6534 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6535 GNU_USER_DYNAMIC_LINKER.
6536 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6537 GNU_USER_TARGET_OS_CPP_BUILTINS.
6538 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6539 GNU_USER_TARGET_OS_CPP_BUILTINS.
6540 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6541 to GNU_USER_TARGET_OS_CPP_BUILTINS.
6542 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6543 GNU_USER_TARGET_OS_CPP_BUILTINS.
6544 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6545 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6546 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6547 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6548 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6549 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6550 GNU_USER_DYNAMIC_LINKER.
6551 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6552 GNU_USER_TARGET_OS_CPP_BUILTINS.
6553 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6554 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6555 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6556 GNU_USER_DYNAMIC_LINKER.
6557 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6558 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6559 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6560 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6561 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6562 GNU_USER_DYNAMIC_LINKER.
6563 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6564 GNU_USER_DYNAMIC_LINKERN32.
6565 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6566 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
6567 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
6568 GNU_USER_DYNAMIC_LINKER32.
6569 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6570 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6571 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6572 GNU_USER_DYNAMIC_LINKER.
6573 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6574 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6575 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6576 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 6577 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
6578 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6579 GNU_USER_DYNAMIC_LINKER32.
6580 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6581 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6582 GNU_USER_DYNAMIC_LINKER.
6583 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6584 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6585 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6586 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
6587 GNU_USER_DYNAMIC_LINKER64.
6588 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6589 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6590 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6591 GNU_USER_DYNAMIC_LINKER.
6592 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6593 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6594 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6595 GNU_USER_DYNAMIC_LINKER.
6596 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6597 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6598 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6599 GNU_USER_DYNAMIC_LINKER32.
6600 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6601 GNU_USER_DYNAMIC_LINKER64.
6602 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6603 GNU_USER_DYNAMIC_LINKER64.
6604 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6605 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6606 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6607 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 6608 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 6609
e24609cf
JM
66102011-04-11 Joseph Myers <joseph@codesourcery.com>
6611
6612 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
6613 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6614 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6615 GNU_USER_DYNAMIC_LINKER.
6616 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6617 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
6618 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6619 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6620 GNU_USER_DYNAMIC_LINKER64.
6621 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6622 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6623 GNU_USER_LINK_EMULATION.
6624 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6625 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6626 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6627 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6628 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6629 CPP_SPEC, CC1_SPEC): Remove.
6630 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6631 (GNU_USER_DYNAMIC_LINKER): Define.
6632 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6633 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6634 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6635 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6636 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6637 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6638 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6639 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6640 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6641 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6642 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6643 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6644 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6645 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6646 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6647 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6648 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6649 GNU_USER_DYNAMIC_LINKER.
6650 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6651 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6652 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6653 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6654 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6655 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6656 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6657 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6658 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 6659 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 6660
b8ce4e94
KT
66612011-04-11 Kai Tietz <ktietz@redhat.com>
6662
6663 PR target/9601
6664 PR target/11772
6665 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6666 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6667 comment.
6668 (ix86_is_msabi_thiscall): Removed.
6669 (ix86_is_type_thiscall): Likewise.
6670 (ix86_get_callcvt): New function.
6671 (ix86_comp_type_attributes): Simplify check.
6672 (ix86_function_regparm): Use ix86_get_callcvt for calling
6673 convention attribute checks.
6674 (ix86_return_pops_args): Likewise.
6675 (ix86_static_chain): Likewise.
6676 (x86_this_parameter): Likewise.
6677 (x86_output_mi_thunk): Likewise.
6678 (ix86_function_type_abi): Optimize check for types without attributes.
6679 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6680 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6681 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6682 by flag-values.
6683 (IX86_BASE_CALLCVT): Helper macro.
6684 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6685 Use ix86_get_callcvt for calling convention attribute checks and avoid
6686 symbol-decoration for stdcall in TARGET_RTD case.
6687 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6688 Likewise.
6689 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6690 for declaration.
6691
798dd0ba
UB
66922011-04-11 Uros Bizjak <ubizjak@gmail.com>
6693
6694 * config/i386/sse.md (VI_128): New mode iterator.
6695 (VI12_128): Rename from SSEMODE12.
6696 (VI14_128): Rename from SSEMODE14.
6697 (VI124_128): New mode iterator.
6698 (VI24_128): Rename from SSEMODE248.
6699 (VI248_128): Rename from SSEMODE248.
6700 (SSEMODE124C8): Remove.
6701 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6702 (*sse2_<plusminus_insn><mode>3): Merge with
6703 *avx_<plusminus_insn><mode>3.
6704 (*mulv8hi3): Merge with *avx_mulv8hi3.
6705 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6706 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6707 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6708 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6709 (ashr<mode>3): Merge with *avx_ashr<mode>3.
6710 (lshr<mode>3): Merge with *avx_lshr<mode>3.
6711 (ashl<mode>3): Merge with *avx_ashl<mode>3.
6712 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6713 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6714 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6715 (*<smaxmin:code>v8hi3): Ditto.
6716 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6717 (*<smaxmin:code>v16qi3): Ditto.
6718 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6719 (*sse2_eq<mode>3): Ditto.
6720 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6721 (*sse2_gt<mode>3): Ditto.
6722 (vcondv2di): Split out of vcond<mode>.
6723 (vconduv2di): Split out of vcondu<mode>.
6724
956011be
RG
67252011-04-11 Richard Guenther <rguenther@suse.de>
6726
6727 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6728 before calling tree_low_cst.
6729
e6313a78
RG
67302011-04-11 Richard Guenther <rguenther@suse.de>
6731
6732 * stor-layout.c (layout_type): Compute all array index size operations
6733 in the original type.
6734 (initialize_sizetypes): Add comment.
6735 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6736
e69d7376
JM
67372011-04-11 Joseph Myers <joseph@codesourcery.com>
6738
6739 * common.opt (Tbss=, Tdata=, Ttext=): New options.
6740
9f9ebcdf
MJ
67412011-04-11 Martin Jambor <mjambor@suse.cz>
6742
6743 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6744 of cgraph_node, handle NULL return value.
6745 (cgraph_global_info): Likewise.
6746 (cgraph_rtl_info): Likewise.
6747 * tree-inline.c (estimate_num_insns): Likewise.
6748 * gimplify.c (unshare_body): Likewise.
6749 (unvisit_body): Likewise.
6750 (gimplify_body): Likewise.
6751 * predict.c (optimize_function_for_size_p): Likewise.
6752 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6753 (call_may_clobber_ref_p_1): Likewise.
6754 * varasm.c (function_section_1): Likewise.
6755 (assemble_start_function): Likewise.
6756
581985d7
MJ
67572011-04-11 Martin Jambor <mjambor@suse.cz>
6758
6759 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6760 of cgraph_node.
6761 * final.c (rest_of_clean_state): Likewise.
6762 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6763 * passes.c (pass_init_dump_file): Likewise.
6764 (execute_all_ipa_transforms): Likewise.
6765 (function_called_by_processed_nodes_p): Likewise.
6766 * predict.c (maybe_hot_frequency_p): Likewise.
6767 (probably_never_executed_bb_p): Likewise.
6768 (compute_function_frequency): Likewise.
6769 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6770 (unnest_nesting_tree_1): Likewise.
6771 (lower_nested_functions): Likewise.
6772 * tree-optimize.c (execute_fixup_cfg): Likewise.
6773 (tree_rest_of_compilation): Likewise.
6774 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6775 * tree-sra.c (ipa_early_sra): Likewise.
6776 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6777 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6778 * ipa.c (record_cdtor_fn): Likewise.
6779 * ipa-inline.c (cgraph_early_inlining): Likewise.
6780 (compute_inline_parameters_for_current): Likewise.
6781 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6782 * ipa-pure-const.c (local_pure_const): Likewise.
6783 * ipa-split.c (split_function): Likewise.
6784 (execute_split_functions): Likewise.
6785 * cgraphbuild.c (build_cgraph_edges): Likewise.
6786 (rebuild_cgraph_edges): Likewise.
6787 (cgraph_rebuild_references): Likewise.
6788 (remove_cgraph_callee_edges): Likewise.
6789 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6790 (verify_cgraph_node): Likewise.
6791 (cgraph_analyze_functions): Likewise.
6792 (cgraph_preserve_function_body_p): Likewise.
6793 (save_inline_function_body): Likewise.
6794 (save_inline_function_body): Likewise.
6795 * tree-inline.c (copy_bb): Likewise.
6796 (optimize_inline_calls): Likewise.
6797
57dbdc5a
MJ
67982011-04-11 Martin Jambor <mjambor@suse.cz>
6799
6800 PR tree-optimization/48195
6801 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6802 ipa_check_create_edge_args.
6803 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6804 ipa_check_create_edge_args.
6805 * ipa-inline.c (inline_generate_summary): Do not call
6806 ipa_check_create_node_params and ipa_check_create_edge_args.
6807 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6808 ipa_check_create_edge_args.
6809
d108e679
AS
68102011-04-09 Anatoly Sokolov <aesok@post.ru>
6811
6812 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6813 instead of loop.
6814 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6815 * function.c (record_hard_reg_sets): Likewise.
6816 * ira.c (compute_regs_asm_clobbered): Likewise.
6817 * sched-deps.c (sched_analyze_1): Likewise.
6818 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6819
3411bc59
XDL
68202011-04-09 Xinliang David Li <davidxl@google.com>
6821
6822 PR tree-optimization/PR48484
6823 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6824 has_valid_pred lazily
6825
b365495a
DS
68262011-04-09 Duncan Sands <baldrick@free.fr>
6827
6828 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6829
68bc509a
EB
68302011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6831
6832 * combine.c (combine_validate_cost): Adjust comments. Set registered
6833 cost of I0 to zero at the end, if any.
6834
041e059f
XDL
68352011-04-08 Xinliang David Li <davidxl@google.com>
6836
68bc509a
EB
6837 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6838 to insane profile data.
041e059f 6839
444b3995
XDL
68402011-04-08 Xinliang David Li <davidxl@google.com>
6841
6842 * ipa-cp.c (ipcp_update_profiling): Correct
6843 negative scale factor due to insane profile data.
6844
6a801cf2
XDL
68452011-04-08 Xinliang David Li <davidxl@google.com>
6846
6847 * final.c (dump_basic_block_info): New function.
6848 (final): Dump basic block.
6849 (final_scan_insn): Remove old dump.
6850
d5f3624e
SK
68512011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
6852
68bc509a
EB
6853 PR target/47829
6854 * config.gcc (i386-*-freebsd): Disable unwind table generation for
6855 crtbegin/crtend.
d5f3624e 6856
42821aff
MM
68572011-04-08 Michael Matz <matz@suse.de>
6858
6859 PR middle-end/48389
6860 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6861 functions.
6862 (rebuild_jump_labels): Call rebuild_jump_labels_1.
6863 * rtl.h (rebuild_jump_labels_chain): Declare.
6864 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6865 insns inserted on edges.
6866
ad7be009
JM
68672011-04-08 Joseph Myers <joseph@codesourcery.com>
6868
6869 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6870 * config/arm/arm-arches.def: New.
6871 * config/arm/arm-opts.h: New.
6872 * config/arm/genopt.sh: New.
6873 * config/arm/arm-tables.opt: New (generated).
6874 * config/arm/arm.c (arm_handle_option, arm_target_help,
6875 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6876 (all_architectures): Get most table contents from arm-arches.def.
6877 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6878 arm_selected_tune here.
6879 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6880 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6881 (march=, mcpu=, mtune=): Use Enum and Var.
6882 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6883 (arm.o): Update dependencies.
ecbb6fb7 6884
42821aff 68852011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
6886
6887 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6888 of header_file.
6889 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6890 (write_typed_alloc_defns): Likewise.
6891 (main): Calls write_typed_alloc_defns with output_header.
6892
8d189b3f
VM
68932011-04-08 Vladimir Makarov <vmakarov@redhat.com>
6894
68bc509a 6895 PR inline-asm/48435
8d189b3f
VM
6896 * ira-color.c (setup_profitable_hard_regs): Add comments.
6897 Don't take prohibited hard regs into account.
6898 (setup_conflict_profitable_regs): Rename to
6899 get_conflict_profitable_regs.
6900 (check_hard_reg_p): Check prohibited hard regs.
6901
44f370bf
NF
69022011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6903
6904 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6905 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6906 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6907
483d7ad3
JDA
69082011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6909
6910 PR target/48366
6911 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 6912 move from floating point to shift amount register.
483d7ad3
JDA
6913 (emit_move_sequence): Remove secondary reload support for floating
6914 point to shift amount amount register copies.
6915 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6916 amount register copies.
6917 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6918 register, return false if mode isn't a scalar integer mode.
6919 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6920
97e03fa1
RG
69212011-04-08 Richard Guenther <rguenther@suse.de>
6922
6923 * gimple.c (gimple_call_flags): Remove kludge.
6924
9d40778b
AM
69252011-04-08 Alexander Monakov <amonakov@ispras.ru>
6926
6927 * sel-sched.c (sel_region_init): Move call to
6928 sel_setup_region_sched_flags after setup_current_loop_nest.
6929
19ac7892
AB
69302011-04-08 Andrey Belevantsev <abel@ispras.ru>
6931
6932 PR rtl-optimization/48272
19ac7892
AB
6933 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
6934 init_insn_reg_pressure_info. Adjust a caller.
6935 * sched-int.h (init_insn_reg_pressure_info): Declare.
6936 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
6937 when sched-pressure is enabled.
6938
0f8c63cc
RG
69392011-04-08 Richard Guenther <rguenther@suse.de>
6940
6941 * gimple.c (gimple_set_modified): Do not queue calls to
6942 MODIFIED_NORETURN_CALLS here ...
6943 * tree-ssa-operands.c (update_stmt_operands): ... but here.
6944
5e5a425e
RG
69452011-04-08 Richard Guenther <rguenther@suse.de>
6946
6947 PR lto/48467
6948 * toplev.c (lang_dependent_init): Do not open asm_out_file
6949 in WPA mode, nor perform debug machinery initialization.
6950 (finalize): Do not unlink asm_out_file in WPA mode.
6951
9bfc434b
RG
69522011-04-08 Richard Guenther <rguenther@suse.de>
6953
6954 * gimple.h (gimple_call_fntype): New function.
6955 (gimple_call_return_type): Use it.
6956 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
6957 * gimple-low.c (gimple_check_call_args): Likewise.
6958 * gimple.c (gimple_call_flags): Likewise.
6959 (gimple_call_arg_flags): Likewise.
6960 (gimple_call_return_flags): Likewise.
6961 * tree-cfg.c (verify_gimple_call): Likewise.
6962 (do_warn_unused_result): Likewise.
6963 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
6964 * value-prof.c (gimple_ic_transform): Fix fndecl check.
6965
7c1f0b40
DM
69662011-04-08 Dmitry Melnik <dm@ispras.ru>
6967
6968 PR rtl-optimization/48235
6969 * sel-sched.c (code_motion_process_successors): Recompute the last
6970 insn in basic block if control flow changed.
6971 (code_motion_path_driver): Ditto. Recompute the first insn as well.
6972 Update condition for ilist_remove.
6973
ea4d630f
AM
69742011-04-08 Alexander Monakov <amonakov@ispras.ru>
6975
6976 PR rtl-optimization/48302
6977 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
6978 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
6979 it to record added preheader blocks.
6980 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
6981 on to sel_add_loop_preheaders.
6982 (sel_region_init): Move call to setup_current_loop_nest after
6983 sel_init_bbs.
6984
07643d76
AM
69852011-04-08 Alexander Monakov <amonakov@ispras.ru>
6986
6987 PR target/48273
6988 * cfgloop.h (loop_has_exit_edges): New helper.
6989 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
6990 non-clonable.
6991 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
6992 that have no exit edges.
6993
1f3b2b4e
AM
69942011-04-08 Alexander Monakov <amonakov@ispras.ru>
6995
6996 PR rtl-optimization/48442
6997 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
6998 all callers. Adjust assert.
6999
554f1948
JJ
70002011-04-08 Jakub Jelinek <jakub@redhat.com>
7001
7002 PR tree-optimization/48377
7003 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7004 is_packed to true even for types with smaller TYPE_ALIGN than
7005 TYPE_SIZE.
7006
ddf72388
RG
70072011-04-08 Richard Guenther <rguenther@suse.de>
7008
7009 PR bootstrap/48513
7010 * doc/tm.texi: Re-generate.
7011
0c27e2d8
WG
70122011-04-08 Wei Guozhi <carrot@google.com>
7013
7014 PR target/47855
7015 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7016 * config/arm/arm.c (arm_attr_length_push_multi): New function.
7017 * config/arm/arm.md (*push_multi): Change the length computation to
7018 call a C function.
7019
07c5f94e
AS
70202011-04-08 Anatoly Sokolov <aesok@post.ru>
7021
7022 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7023 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7024 * doc/tm.texi: Regenerate.
7025 * system.h (ASM_OUTPUT_BSS): Poison.
7026 * varasm.c (asm_output_bss): Remove function.
7027 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 7028
07c5f94e
AS
7029 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7030 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7031 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7032 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7033 Likewise.
7034 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7035 Likewise.
7036 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7037 Likewise.
7038 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7039
5f2c36e1
JM
70402011-04-07 Joseph Myers <joseph@codesourcery.com>
7041
7042 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7043 EnumValue lines.
7044
39e7722b
JM
70452011-04-07 Joseph Myers <joseph@codesourcery.com>
7046
7047 * config/m68k/m68k.c (m68k_handle_option): Don't handle
7048 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7049 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7050 OPT_mcpu32.
7051 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7052 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7053 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7054 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7055 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7056 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7057 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7058 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7059 options. Don't map other m68k options manually. Don't handle
7060 old-style options as canonical.
7061 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 7062 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 7063
cf103ca4
EB
70642011-04-07 Eric Botcazou <ebotcazou@adacore.com>
7065
7066 * basic-block.h (force_nonfallthru): Move to...
7067 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7068 (force_nonfallthru): ...here.
7069 * cfghooks.c (force_nonfallthru): New function.
7070 * cfgrtl.c (force_nonfallthru): Rename into...
7071 (rtl_force_nonfallthru): ...this.
7072 (commit_one_edge_insertion): Do not set AUX field.
7073 (commit_edge_insertions): Do not discover new basic blocks.
7074 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7075 (cfg_layout_rtl_cfg_hooks): Likewise.
7076 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7077 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
7078 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7079
14431f58
AS
70802011-04-07 Anatoly Sokolov <aesok@post.ru>
7081
7082 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7083 Remove macros.
7084
3729983c
UB
70852011-04-07 Uros Bizjak <ubizjak@gmail.com>
7086
7087 * config/i386/sse.md: Update copyright year.
7088 (avxcvtvecmode): Remove.
7089 (sse_movhlps): Merge with *avx_movhlps.
7090 (sse_movlhps): Merge with *avx_movlhps.
7091 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7092 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7093 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7094 (sse_loadhps): Merge with *avx_loadhps.
7095 (sse_storelps): Merge with *avx_storelps.
7096 (sse_loadlps): Merge with *avx_loadlps.
7097 (sse_movss): Merge with *avx_movss.
7098 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7099 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7100 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7101 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7102 (vec_set<mode>_0): Ditto.
7103 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7104 (sse4_1_insertps): Merge with *avx_insertps.
7105 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7106 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7107 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7108 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7109 (sse2_storehpd): Merge with *avx_storehpd.
7110 (sse2_loadhpd): Merge with *avx_loadhpd.
7111 (sse2_loadlpd): Merge with *avx_loadlpd.
7112 (sse2_movsd): Merge with *avx_movsd.
7113 (*vec_concatv2df): Merge with *vec_concatv2df.
7114
4e626909
JJ
71152011-04-07 Jakub Jelinek <jakub@redhat.com>
7116
7117 PR debug/48343
7118 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 7119 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
7120 (try_combine): Add last_combined_insn parameter, pass it instead of
7121 i3 to propagate_for_debug.
7122
3729983c 71232011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
7124
7125 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7126 to handle MDR <-> data register transfers.
7127 (movhi_internal): Likewise.
7128
20c03367
AM
71292011-04-07 Alan Modra <amodra@gmail.com>
7130
7131 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7132 previous stack info.
7133
bf22920b
TV
71342011-04-07 Tom de Vries <tom@codesourcery.com>
7135
7136 PR target/43920
7137 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
7138 flow_find_cross_jump. Swap variables to implement backward replacement.
7139 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7140
823918ae
TV
71412011-04-07 Tom de Vries <tom@codesourcery.com>
7142
7143 PR target/43920
7144 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
7145 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
7146 and bb2.
7147 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7148 src1 or src2. Redirect edges to the last basic block. Update
7149 frequency and count on multiple basic blocks in case of fallthru.
823918ae 7150
472c95f5
TV
71512011-04-07 Tom de Vries <tom@codesourcery.com>
7152
7153 PR target/43920
7154 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7155 function.
3729983c
UB
7156 (old_insns_match_p): Change return type. Replace return false/true
7157 with return dir_none/dir_both. Use can_replace_by.
7158 (flow_find_cross_jump): Add dir_p parameter. Init replacement
7159 direction from dir_p. Register replacement direction in dir, last_dir
7160 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
7161 merge_dir. Return replacement direction in dir_p.
7162 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7163 return type of old_insns_match_p.
7164 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7165 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7166 flow_find_cross_jump.
7167 * basic-block.h (enum replace_direction): New type.
7168 (flow_find_cross_jump): Add parameter to declaration.
7169
a95d4000
UB
71702011-04-06 Uros Bizjak <ubizjak@gmail.com>
7171
7172 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7173 (AVXMODEDCVTPS2DQ): Ditto.
7174 (VEC_FLOAT_MODE): Ditto.
7175 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
7176 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7177 (<any_logic:code><mode>3): Use VF mode iterator.
7178 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7179 Use VF mode iterator.
7180 (copysign<mode>3): Use VF mode iterator.
7181 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
7182 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7183 (*<any_logic:code><MODEF:mode>3): Merge with
7184 *avx_<any_logic:code><MODEF:mode>3.
7185 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7186 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7187 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7188 (avx_cvtdq2ps<avxmodesuffix>): Remove.
7189 (sse2_cvtdq2ps): Use %v modifier.
7190 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7191 (avx_cvtps2dq<avxmodesuffix>): Remove.
7192 (sse2_cvtps2dq): Use %v modifier.
7193 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7194 (avx_cvttps2dq<avxmodesuffix>): Remove.
7195 (sse2_cvttps2dq): Use %v modifier.
7196 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7197 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7198 (sse2_cvtsd2siq): Fix insn template.
7199 (sse2_cvtsd2siq_2): Ditto.
7200 (sse2_cvttsd2siq): Ditto.
7201 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7202 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7203
ad01c437
JM
72042011-04-06 Joseph Myers <joseph@codesourcery.com>
7205
7206 * gcov-io.c: Use GCC Runtime Library Exception.
7207
fe846284
JJ
72082011-04-06 Jakub Jelinek <jakub@redhat.com>
7209
7210 PR debug/48466
7211 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7212 as base_reg whatever register reg has been eliminated to, instead
7213 of hardcoding STACK_POINTER_REGNUM.
7214
acce4e77
JM
72152011-04-06 Joseph Myers <joseph@codesourcery.com>
7216
7217 * doc/tm.texi.in: Document C target hooks as separate from general
7218 target hooks.
7219 * doc/tm.texi: Regenerate.
7220 * genhooks.c (struct hook_desc): Add docname field.
7221 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
7222 docname field.
7223 (hook_array): Include c-target.def.
7224 (emit_documentation): Use docname field in output.
7225 (emit_init_macros): Take docname argument. Only emit definitions
7226 for hooks matching docname.
7227 (main): Expect additional arguments in all cases. Pass argument
7228 to emit_init_macros.
7229 * target.def: Move initial macro definitions and comments to
7230 target-hooks-macros.h.
7231 (gcc_targetcm): Move to c-family/c-target.def.
7232 * target.h (targetcm): Move declaration to c-family/c-target.h.
7233 * targhooks.c (default_handle_c_option): Move to
7234 c-family/c-opts.c.
7235 * targhooks.h (default_handle_c_option): Move declaration to
7236 c-family/c-common.h.
7237 * target-hooks-macros.h: New file.
7238 * config.gcc (target_has_targetcm): Define and use to add to
7239 c_target_objs and cxx_target_objs.
7240 * config/default-c.c: New file.
7241 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7242 of target.h and target-def.h.
7243 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7244 (darwin_objc_construct_string, darwin_cfstring_ref_p,
7245 darwin_check_cfstring_format_arg): Make static.
7246 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7247 TARGET_STRING_OBJECT_REF_TYPE_P,
7248 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7249 * config/darwin-protos.h (darwin_objc_construct_string,
7250 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7251 declare.
7252 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7253 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 7254 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
7255 * config/t-darwin (darwin-c.o): Update dependencies.
7256 * system.h (TARGET_HAS_TARGETCM): Poison.
7257 * Makefile.in (TARGET_H): Update.
7258 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7259 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7260 (default-c.o): New target.
7261 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 7262 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
7263 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
7264 c-target.def.
7265 (build/genhooks.o): Update dependencies.
7266
275b4baa 72672011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 7268
275b4baa
RG
7269 * ipa-inline.c (enum inlining_mode): Remove.
7270 (cgraph_flatten): Use some other token.
7271 (cgraph_edge_early_inlinable_p): New function, split out from ...
7272 (cgraph_perform_always_inlining): New function, split out from ...
7273 (cgraph_decide_inlining_incrementally): ... here.
7274 (cgraph_mark_inline_edge): Adjust.
7275 (cgraph_early_inlining): Re-structure.
7276 (pass_early_inline): Require SSA form.
7277
f15b8bdf 72782011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
7279 Julian Brown <julian@codesourcery.com>
7280 Mark Shinwell <shinwell@codesourcery.com>
7281
7282 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7283 LO_REGS only for Thumb-1.
7284 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7285 be used in short instructions when optimising for size on Thumb-2.
7286
516426da
EB
72872011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7288
7289 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7290 associated with user returns to be preserved.
7291
96621ebf
TG
72922011-04-06 Tristan Gingold <gingold@adacore.com>
7293
f15b8bdf
EB
7294 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7295 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
7296 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7297 if XCOFF_DEBUGGING_INFO.
7298
07c0852e
UB
72992011-04-06 Uros Bizjak <ubizjak@gmail.com>
7300
7301 * config/i386/i386.md (attribute isa): New.
7302 (attribute enabled): New.
7303 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7304 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7305 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7306 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7307 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7308 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7309 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7310 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7311
7312 * config/i386/sse.md (VF): New mode iterator.
7313 (VF1): Ditto.
7314 (VF2): Ditto.
7315 (VF_128): Ditto.
7316 (SSEMODEF4): Remove.
7317 (attribute sse): Handle V8SF and V4DF modes.
7318 (<absneg:code><mode>2): Use VF mode iterator.
7319 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
7320 mode iterator.
7321 (<plusminus_insn><mode>3): Use VF mode iterator.
7322 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7323 Use VF mode iterator.
7324 (<sse>_vm<plusminus_insn><mode>3): Merge with
7325 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
7326 (mul<mode>3): Use VF mode iterator.
7327 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
7328 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
7329 mode iterator.
7330 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7331 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7332 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
7333 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
7334 mode iterator.
7335 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7336 Use VF1 mode iterator.
7337 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7338 (sqrt<VF2:mode>2): New expander.
7339 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7340 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7341 and sqrtv2df2. Use VF mode iterator.
7342 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
7343 mode iterator.
7344 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7345 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7346 Use VF1 mode iterator.
7347 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7348 (<smaxmin:code><mode>3): Use VF mode iterator.
7349 (*<smaxmin:code><mode>3_finite): Merge with
7350 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
7351 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7352 (<sse>_vm<smaxmin:code><mode>2): Merge with
7353 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
7354 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
7355 mode iterator.
7356 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
7357 mode iterator.
7358 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7359 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7360 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7361 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7362 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
7363 VF mode iterator.
7364 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7365 Use VF_128 mode iterator.
7366 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
7367 mode iterator.
7368 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
7369 VF_128 mode iterator.
7370 (vcond<mode>): Use VF mode iterator.
7371 * config/i386/predicates.md (sse_comparison_operator): Merge with
7372 avx_comparison_float_operator. Do not declare as special_predicate.
7373 * config/i386/i386.c (struct builtin_description): Update for renamed
7374 compare patterns.
7375 (ix86_expand_args_builtin): Ditto.
7376 (ix86_expand_sse_compare_mask): Ditto.
7377
ff5d142c
RG
73782011-04-06 Richard Guenther <rguenther@suse.de>
7379
7380 * tree-inline.c (estimate_num_insns): For calls simply account
7381 for all passed arguments and a used return value.
7382
d7d1d041 73832011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 7384
d7d1d041
RG
7385 PR tree-optimization/47663
7386 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7387 call_stmt_time fields.
7388 (cgraph_edge_inlinable_p): Declare.
7389 (cgraph_edge_recursive_p): New inline function.
7390 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7391 (cgraph_clone_edge): Copy it.
7392 * ipa-inline.c (cgraph_estimate_edge_time): New function.
7393 Account for call stmt time.
7394 (cgraph_estimate_time_after_inlining): Take edge argument.
7395 (cgraph_estimate_edge_growth): Account call stmt size.
7396 (cgraph_estimate_size_after_inlining): Take edge argument.
7397 (cgraph_mark_inline_edge): Adjust.
7398 (cgraph_check_inline_limits): Likewise.
7399 (cgraph_recursive_inlining_p): Remove.
7400 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7401 (cgraph_decide_recursive_inlining): Take edge argument and
7402 adjust.
7403 (cgraph_decide_inlining_of_small_functions): Do not avoid
7404 diags for recursive inlining here.
7405 (cgraph_flatten): Adjust.
7406 (cgraph_decide_inlining_incrementally): Likewise.
7407 (estimate_function_body_sizes): Remove call cost handling.
7408 (compute_inline_parameters): Initialize caller edge call costs.
7409 (cgraph_estimate_edge_growth): New function.
7410 (cgraph_estimate_growth): Use it.
7411 (cgraph_edge_badness): Likewise.
7412 (cgraph_check_inline_limits): Take an edge argument.
7413 (cgraph_decide_inlining_of_small_functions): Adjust.
7414 (cgraph_decide_inlining): Likewise.
7415 * tree-inline.c (estimate_num_insns): Only account for call
7416 return value if it is used.
7417 (expand_call_inline): Avoid diagnostics on recursive inline
7418 functions here.
7419 * lto-cgraph.c (lto_output_edge): Output edge call costs.
7420 (input_edge): Input edge call costs.
7421
2feb95f7
RO
74222011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7423
7424 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7425
26fbd9c2
JW
74262011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
7427
7428 * doc/invoke.texi (Spec Files): Fix typo.
7429
694dc0ca
EB
74302011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7431
7432 * profile.c (branch_prob): Move declaration of local variable. Remove
7433 obsolete ??? comment. Expand the location explicitly instead of using
7434 the LOCATION_FILE and LOCATION_LINE macros.
7435
4925d0d5
WG
74362011-04-06 Wei Guozhi <carrot@google.com>
7437
7438 PR target/47855
7439 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7440 (arm_cond_branch): Likewise.
7441 (arm_cond_branch_reversed): Likewise.
7442 (arm_jump): Likewise.
7443 (push_multi): Likewise.
7444 * config/arm/constraints.md (Py): New constraint.
7445
f55dfa2f
NF
74462011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7447
7448 PR bootstrap/48471
7449 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7450 Move these...
7451 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7452 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7453 #ifdef DBX_DEBUGGING_INFO.
7454
fca96842
BS
74552011-04-05 Bernd Schmidt <bernds@codesourcery.com>
7456
7457 PR bootstrap/48403
7458 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7459 if old and new states differ.
7460
30b83e38
JM
74612011-04-05 Joseph Myers <joseph@codesourcery.com>
7462
7463 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7464 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7465 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7466 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7467 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7468 mcfv4e): Use Alias.
7469 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7470 ColdFire options to -mcpu= options.
7471
277a9aa5
JL
74722011-04-05 Jeff Law <law@redhat.com>
7473
7474 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7475 check if BB is a successor of LOOP->header and return
7476 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7477
c1e2610e
SB
74782011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7479
7480 * cprop.c (struct reg_use): Remove.
7481 (reg_use_table): Make an array of RTX.
7482 (find_used_regs, constprop_register, local_cprop_pass,
7483 bypass_block): Simplify users of reg_use_table.
7484 (cprop_insn): Likewise. Iterate if copy propagation succeeded
7485 on one of the uses found by find_used_regs.
7486
e532f586
NF
74872011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7488
7489 PR bootstrap/48469
7490 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7491 declaration.
7492
3fb7c055
NF
74932011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7494
7495 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7496 as an rtx.
7497 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7498
b71b43d9
SB
74992011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7500
7501 PR middle-end/48441
7502 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7503
b405b274
NF
75042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7505
7506 * combine.c: Include obstack.h.
7507 (struct insn_link): Define.
7508 (uid_log_links): Adjust type.
7509 (FOR_EACH_LOG_LINK): New macro.
7510 (insn_link_obstack): Declare.
7511 (alloc_insn_link): Define.
7512 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
7513 type of link variables.
7514 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7515 (try_combine, record_promoted_values, distribute_notes): Likewise.
7516 (distribute_links): Likewise. Tweak prototype.
7517 (clear_log_links): Delete.
7518 (adjust_for_new_dest): Call alloc_insn_link.
7519 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7520
6409abe3
NF
75212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7522
7523 * gcse.c (modify_mem_list): Convert to an array of VECs.
7524 (canon_modify_mem_list, compute_transp): Tweak formatting.
7525 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
7526 (load_killed_in_block_p): Likewise.
7527 (record_last_mem_set_info): Likewise.
7528 (clear_modify_mem_tables): Likewise.
7529
170d8157
TV
75302011-04-05 Tom de Vries <tom@codesourcery.com>
7531
7532 PR middle-end/48461
7533 * function.c (emit_use_return_register_into_block): Only define if
7534 HAVE_return.
7535
c5911a55
EB
75362011-04-05 Eric Botcazou <ebotcazou@adacore.com>
7537
7538 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7539
abd016e6
JM
75402011-04-05 Joseph Myers <joseph@codesourcery.com>
7541
7542 * config/rx/rx-opts.h: New.
7543 * config/rx/rx.c (rx_cpu_type): Remove.
7544 (rx_handle_option): Don't assert that global structures are in
7545 use. Access variables via opts pointer. Defer most handling of
7546 OPT_mint_register_. Use error_at.
7547 (rx_option_override): Handle deferred OPT_mint_register_ here.
7548 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7549 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7550 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7551 (rx_cpu_types): New Enum and EnumValue entries.
7552 (mint-register=): Use Defer and use Var accordingly.
7553
1ed13f83
NF
75542011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7555
7556 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7557 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7558 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7559 Move these...
7560 (debug_free_queue, debug_nesting, symbol_queue_index):
7561 ...and these...
7562 * dbxout.c: ...to here. Make static.
7563
6ce1edcf
NF
75642011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7565
7566 * gcse.c (modify_pair): Define. Define a VEC of it.
7567 (canon_modify_mem_list): Convert to an array of VECs.
7568 (free_insn_expr_list_list): Delete.
7569 (clear_modify_mem_tables): Call VEC_free instead.
7570 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7571 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7572 (canon_list_insert, compute_transp): Likewise.
7573
c201ac94
TV
75742011-04-05 Tom de Vries <tom@codesourcery.com>
7575
7576 PR target/43920
7577 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7578 for size.
7579
4c029f40
TV
75802011-04-05 Tom de Vries <tom@codesourcery.com>
7581
7582 PR target/43920
7583 * function.c (emit_use_return_register_into_block): New function.
7584 (thread_prologue_and_epilogue_insns): Use
7585 emit_use_return_register_into_block.
7586
2a562b0a
TV
75872011-04-05 Tom de Vries <tom@codesourcery.com>
7588
7589 PR target/43920
7590 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7591 insn.
7592
0248bceb
TV
75932011-04-05 Tom de Vries <tom@codesourcery.com>
7594
7595 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7596
ffa94123
YZ
75972011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
7598
798dd0ba
UB
7599 * config/arm/arm.md (define_constants for unspec): Replace with
7600 define_c_enum.
7601 (define_constants for unspecv): Replace with define_c_enum.
7602 * config/arm/neon.md (define_constants for unspec): Replace with
7603 define_c_enum.
ffa94123 7604
3b8f9b46
RH
76052011-04-04 Richard Henderson <rth@redhat.com>
7606
720cf80f 7607 PR bootstrap/48400
3b8f9b46
RH
7608 * dwarf2out.c (output_line_info): Always emit line info from
7609 at least one section.
7610 (dwarf2out_init): Create text_section_line_info here ...
7611 (set_cur_line_info_table): ... not here.
7612
720cf80f 76132011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
7614
7615 PR target/48380
7616 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 7617 not called.
e5b0e1ca 7618
720cf80f 7619 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 7620
196565d4
SB
76212011-04-04 Steven Bosscher <steven@gcc.gnu.org>
7622
b77f9eab
SB
7623 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7624 (expr_equiv_p): Remove.
7625 (insert_set_in_table): Look at <dest, src> pair instead of expr.
7626 (hash_scan_set): Update call to insert_set_in_table.
7627 (dump_hash_table): Dump <dest, src> pair.
7628 (lookup_set): Simplify. Lookup <dest, src> pair.
7629 (compute_transp): Remove, fold heavily simplified code into...
7630 (compute_local_properties): ...here. Expect COMP and TRANSP
7631 unconditionally.
7632 (find_avail_set): Take set directly from struct expr.
7633 (find_bypass-set): Likewise.
7634 (bypass_block): Likewise.
7635 (cprop_insn): Likewise. Remove redundant INSN_P test.
7636
384d7a55
SB
7637 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7638 checks on form of COND from find_implicit_sets to here.
7639 (find_implicit_sets): Cleanup control flow. Split critical edges
7640 if it exposes implicit sets. Allocate/resize implicit_sets as
7641 necessary.
7642 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7643 changed something. Run df_analyze after find_implicit_sets if any
7644 edges were split. Do not allocate implicit_sets here.
7645
3084ce69
SB
7646 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7647 (gcse_obstack): Renamed to cprop_obstack.
7648 (GNEW, GNEWVEC, GNEWVAR): Remove.
7649 (gmalloc): Remove.
7650 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7651 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7652 (gcse_alloc): Likewise, and rename to cprop_alloc.
7653 (alloc_gcse_men, free_gcse_mem): Remove.
7654 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7655 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7656 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7657
196565d4
SB
7658 * cprop.c (oprs_not_set_p): Remove.
7659 (mark_set, mark_clobber): Remove.
7660 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7661 (reg_not_set_p): New function.
7662 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7663 (cprop_insn): Likewise.
7664 (cprop_jump): Use FOR_EACH_EDGE.
7665
9b69cf83
BS
76662011-04-04 Bernd Schmidt <bernds@codesourcery.com>
7667
7668 PR bootstrap/48403
7669 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7670 (rank_for_schedule): Use scheduled_insns vector instead of
7671 last_scheduled_insn.
7672 (ok_for_early_queue_removal): Likewise.
7673 (queue_to_ready): Search forward in nonscheduled_insns_begin if
7674 we have a dbg_cnt.
7675 (choose_ready): Likewise.
7676 (commit_schedule): Use VEC_iterate.
7677 (schedule_block): Initialize nonscheduled_insns_begin. If we have
7678 a dbg_cnt, use it and ensure the first insn is in the ready list.
7679 (haifa_sched_init): Allocate scheduled_insns.
7680 (sched_extend_ready_list): Don't allocate it; reserve space.
7681 (haifa_sched_finish): Free it.
7682
24f48c2f
JM
76832011-04-04 Joseph Myers <joseph@codesourcery.com>
7684
7685 * optc-gen.awk: Always remove type from Variable entry before
7686 recording in var_seen.
7687
8effe856
EB
76882011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7689
7690 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7691 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7692 call to tidy_fallthru_edges.
7693
413519ae
JM
76942011-04-04 Joseph Myers <joseph@codesourcery.com>
7695
7696 * doc/options.texi (ToLower): Document.
3729983c 7697 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
7698 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7699 * opts.h (cl_option): Add cl_tolower field.
7700 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7701 arguments with lowercase strings.
7702 * config/rx/rx.opt (mcpu=): Add ToLower.
7703 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7704 argument.
7705
7d34a1b0
RS
77062011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7707
7708 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7709
c30e7434
RS
77102011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7711
7712 * config/vax/vax.c: Include reload.h.
7713
112a861d
AS
77142011-04-04 Anatoly Sokolov <aesok@post.ru>
7715
7716 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7717 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7718 (sparc_preferred_reload_class): New function.
7719
e8c6bb74
JJ
77202011-04-04 Jakub Jelinek <jakub@redhat.com>
7721
2aeaa366 7722 PR debug/48401
e8c6bb74
JJ
7723 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7724 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7725
2c081caf
NF
77262011-04-03 Nathan Froyd <froydnj@codesourcery.com>
7727
7728 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7729 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7730
53802f27
AS
77312011-04-03 Anatoly Sokolov <aesok@post.ru>
7732
7733 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7734 (ASM_OUTPUT_ALIGNED_BSS): Define.
7735
e89964e3
MM
77362011-04-03 Michael Matz <matz@suse.de>
7737
7738 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7739 and next_slot members.
7740 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7741 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7742 (lto_streamer_cache_append): Declare.
7743 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7744 unsigned index, remove offset parameter, ensure that we append
7745 or update existing entries.
7746 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7747 parameter, update next_slot for append.
7748 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7749 parameter.
7750 (lto_streamer_cache_insert_at): Likewise.
7751 (lto_streamer_cache_append): New function.
7752 (lto_streamer_cache_lookup): Use unsigned index.
7753 (lto_streamer_cache_get): Likewise.
7754 (lto_record_common_node): Don't test tree_node_can_be_shared.
7755 (preload_common_node): Adjust call to lto_streamer_cache_insert.
7756 (lto_streamer_cache_delete): Don't free offsets member.
7757 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7758 (lto_output_string_with_length): Use lto_output_data_stream.
7759 (lto_output_tree_header): Remove ix parameter, don't write it.
7760 (lto_output_builtin_tree): Likewise.
7761 (lto_write_tree): Adjust callers to above, don't track and write
7762 offset, write unsigned index.
7763 (output_unreferenced_globals): Don't emit all global vars.
7764 (write_global_references): Use unsigned indices.
7765 (lto_output_decl_state_refs): Likewise.
7766 (write_symbol): Likewise.
7767 * lto-streamer-in.c (lto_input_chain): Move earlier.
7768 (input_function): Use unsigned index.
7769 (input_alias_pairs): Don't read and then ignore all global vars.
7770 (lto_materialize_tree): Remove ix_p parameter, don't read index,
7771 don't pass it back, use lto_streamer_cache_append.
7772 (lto_register_var_decl_in_symtab): Use unsigned index.
7773 (lto_register_function_decl_in_symtab): Likewise.
7774 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7775 index.
7776 (lto_get_builtin_tree): Don't read index, use
7777 lto_streamer_cache_append.
7778 (lto_read_tree): Adjust call to lto_materialize_tree.
7779
7780 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7781 don't use function calls in arguments to MIN.
7782
7783 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7784 twice.
7785
7786 * gimple.c (gimple_type_leader_entry): Mark deletable.
7787
b9a5b5b2
AM
77882011-04-03 Alan Modra <amodra@gmail.com>
7789
7790 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7791
ac6a641b
MM
77922011-04-03 Michael Matz <matz@suse.de>
7793
7794 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7795 an integer.
7796 * tree.h (tree_decl_non_common.vindex): Adjust comment.
7797
0038d4e0
MM
77982011-04-03 Michael Matz <matz@suse.de>
7799
e9c18386 7800 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
7801 * gimple-fold.c (canonicalize_constructor_val): Accept being called
7802 without function context.
7803 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7804 current_function_decl and cfun.
7805
91f2fae8
MM
78062011-04-03 Michael Matz <matz@suse.de>
7807
7808 * tree.c (decl_init_priority_insert): Don't create entry for
7809 default priority.
7810 (decl_fini_priority_insert): Ditto.
7811 (fields_compatible_p, find_compatible_field): Remove.
7812 * tree.h (fields_compatible_p, find_compatible_field): Remove.
7813 * gimple.c (gimple_compare_field_offset): Adjust block comment.
7814
da29e070
EB
78152011-04-03 Eric Botcazou <ebotcazou@adacore.com>
7816
7817 * combine.c (try_combine): Remove useless local variable.
7818
4979c28b 78192011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 7820 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
7821
7822 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7823 non-variable offsets and compare the remaining bases of the two
7824 accesses instead of looking for exact same data-ref.
7825
b4ddcaee
KT
78262011-04-02 Kai Tietz <ktietz@redhat.com>
7827
f90298e1
KT
7828 PR target/48416
7829 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7830
b4ddcaee
KT
7831 * i386.c (ix86_is_msabi_thiscall): New helper function.
7832 (ix86_is_type_thiscall): New helper function.
7833 (ix86_comp_type_attributes): Handle thiscall for method-functions
7834 special.
7835 (init_cumulative_args): Likewise.
7836 (find_drap_reg): Likewise.
7837 (ix86_static_chain): Likewise.
7838 (x86_this_parameter): Likewise.
7839 (x86_output_mi_thunk): Likewise.
7840
2a9d769a 78412011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
7842 Nicolas Setton <setton@adacore.com>
7843 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
7844
7845 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7846 (add_gnat_descriptive_type_attribute): New function.
7847 (gen_array_type_die): Call it.
7848 (gen_enumeration_type_die): Likewise.
7849 (gen_struct_or_union_type_die): Likewise.
7850 (modified_type_die): Likewise.
7851 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7852 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7853 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7854
15a03a11
JJ
78552011-04-01 Jakub Jelinek <jakub@redhat.com>
7856
7857 PR bootstrap/48148
7858 * dwarf2out.c (resolve_addr): Don't call force_decl_die
7859 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7860
7861 Revert:
7862 2011-03-17 Richard Guenther <rguenther@suse.de>
7863
7864 PR bootstrap/48148
7865 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7866 origin for decls in other ltrans units.
7867 (input_varpool_node): Likewise.
7868
19228b93
JJ
78692011-04-01 Jakub Jelinek <jakub@redhat.com>
7870
7871 PR middle-end/48335
7872 * expr.c (expand_assignment): Handle all possibilities
7873 if TO_RTX is CONCAT.
e9c18386 7874 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
7875 (store_split_bit_field): If SUBREG_REG (op0) or
7876 op0 itself has smaller mode than word, return it
7877 for offset 0 and const0_rtx for out-of-bounds stores.
7878 If word is const0_rtx, skip it.
7879
88cb339e
N
78802011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
7881
7882 * config/h8300/h8300.c (print_operand_address): Rename to...
7883 (h8300_print_operand_address): ...this. Make static. Adjust comments.
7884 Call h8300_print_operand and h8300_print_operand_address instead of
7885 print_operand and print_operand_address. Declare.
7886 (print_operand): Renake to...
7887 (h8300_print_operand): ...this. Make static. Adjust comments.
7888 Call h8300_print_operand instead of print_operand. Declare.
7889 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7890 (h8300_register_move_cost): Likewise.
7891 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7892 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7893 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7894 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7895 * config/h8300/h8300-protos.h (print_operand): Delete.
7896 (print_operand_address): Delete.
7897
756d6ee9
RH
78982011-04-01 Richard Henderson <rth@redhat.com>
7899
7900 PR 48400
7901 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7902 in strict mode before dwarf4. Re-order tests to early out
7903 before switching sections.
7904
ceaaaeab
NF
79052011-04-01 Nathan Froyd <froydnj@codesourcery.com>
7906
7907 * config/h8300/constraints.md: New file.
7908 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
7909 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7910 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7911 * config/h8300/predicates.md (bit_operand): Likewise.
7912 (incdec_operand): Use satisfies_constraint_M and
7913 satisfies_constraint_O. Don't use C code block.
7914 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7915 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7916 (compute_mov_length): Use satisfies_constraint_G.
7917 (fix_bit_operand): Use satisfies_constraint_U.
7918 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7919 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7920 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7921 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7922 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7923 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7924 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7925 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
7926 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
7927 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
7928 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
7929 (EXTRA_MEMORY_CONSTRAINT): Delete.
7930
08ae38e0
AP
79312011-04-01 Andrew Pinski <pinskia@gmail.com>
7932 Michael Meissner <meissner@linux.vnet.ibm.com>
7933
7934 PR target/48262
7935 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
7936 operands, as per the specifications.
7937
7938 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
7939 (vec_extract_evenv4sf): Ditto.
7940 (vec_extract_evenv8hi): Ditto.
7941 (vec_extract_evenv16qi): Ditto.
7942 (vec_extract_oddv4si): Ditto.
7943
bdb0b0f6
MW
79442011-03-31 Mark Wielaard <mjw@redhat.com>
7945
7946 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
7947 high_pc attribute if the CU has no associated code. Only output
7948 DW_AT_entry_pc for CU if not generating strict dwarf and
7949 dwarf_version < 4.
7950
722279e4
BS
79512011-04-01 Bernd Schmidt <bernds@codesourcery.com>
7952
7953 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
7954 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
7955 out of ...
7956 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
7957 * final.c (final_start_function): Call the new function rather
7958 than using a NULL argument for dwarf2out_frame_debug.
7959
c5dd277d
BS
7960 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
7961 that contains the prologue.
7962
ec4efea9
BS
7963 * haifa-sched.c (queue_insn): New arg REASON. All callers
7964 changed. Print it in debugging output.
7965
2a6a0d80
BS
7966 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
7967
86014d07
BS
7968 * sched-ebb.c (begin_schedule_ready): Remove second argument.
7969 Split most of the code into...
7970 (begin_move_insn): ... here. New function.
7971 (ebb_sched_info): Add a pointer to it.
7972 * haifa-sched.c (scheduled_insns): New static variable.
7973 (sched_extend_ready_list): Allocate it.
7974 (schedule_block): Use it to record the order of scheduled insns.
7975 Perform RTL changes to move insns only after all scheduling
7976 decisions have been made.
7977 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
7978 begin_move_insn field.
7979 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7980 * sched-int.h (struct haifa_sched_info): Remove second argument
7981 from begin_schedule_ready hook. Add new member begin_move_insn.
7982 * sched-rgn.c (begin_schedule_ready): Remove second argument.
7983 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
7984
9d701248
BS
7985 * haifa-sched.c (prune_ready_list): New function, broken out of
7986 schedule_block.
7987 (schedule_block): Use it.
7988
1ca1dad5
UW
79892011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7990
7991 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
7992
49568e45
KT
79932011-04-01 Kai Tietz <ktietz@redhat.com>
7994
7995 * config.gcc (*-*-mingw*): Allow as option the
7996 posix threading model.
07c0852e 7997 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
7998 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
7999 definition.
8000 (CPP_SPEC): Add pthread/no-pthread handling.
8001 (LIB_SPEC): Likewise.
8002 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8003 (LIB_SPEC): Likewise.
8004 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8005 flag to pass -pthread option for shared libgcc build.
8006 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8007 for shared libgcc build.
8008 * config/i386/t-mingw-pthread: New file.
8009 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8010 New define to enable use of library pthread by default.
8011 * config/i386/mingw.opt (pthread): New driver option.
8012 (no-pthread): New driver option.
e9c18386 8013 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
8014 * config/i386/mingw-w64.opt: Likewise.
8015
748f7574 80162011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
8017
8018 * c-decl.c (grokdeclarator): Fix formatting.
8019
f04713ee
RS
80202011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8021
8022 * expr.c (emit_block_move_via_movmem): Use n_generator_args
8023 instead of n_operands.
8024 (set_storage_via_setmem): Likewise.
8025 * optabs.c (maybe_gen_insn): Likewise.
8026 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8027 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8028 (mips_expand_builtin_direct): Likewise.
8029 * config/spu/spu.c (expand_builtin_args): Likewise.
8030
b29387ee
RS
80312011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8032
8033 * recog.h (insn_data_d): Add n_generator_args.
8034 * genoutput.c (data): Likewise.
8035 (output_insn_data): Print it.
8036 (max_opno, num_dups): Delete.
8037 (scan_operands): Just fill in "d->operand[...]".
8038 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8039
e792559a
RS
80402011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8041
8042 * gensupport.h (pattern_stats): New structure.
8043 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8044 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8045 (max_operand_1, max_operand_vec): Delete.
8046 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8047
e8110d6f
NF
80482011-03-31 Nathan Froyd <froydnj@codesourcery.com>
8049
8050 * emit-rtl.c (emit_pattern_after_setloc): New function.
8051 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8052 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8053 (emit_pattern_after): New function.
8054 (emit_insn_after, emit_jump_insn_after): Call it.
8055 (emit_call_insn_after, emit_debug_insn_after): Likewise.
8056 (emit_pattern_before_setloc): New function.
8057 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8058 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8059 Likewise.
8060 (emit_pattern_before): New function.
8061 (emit_insn_before, emit_jump_insn_before): Call it.
8062 (emit_call_insn_before, emit_debug_insn_before): Likewise.
8063
576f85f1
RH
80642011-03-31 Richard Henderson <rth@redhat.com>
8065
8066 * dwarf2out.c (dw_separate_line_info_ref): Remove.
8067 (dw_separate_line_info_entry): Remove.
8068 (enum dw_line_info_opcode): New.
8069 (dw_line_info_entry): Use it.
8070 (dw_line_info_table, dw_line_info_table_p): New.
8071 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8072 (line_info_table, line_info_label_num): Remove.
8073 (line_info_table_in_use): Remove.
8074 (separate_line_info_table): Remove.
8075 (separate_line_info_table_allocated): Remove.
8076 (separate_line_info_table_in_use): Remove.
8077 (LINE_INFO_TABLE_INCREMENT): Remove.
8078 (line_info_label_num): New.
8079 (cur_line_info_table): New.
8080 (text_section_line_info, cold_text_section_line_info): New.
8081 (separate_line_info): New.
8082 (SEPARATE_LINE_CODE_LABEL): Remove.
8083 (print_dwarf_line_table): Remove.
8084 (debug_dwarf): Don't dump it.
8085 (output_one_line_info_table): New.
8086 (output_line_info): Use it.
8087 (new_line_info_table): New.
8088 (set_cur_line_info_table): New.
8089 (dwarf2out_switch_text_section): Use it.
8090 (dwarf2out_begin_function): Likewise.
8091 (push_dw_line_info_entry): New.
8092 (dwarf2out_source_line): Rewrite for new line info tables.
8093 (dwarf2out_init): Remove dead initailizations.
8094
300d83d9
JM
80952011-03-31 Joseph Myers <joseph@codesourcery.com>
8096
8097 * opts.h (cl_option): Add comments to fields. Add bit-fields for
8098 various flags.
8099 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8100 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8101 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8102 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8103 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8104 * opt-functions.awk (flag_init, switch_bit_fields): New.
8105 (switch_flags): Don't handle flags moved to bit-fields. Don't
8106 generate CL_MISSING_OK or CL_SAVE.
8107 * optc-gen.awk: Update to generate bit-field output as well as
8108 flags field.
8109 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8110 bit-field instead of CL_REJECT_DRIVER flag.
8111 * opts-common.c (generate_canonical_option,
8112 decode_cmdline_option): Use bit-fields instead of CL_* flags.
8113 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8114 instead of CL_REJECT_NEGATIVE flag.
8115 * toplev.c (print_switch_values): Use cl_report bit-field instead
8116 of CL_REPORT flag.
8117
d4d73ce2
EB
81182011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8119
8120 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8121 a zero minimum index only if it is redundant.
8122
b8faca75
VM
81232011-03-31 Vladimir Makarov <vmakarov@redhat.com>
8124
8125 PR rtl-optimization/48381
8126 * ira-color.c (assign_hard_reg): Use hard reg set intersection
8127 instead of ira_class_hard_reg_index for calculating conflicting
8128 hard registers.
8129
7d11cebe
SB
81302011-03-31 Steven Bosscher <steven@gcc.gnu.org>
8131
8132 * cprop.c: Clean up hash table building.
8133 (reg_avail_info): Remove.
8134 (oprs_available_p): Remove.
8135 (record_last_reg_set_info): Remove.
8136 (record_last_set_info): Remove.
8137 (reg_available_p): New function.
8138 (gcse_constant_p): Do not treat unfolded conditions as constants.
8139 (make_set_regs_unavailable): New function.
8140 (hash_scan_set): Simplify with new reg_available_p.
8141 (compute_hash_table_work): Traverse insns stream only once.
8142 Do not compute reg_avail_info. Traverse insns in reverse order.
8143 Record implicit sets after recording explicit sets from the block.
8144
98faf84f
MM
81452011-03-31 Michael Matz <matz@suse.de>
8146
e9c18386 8147 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 8148
f52d97da
AS
81492011-03-31 Anatoly Sokolov <aesok@post.ru>
8150
8151 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8152 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8153 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8154 (h8300_mode_dependent_address_p): New function.
8155 (h8300_get_index): Make static.
8156
e16b6fd0
JL
81572011-03-31 Jeff Law <law@redhat.com>
8158
10c51983
JL
8159 * reload1.c (elimination_effects): Fix typo in recent change.
8160
e9c18386 8161 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
8162 typo potentially leading to null pointer dereference.
8163
8164 * caller-save.c (new_saved_hard_reg): Eliminate return value.
8165 (setup_save_areas): Corresponding changes to avoid useless
8166 assignments.
8167
8168 * jump.c (reversed_comparison_code_parts): Avoid successive return
8169 statements when REVERSE_CONDITION is defined.
8170
8171 * expr.c (expand_assignment): Avoid useless assignments.
8172 (expand_expr_real_1): Likewise.
8173 (expand_expr_real_2): Avoid useless statements.
8174
8175 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8176
8177 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8178
8179 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8180 statements.
8181
8182 * stmt.c (expand_expr_stmt): Avoid useless assignment.
8183
eb1eb914
JM
81842011-03-31 Joseph Myers <joseph@codesourcery.com>
8185
8186 PR target/47109
8187 * doc/tm.texi.in (TARGET_VERSION): Remove.
8188 * doc/tm.texi: Regenerate.
8189 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8190 * collect2.c (main): Don't use TARGET_VERSION.
8191 * mips-tdump.c (main): Don't use TARGET_VERSION.
8192 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 8193 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
8194 * config/rs6000/vxworksae.h: Remove.
8195 * config/alpha/alpha.h (TARGET_VERSION): Remove.
8196 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8197 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8198 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8199 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8200 * config/arm/arm.h (TARGET_VERSION): Remove.
8201 * config/arm/coff.h (TARGET_VERSION): Remove.
8202 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8203 * config/arm/elf.h (TARGET_VERSION): Remove.
8204 * config/arm/freebsd.h (TARGET_VERSION): Remove.
8205 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8206 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8207 * config/arm/pe.h (TARGET_VERSION): Remove.
8208 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8209 * config/arm/semi.h (TARGET_VERSION): Remove.
8210 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8211 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8212 * config/arm/vxworks.h (TARGET_VERSION): Remove.
8213 * config/avr/avr.h (TARGET_VERSION): Remove.
8214 * config/bfin/bfin.h (TARGET_VERSION): Remove.
8215 * config/fr30/fr30.h (TARGET_VERSION): Remove.
8216 * config/frv/frv.h (TARGET_VERSION): Remove.
8217 * config/h8300/h8300.h (TARGET_VERSION): Remove.
8218 * config/i386/cygwin.h (TARGET_VERSION): Remove.
8219 * config/i386/darwin.h (TARGET_VERSION): Remove.
8220 * config/i386/darwin64.h (TARGET_VERSION): Remove.
8221 * config/i386/djgpp.h (TARGET_VERSION): Remove.
8222 * config/i386/freebsd.h (TARGET_VERSION): Remove.
8223 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8224 * config/i386/gnu.h (TARGET_VERSION): Remove.
8225 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8226 * config/i386/i386elf.h (TARGET_VERSION): Remove.
8227 * config/i386/linux.h (TARGET_VERSION): Remove.
8228 * config/i386/linux64.h (TARGET_VERSION): Remove.
8229 * config/i386/lynx.h (TARGET_VERSION): Remove.
8230 * config/i386/mingw32.h (TARGET_VERSION): Remove.
8231 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8232 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8233 * config/i386/netware.h (TARGET_VERSION): Remove.
8234 * config/i386/nto.h (TARGET_VERSION): Remove.
8235 * config/i386/openbsd.h (TARGET_VERSION): Remove.
8236 * config/i386/vxworks.h (TARGET_VERSION): Remove.
8237 * config/ia64/elf.h (TARGET_VERSION): Remove.
8238 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8239 * config/ia64/hpux.h (TARGET_VERSION): Remove.
8240 * config/ia64/linux.h (TARGET_VERSION): Remove.
8241 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8242 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8243 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8244 * config/lm32/lm32.h (TARGET_VERSION): Remove.
8245 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8246 * config/m32c/m32c.h (TARGET_VERSION): Remove.
8247 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8248 * config/m32r/m32r.h (TARGET_VERSION): Remove.
8249 * config/m68k/linux.h (TARGET_VERSION): Remove.
8250 * config/m68k/m68k.h (TARGET_VERSION): Remove.
8251 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8252 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8253 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8254 * config/mep/mep.h (TARGET_VERSION): Remove.
8255 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8256 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8257 * config/mips/iris6.h (MACHINE_TYPE): Remove.
8258 * config/mips/linux.h (TARGET_VERSION): Remove.
8259 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8260 * config/mips/vxworks.h (TARGET_VERSION): Remove.
8261 * config/mmix/mmix.h (TARGET_VERSION): Remove.
8262 * config/mn10300/linux.h (TARGET_VERSION): Remove.
8263 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8264 * config/pa/pa.h (TARGET_VERSION): Remove.
8265 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8266 * config/picochip/picochip.h (TARGET_VERSION): Remove.
8267 * config/rs6000/aix.h (TARGET_VERSION): Remove.
8268 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8269 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8270 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8271 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8272 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8273 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8274 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8275 * config/rs6000/linux.h (TARGET_VERSION): Remove.
8276 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8277 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8278 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8279 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8280 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8281 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8282 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8283 * config/s390/linux.h (TARGET_VERSION): Remove.
8284 * config/s390/s390.h (TARGET_VERSION): Remove.
8285 * config/s390/tpf.h (TARGET_VERSION): Remove.
8286 * config/score/score.h (TARGET_VERSION): Remove.
8287 * config/sh/linux.h (TARGET_VERSION): Remove.
8288 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8289 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8290 * config/sh/sh.h (TARGET_VERSION): Remove.
8291 * config/sh/sh64.h (TARGET_VERSION): Remove.
8292 * config/sh/superh.h (TARGET_VERSION): Remove.
8293 * config/sh/vxworks.h (TARGET_VERSION): Remove.
8294 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8295 * config/sparc/linux.h (TARGET_VERSION): Remove.
8296 * config/sparc/linux64.h (TARGET_VERSION): Remove.
8297 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8298 TARGET_NAME32, TARGET_NAME): Remove.
8299 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8300 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8301 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8302 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8303 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8304 * config/spu/spu.h (TARGET_VERSION): Remove.
8305 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8306 * config/v850/v850.h (TARGET_VERSION): Remove.
8307 * config/vax/linux.h (TARGET_VERSION): Remove.
8308 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8309 * config/xtensa/elf.h (TARGET_VERSION): Remove.
8310 * config/xtensa/linux.h (TARGET_VERSION): Remove.
8311
ace31bca
EB
83122011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8313
8314 PR target/48142
8315 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8316 frame-related from frame-unrelated adjustments to the stack pointer.
8317
76f9db36
JJ
83182011-03-31 Jakub Jelinek <jakub@redhat.com>
8319
8320 * common.opt (fdebug-types-section): Move earlier.
8321 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8322
b7826465
AT
83232011-03-31 Andreas Tobler <andreast@fgznet.ch>
8324
8325 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8326 var.
8327
1290e54c
NF
83282011-03-30 Nathan Froyd <froydnj@codesourcery.com>
8329
8330 * tree.h (CASE_CHAIN): Define.
8331 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8332 (gimple_redirect_edge_and_branch): Likewise.
8333
bddc98e1
VM
83342011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8335
8336 PR middle-end/48367
8337 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8338 calculation.
8339
c865e437
JL
83402011-03-30 Jeff Law <law@redhat.com>
8341
b3750213 8342 * PR bootstrap/48371
c865e437
JL
8343 * reload1.c (reload): Fix botch in last change.
8344
8345 * reload.h (struct reload): Fix typo introduced in last change.
8346
2cdf9574
JM
83472011-03-30 Joseph Myers <joseph@codesourcery.com>
8348
8349 * config/arm/arm.opt (mhard-float, msoft-float): Mark
8350 Undocumented. Remove help text.
8351 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8352 -mhard-float.
8353
666a21a2
JM
83542011-03-30 Joseph Myers <joseph@codesourcery.com>
8355
8356 * doc/options.texi (NegativeAlias): Document.
8357 (Alias): Mention NegativeAlias.
8358 * opt-functions.awk: Handle NegativeAlias.
e9c18386 8359 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
8360 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8361 * opts.h (CL_NEGATIVE_ALIAS): Define.
8362 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8363 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8364 OPT_mspe_.
8365 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8366 Alias entries.
8367 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8368 mno-spe and mno-isel instead of mspe=no and -misel=no.
8369
0fa4e351
MW
83702011-03-29 Mark Wielaard <mjw@redhat.com>
8371
8372 * common.opt (fdebug-types-section): New flag.
8373 * doc/invoke.texi: Document new -fno-debug-types-section flag.
8374 * dwarf2out.c (use_debug_types): New define.
8375 (struct die_struct): Mark die_id with GTY desc use_debug_types.
8376 (print_die): Guard output of type unit signatures using
8377 use_debug_types.
8378 (build_abbrev_table): Replace assert of dwarf_version >= 4
8379 with assert on use_debug_types.
8380 (size_of_die): Likewise.
8381 (unmark_dies): Likewise.
8382 (value_format): Decide AT_ref_external form on use_debug_types.
8383 (output_die): Replace dwarf_version version check guard with
8384 use_debug_types where appropriate.
8385 (modified_type_die): Likewise.
8386 (gen_reference_type_die): Likewise.
8387 (dwarf2out_start_source_file): Likewise.
8388 (dwarf2out_end_source_file): Likewise.
8389 (prune_unused_types_walk_attribs): Likewise.
8390 (dwarf2out_finish): Likewise.
8391
4648deb4
VM
83922011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8393
8394 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8395
4f431835
RS
83962011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8397
8398 PR rtl-optimization/48332
8399 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8400 mode of input operand N and modeN to its actual mode.
8401
f2034d06
JL
84022011-03-30 Jeff Law <law@redhat.com>
8403
8404 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8405 define accessor macro.
8406 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8407 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8408 (reg_equiv_init): Likewise.
8409 (reg_equivs_size): New variable.
8410 (reg_equiv_init_size): Remove.
8411 (allocate_initial_values): Move prototype to here from....
8412 * integrate.h (allocate_initial_values): Remove prototype.
8413 * integrate.c: Include reload.h.
8414 (allocate_initial_values): Corresponding changes.
8415 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8416 (fix_reg_equiv_init, no_equiv): Corresponding changes.
8417 (update_equiv_regs): Corresponding changes.
8418 (ira): Corresponding changes.
8419 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8420 (push_secondary_reload): Corresponding changes.
8421 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8422 (make_memloc, find_reloads_address): Corresponding changes.
8423 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8424 (find_reloads_address_1): Corresponding changes.
8425 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8426 (refers_to_regno_for_reload_p): Corresponding changes.
8427 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8428 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8429 * reload1.c: Include ggc.h.
8430 (grow_reg_equivs): New function.
8431 (replace_pseudos_in, reload): Corresponding changes.
8432 (calculate_needs_all_insns, alter_regs): Corresponding changes.
8433 (eliminate_regs_1, elimination_effects): Corresponding changes.
8434 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8435 (delete_output_reload): Likewise.
8436 * caller-save.c (mark_referenced_regs): Corresponding changes.
8437 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8438 * frv/predicates.md (frv_load_operand): Corresponding changes.
8439 * microblaze/microblaze.c (double_memory_operand): Corresponding
8440 changes.
8441 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8442 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 8443 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
8444 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8445 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8446 changes.
8447 * pa/pa.c (emit_move_sequence): Corresponding changes.
8448 * vax/vax.c (nonindexed_address_p): Corresponding changes.
8449
159b81b0
RS
84502011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8451
8452 PR target/47551
8453 * config/arm/arm.c (coproc_secondary_reload_class): Handle
8454 structure modes. Don't check neon_vector_mem_operand for
8455 vector or structure modes.
8456
a6217191
RS
84572011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8458 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8459
8460 PR target/43590
8461 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8462 operand 1 and reshuffle the operands to match.
8463 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8464
bd837408
CS
84652011-03-30 Christian Schüler <cschueler@gmx.de>
8466
6955d771 8467 PR driver/48208
bd837408 8468 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 8469
6955d771 8470 PR driver/48260
bd837408
CS
8471 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8472 handler function.
8473 * config/darwin.opt: Added '-arch' option.
8474
e9c0470a
NC
84752011-03-30 Nick Clifton <nickc@redhat.com>
8476
8477 * config/rx/rx.md: Add peepholes and patterns to combine
8478 extending loads and simple arithmetic instructions.
8479 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
8480 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8481 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 8482 modes to use pre-decrement and post-increment addressing.
e9c18386 8483 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 8484 addresses.
e9c18386
UB
8485 (rx_print_operand): Add support for %Q. Fix handling of %Q.
8486 (rx_memory_move_cost): Adjust cost of stores.
8487 (rx_adjust_insn_length): New function.
e9c0470a 8488
8a87e7ab
JJ
84892011-03-30 Jakub Jelinek <jakub@redhat.com>
8490
8491 PR c/48305
8492 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8493 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8494 matching arg00/arg01 types.
8495
12486e03
EB
84962011-03-30 Eric Botcazou <ebotcazou@adacore.com>
8497
8498 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8499 last_location to UNKNOWN_LOCATION.
8500
0b99eef6
L
85012011-03-30 H.J. Lu <hongjiu.lu@intel.com>
8502
8503 PR target/48349
8504 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8505 FLOAT_SSE_REGS.
8506
023592aa
JM
85072011-03-30 Joseph Myers <joseph@codesourcery.com>
8508 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8509
8510 PR bootstrap/48337
8511 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8512 Init(PROCESSOR_V7).
8513 (sparc_cpu): Likewise.
8514 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8515 PROCESSOR_V7.
8516
ad3b266b
VM
85172011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8518
8519 PR target/48336
8520 PR middle-end/48342
8521 PR rtl-optimization/48345
8522 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8523 hard regs for given mode from profitable regs when doing secondary
8524 allocation.
8525
633c9126
JL
85262011-03-29 Jeff Law <law@redhat.com>
8527
8528 PR bootstrap/48327
8529 * tree-ssa-threadupdate.c (struct redirection_data): Remove
8530 do_not_duplicate field.
8531 (lookup_redirection_data): Corresponding changes.
8532 (create_duplicates): Always create a template block.
8533 (redirect_edges): Remove code which reused the original block
8534 when it was going to become unreachable code.
8535 (thread_block): Don't set do_not_duplicate field.
8536
eb50f63a
JM
85372011-03-29 Joseph Myers <joseph@codesourcery.com>
8538
8539 * lto-opts.c (register_user_option_p, lto_register_user_option):
8540 Make type argument unsigned.
8541 * lto-streamer.h (lto_register_user_option): Make type argument
8542 unsigned.
8543 * opth-gen.awk: Make CL_* macros unsigned.
8544 * opts-common.c (find_opt): Make lang_mask argument unsigned.
8545 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8546 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8547 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8548 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8549 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8550 (find_opt): Make lang_mask argument unsigned.
8551
76763a6d
VM
85522011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8553
8554 PR rtl-optimization/48331
8555 PR rtl-optimization/48334
8556 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8557 for any used algorithm.
8558
5c82436e
VM
85592011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8560
8561 * ira-conflicts.c (build_object_conflicts): Add unused attribute
8562 to parent_max.
8563
7a81008b
UB
85642011-03-29 Uros Bizjak <ubizjak@gmail.com>
8565
8566 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8567 (alpha_option_override): Don't set alpha_sr_alias_set.
8568 (emit_frame_store_1): Use gen_frame_mem rather than calling
8569 set_mem_alias_set.
8570 (alpha_expand_epilogue): Ditto.
8571
86c8d1f6
IR
85722011-03-29 Ira Rosen <ira.rosen@linaro.org>
8573
8574 PR tree-optimization/48290
8575 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8576 vectorization, check that relevant phis in the basic block after
8577 the inner loop are really inner loop's exit phis.
8578
0d12220f
RS
85792011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
8580
e8cf17e7 8581 PR debug/48190
0d12220f
RS
8582 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8583 (cached_dw_loc_list_def): New structure.
8584 (cached_dw_loc_list): New typedef.
8585 (cached_dw_loc_list_table): New variable.
8586 (cached_dw_loc_list_table_hash): New function.
8587 (cached_dw_loc_list_table_eq): Likewise.
8588 (add_location_or_const_value_attribute): Take a bool cache_p.
8589 Cache the list when the parameter is true.
8590 (gen_formal_parameter_die): Update caller.
8591 (gen_variable_die): Likewise.
8592 (dwarf2out_finish): Likewise.
8593 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8594 while generating debug info for the decl.
8595 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8596 (dwarf2out_init): Initialize cached_dw_loc_list_table.
8597 (resolve_addr): Cache the result of resolving a chain of
8598 location lists.
8599
1756cb66
VM
86002011-03-28 Vladimir Makarov <vmakarov@redhat.com>
8601
8602 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8603 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 8604
1756cb66
VM
8605 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8606 after regstat_init_n_sets_and_refs.
8607
8608 * ira.c: Add more comments at the top.
8609 (setup_stack_reg_pressure_class, setup_pressure_classes):
8610 Add comments how we compute the register pressure classes.
8611 (setup_allocno_and_important_classes): Add more comments.
8612 (setup_class_translate_array, reorder_important_classes)
8613 (setup_reg_class_relations): Add comments.
8614
8615 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
8616 start of the file.
8617
8618 * ira-color.c: Add 2011 to the Copyright line.
8619 (assign_hard_reg): Add more comments.
8620 (improve_allocation): Ditto.
8621
8622 * ira-costs.c: Add 2011 to the Copyright line.
8623 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8624 comments.
8625 (setup_regno_cost_classes_by_mode): Ditto.
8626
8627 Initial patches from ira-improv branch:
8628
8629 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8630
f60c2554 8631 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
8632 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
8633 (ira_create_allocno): Remove initialization of
8634 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8635 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8636 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8637 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8638 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8639 Initialize ALLOCNO_ADD_DATA.
8640 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8641 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8642 ALLOCNO_REG.
8643 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
8644 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8645
8646 * ira.c (ira_reallocate): Remove.
8647 (setup_pressure_classes): Call
8648 ira_init_register_move_cost_if_necessary. Use
8649 ira_register_move_cost instead of ira_get_register_move_cost.
8650 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8651 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8652
8653 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8654 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8655 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8656 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8657 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8658 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8659 Fix formatting.
7a81008b 8660 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
8661 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8662 (struct allocno_color_data): New.
8663 (allocno_color_data_t): New typedef.
8664 (allocno_color_data): New definition.
8665 (ALLOCNO_COLOR_DATA): New macro.
8666 (struct object_color_data): New.
8667 (object_color_data_t): New typedef.
8668 (object_color_data): New definition.
8669 (OBJECT_COLOR_DATA): New macro.
8670 (update_copy_costs, calculate_allocno_spill_cost): Call
8671 ira_init_register_move_cost_if_necessary. Use
8672 ira_register_move_cost instead of ira_get_register_move_cost.
8673 (move_spill_restore, update_curr_costs): Ditto.
8674 (allocno_spill_priority): Make it inline.
7a81008b 8675 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
8676 (struct coalesce_data, coalesce_data_t): New.
8677 (allocno_coalesce_data): New definition.
8678 (ALLOCNO_COALESCE_DATA): New macro.
8679 (merge_allocnos, coalesced_allocno_conflict_p): Use
8680 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8681 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8682 (coalesce_allocnos): Ditto.
8683 (setup_coalesced_allocno_costs_and_nums): Ditto.
8684 (collect_spilled_coalesced_allocnos): Ditto.
8685 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8686 (setup_slot_coalesced_allocno_live_ranges): Ditto.
8687 (coalesce_spill_slots): Ditto.
8688 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
8689 free allocno_coalesce_data.
8690
8691 * ira-conflicts.c: Fix formatting.
8692 (process_regs_for_copy): Call
8693 ira_init_register_move_cost_if_necessary. Use
8694 ira_register_move_cost instead of ira_get_register_move_cost.
8695 (build_object_conflicts): Optimize.
8696
8697 * ira-costs.c (record_reg_classes): Optimize. Call
8698 ira_init_register_move_cost_if_necessary. Use
8699 ira_register_move_cost, ira_may_move_in_cost, and
8700 ira_may_move_out_cost instead of ira_get_register_move_cost and
8701 ira_get_may_move_cost.
8702 (record_address_regs): Ditto.
8703 (scan_one_insn): Optimize.
8704 (find_costs_and_classes): Optimize.
8705 (process_bb_node_for_hard_reg_moves): Call
8706 ira_init_register_move_cost_if_necessary. Use
8707 ira_register_move_cost instead of ira_get_register_move_cost.
8708
8709 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8710 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8711 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8712 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8713 definitions.
8714 (ira_initiate_emit_data, ira_finish_emit_data)
8715 (create_new_allocno): New functions.
7a81008b 8716 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
8717 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8718 Use ira_register_move_cost instead of ira_get_register_move_cost.
8719
8720 * ira-int.h: Fix some comments.
7a81008b
UB
8721 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8722 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
8723 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8724 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
8725 add_data.
8726 (struct ira_allocno): Make mode and aclass a bitfield. Move other
8727 bitfield after mode. Make hard_regno a short int. Make
8728 hard_regno short. Remove first_coalesced_allocno and
8729 next_coalesced_allocno. Move mem_optimized_dest_p,
8730 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8731 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
8732 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8733 temp, colorable_p. Add new member add_data.
8734 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8735 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8736 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8737 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8738 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8739 (ALLOCNO_ADD_DATA): New macro.
8740 (ira_emit_data_t): New typedef.
8741 (struct ira_emit_data): New. Move mem_optimized_dest_p,
8742 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8743 from struct ira_allocno.
8744 (ALLOCNO_EMIT_DATA): New macro.
8745 (ira_allocno_emit_data, allocno_emit_reg): New.
8746 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 8747 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
8748 (OBJECT_ADD_DATA): New macro.
8749 (ira_reallocate): Remove.
8750 (ira_initiate_emit_data, ira_finish_emit_data): New.
8751 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8752 (ira_init_register_move_cost_if_necessary): New.
8753 (ira_object_conflict_iter_next): Merge into
8754 ira_object_conflict_iter_cond.
7a81008b 8755 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 8756
f60c2554 8757 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
8758 ira_init_register_move_cost_if_necessary. Use
8759 ira_register_move_cost instead of ira_get_register_move_cost.
8760
8761 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8762
8763 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8764
8765 * ira-costs.c: Fix formatting.
8766 (cost_classes, cost_classes_num): Remove.
8767 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8768 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8769 (cost_classes_del, cost_classes_htab): New.
8770 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8771 (initiate_regno_cost_classes, setup_cost_classes): New.
8772 (setup_regno_cost_classes_by_aclass): New.
7a81008b 8773 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
8774 (record_reg_classes): Use regno_cost_classes instead of
8775 cost_classes. Move checking opposite operand up.
8776 (record_address_regs): Use regno_cost_classes
8777 instead of cost_classes.
8778 (scan_one_insn): Ditto. Use always general register.
8779 (print_allocno_costs): Use regno_cost_classes instead of
8780 cost_classes.
8781 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
8782 (find_costs_and_classes): Set up cost classes for each registers.
8783 Use also their mode for this. Use regno_cost_classes instead of
8784 cost_classes.
8785 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8786 cost_classes.
8787 (free_ira_costs, ira_init_costs): Don't use cost_classes.
8788 (ira_costs, ira_set_pseudo_classes): Call
8789 initiate_regno_cost_classes and finish_regno_cost_classes.
8790
8791 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
8792
8793 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8794
8795 * target.def (ira_cover_classes): Remove.
8796
7a81008b 8797 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
8798
8799 * doc/tm.texi.in: Ditto.
8800
8801 * ira-conflicts.c: Remove mentioning cover classes from the file.
8802 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 8803 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
8804
8805 * targhooks.c (default_ira_cover_classes): Remove.
8806
8807 * targhooks.h (default_ira_cover_classes): Ditto.
8808
8809 * haifa-sched.c: Remove mentioning cover classes from the file.
8810 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8811 ira_pressure_classes and ira_pressure_classes_num instead of
8812 ira_reg_class_cover_size and ira_reg_class_cover. Use
8813 sched_regno_pressure_class instead of sched_regno_cover_class.
8814 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8815 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8816
8817 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
8818 classes from the file.
8819 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8820 (struct object_hard_regs, struct object_hard_regs_node): New.
8821 (struct ira_object): New members profitable_hard_regs,
8822 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8823 (struct ira_allocno): Rename cover_class to aclass. Rename
8824 cover_class_cost and updated_cover_class_cost to class_cost and
8825 updated_class_cost. Remove splay_removed_p and
8826 left_conflict_size. Add new members colorable_p.
8827 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8828 (ALLOCNO_COLORABLE_P): New macro.
8829 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8830 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8831 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8832 (OBJECT_...): Rename parameter C to O.
8833 (OBJECT_PROFITABLE_HARD_REGS): New macro.
8834 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8835 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8836 (struct target_ira_int): New members x_ira_max_memory_move_cost,
8837 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8838 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8839 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8840 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
8841 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
8842 x_ira_reg_class_subunion.
8843 (ira_max_memory_move_cost, ira_max_register_move_cost)
8844 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8845 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8846 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 8847 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
8848 (ira_reg_class_union): Rename to ira_reg_class_subunion.
8849 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8850 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8851 (ira_tune_allocno_costs_and_cover_classes): Rename to
8852 ira_tune_allocno_costs.
8853 (ira_debug_hard_regs_forest): New.
8854 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8855 (ira_object_conflict_iter_next): Fix comments.
7a81008b 8856 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
8857 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8858 cover_class to aclass.
8859 (ira_allocate_and_accumulate_costs): Ditto.
8860 (ira_allocate_and_set_or_copy_costs): Ditto.
8861
8862 * opts.c (decode_options): Remove ira_cover_class check.
8863
8864 * ira-color.c: Remove mentioning cover classes from the file. Use
8865 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8866 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8867 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8868 (splay-tree.h): Remove include.
8869 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8870 before copy_freq_compare_func.
8871 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8872 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8873 New definitions.
8874 (hard_regs_roots, hard_regs_node_vec): Ditto.
8875 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8876 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8877 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8878 (create_new_object_hard_regs_node): Ditto.
8879 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 8880 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
8881 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8882 Ditto.
8883 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8884 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8885 (remove_unused_object_hard_regs_nodes): Ditto.
8886 (enumerate_object_hard_regs_nodes): Ditto.
8887 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8888 (object_hard_regs_subnode_t): Ditto.
8889 (struct object_hard_regs_subnode): Ditto.
8890 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8891 (setup_object_hard_regs_subnode_index): Ditto.
8892 (get_object_hard_regs_subnodes_num): Ditto.
8893 (form_object_hard_regs_nodes_forest): Ditto.
8894 (finish_object_hard_regs_nodes_tree): Ditto.
8895 (finish_object_hard_regs_nodes_forest): Ditto.
8896 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 8897 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
8898 (pseudos_have_intersected_live_ranges_p): Rename to
8899 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
8900 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8901 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8902 (update_copy_costs): Remove assert. Skip cost update if the hard
8903 reg does not belong the class.
8904 (assign_hard_reg): Process only profitable hard regs.
8905 (uncolorable_allocnos_num): Make it scalar.
8906 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8907 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8908 and ira_reg_class_max_nregs.
8909 (bucket_allocno_compare_func): Check frequency first.
8910 (sort_bucket): Add compare function as a parameter.
8911 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8912 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8913 (push_allocno_to_stack): Rewrite for checking new allocno
8914 colorability.
7a81008b 8915 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
8916 (push_only_colorable): Pass new parameter to sort_bucket.
8917 (push_allocno_to_spill): Remove.
8918 (allocno_spill_priority_compare): Make it inline and rewrite.
8919 (splay_tree_allocate, splay_tree_free): Remove.
8920 (allocno_spill_sort_compare): New function.
8921 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
8922 build and use splay tree. Choose first allocno in uncolorable
8923 allocno bucket to spill. Remove setting spill cost.
8924 (all_conflicting_hard_regs): Remove.
8925 (setup_allocno_available_regs_num): Check only profitable hard
8926 regs. Print info about hard regs nodes.
8927 (setup_allocno_left_conflicts_size): Remove.
8928 (put_allocno_into_bucket): Don't call
7a81008b 8929 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
8930 (improve_allocation): New.
8931 (color_allocnos): Call setup_profitable_hard_regs,
8932 form_object_hard_regs_nodes_forest, improve_allocation,
8933 finish_object_hard_regs_nodes_forest. Setup spill cost.
8934 (print_loop_title): Use pressure classes.
8935 (color_allocnso): Ditto.
8936 (do_coloring): Remove allocation and freeing splay_tree_node_pool
8937 and allocnos_for_spilling.
8938 (ira_sort_regnos_for_alter_reg): Don't setup members
8939 {first,next}_coalesced_allocno.
8940 (color): Remove allocating and freeing removed_splay_allocno_vec.
8941 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
8942 prohibited_class_mode_regs.
8943
8944 * ira-lives.c: Remove mentioning cover classes from the file. Fix
8945 formatting.
8946 (update_allocno_pressure_excess_length): Use pressure classes.
8947 (inc_register_pressure, dec_register_pressure): Check for pressure
8948 class.
8949 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
8950 pressure class. Use ira_reg_class_nregs instead of
8951 ira_reg_class_max_nregs.
8952 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
8953 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
8954 (single_reg_class): Use ira_reg_class_nregs instead of
8955 ira_reg_class_max_nregs.
8956 (process_bb_node_lives): Use pressure classes.
8957
8958 * ira-emit.c: Remove mentioning cover classes from the file. Use
8959 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
8960 (change_loop): Use pressure classes.
8961 (modify_move_list): Call ira_set_allocno_class instead of
8962 ira_set_allocno_cover_class.
8963
8964 * ira-build.c: Remove mentioning cover classes from the file. Use
8965 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
8966 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
8967 ALLOCNO_UPDATED_CLASS_COST instead of
8968 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8969 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
8970 (ira_create_allocno): Remove initialization of
8971 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
8972 ALLOCNO_COLORABLE_P.
8973 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8974 Update conflict regs for the objects.
8975 (create_cap_allocno): Remove assert. Don't propagate
8976 ALLOCNO_AVAILABLE_REGS_NUM.
8977 (ira_free_allocno_costs): New function.
8978 (finish_allocno): Change a part of code into call of
8979 ira_free_allocno_costs.
8980 (low_pressure_loop_node_p): Use pressure classes.
8981 (object_range_compare_func): Don't compare classes.
8982 (setup_min_max_conflict_allocno_ids): Ditto.
8983
8984 * loop-invariant.c: Remove mentioning cover classes from the file.
8985 Use ira_pressure_classes and ira_pressure_classes_num instead of
8986 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
8987 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
8988 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8989 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
8990 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
8991 STACK_REG_COVER_CLASS.
8992 (get_regno_cover_class): Rename to get_regno_pressure_class.
8993 (move_loop_invariants): Initialize and finalize regstat.
8994
8995 * ira.c: Remove mentioning cover classes from the file. Add
8996 comments about coloring without cover classes. Use ALLOCNO_CLASS
8997 instead of ALLOCNO_COVER_CLASS. Fix formatting.
8998 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
8999 setup_class_subset_and_memory_move_costs.
9000 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9001 (setup_cover_and_important_classes): Rename to
9002 setup_allocno_and_important_classes.
9003 (setup_class_translate_array): New.
9004 (setup_class_translate): Call it for allocno and pressure classes.
9005 (cover_class_order): Rename to allocno_class_order.
9006 (comp_reg_classes_func): Use ira_allocno_class_translate instead
9007 of ira_class_translate.
9008 (reorder_important_classes): Set up ira_important_class_nums.
9009 (setup_reg_class_relations): Set up ira_reg_class_superunion.
9010 (print_class_cover): Rename to print_classes. Add parameter.
9011 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9012 Print pressure classes too.
9013 (find_reg_class_closure): Rename to find_reg_classes. Don't call
9014 setup_reg_subclasses.
7a81008b 9015 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
9016 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9017 (setup_prohibited_class_mode_regs): Use
7a81008b 9018 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
9019 (clarify_prohibited_class_mode_regs): New function.
9020 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9021 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9022 (ira_init_once): Initialize them.
9023 (free_register_move_costs): Process them.
9024 (ira_init): Move calls of find_reg_classes and
9025 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9026 Call clarify_prohibited_class_mode_regs.
9027 (ira_no_alloc_reg): Remove.
9028 (too_high_register_pressure_p): Use pressure classes.
9029
9030 * sched-deps.c: Remove mentioning cover classes from the file.
9031 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9032 ira_pressure_classes and ira_pressure_classes_num instead of
9033 ira_reg_class_cover_size and ira_reg_class_cover.
9034 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9035 sched_regno_pressure_class instead of sched_regno_cover_class.
9036 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
9037 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9038
9039 * ira.h: Add 2010 to Copyright.
9040 (ira_no_alloc_reg): Remove external.
9041 (struct target_ira): Rename x_ira_hard_regno_cover_class,
9042 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9043 x_ira_class_translate to x_ira_hard_regno_allocno_class,
9044 x_ira_allocno_classes_num, x_ira_allocno_classes, and
9045 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
9046 x_ira_pressure_classes, x_ira_pressure_class_translate, and
9047 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
9048 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
9049 x_ira_no_alloc_regs.
7a81008b 9050 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
9051 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9052 ira_allocno_classes_num and ira_allocno_classes.
9053 (ira_class_translate): Rename to ira_allocno_class_translate.
9054 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9055 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9056 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9057 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9058 (ira_no_alloc_regs): New.
9059
9060 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
9061 classes from the file. Use ALLOCNO_CLASS instead of
9062 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
9063 ALLOCNO_COVER_CLASS_COST.
9064 (regno_cover_class): Rename to regno_aclass.
9065 (record_reg_classes): Use ira_reg_class_subunion instead of
9066 ira_reg_class_union.
9067 (record_address_regs): Check overflow.
9068 (scan_one_insn): Ditto.
7a81008b 9069 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
9070 (print_pseudo_costs): Use REG_N_REFS.
9071 (find_costs_and_classes): Use classes intersected with them on the
9072 1st pass. Check overflow. Use ira_reg_class_subunion instead of
9073 ira_reg_class_union. Use ira_allocno_class_translate and
9074 regno_aclass instead of ira_class_translate and regno_cover_class.
9075 Modify code for finding regno_aclass. Setup preferred classes for
9076 the next pass.
9077 (setup_allocno_cover_class_and_costs): Rename to
9078 setup_allocno_class_and_costs. Use regno_aclass instead of
9079 regno_cover_class. Use ira_set_allocno_class instead of
9080 ira_set_allocno_cover_class.
9081 (init_costs, finish_costs): Use regno_aclass instead of
9082 regno_cover_class.
9083 (ira_costs): Use setup_allocno_class_and_costs instead of
9084 setup_allocno_cover_class_and_costs.
9085 (ira_tune_allocno_costs_and_cover_classes): Rename to
9086 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
9087 by processing objects. Use ira_reg_class_max_nregs instead of
9088 ira_reg_class_nregs.
9089
9090 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9091
9092 * sched-int.h: Remove mentioning cover classes from the file.
9093 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9094
9095 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
9096 classes from the file.
9097 (struct reg_pref): Rename coverclass into allocnoclass.
9098 (reg_cover_class): Rename to reg_allocno_class.
9099
7a81008b 9100 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
9101
9102 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9103
9104 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9105
9106 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9107
9108 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9109
9110 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9111
9112 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9113
9114 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9115
9116 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9117
9118 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9119
9120 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9121 (i386_ira_cover_classes): Ditto.
9122
9123 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9124
9125 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9126
9127 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9128
9129 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9130
9131 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9132
9133 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9134
9135 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9136 (mips_ira_cover_classes): Ditto.
9137
9138 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9139
9140 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9141
9142 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9143
9144 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9145
9146 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9147
9148 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9149 (IRA_COVER_CLASSES_VSX): Ditto.
9150
9151 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9152 (rs6000_ira_cover_classes): Ditto.
9153
9154 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9155
9156 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9157
9158 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9159
9160 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9161
9162 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9163
9164 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9165
9166 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9167
9168 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9169
9170 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9171
9172 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9173
2b80199f
JJ
91742011-03-29 Jakub Jelinek <jakub@redhat.com>
9175
71dae1fe
JJ
9176 PR debug/48253
9177 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9178 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9179 dw_fde_unlikely_section_end_label, cold_in_std_section,
9180 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9181 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9182 fields.
9183 (output_fde): Use dw_fde_second_{begin,end} if second is
9184 true, otherwise dw_fde_{begin,end}.
9185 (output_call_frame_info): Test dw_fde_second_begin != NULL
9186 instead of dw_fde_switched_sections.
9187 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9188 fields, initialize new fields. Initialize in_std_section
9189 unconditionally from the first partition.
9190 (dwarf2out_end_epilogue): Don't override dw_fde_end when
9191 dw_fde_second_begin is non-NULL.
9192 (dwarf2out_switch_text_section): Stop initializing removed
9193 dw_fde_struct fields, initialize new fields, initialize
9194 also dw_fde_end here. Set dw_fde_switch_cfi even when
9195 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
9196 (struct var_loc_list_def): Add last_before_switch field.
9197 (arange_table, arange_table_allocated, arange_table_in_use,
9198 ARANGE_TABLE_INCREMENT, add_arange): Removed.
9199 (size_of_aranges): Count !in_std_section and !second_in_std_section
9200 hunks in fdes, instead of looking at arange_table_in_use.
9201 (output_aranges): Add aranges_length argument, don't call
9202 size_of_aranges here. Instead of using aranges_table*
9203 emit ranges for fdes when !in_std_section resp.
9204 !second_in_std_section.
9205 (dw_loc_list): Break ranges crossing section switch.
9206 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 9207 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
9208 (gen_subprogram_die): Don't call add_arange. Use
9209 dw_fde_{begin,end} for first partition and if switched
9210 section dw_fde_second_{begin,end} for the second.
9211 (var_location_switch_text_section_1,
9212 var_location_switch_text_section): New functions.
9213 (dwarf2out_begin_function): Initialize cold_text_section even
9214 when function_section () isn't text_section.
9215 (prune_unused_types): Don't walk arange_table.
9216 (dwarf2out_finish): Don't needlessly test
9217 flag_reorder_blocks_and_partition when testing cold_text_section_used.
9218 If info_section_emitted, call size_of_aranges and if it indicates
9219 non-empty .debug_aranges, call output_aranges with the computed
9220 size. Stop using removed dw_fde_struct fields, use
9221 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9222 for second.
9223
2b80199f
JJ
9224 PR debug/48203
9225 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9226 create ENTRY_VALUE if incoming or address of incoming's MEM
9227 is a hard REG.
9228 * dwarf2out.c (mem_loc_descriptor): Don't emit
9229 DW_OP_GNU_entry_value of DW_OP_fbreg.
9230 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9231 on ENTRY_VALUE is able to find the canonical parameter VALUE.
9232 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9233 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9234 ENTRY_VALUE_EXPs.
9235 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9236 is a REG_P or MEM_P with REG_P address, compute hash directly
9237 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9238 (preserve_only_constants): Don't clear VALUES forwaring
9239 ENTRY_VALUE to some other VALUE.
9240
8a445129
RS
92412011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
9242
9243 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9244 instead of GEN_INT.
9245
c82fee88
EB
92462011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9247
9248 * cfgexpand.c (expand_gimple_cond): Always set the source location and
9249 block before expanding the statement.
9250 (expand_gimple_stmt_1): Likewise. Set them here...
9251 (expand_gimple_stmt): ...and not here. Tidy.
9252 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9253 unknown.
9254
e45425ec
SB
92552011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9256
9257 * Makefile.in: New rule for cprop.o.
9258 * gcse.c: Move constant/copy propagation to cprop.c.
9259 (compute_local_properties): Only handle expression tables.
9260 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9261 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9262 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9263 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 9264 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
9265 compute_cprop_data, find_used_regs, try_replace_reg,
9266 find_avail_set, cprop_jump, constprop_register, cprop_insn,
9267 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9268 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9269 find_bypass_set, reg_killed_on_edge, bypass_block,
9270 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9271 execute_rtl_cprop, pass_rtl_cprop): Move to...
9272 * cprop.c: ...here. New file, constant/copy propagation for RTL
9273 moved from gcse.c to here with minor cleanups in duplicated code.
9274
c09d5426
L
92752011-03-28 H.J. Lu <hongjiu.lu@intel.com>
9276
9277 * config/i386/i386.c (flag_opts): Fix a typo in
9278 -mavx256-split-unaligned-store.
9279
9eaa7740
AS
92802011-03-28 Anatoly Sokolov <aesok@post.ru>
9281
9282 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9283 LIBCALL_VALUE): Remove macros.
9284 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9285 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9286 (h8300_function_value, h8300_libcall_value,
9287 h8300_function_value_regno_p): New functions.
9288
dcec2be2
AS
92892011-03-28 Anatoly Sokolov <aesok@post.ru>
9290
9291 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9292
520af9ec
JL
92932011-03-28 Jeff Law <law@redhat.com>
9294
9295 * tree-ssa-threadupdate.c (redirect_edges): Call
9296 create_edge_and_update_destination_phis as needed.
9297 (create_edge_and_update_destination_phis): Accept new BB argument.
9298 All callers updated.
9299 (thread_block): Do not update the profile when threading around
9300 intermediate blocks.
9301 (thread_single_edge): Likewise.
9302 (determine_bb_domination_status): If BB is not a successor of the
9303 loop header, return NONDOMINATING.
9304 (register_jump_thread): Note when we register a jump thread around
9305 an intermediate block.
9306 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9307 (thread_across_edge): Use it.
9308
7450b54f
TG
93092011-03-28 Tristan Gingold <gingold@adacore.com>
9310
9311 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9312 when for_return is 2.
9313
649beb33
JL
93142011-03-28 Jeff Law <law@redhat.com>
9315
9316 * var-tracking.c (canonicalize_values_mark): Delete unused
9317 lhs assignment.
9318 (canonicalize_values_star, set_variable_part): Likewise.
9319 (clobber_variable_part, delete_variable_part): Likewise.
9320
d5b8da97
SB
93212011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9322
9323 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9324
322dd859
MJ
93252011-03-28 Martin Jambor <mjambor@suse.cz>
9326
9327 * tree-inline.c (expand_call_inline): Do not check that destination
9328 node is analyzed.
9329 (optimize_inline_calls): Assert that destination node is analyzed.
9330 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9331 not call tree_lowering_passes.
9332 * cgraph.h (cgraph_analyze_function): Declare.
9333 * cgraphunit.c (cgraph_analyze_function): Make public.
9334
aa53e58b
JM
93352011-03-28 Joseph Myers <joseph@codesourcery.com>
9336
9337 * config/sparc/sparc-opts.h: New.
9338 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9339 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9340 (sparc_option_override): Store processor_type enumeration rather
9341 than string in cpu_default. Remove name and enumeration from
9342 cpu_table. Directly default -mcpu then default -mtune from -mcpu
9343 without using sparc_select. Use target_flags_explicit instead of
9344 fpu_option_set.
9345 * config/sparc/sparc.h (enum processor_type): Move to
9346 sparc-opts.h.
9347 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9348 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9349 HeaderInclude entry.
9350 (mcpu=, mtune=): Use Var and Enum.
9351 (sparc_processor_type): New Enum and EnumValue entries.
9352
dd350eba
RO
93532011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9354 Iain Sandoe <iains@gcc.gnu.org>
9355
9356 PR target/48245
9357 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9358
1b29f05e
EB
93592011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9360
9361 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9362 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9363 Insert new statements at it in lieu of STMT.
9364 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9365 * tree-vect-stmts.c (vectorizable_store): Likewise.
9366 (vectorizable_load): Likewise.
9367
506e6808
UB
93682011-03-28 Uros Bizjak <ubizjak@gmail.com>
9369
9370 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9371 (divtf3): Ditto.
9372 (multf3): Ditto.
9373 (subtf3): Ditto.
9374
2e939ee9
L
93752011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9376
9377 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9378 unaligned 256bit load/store.
9379 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9380 (*avx_movdqu<avxmodesuffix>): Likewise.
9381
5e85ab88
JDA
93822011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9383
9384 PR target/48288
9385 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9386 * config/pa/pa.md (iordi3): Use new predicate in expander.
9387 (iorsi3): Likewise.
9388
47be3d6d
AS
93892011-03-27 Anatoly Sokolov <aesok@post.ru>
9390
506e6808 9391 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 9392 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
9393 * config/mips/mips-protos.h (mips_function_value): Remove.
9394 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
9395 (mips_function_value_1): ... this. Make static. Handle receiving
9396 the function type in 'fn_decl_or_type' argument.
9397 (mips_function_value, mips_libcall_value,
9398 mips_function_value_regno_p): New function.
9399 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9400 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9401
d253656a
L
94022011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9403
9404 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9405 and -mavx256-split-unaligned-store.
9406 (ix86_option_override_internal): Split 32-byte AVX unaligned
9407 load/store by default.
9408 (ix86_avx256_split_vector_move_misalign): New.
9409 (ix86_expand_vector_move_misalign): Use it.
9410
9411 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9412 -mavx256-split-unaligned-store.
9413
9414 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9415 256bit load/store. Generate unaligned store on misaligned memory
9416 operand.
9417 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9418 256bit load/store.
9419 (*avx_movdqu<avxmodesuffix>): Likewise.
9420
9421 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9422 -mavx256-split-unaligned-store.
9423
1ea9206a
RS
94242011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9425
9426 PR target/38598
9427 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9428 Update commentary.
9429
b99ce2a8
RS
94302011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9431
9432 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9433 opno arguments with an expand_operand. Use create_input_operand.
9434 (mips_prepare_builtin_target): Delete.
9435 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9436 functions.
9437 (mips_expand_builtin_direct): Use create_output_operand and
9438 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
9439 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
9440 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9441
69d52339
IR
94422011-03-27 Ira Rosen <ira.rosen@linaro.org>
9443
9444 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9445 function.
9446 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9447
ba5e9aca
EB
94482011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9449
9450 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9451 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
9452 basic blocks and call commit_edge_insertions directly.
9453 (fixup_abnormal_edges): Move from here to...
9454 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
9455 on the edges and return whether some have actually been inserted.
9456 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9457 compensation code.
9458
5d369d58
AB
94592011-03-26 Andrey Belevantsev <abel@ispras.ru>
9460
9461 PR rtl-optimization/48144
9462 * sel-sched-ir.c (merge_history_vect): Factor out from ...
9463 (merge_expr_data): ... here.
9464 (av_set_intersect): Rename to av_set_code_motion_filter.
9465 Update all callers. Call merge_history_vect when an expression
9466 is found in both sets.
9467 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9468
f082c000
AM
94692011-03-26 Alan Modra <amodra@gmail.com>
9470
9471 * config/rs6000/predicates.md (word_offset_memref_op): Handle
9472 cmodel medium addresses.
9473 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9474 64-bit gpr loads and stores.
9475 (rs6000_secondary_reload_ppc64): New function.
9476 * config/rs6000/rs6000-protos.h: Declare it.
9477 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9478
8ac5e12e
AM
94792011-03-26 Alan Modra <amodra@gmail.com>
9480
9481 PR target/47487
9482 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9483 GNU Go in traceback table.
9484
c2654ded
RH
94852011-03-25 Richard Henderson <rth@redhat.com>
9486
9487 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9488 if there are exactly 6 operands.
9489 (set_storage_via_setmem): Similarly.
9490
ba78087b
KT
94912011-03-25 Kai Tietz <ktietz@redhat.com>
9492
9493 * collect2.c (write_c_file_stat): Handle backslash
9494 as right-hand directory separator.
9495 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9496 checking just for slash.
9497 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9498 instead of checking for trailing slash.
9499 * gcc.c (record_temp_file): Use filename_cmp instead
9500 of strcmp.
9501 (do_spec_1): Likewise.
9502 (replace_outfile_spec_function): Likewise.
9503 (is_directory): Use filename_ncmp instead of strncmp.
9504 (print_multilib_info): Likewise.
9505 * gcov.c (find_source): Use filename_cmp instead
9506 instead of strcmp.
9507 (make_gcov_file_name): Fix order of slash/backslash
9508 checks.
9509 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9510 (add_standard_paths): Likewise.
9511 * mips-tfile.c (saber_stop): Handle backslash.
9512 * prefix.c (update_path): Use filename_ncmp instead of
9513 strncmp.
9514 * profile.c (output_location): Use filename_cmp instead
9515 of strcmp.
9516 * read-md.c (handle_toplevel_file): Handle backslash.
9517 * tlink.c (frob_extension): Likewise.
9518 * tree-cfg.c (same_line_p): Use filename_cmp instead of
9519 strcmp.
9520 * tree-dump.c (dequeue_and_dump): Handle backslash.
9521 * tree.c (get_file_function_name): Likewise.
9522 * gengtype.c (read_input_list): Likewise.
9523 (get_file_realbasename): Likewise.
9524 (get_output_file_with_visibility): Use filename_cmp
9525 instead of strcmp.
9526
75f6ec9a
RS
95272011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
9528
9529 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9530 case to VFPv1.
9531
6c4e2997
NF
95322011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9533
9534 * fold-const.c (expr_location_or): New function.
9535 (fold_truth_not_expr): Call it.
9536
0edf1bb2
JL
95372011-03-25 Jeff Law <law@redhat.com>
9538
9539 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9540 va_end.
9541 * c-family/c-common.c (def_fn_type): Likewise.
9542 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9543 * emit-rtl.c (gen_rtvec): Likewise.
9544 * lto/lto-lang.c (def_fn_type): Likewise.
9545
fdc2de95
RG
95462011-03-25 Richard Guenther <rguenther@suse.de>
9547
9548 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9549 also generate copies.
9550 (fini_copy_prop): Handle constant values properly.
9551
21385db0
JJ
95522011-03-25 Jakub Jelinek <jakub@redhat.com>
9553
9554 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9555 mode size instead of bitsize with DWARF2_ADDR_SIZE.
9556 (hash_loc_operands, compare_loc_operands): Handle
9557 DW_OP_GNU_entry_value.
9558
6510e8bb
KT
95592011-03-25 Kai Tietz <ktietz@redhat.com>
9560
9561 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9562 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9563 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9564 comment and use macro TARGET_64BIT_MS_ABI instead.
9565 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9566 and change default behavior for 32-bit MS_ABI.
9567 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9568 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9569 32-bit, too.
9570 (ix86_cfun_abi): Likewise.
9571 (ix86_maybe_switch_abi): Adjust comment.
9572 (init_cumulative_args): Check for bit-ness in MS_ABI case.
9573 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9574 instead of checking for SYSV_ABI.
9575 (ix86_nsaved_sseregs): Likewise.
9576 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9577 to 16 bytes.
9578 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9579 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9580 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9581 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9582 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9583
34019e28
RG
95842011-03-25 Richard Guenther <rguenther@suse.de>
9585
9586 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9587 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9588 (verify_gimple): Remove.
9589 * tree-cfg.c (verify_gimple_call): Merge verification
9590 from verify_stmts.
9591 (verify_gimple_phi): Merge verification from verify_stmts.
9592 (verify_gimple_label): New function.
9593 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9594 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9595 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9596 (verify_stmts): Rename to verify_gimple_in_cfg.
9597 (verify_gimple_in_cfg): New function.
9598 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9599 * tree-ssa.c (verify_ssa): Likewise.
9600 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9601
605896f5
RG
96022011-03-25 Richard Guenther <rguenther@suse.de>
9603
9604 * passes.c (init_optimization_passes): Add FRE pass after
9605 early SRA.
9606
7baa7c13
BS
96072011-03-25 Bernd Schmidt <bernds@codesourcery.com>
9608 Andrew Stubbs <ams@codesourcery.com>
9609
9610 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9611 for Cortex-A8.
9612 (arm_movdi_vfp_cortexa8): New pattern.
9613 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9614 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9615 instructions when tuning for Cortex-A8. Set attribute "arch".
9616 * config/arm/arm.md: Move include arm-tune.md up a bit.
9617 (define_attr "arch"): Add "onlya8" and "nota8" values.
9618 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9619
45dbce1b
NF
96202011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9621
4ff08abf 9622 PR bootstrap/48282
45dbce1b
NF
9623 Revert:
9624 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9625
9626 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9627 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9628 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9629 * passes.c (init_optimization_passes): Move
9630 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9631
ac9a30ae
KT
96322011-03-25 Kai Tietz <ktietz@redhat.com>
9633
9634 * c-typeck.c (comptypes_internal): Replace target
9635 hook call of comp_type_attributes by version in tree.c file.
9636 * gimple.c (gimple_types_compatible_p_1): Likewise.
9637 * tree-ssa.c (useless_type_conversion_p): Likewise.
9638 * tree.c (build_type_attribute_qual_variant): Likewise.
9639 (attribute_value_equal): New static helper function.
9640 (comp_type_attributes): New function.
9641 (merge_attributes): Use attribute_value_equal for comparison.
9642 (attribute_list_contained): Likewise.
9643 * tree.h (comp_type_attributes): New prototype.
9644
afdac116
RG
96452011-03-25 Richard Guenther <rguenther@suse.de>
9646
9647 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9648 of complex types at -O0.
9649 (verify_gimple_assign_binary): Likewise.
9650 (verify_gimple_assign_ternary): Likewise.
9651
ec6165f8
MW
96522011-03-24 Mark Wielaard <mjw@redhat.com>
9653
9654 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9655 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9656
2a5ac39a
MW
96572011-03-24 Mark Wielaard <mjw@redhat.com>
9658
9659 PR debug/48041
9660 * dwarf2out.c (output_abbrev_section): Only write table when
9661 abbrev_die_table_in_use > 1.
9662
e533b2a4
RH
96632011-02-24 Richard Henderson <rth@redhat.com>
9664
9665 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9666 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9667 (alpha_expand_unaligned_load_words): Use extql.
9668 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9669 (emit_insxl): Handle all modes for consistency.
9670
0b2a7367
RH
96712011-02-24 Richard Henderson <rth@redhat.com>
9672
9673 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9674 (alpha_expand_unaligned_load): Likewise.
9675 (alpha_expand_unaligned_store): Likewise.
9676 (alpha_expand_unaligned_load_words): Likewise.
9677 (alpha_expand_unaligned_store_words): Likewise.
9678 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9679 (alpha_split_lock_test_and_set_12): Likewise.
9680 (print_operand, alpha_fold_builtin_extxx): Likewise.
9681 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9682 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9683 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9684 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9685 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9686 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9687 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9688 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9689 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9690 (extwl, extll, extql): Similarly.
9691 (inswh, inslh, insqh): Similarly.
9692 (mskbl, mskwl, mskll, mskql): Similarly.
9693 (mskwh, msklh, mskqh): Similarly.
9694
315b2bef
RH
96952011-02-24 Richard Henderson <rth@redhat.com>
9696
9697 * config/alpha/alpha.md (attribute isa): Add er, ner.
9698 (attribute enabled): Handle them.
9699 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9700
67102517
RH
97012011-02-24 Richard Henderson <rth@redhat.com>
9702
9703 * config/alpha/alpha.md (attribute isa): Add vms.
9704 (attribute enabled): Handle it.
9705 (*movsf): Merge *movsf_{nofix,fix,nofp}.
9706 (*movdf): Merge *movdf_{nofix,fix,nofp}.
9707 (*movtf): Rename from *movtf_internal for consistency.
9708 (*movsi): Merge with *movsi_nt_vms.
9709 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9710 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9711 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9712 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9713
6aba5cb4
RH
97142011-02-24 Richard Henderson <rth@redhat.com>
9715
9716 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9717 (extendqisi2, extendhisi2): Likewise.
9718 (extendqidi2): Simplify BWX/non-BWX expansions.
9719 (extendhidi2): Similarly.
9720
bdfb351b
RH
97212011-02-24 Richard Henderson <rth@redhat.com>
9722
9723 * config/alpha/alpha.md (attribute isa): New.
9724 (attribute enabled): New.
9725 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9726 (zero_extendqisi2, zero_extendqidi2): Similarly.
9727 (zero_extendhisi2, zero_extendhidi2): Similarly.
9728 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9729
6abe71eb
RH
97302011-02-24 Richard Henderson <rth@redhat.com>
9731
9732 * config/alpha/predicates.md (input_operand): Revert last change;
9733 update comment to mention 32-bit VMS rather than Windows.
9734
7114321e
NF
97352011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9736
9737 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9738 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9739 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9740 * passes.c (init_optimization_passes): Move
9741 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9742
c8679567
EB
97432011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9744
9745 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9746
27173058
UB
97472011-03-24 Uros Bizjak <ubizjak@gmail.com>
9748
9749 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9750 correctly.
9751
6f0c9f06
JJ
97522011-03-24 Jakub Jelinek <jakub@redhat.com>
9753
9754 PR debug/48204
9755 * simplify-rtx.c (simplify_const_unary_operation): Call
9756 real_convert when changing mode class with FLOAT_EXTEND.
9757
662666e5
NC
97582011-03-24 Nick Clifton <nickc@redhat.com>
9759
9760 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9761 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9762 * config/rx/rx.c (rx_option_override): Set align_jumps,
9763 align_loops and align_labels if not set by the user.
9764 (rx_align_for_label): New function.
9765 (rx_max_skip_for_label): New function.
9766 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9767 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9768 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9769 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9770 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9771
2b99b2b8
RS
97722011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9773
9774 PR rtl-optimization/48263
9775 * optabs.c (expand_binop_directly): Reinstate convert_modes code
9776 and original commutative_p handling. Use maybe_gen_insn.
9777
ccecd6ea
AK
97782011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9779
9780 * reload.c (find_reloads_subreg_address): Add address_reloaded
9781 parameter and return true there if the full address has been
9782 reloaded.
9783 (find_reloads_toplev): Pass address_reloaded flag.
9784 (find_reloads_address_1): Don't use address_reloaded parameter.
9785
67295642
JL
97862011-03-24 Jeff Law <law@redhat.com>
9787
9788 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9789 unused variable "ann".
9790 (remove_unused_locals): Likewise.
9791
9792 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9793 statement.
9794
9795 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9796 after it is freed.
9797
212aa74f
AK
97982011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9799
9800 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9801 for invalid symbolic addresses.
9802 (s390_secondary_reload): Don't use s390_check_symref_alignment for
9803 larl operands.
9804
fe784e0d
EB
98052011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9806
9807 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9808 the argument in calls to fold_truth_not_expr.
9809
63ee8641
NF
98102011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9811
9812 * tree.c (record_node_allocation_statistics): New function.
9813 (make_node_stat, copy_node_stat, build_string): Call it.
9814 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9815 (build1_stat, build_omp_clause): Likewise.
9816
61be2a1c
RS
98172011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9818
9819 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9820 last commit.
9821
a881aaa7
RG
98222011-03-24 Richard Guenther <rguenther@suse.de>
9823
9824 PR tree-optimization/48271
9825 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9826 blocks that still exist.
9827
dbaa912c
RG
98282011-03-24 Richard Guenther <rguenther@suse.de>
9829
9830 PR tree-optimization/48270
9831 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9832 not free datarefs before ddrs.
9833
1d60cc55
EB
98342011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9835
9836 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9837 from the address built for a reference with variable offset.
9838
c78dd519
UB
98392011-03-24 Uros Bizjak <ubizjak@gmail.com>
9840
9841 PR target/48237
9842 * config/i386/i386.md (*movdf_internal_rex64): Do not split
9843 alternatives that can be handled with movq or movabsq insn.
9844 (*movdf_internal): Disable for !TARGET_64BIT.
9845 (*movdf_internal_nointeger): Ditto.
9846 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9847
b25b9e8f
NF
98482011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9849
9850 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9851 (FUNCTION_ARG_ADVANCE): Likewise.
9852 * tm.texi.in: Change references to them to hook references.
9853 * tm.texi: Regenerate.
c78dd519 9854 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
9855 (default_function_incoming_arg): Likewise.
9856 (default_function_arg_advance): Likewise.
c78dd519 9857 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
9858 (function_arg_advance): Likewise.
9859 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9860
190b2187
RG
98612011-03-24 Richard Guenther <rguenther@suse.de>
9862
9863 PR middle-end/48269
9864 * tree-object-size.c (addr_object_size): Do not double-account
9865 for MEM_REF offsets.
9866
a183b5c7
DN
98672011-03-24 Diego Novillo <dnovillo@google.com>
9868
9869 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 9870 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
9871 (lto_input_data_block): Move from lto-opts.c. Make extern.
9872 Update all users.
9873 (lto_input_string): Rename from input_string. Make extern.
9874 Update all users.
9875 * lto-streamer-out.c (lto_output_string_with_length): Rename from
9876 output_string_with_length.
9877 Output 0 to indicate a non-NULL string. Update all callers to
9878 not emit 0.
9879 (lto_output_string): Rename from output_string. Make extern.
9880 Update all users.
9881 (lto_output_decl_state_streams): Make extern.
9882 (lto_output_decl_state_refs): Make extern.
9883 * lto-streamer.h (lto_input_string): Declare.
9884 (lto_input_data_block): Declare.
9885 (lto_output_string): Declare.
9886 (lto_output_string_with_length): Declare.
9887 (lto_output_decl_state_streams): Declare.
9888 (lto_output_decl_state_refs): Declare.
9889
cfef45c8
RG
98902011-03-24 Richard Guenther <rguenther@suse.de>
9891
9892 PR tree-optimization/46562
9893 * tree.c (build_invariant_address): New function.
9894 * tree.h (build_invariant_address): Declare.
9895 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9896 a renamed function moved ...
9897 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9898 Take valueization callback parameter.
9899 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9900 * gimple-fold.h: New file.
9901 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9902 (ccp_fold, fold_const_aggregate_ref,
9903 fold_ctor_reference, fold_nonarray_ctor_reference,
9904 fold_array_ctor_reference, fold_string_cst_ctor_reference,
9905 get_base_constructor): Move ...
9906 * gimple-fold.c: ... here.
9907 (gimple_fold_stmt_to_constant_1): New function
9908 split out from ccp_fold. Take a valueization callback parameter.
9909 Valueize all operands.
9910 (gimple_fold_stmt_to_constant): New wrapper function.
9911 (fold_const_aggregate_ref_1): New function split out from
9912 fold_const_aggregate_ref. Take a valueization callback parameter.
9913 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9914 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9915 invariant POINTER_PLUS_EXPRs to invariant form.
9916 (vn_valueize): New function.
9917 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9918 * tree-vrp.c (vrp_valueize): New function.
9919 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9920 to fold statements to constants.
9921 * tree-ssa-pre.c (eliminate): Properly guard propagation of
9922 function declarations.
9923 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9924 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
9925
5e0a7e40
RS
99262011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9927
9928 * config/h8300/predicates.md (jump_address_operand): Fix register
9929 mode check.
9930
bfe068c3
IR
99312011-03-24 Ira Rosen <ira.rosen@linaro.org>
9932
9933 * doc/invoke.texi (max-stores-to-sink): Document.
9934 * params.h (MAX_STORES_TO_SINK): Define.
9935 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
9936 if either vectorization or if-conversion is disabled.
9937 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
9938 tree-vect-data-refs.c vect_equal_offsets.
9939 (dr_equal_offsets_p): New function.
9940 (find_data_references_in_bb): Remove static.
9941 * tree-data-ref.h (find_data_references_in_bb): Declare.
9942 (dr_equal_offsets_p): Likewise.
9943 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
9944 (vect_drs_dependent_in_basic_block): Update calls to
9945 vect_equal_offsets.
9946 (vect_check_interleaving): Likewise.
9947 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
9948 (cond_if_else_store_replacement): Rename to...
9949 (cond_if_else_store_replacement_1): ... this. Change arguments and
9950 documentation.
9951 (cond_if_else_store_replacement): New function.
9952 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
9953 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
9954
4908b0bf
CLT
99552011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
9956
9957 PR target/46934
9958 * config/arm/arm.md (casesi): Use the gen_int_mode() function
9959 to subtract lower bound instead of GEN_INT().
9960
2be478a2
JW
99612011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
9962
9963 PR other/48179
9964 PR other/48221
9965 PR other/48234
9966 * doc/extend.texi (Alignment): Move section to match order in TOC.
9967 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
9968 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
9969
0c617be4
JL
99702011-03-23 Jeff Law <law@redhat.com>
9971
9972 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
9973 before removing the edge.
9974
9975 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
9976 it may have been freed by redirect_branch_edge or
9977 redirect_edge_succ_nodup.
9978
58da96fe
RG
99792011-03-23 Richard Guenther <rguenther@suse.de>
9980
c78dd519 9981 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
9982 (check_va_list_escapes): Likewise.
9983 (check_all_va_list_escapes): Likewise.
9984
b8beb4d1
RG
99852011-03-23 Richard Guenther <rguenther@suse.de>
9986
9987 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
9988 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
9989 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
9990 (alias.o): Likewise.
9991 (ipa-type-escape.o): Remove.
9992 (ipa-struct-reorg.o): Likewise.
9993 (GTFILES): Remove ipa-struct-reorg.c.
9994 * alias.c: Do not include ipa-type-escape.h.
9995 * tree-ssa-alias.c: Likewise.
9996 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
9997 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
9998 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
9999 and ipa-type-escape passes.
10000 * tree-pass.h (pass_ipa_type_escape): Remove.
10001 (pass_ipa_struct_reorg): Likewise.
10002 * ipa-struct-reorg.h: Remove.
10003 * ipa-struct-reorg.c: Likewise.
10004 * ipa-type-escape.h: Likewise.
10005 * ipa-type-escape.c: Likewise.
10006 * doc/invoke.texi (-fipa-struct-reorg): Remove.
10007 (--param struct-reorg-cold-struct-ratio): Likewise.
10008 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10009 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10010 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10011
f137aa63
AK
100122011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10013
10014 * config/s390/2084.md: Enable all insn reservations also for z9_ec
10015 cpu attribute value.
10016 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10017 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10018 * config/s390/s390.c (processor_flags_table): New constant array.
10019 (s390_handle_arch_option): Remove.
10020 (s390_handle_option): Remove s390_handle_arch_option invocations
10021 and OPT_mwarn_framesize_ handling.
10022 (s390_option_override): Remove s390_handle_arch_option invocation.
10023 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10024 warnings.
10025 * config/s390/s390.md (cpu attribute): Add z9_ec value.
10026 * config/s390/s390.opt (s390_tune, s390_arch)
10027 (march=): Replace s390_arch_option enum and values with
10028 processor_type. Set variable name to s390_arch. Set
10029 initialization value.
10030 (mtune=): Replace s390_arch_option with processor_type. Set
10031 variable name to s390_tune. Set initialization value.
10032
bf90208f
JB
100332011-03-23 Julian Brown <julian@codesourcery.com>
10034
10035 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10036 accesses which are not naturally aligned.
10037
3460fdf3
RS
100382011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10039
10040 PR target/47553
10041 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10042
a5c7d693
RS
100432011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10044
10045 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10046 parameter from "int" to "enum insn_code".
10047 (expand_operand_type): New enum.
10048 (expand_operand): New structure.
10049 (create_expand_operand): New function.
10050 (create_fixed_operand, create_output_operand): Likewise
10051 (create_input_operand, create_convert_operand_to): Likewise.
10052 (create_convert_operand_from, create_address_operand): Likewise.
10053 (create_integer_operand): Likewise.
10054 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10055 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10056 (expand_insn, expand_jump_insn): Likewise.
10057 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10058 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10059 (expand_movstr, expand_builtin___clear_cache): Likewise.
10060 (expand_builtin_lock_release): Likewise.
10061 * explow.c (allocate_dynamic_stack_space): Likewise.
10062 (probe_stack_range): Likewise. Allow check_stack to FAIL,
10063 and use the default handling in that case.
10064 * expmed.c (check_predicate_volatile_ok): Delete.
10065 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10066 (emit_cstore): Likewise.
10067 * expr.c (emit_block_move_via_movmem): Likewise.
10068 (set_storage_via_setmem, expand_assignment): Likewise.
10069 (emit_storent_insn, try_casesi): Likewise.
10070 (emit_single_push_insn): Likewise. Allow the expansion to fail.
10071 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10072 (expand_vec_shift_expr, expand_binop_directly): Likewise.
10073 (expand_twoval_unop, expand_twoval_binop): Likewise.
10074 (expand_unop_direct, emit_indirect_jump): Likewise.
10075 (emit_conditional_move, vector_compare_rtx): Likewise.
10076 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10077 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10078 (expand_sync_lock_test_and_set): Likewise.
10079 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
10080 (emit_unop_insn): Likewise.
10081 (expand_copysign_absneg): Change icode to an insn_code.
10082 (create_convert_operand_from_type): New function.
10083 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10084 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10085 (expand_insn, expand_jump_insn): Likewise.
10086 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10087 than const_int_operand for operand 2.
10088
78fadbab
AK
100892011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10090
10091 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10092 if possible.
10093
5f02387d
NF
100942011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10095
10096 * emit-rtl.c (emit_pattern_before_noloc): New function.
10097 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10098 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10099 (emit_pattern_after_noloc): New function.
10100 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10101 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10102
fdf3e18a
NF
101032011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10104
10105 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10106 (__ffsDI2): Likewise.
10107
42d085c1
RH
101082011-03-22 Richard Henderson <rth@redhat.com>
10109
10110 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10111 of !TARGET_ABI_OPEN_VMS.
10112 (alpha_trampoline_init, alpha_start_function): Likewise.
10113 (alpha_expand_epilogue, alpha_file_start): Likewise.
10114 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10115 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10116 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10117 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10118 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10119
cabbe12a
JM
101202011-03-22 Joseph Myers <joseph@codesourcery.com>
10121
10122 * config/s390/s390-opts.h: New.
10123 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10124 s390_arch_flags, s390_warn_framesize, s390_stack_size,
10125 s390_stack_guard): Remove.
10126 (s390_handle_arch_option): Return void. Take enum
10127 s390_arch_option value instead of string and searching array.
10128 (s390_handle_option): Don't assert that global structures are in
10129 use. Access variables via opts pointer. Use error_at. Don't use
10130 sscanf for -mstack-guard= or -mstack-size=. Update call to
10131 s390_handle_arch_option.
10132 (s390_option_override): Update call to s390_handle_arch_option.
10133 (s390_emit_prologue): Use %d format for s390_stack_size in
10134 diagnostic. Use %wd for HOST_WIDE_INT.
10135 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10136 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10137 * config/s390/s390.opt (config/s390/s390-opts.h): New
10138 HeaderInclude entry.
10139 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10140 s390_arch_flags, s390_warn_framesize): New Variable entries.
10141 (s390_arch_option): New Enum and EnumValue entries.
10142 (march=): Use Enum instead of Var.
10143 (mstack-guard=, mstack-size=): Use UInteger and Var.
10144 (mtune=): Use Enum.
10145
05b12036
JM
101462011-03-22 Joseph Myers <joseph@codesourcery.com>
10147
10148 * config/score/score.c (score_handle_option): Don't assert that
10149 global structures are in use. Access target_flags via opts
10150 pointer. Use value of -march= option to determine target_flags
10151 settings.
10152 * config/score/score.opt (march=): Use Enum.
10153 (score_arch): New Enum and EnumValue entries.
10154
dd51e35a
JM
101552011-03-22 Joseph Myers <joseph@codesourcery.com>
10156
10157 * config/mep/mep.c (option_mtiny_specified): Remove.
10158 (mep_option_override): Move register handling for -mivc2 from
10159 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
10160 instead of option_mtiny_specified.
10161 (mep_handle_option): Access target_flags via opts pointer. Don't
10162 assert that global structures are in use. Defer part of -mivc2
10163 handling and move it to mep_option_override.
10164 * config/mep/mep.opt (IVC2): New Mask entry.
10165 (mivc2): Use Var and Defer instead of Mask.
10166
4a8d3d91
JM
101672011-03-22 Joseph Myers <joseph@codesourcery.com>
10168
10169 * config/v850/v850-opts.h: New.
10170 * config/v850/v850.c (small_memory): Replace with
10171 small_memory_physical_max array. Make that array static const.
10172 (v850_handle_memory_option): Take integer value of argument. Take
10173 gcc_options pointer, option text and location. Return void.
10174 Update for changes to small memory structures.
10175 (v850_handle_option): Access target_flags via opts pointer. Don't
10176 assert that global structures are in use. Update calls to
10177 v850_handle_memory_option.
c78dd519
UB
10178 (v850_encode_data_area): Update references to small memory settings.
10179 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
10180 (enum small_memory_type): Move to v850-opts.h.
10181 * config/v850/v850.opt (config/v850/v850-opts.h): New
10182 HeaderInclude entry.
10183 (small_memory_max): New Variable entry.
10184 (msda): Replace by pair of options msda= and msda-. Use UInteger.
10185 (mtda, mzda): Likewise.
10186
117fdbfa
JM
101872011-03-22 Joseph Myers <joseph@codesourcery.com>
10188
10189 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10190 pointer. Don't assert that global structures are in use.
10191
d715091c
JM
101922011-03-22 Joseph Myers <joseph@codesourcery.com>
10193
10194 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10195 via opts pointer. Don't assert that global structures are in use.
10196
1bb721dc
JM
101972011-03-22 Joseph Myers <joseph@codesourcery.com>
10198
10199 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10200 (munix=93): Use Var.
10201 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10202 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10203 * config/pa/pa-opts.h: New.
10204 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10205 (pa_handle_option): Don't assert that global structures are in
10206 use. Access target_flags via opts pointer. Don't handle
10207 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10208 OPT_munix_98 here.
10209 (pa_option_override): Handle deferred OPT_mfixed_range_.
10210
cd8d8754
JM
102112011-03-22 Joseph Myers <joseph@codesourcery.com>
10212
10213 * config/mn10300/mn10300-opts.h: New.
10214 * config/mn10300/mn10300.c (mn10300_processor,
10215 mn10300_tune_string): Remove.
10216 (mn10300_handle_option): Don't assert that global structures are
10217 in use. Access mn10300_processor via opts pointer. Don't handle
10218 OPT_mtune_ here.
10219 * config/mn10300/mn10300.h (enum processor_type): Move to
10220 mn10300-opts.h.
10221 (mn10300_processor): Remove.
10222 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10223 HeaderInclude entry.
10224 (mn10300_processor): New Variable entry.
10225 (mtune=): Use Var.
10226
24e6e6b1
JM
102272011-03-22 Joseph Myers <joseph@codesourcery.com>
10228
10229 * config/microblaze/microblaze.c: Don't include opts.h.
10230 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10231 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10232 (mno-clearbss): Use Var and Warn.
10233
8a784afb
JM
102342011-03-22 Joseph Myers <joseph@codesourcery.com>
10235
10236 * config/m32r/m32r-opts.h: New.
10237 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10238 (m32r_handle_option): Don't assert that global structures are in
10239 use. Access target_flags and m32r_cache_flush_func via opts
10240 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
10241 OPT_mno_flush_trap here.
10242 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10243 include of m32r-opts.h.
10244 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10245 HeaderInclude entry.
10246 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10247 (mmodel=): Use Enum and Var.
10248 (m32r_model): New Enum and EnumValue entries.
10249 (mno-flush-trap): Use Var.
10250 (msdata=): Use Enum and Var.
10251 (m32r_sdata): New Enum and EnumValue entries.
10252
bbfc9a8c
JM
102532011-03-22 Joseph Myers <joseph@codesourcery.com>
10254
10255 * config/m32c/m32c.c: Don't include opts.h.
10256 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10257 m32c_handle_option): Remove.
10258 (m32c_option_override): Check global_options_set.x_target_memregs
10259 instead of target_memregs_set.
10260 * config/m32c/m32c.h (target_memregs): Remove.
10261 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10262 variable.
10263
e24b8335
JM
102642011-03-22 Joseph Myers <joseph@codesourcery.com>
10265
10266 * config/iq2000/iq2000-opts.h: New.
10267 * config/iq2000/iq2000.c: Don't include opts.h.
10268 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 10269 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
10270 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10271 HeaderInclude entry.
10272 (iq2000_tune): New Variable entry.
10273 (march=): Add comment. Use Enum.
10274 (iq2000_arch): New Enum and EnumValue entries.
10275 (mcpu=): Use Enum and Var.
10276 (iq2000_tune): New Enum and EnumValue entries.
10277
e6cc0c98
JM
102782011-03-22 Joseph Myers <joseph@codesourcery.com>
10279
10280 * config/ia64/ia64-opts.h: New.
10281 * config/ia64/ia64.c (ia64_tune): Remove.
10282 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10283 here. Use error_at.
10284 (ia64_option_override): Handle deferred OPT_mfixed_range_.
10285 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10286 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10287 HeaderInclude entry.
10288 (ia64_tune): New Variable entry.
10289 (mfixed-range=): Use Defer and Var.
10290 (mtune=): Use Enum and Var.
10291 (ia64_tune): New Enum and EnumValue entries.
10292
db25893c
JM
102932011-03-22 Joseph Myers <joseph@codesourcery.com>
10294
10295 * config/frv/frv-opts.h: New.
10296 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10297 frv-opts.h.
10298 (frv_cpu_type): Remove.
10299 * config/frv/frv.c: Don't include opts.h.
10300 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 10301 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
10302 (frv_cpu_type): New Variable entry.
10303 (frv_cpu): New Enum and EnumValue entries.
10304
6c223f5d
JM
103052011-03-22 Joseph Myers <joseph@codesourcery.com>
10306
10307 * config/cris/cris.c (cris_handle_option): Access target_flags via
10308 opts pointer. Don't assert that global structures are in use.
10309 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10310 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10311
bbd399cf
JM
103122011-03-22 Joseph Myers <joseph@codesourcery.com>
10313
10314 * config/bfin/bfin-opts.h: New.
10315 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10316 bfin_si_revision, bfin_workarounds): Remove.
10317 (bfin_cpus): Make static const.
10318 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10319 not bfin_lib_id_given.
10320 (bfin_handle_option): Don't set bfin_lib_id_given. Access
10321 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 10322 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
10323 * config/bfin/bfin.h: Include bfin-opts.h.
10324 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10325 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10326 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10327 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10328 entries.
10329
5e1b4d5a
JM
103302011-03-22 Joseph Myers <joseph@codesourcery.com>
10331
10332 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10333 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10334 or -msoft-float here.
10335 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10336 -msoft-float and -mhard-float.
c78dd519 10337 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
10338 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10339 msoft-float.
10340 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10341 -msoft-float.
10342 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10343 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10344 not mhard-float.
10345 (LIBGCC_SPEC): Don't handle -msoft-float.
10346 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10347 -mhard-float.
10348 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10349 msoft-float.
10350 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10351 -mfloat-abi=*, not -msoft-float and -mhard-float.
10352 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10353 -msoft-float.
10354 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10355 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10356 mhard-float and msoft-float.
10357 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10358 mfloat-abi=soft in comments, not mhard-float and msoft-float.
10359 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10360 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10361 mhard-float.
10362 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10363 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10364 msoft-float.
10365 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10366 not mhard-float.
10367 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10368 not msoft-float.
10369
800d1de1
RH
103702011-03-22 Richard Henderson <rth@redhat.com>
10371
10372 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10373 TARGET_ABI_WINDOWS_NT.
10374 (alpha_output_function_end_prologue): Likewise.
10375 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10376 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10377 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10378 (trap, *movsi_nt_vms): Likewise.
10379 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10380 (*tablejump_osf_nt_internal): Remove.
10381 * config/alpha/predicates.md (input_operand): Only test Pmode.
10382
c59ddd2b
JM
103832011-03-22 Joseph Myers <joseph@codesourcery.com>
10384
10385 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10386 via opts pointer. Use error_at. Don't assert that global
10387 structures are in use.
10388
1333f97f
JM
103892011-03-22 Joseph Myers <joseph@codesourcery.com>
10390
10391 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10392 (ix86_handle_option): Access ix86_isa_flags and
10393 ix86_isa_flags_explicit via opts pointer. Don't assert that
10394 global structures are in use.
10395 (ix86_function_specific_save, ix86_function_specific_restore):
10396 Update ix86_isa_flags_explicit field name.
c78dd519 10397 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
10398 (ix86_isa_flags_explicit): Rename TargetSave entry to
10399 x_ix86_isa_flags_explicit.
10400
75db85d8
RH
104012011-03-22 Richard Henderson <rth@redhat.com>
10402
10403 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10404 (alpha_option_override, direct_return): Likewise.
10405 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10406 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10407 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10408 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10409 (alpha_expand_epilogue, alpha_end_function): Likewise.
10410 (alpha_init_libfuncs): Likewise.
10411 (struct machine_function): Remove unicosmk members.
10412 (print_operand) ['t']: Remove.
10413 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10414 unicosmk_output_module_name, unicosmk_output_common,
10415 current_section_align, unicosmk_output_text_section_asm_op,
10416 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10417 unicosmk_section_type_flags, unicosmk_unique_section,
10418 unicosmk_asm_named_section, unicosmk_insert_attributes,
10419 unicosmk_output_align, unicosmk_defer_case_vector,
10420 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10421 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10422 unicosmk_output_ssib, unicosmk_add_call_info_word,
10423 unicosmk_extern_head, unicosmk_output_default_externs,
10424 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10425 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10426 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10427 * config/alpha/alpha-protos.h: Update.
10428 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10429 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10430 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10431 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10432 (*mulsi_se, mulvsi3): Likewise.
10433 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10434 (*divmodsi_internal, call, call_value, realign): Likewise.
10435 (moddi3, umoddi3): Likewise; remove duplicate expander.
10436 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10437 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10438 (*movdi_nofix): Remove r/U alternative.
10439 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10440 * config/alpha/constraints.md ("U"): Remove.
10441 * config/alpha/predicates.md (call_operand"): Don't test
10442 TARGET_ABI_UNICOSMK.
10443
96e45421
JM
104442011-03-22 Joseph Myers <joseph@codesourcery.com>
10445
10446 * target.def (handle_option): Take gcc_options and
10447 cl_decoded_option pointers and location_t.
10448 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10449 * doc/tm.texi: Regenerate.
10450 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10451 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10452 * lto-opts.c (lto_reissue_options): Generate option structure for
10453 targetm.handle_option call.
10454 * opts.c (target_handle_option): Update call to
10455 targetm.handle_option. Remove assertions about values now passed
10456 down to hook.
10457 * targhooks.c (default_target_handle_option): New.
10458 * targhooks.h (default_target_handle_option): Declare.
10459 * config/alpha/alpha.c: Include opts.h.
10460 (alpha_handle_option): Update to new hook interface.
10461 * config/arm/arm.c: Include opts.h.
10462 (arm_handle_option): Update to new hook interface.
10463 * config/arm/t-arm (arm.o): Update dependencies.
10464 * config/bfin/bfin.c: Include opts.h.
10465 (bfin_handle_option): Update to new hook interface.
10466 * config/cris/cris.c: Include opts.h.
10467 (cris_handle_option): Update to new hook interface.
10468 * config/frv/frv.c: Include opts.h.
10469 (frv_handle_option): Update to new hook interface.
10470 * config/i386/i386.c: Include opts.h.
10471 (ix86_handle_option): Update to new hook interface.
10472 (ix86_valid_target_attribute_inner_p): Generate option structure
10473 for call to ix86_handle_option.
10474 * config/i386/t-i386 (i386.o): Update dependencies.
10475 * config/ia64/ia64.c: Include opts.h.
10476 (ia64_handle_option): Update to new hook interface.
10477 * config/ia64/t-ia64 (ia64.o): Update dependencies.
10478 * config/iq2000/iq2000.c: Include opts.h.
10479 (iq2000_handle_option): Update to new hook interface.
10480 * config/m32c/m32c.c: Include opts.h.
10481 (m32c_handle_option): Update to new hook interface.
10482 * config/m32r/m32r.c: Include opts.h.
10483 (m32r_handle_option): Update to new hook interface.
10484 * config/m68k/m68k.c: Include opts.h.
10485 (m68k_handle_option): Update to new hook interface.
10486 * config/mep/mep.c: Include opts.h.
10487 (mep_handle_option): Update to new hook interface.
10488 * config/microblaze/microblaze.c: Include opts.h.
10489 (microblaze_handle_option): Update to new hook interface.
10490 * config/mips/mips.c: Include opts.h.
10491 (mips_handle_option): Update to new hook interface.
10492 * config/mn10300/mn10300.c: Include opts.h.
10493 (mn10300_handle_option): Update to new hook interface.
10494 * config/pa/pa.c: Include opts.h.
10495 (pa_handle_option): Update to new hook interface.
10496 * config/pdp11/pdp11.c: Include opts.h.
10497 (pdp11_handle_option): Update to new hook interface.
10498 * config/rs6000/rs6000.c: Include opts.h.
10499 (rs6000_handle_option): Update to new hook interface.
10500 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10501 * config/rx/rx.c: Include opts.h.
10502 (rx_handle_option): Update to new hook interface.
10503 * config/s390/s390.c: Include opts.h.
10504 (s390_handle_option): Update to new hook interface.
10505 * config/score/score.c: Include opts.h.
10506 (score_handle_option): Update to new hook interface.
10507 * config/sh/sh.c: Include opts.h.
10508 (sh_handle_option): Update to new hook interface.
10509 * config/sparc/sparc.c: Include opts.h.
10510 (sparc_handle_option): Update to new hook interface.
10511 * config/v850/v850.c: Include opts.h.
10512 (v850_handle_option): Update to new hook interface.
10513
66017846
JM
105142011-03-22 Joseph Myers <joseph@codesourcery.com>
10515
10516 * gcc.c (driver_unknown_option_callback): Only permit and save
10517 unknown -Wno- options.
10518 (driver_wrong_lang_callback): Save options directly instead of via
10519 driver_unknown_option_callback.
10520
e8b97ccd
EB
105212011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10522
10523 * combine.c (simplify_set): Try harder to find the best CC mode when
10524 simplifying a nested COMPARE on the RHS.
10525
ebb9f8b0
JM
105262011-03-22 Joseph Myers <joseph@codesourcery.com>
10527
10528 * config/alpha/gnu.h: Remove.
10529 * config/arc: Remove directory.
10530 * config/arm/netbsd.h: Remove.
10531 * config/arm/t-pe: Remove.
10532 * config/crx: Remove directory.
10533 * config/i386/netbsd.h: Remove.
10534 * config/m68hc11: Remove directory.
10535 * config/m68k/uclinux-oldabi.h: Remove.
10536 * config/mcore/mcore-pe.h: Remove.
10537 * config/mcore/t-mcore-pe: Remove.
10538 * config/netbsd-aout.h: Remove.
10539 * config/rs6000/gnu.h: Remove.
10540 * config/sh/sh-symbian.h: Remove.
10541 * config/sh/symbian-base.c: Remove.
10542 * config/sh/symbian-c.c: Remove.
10543 * config/sh/symbian-cxx.c: Remove.
10544 * config/sh/symbian-post.h: Remove.
10545 * config/sh/symbian-pre.h: Remove.
10546 * config/sh/t-symbian: Remove.
10547 * config/svr3.h: Remove.
10548 * config/vax/netbsd.h: Remove.
10549 * config.build: Don't handle i[34567]86-*-pe.
10550 * config.gcc: Remove handling of deprecations for most deprecated
10551 targets.
10552 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10553 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10554 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10555 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10556 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10557 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10558 Remove cases.
10559 * config.host: Don't handle i[34567]86-*-pe.
10560 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10561 (ASM_SPEC32): Don't handle -mcall-gnu.
10562 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10563 -mcall-gnu.
10564 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10565 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10566 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10567 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10568 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10569 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10570 conditional on SYMBIAN.
10571 * configure.ac: Don't handle powerpc*-*-gnu*.
10572 * configure: Regenerate.
10573 * doc/extend.texi (interrupt attribute): Don't mention CRX.
10574 * doc/install-old.texi (m6811, m6812): Don't mention.
10575 * doc/install.texi (arc-*-elf*): Don't document multilib option.
10576 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10577 (m68k-uclinuxoldabi): Don't mention.
10578 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10579 Remove.
10580 (-mcall-gnu): Remove.
10581 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10582 families): Remove constraint documentation.
10583
999a7d80
MS
105842011-03-22 Marius Strobl <marius@FreeBSD.org>
10585
10586 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10587 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10588 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10589
45540bcf
MM
105902011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10591
10592 PR target/48226
10593 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10594 vector when peeking at the next token for vector, don't expand the
10595 keywords.
10596
980a0ff4
GJL
105972011-03-21 Georg-Johann Lay <avr@gjlay.de>
10598
10599 * config/avr/avr-protos.h (expand_epilogue): Change prototype
10600 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10601 * config/avr/avr.c (init_cumulative_args)
10602 (avr_function_arg_advance): Use it.
10603 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10604 sibcall epilogues.
10605 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10606 (avr_function_ok_for_sibcall): ...this new function.
10607 (avr_lookup_function_attribute1): New static Function.
10608 (avr_naked_function_p, interrupt_function_p)
10609 (signal_function_p, avr_OS_task_function_p)
10610 (avr_OS_main_function_p): Use it.
10611 * config/avr/avr.md ("sibcall", "sibcall_value")
10612 ("sibcall_epilogue"): New expander.
10613 ("*call_insn", "*call_value_insn"): New insn.
10614 ("call_insn", "call_value_insn"): Remove
10615 ("call", "call_value", "epilogue"): Change expander to handle
10616 sibling calls.
10617
49168734
NC
106182011-03-21 Nick Clifton <nickc@redhat.com>
10619
10620 * doc/invoke.texi (Overall Options): Move closing brace to end of
10621 options list.
10622 (Optimization Options): Add missing @gol.
10623 (Directory Options): Likewise.
10624 (i386 and x86-64 Options): Likewise.
10625 (RS6000 and PowerPC Options): Likewise.
10626 (i386 and x86-64 Windows Options): Likewise.
10627 (V850 Options): Add text missing from descriptions.
10628
bdfe906f
RH
106292011-03-22 Richard Henderson <rth@redhat.com>
10630
10631 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10632 (avr_incoming_return_addr_rtx): New.
10633 (emit_push_byte): New.
10634 (expand_prologue): Use it. Remove incorrect dwarf annotation for
10635 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
10636 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
10637 (emit_pop_byte): New.
10638 (expand_epilogue): Use it. Pop frame pointer by bytes.
10639 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10640 (INCOMING_RETURN_ADDR_RTX): New.
10641 (INCOMING_FRAME_SP_OFFSET): New.
10642 (ARG_POINTER_CFA_OFFSET): New.
10643 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10644 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10645 (pophi): Remove.
10646
d090a5aa
RH
10647 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10648
fdf3e18a
NF
106492011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10650
10651 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10652 (FUNCTION_ARG_ADVANCE): Likewise.
10653 * tm.texi.in: Change references to them to hook references.
10654 * tm.texi: Regenerate.
10655 * targhooks.c (default_function_arg): Eliminate check for target
10656 macro.
10657 (default_function_incoming_arg): Likewise.
10658 (default_function_arg_advance): Likewise.
c78dd519 10659 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
10660 (function_arg_advance): Likewise.
10661 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10662
009d3fcf
NF
106632011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10664
10665 * tree.c (build_call_1): New function.
10666 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10667
7bec30e1
RG
106682011-03-22 Richard Guenther <rguenther@suse.de>
10669
10670 PR tree-optimization/48228
10671 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10672 for single-arg PHIs.
10673
0b7e851b
AB
106742011-03-22 Andrey Belevantsev <abel@ispras.ru>
10675
10676 PR rtl-optimization/48143
10677 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10678 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10679 sse2_cvtps2pd): Likewise.
10680
d89afca5
AK
106812011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10682
10683 * recog.c (canonicalize_change_group): Use validate_unshare_change.
10684
f471fe72
RG
106852011-03-22 Richard Guenther <rguenther@suse.de>
10686
10687 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10688 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10689 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10690 and REALIGN_LOAD_EXPR.
10691 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10692 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10693 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10694 DOT_PROD_EXPR case ...
10695 (expand_expr_real_2): ... here.
10696 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10697 and REALIGN_LOAD_EXPR.
10698 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10699 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10700 (vect_create_epilog_for_reduction): Likewise.
10701 (vectorizable_reduction): Likewise.
10702 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10703 * tree-vect-stmts.c (vectorizable_load): Likewise.
10704
f2f81d57
EB
107052011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10706
10707 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10708
ab081dd6
AK
107092011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10710
10711 * config/s390/s390.c (s390_delegitimize_address): Fix offset
10712 handling for PLTOFF/GOTOFF.
10713
6fd5332b
NC
107142011-03-22 Nick Clifton <nickc@redhat.com>
10715
10716 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10717 trailing backslash from the end of the macro definition.
10718
01841ac0
AK
107192011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10720
10721 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10722 and PLT unspecs.
10723
2ef6ce06
RS
107242011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
10725
10726 * expr.h (prepare_operand): Move to...
10727 * optabs.h (prepare_operand): ...here and change the insn code
10728 parameter from "int" to "enum insn_code".
10729 (insn_operand_matches): Declare.
10730 * expr.c (init_expr_target): Use insn_operand_matches.
10731 (compress_float_constant): Likewise.
10732 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10733 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10734 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
10735 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10736 Likewise.
2ef6ce06
RS
10737 (gen_cond_trap): Likewise.
10738 (prepare_operand): Likewise. Change icode to an insn_code.
10739 (insn_operand_matches): New function.
10740 * reload.c (find_reloads_address_1): Use insn_operand_matches.
10741 * reload1.c (gen_reload): Likewise.
10742 * targhooks.c (default_secondary_reload): Likewise.
10743
9e43ad68
UB
107442011-03-21 Uros Bizjak <ubizjak@gmail.com>
10745
9a96da32
UB
10746 * config/alpha/alpha.md (unspec): New define_c_enum.
10747 (unspecv): Ditto.
10748
107492011-03-21 Uros Bizjak <ubizjak@gmail.com>
10750
10751 PR debug/48214
9e43ad68
UB
10752 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10753 between a call and its CALL_ARG_LOCATION note.
10754
31408f60
EB
107552011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10756
10757 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10758
107592011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
10760
10761 PR c/42544
10762 PR c/48197
10763 * c-common.c (shorten_compare): If primopN is first sign-extended
10764 to opN and then zero-extended to result type, set primopN to opN.
10765
9dfd55f5
DJ
107662011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
10767
10768 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10769 for barrier handlers.
10770
f3c33d9d
MM
107712011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10772
10773 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10774 UNSPEC constants to be in the unspec enumeration, and redefine
10775 all UNSPECV constants to be in the unspecv enumeration, so that
10776 dumps print which unspec/unspec_volatile this is.
10777 * config/rs6000/vector.md (UNSPEC_*): Ditto.
10778 * config/rs6000/paired.md (UNSPEC_*): Ditto.
10779 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10780 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10781 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10782
10783 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10784 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10785 UNSPECV_LWSYNC, since these are used as unspec_volatile.
10786 * config/rs6000/sync.md (isync, lwsync): Ditto.
10787
ac43f774
RG
107882011-03-21 Richard Guenther <rguenther@suse.de>
10789
10790 * params.def (lto-min-partition): Fix typo.
10791
411cdbd8
RG
107922011-03-21 Richard Guenther <rguenther@suse.de>
10793
10794 PR c/47939
10795 * c-decl.c (grokdeclarator): Drop to the main variant only
10796 for array types. Drop flag_gen_aux_info check.
10797
1cd9e416
RG
107982011-03-21 Richard Guenther <rguenther@suse.de>
10799
10800 PR translation/47911
10801 * params.def (lto-partitions): Fix typo.
10802 (lto-min-partition): Fix wording.
10803
ada5ad67
AT
108042011-03-21 Andreas Tobler <andreast@fgznet.ch>
10805
10806 * config/rs6000/t-freebsd: Remove duplication from file.
10807
f9613c9a
RG
108082011-03-21 Richard Guenther <rguenther@suse.de>
10809
10810 PR middle-end/47661
10811 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10812
9bfbc1eb
RG
108132011-03-21 Richard Guenther <rguenther@suse.de>
10814
10815 PR lto/48210
10816 * params.def (lto-partitions): Require at least 1 partition.
10817
a2268084
RO
108182011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10819
10820 * gthr-solaris.h: Remove.
10821 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10822 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10823 (LIB_SPEC): Likewise.
10824 * config/sol2.opt (threads): Remove.
9e43ad68 10825 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
10826 (sparc*-*-solaris2*): Likewise.
10827 * configure.ac (enable_threads): Enable solaris support.
10828 * configure: Regenerate.
9e43ad68 10829 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
10830 * doc/install.texi (Configuration, --enable-threads=lib): Remove
10831 solaris.
10832
c43d9a1b
RO
108332011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10834
10835 * config.gcc: Obsolete *-*-solaris2.8*.
10836 * doc/install.texi (Specific, *-*-solaris2*): Document it.
10837
084239f4
RO
108382011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10839
10840 PR bootstrap/48135
10841 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10842 reference. Solaris 8 perl works.
10843
64cadbe7
RO
108442011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10845
10846 PR bootstrap/48135
10847 * doc/install.texi (Prerequisites): Move jar etc. up.
10848 Explain support library version requirements.
10849
eb975109
RO
108502011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10851
10852 PR bootstrap/48135
10853 * doc/install.texi (Prerequisites): Move Perl to build
10854 requirements. Always necessary on Solaris 2 with Sun ld.
10855
8a509ffd
RO
108562011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10857
10858 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10859 binutils 2.21.
10860 (Specific, i?86-*-solaris2.[89]): Likewise.
10861 (Specific, i?86-*-solaris2.10): Likewise.
10862 (Specific, mips-sgi-irix6): Likewise.
10863 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10864 Update for binutils 2.21.
10865
8fbc58a1
RO
108662011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10867
10868 * configure.ac (gcc_cv_lto_plugin): Fix typo.
10869 Allow -fuse-linker-plugin for non-default plugin linker.
10870 * configure: Regenerate.
10871
7e84ad0b
NP
108722011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
10873
10874 PR bootstrap/48167
10875 * gengtype.c (files_rules): Added rule for cp/parser.h.
10876
2f36e14b
JJ
108772011-03-21 Jakub Jelinek <jakub@redhat.com>
10878
10879 PR target/48213
10880 * config/s390/s390.c (s390_delegitimize_address): Don't call
10881 lowpart_subreg if orig_x has BLKmode.
10882
62d784f7
KT
108832011-03-21 Kai Tietz <ktietz@redhat.com>
10884
10885 PR target/12171
9e43ad68
UB
10886 * doc/plugins.texi: Adjust documentation for plugin register_callback.
10887 * tree.h (attribute_spec): Add new member affects_type_identity.
10888 * attribs.c (empty_attribute_table): Adjust attribute_spec
10889 initializers.
62d784f7
KT
10890 * config/alpha/alpha.c: Likewise.
10891 * config/arc/arc.c: Likewise.
10892 * config/arm/arm.c: Likewise.
10893 * config/avr/avr.c: Likewise.
10894 * config/bfin/bfin.c: Likewise.
10895 * config/crx/crx.c: Likewise.
10896 * config/darwin.h: Likewise.
10897 * config/h8300/h8300.c: Likewise.
10898 * config/i386/cygming.h: Likewise.
10899 * config/i386/i386.c: Likewise.
10900 * config/ia64/ia64.c: Likewise.
10901 * config/m32c/m32c.c: Likewise.
10902 * config/m32r/m32r.c: Likewise.
10903 * config/m68hc11/m68hc11.c: Likewise.
10904 * config/m68k/m68k.c: Likewise.
10905 * config/mcore/mcore.c: Likewise.
10906 * config/mep/mep.c: Likewise.
10907 * config/microblaze/microblaze.c: Likewise.
10908 * config/mips/mips.c: Likewise.
10909 * config/rs6000/rs6000.c: Likewise.
10910 * config/rx/rx.c: Likewise.
10911 * config/sh/sh.c: Likewise.
10912 * config/sol2.h: Likewise.
10913 * config/sparc/sparc.c: Likewise.
10914 * config/spu/spu.c: Likewise.
10915 * config/stormy16/stormy16.c: Likewise.
10916 * config/v850/v850.c: Likewise.
10917
54833ec0
CLT
109182011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
10919
10920 * simplify-rtx.c (simplify_binary_operation_1): Handle
10921 (xor (and A B) C) case when B and C are both constants.
10922
14a41392
MX
109232011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
10924
10925 * tree-dfa.c (add_referenced_var): Fix typo in comment.
10926
806c3492
EB
109272011-03-20 Eric Botcazou <ebotcazou@adacore.com>
10928
10929 PR bootstrap/48168
10930 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
10931
65e0a0f3
JJ
109322011-03-20 Jakub Jelinek <jakub@redhat.com>
10933
10934 PR rtl-optimization/48156
10935 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
10936 assume df and df_lr are not NULL.
10937
b6a75dda
RR
109382011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10939
10940 PR debug/48023
10941 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
10942 between a call and its CALL_ARG_LOCATION note.
10943
5969b52d
KK
109442011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10945
10946 PR debug/48178
10947 * config/sh/sh.c (find_barrier): Don't emit a constant pool
10948 between a call and its corresponding CALL_ARG_LOCATION note.
10949
f773c2bd
AS
109502011-03-19 Anatoly Sokolov <aesok@post.ru>
10951
10952 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
10953 instead of loop. Use HARD_REGISTER_NUM_P predicate.
10954 * haifa-sched.c (setup_ref_regs): Ditto.
10955 * caller-save.c (add_used_regs_1): Ditto.
10956 * dse.c (look_for_hardregs): Ditto.
10957 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
10958 * sched-rgn.c (check_live_1): Ditto.
10959
8bf872f9
JM
109602011-03-18 Joseph Myers <joseph@codesourcery.com>
10961
10962 * c-decl.c (diagnose_mismatched_decls): Give an error for
10963 redefining a typedef with variably modified type.
10964
ff8e2159
JM
109652011-03-18 Joseph Myers <joseph@codesourcery.com>
10966
10967 * c-decl.c (grokfield): Don't allow typedefs for structures or
10968 unions with no tag by default.
10969 * doc/extend.texi (Unnamed Fields): Update.
10970
16cc4440
UB
109712011-03-18 Uros Bizjak <ubizjak@gmail.com>
10972
10973 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10974 Rewrite using indirect functions.
10975 (lwp_slwpcb): Ditto.
10976 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
10977 (avx_vinsertf128<mode>): Ditto.
10978
e101e12e
AK
109792011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10980
10981 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
10982 unspecs.
10983
4627c7fb
AK
109842011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10985
10986 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 10987 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 10988
2d36b47f
MK
109892011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
10990
10991 PR rtl-optimization/48170
10992 * gcse.c (hoist_code): Remove bogus asserts.
10993
2a3d7659
JL
109942011-03-18 Georg-Johann Lay <avr@gjlay.de>
10995
10996 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
10997 computation for prologue/epilogue.
10998
34c3ef05
RO
109992011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11000
11001 * Makefile.in (check-consistency): Remove.
11002
81f2b976
JJ
110032011-03-18 Jakub Jelinek <jakub@redhat.com>
11004
11005 PR debug/48176
11006 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11007 arange_table_in_use is 0, but either text_section_used or
11008 cold_text_section_used is true. Don't call it if
11009 !info_section_emitted.
11010
68fd7765
AS
110112011-03-18 Anatoly Sokolov <aesok@post.ru>
11012
11013 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11014 FUNCTION_VALUE_REGNO_P): Remove.
11015 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11016 Remove.
11017 * config/avr/avr.c (avr_ret_register): Make static inline.
11018 (avr_function_value_regno_p): New function.
11019 (avr_libcall_value): Make static. Add 'func' argument.
11020 (avr_function_value): Make static. Rename 'func' argument to
11021 'fn_decl_or_type', forward it to avr_libcall_value. Call
11022 avr_ret_register function instead of RET_REGISTER macro.
11023 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11024
b4ef8aac
JM
110252011-03-18 Jason Merrill <jason@redhat.com>
11026
11027 PR c++/23372
11028 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11029
09a52fc3
RG
110302011-03-18 Richard Guenther <rguenther@suse.de>
11031
11032 * doc/install.texi (--enable-gold): Remove.
11033 (--with-plugin-ld): Document.
11034 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11035
2a3d7659 110362011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
11037
11038 PR middle-end/47790
11039 * expr.c (optimize_bitfield_assignment_op): Revamp to work
11040 again after expansion changes.
11041
2abbb0fe
CLT
110422011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
11043
11044 * combine.c (try_combine): Do simplification only call of
11045 subst() on i2 even when i1 is present. Update comments.
11046
2efd0aa6
KK
110472011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
11048
11049 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11050 and UNSPEC_PCREL_SYMOFF.
11051
30a49b23
AK
110522011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11053
11054 * config/s390/s390.md: Use define_c_enum for the unspec constant
11055 definitions.
11056
419e1853
JJ
110572011-03-18 Richard Henderson <rth@redhat.com>
11058 Jakub Jelinek <jakub@redhat.com>
11059
11060 PR bootstrap/48161
11061 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11062 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11063
37875856
L
110642011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11065
11066 PR middle-end/47725
11067 * combine.c (cant_combine_insn_p): Don't check zero/sign
11068 extended hard registers.
11069
76069764
L
110702011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11071
11072 PR middle-end/47725
11073 * combine.c (cant_combine_insn_p): Check zero/sign extended
11074 hard registers.
11075
24da2019
AS
110762011-03-17 Anatoly Sokolov <aesok@post.ru>
11077
11078 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11079 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11080 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11081 Change return type to bool.
11082 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11083
a82ff31f
JJ
110842011-03-17 Jakub Jelinek <jakub@redhat.com>
11085
8b29c87a
JJ
11086 PR debug/48163
11087 * var-tracking.c (prepare_call_arguments): If CALL target
11088 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11089 pc instead of looking it up using cselib_lookup and use
11090 Pmode for it if x has VOIDmode.
11091 * dwarf2out.c (gen_subprogram_die): If also both first and
11092 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11093
a82ff31f
JJ
11094 PR debug/48163
11095 * function.c (assign_parms): For data.passed_pointer parms
11096 use MEM of data.entry_parm instead of data.entry_parm itself
11097 as DECL_INCOMING_RTL.
11098 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11099 also when passed and declared mode is the same, DECL_RTL
11100 is a MEM with pseudo as address and DECL_INCOMING_RTL is
11101 a MEM too.
11102
82ce305c
JL
111032011-03-16 Jeff Law <law@redhat.com>
11104
11105 PR rtl-optimization/37273
11106 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11107 handle them like argument loads from stack slots. Do not double
11108 count memory for memory constants and argument loads from stack slots.
11109
fe58e02b
L
111102011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11111
11112 PR debug/48160
11113 * var-tracking.c (prepare_call_arguments): Check SUBREG.
11114
6fc4dbc7
L
111152011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11116
11117 PR target/48171
11118 * config/i386/i386.opt: Add Save to -mavx and -mfma.
11119
db3ed0b3
JJ
111202011-03-17 Jakub Jelinek <jakub@redhat.com>
11121
8054a389
JJ
11122 PR bootstrap/48153
11123 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11124 if dwarf_strict.
11125 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11126 Clear call_arg_locations and call_arg_loc_last always.
11127
db3ed0b3
JJ
11128 PR middle-end/48152
11129 * var-tracking.c (prepare_call_arguments): If argument needs to be
11130 passed by reference, adjust argtype and mode.
11131
1bce4ff3
RG
111322011-03-17 Richard Guenther <rguenther@suse.de>
11133
11134 PR middle-end/48134
11135 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11136 a value make sure to fold the statement.
11137
7c71147d
CLT
111382011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
11139
11140 PR target/43872
11141 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11142 return condition with !cfun->calls_alloca.
11143
0e1ee172
RG
111442011-03-17 Richard Guenther <rguenther@suse.de>
11145
11146 PR bootstrap/48148
11147 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11148 origin for decls in other ltrans units.
11149 (input_varpool_node): Likewise.
11150
f8bce518
RG
111512011-03-17 Richard Guenther <rguenther@suse.de>
11152
11153 PR middle-end/48165
11154 * tree-object-size.c (compute_object_offset): Properly return
11155 the offset operand of MEM_REFs as sizetype.
11156
1b6fa860
JJ
111572011-03-17 Jakub Jelinek <jakub@redhat.com>
11158
dabd47e7
JJ
11159 PR rtl-optimization/48141
11160 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11161 * dse.c: Include params.h.
11162 (active_local_stores_len): New variable.
11163 (add_wild_read, dse_step1): Clear it when setting active_local_stores
11164 to NULL.
11165 (record_store, check_mem_read_rtx): Decrease it when removing
11166 from the chain.
11167 (scan_insn): Likewise. Increase it when adding to chain, if it
11168 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11169 set active_local_stores to NULL before the addition.
11170 * Makefile.in (dse.o): Depend on $(PARAMS_H).
11171
1b6fa860
JJ
11172 PR rtl-optimization/48141
11173 * dse.c (record_store): If no positions are needed in an insn
11174 that cannot be deleted, at least unchain it from active_local_stores.
11175
7b5cb7d6
DS
111762011-03-16 Dodji Seketeli <dodji@redhat.com>
11177
11178 PR debug/47510
11179 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11180 (lookup_type_die_strip_naming_typedef): ... here.
11181 (get_context_die): Use it.
11182 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11183 the anonymous struct named by the naming typedef.
11184
585e9d9d
L
111852011-03-16 H.J. Lu <hongjiu.lu@intel.com>
11186
11187 PR target/48154
11188 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11189 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11190
6261ab0e
JL
111912011-03-16 Jeff Law <law@redhat.com>
11192
11193 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 11194 check for operands of conditional. Allow type to be a pointer.
6261ab0e 11195
0b0081ec
RG
111962011-03-16 Richard Guenther <rguenther@suse.de>
11197
11198 PR tree-optimization/48149
11199 * fold-const.c (fold_binary_loc): Fold
11200 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11201
64a3d647
RG
112022011-03-16 Richard Guenther <rguenther@suse.de>
11203
11204 PR tree-optimization/26134
11205 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11206 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11207 (non_rewritable_mem_ref_base): Handle complex type component
11208 accesses, constrain offsets for vector and complex extracts
11209 more properly.
11210
ef13324e
RG
112112011-03-16 Richard Guenther <rguenther@suse.de>
11212
11213 PR tree-optimization/48146
11214 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11215 operands avoiding the need for renaming.
11216
f0eddb90
RG
112172011-03-16 Richard Guenther <rguenther@suse.de>
11218
11219 * gimple-fold.c (maybe_fold_reference): Open-code relevant
11220 constant folding. Move MEM_REF canonicalization first.
11221 Rely on fold_const_aggregate_ref for initializer folding.
11222 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11223
e42348b8
JJ
112242011-03-16 Jakub Jelinek <jakub@redhat.com>
11225
29f10e71
JJ
11226 PR middle-end/48136
11227 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11228 arg0/arg1 or their arguments are always fold converted to matching
11229 types.
11230
e42348b8
JJ
11231 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11232 to nargs.
11233
55b46574
RO
112342011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11235
11236 PR lto/46944
11237 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11238 Handle in-tree gold.
11239 (ld_vers): Extract binutils version for gold.
11240 (gcc_cv_ld_hidden): Handle gold here.
11241 (gcc_cv_lto_plugin): Determine level of linker plugin support.
11242 * configure: Regenerate.
11243 * config.in: Regenerate.
11244 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11245 -fuse-linker-plugin otherwise.
11246 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
11247 (LINK_COMMAND_SPEC): Use it.
11248 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11249
2b1c5433
JJ
112502011-03-16 Jakub Jelinek <jakub@redhat.com>
11251
c2969d8e
JJ
11252 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11253 * calls.c: Remove debug.h include.
11254 (emit_call_1): Don't call virtual_call_token debug hook.
11255 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11256 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11257 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11258 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11259 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11260 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11261 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11262 dwarf2out_virtual_call): Remove.
11263 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11264 copy_call_info and virtual_call hooks.
11265 (dwarf2out_init): Don't initialize vcall_insn_table,
11266 debug_dcall_section and debug_vcall_section.
11267 (prune_unused_types): Don't mark nodes from dcall_table.
11268 (dwarf2out_finish): Don't output dcall or vcall tables.
11269 * final.c (final_scan_insn): Don't call direct_call or
11270 virtual_call debug hooks.
11271 * debug.h (struct gcc_debug_hooks): Remove direct_call,
11272 virtual_call_token, copy_call_info and virtual_call hooks.
11273 (debug_nothing_uid): Remove prototype.
11274 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11275 copy_call_info and virtual_call hooks.
11276 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11277 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11278 * debug.c (do_nothing_debug_hooks): Likewise.
11279 (debug_nothing_uid): Remove.
11280 * doc/invoke.texi (-fenable-icf-debug): Remove.
11281 * common.opt (-fenable-icf-debug): Likewise.
11282
325f5379
JJ
11283 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11284 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11285 call's MEM. Handle functions returning aggregate through a hidden
11286 first pointer. For virtual calls add clobbered pc to call arguments
11287 chain.
11288 * dwarf2out.c (gen_subprogram_die): Emit
11289 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11290 can't be emitted.
11291
a58a8e4b
JJ
11292 PR debug/45882
11293 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11294 * rtl.h (ENTRY_VALUE_EXP): Define.
11295 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11296 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11297 * print-rtl.c (print_rtx): Likewise.
11298 * gengtype.c (adjust_field_rtx_def): Likewise.
11299 * var-tracking.c (vt_add_function_parameter): Adjust
11300 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11301 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11302 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11303 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11304 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11305
2b1c5433
JJ
11306 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11307 Call var_location debug hook even on CALL_INSNs.
11308 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11309 * rtl.def (ENTRY_VALUE): New.
11310 * dwarf2out.c: Include cfglayout.h.
11311 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11312 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11313 (struct call_arg_loc_node): New type.
11314 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11315 tail_call_site_count): New variables.
11316 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11317 DW_TAG_GNU_call_site_parameter.
11318 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11319 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11320 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11321 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11322 and DW_AT_GNU_all_source_call_sites.
11323 (mem_loc_descriptor): Handle ENTRY_VALUE.
11324 (add_src_coords_attributes): Don't add enything if
11325 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11326 (dwarf2out_abstract_function): Save and clear call_arg_location,
11327 call_site_count and tail_call_site_count around dwarf2out_decl call.
11328 (gen_call_site_die): New function.
11329 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11330 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11331 (dwarf2out_function_decl): Clear call_arg_locations,
11332 call_arg_loc_last, set call_site_count and tail_call_site_count
11333 to -1 and free block_map.
11334 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11335 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
11336 followed by any real instructions.
11337 (dwarf2out_begin_function): Set call_site_count and
11338 tail_call_site_count to 0.
11339 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11340 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11341 attempt to force a DIE for it and worst case remove the attribute.
11342 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11343 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11344 the decl itself.
11345 * var-tracking.c: Include tm_p.h.
11346 (vt_stack_adjustments): For calls call note_register_arguments.
11347 (argument_reg_set): New variable.
11348 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11349 ensure the VALUE is resolved.
11350 (call_arguments): New variable.
11351 (prepare_call_arguments): New function.
11352 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11353 (struct expand_loc_callback_data): Add ignore_cur_loc field.
11354 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11355 always use the best expression.
11356 (vt_expand_loc): Add ignore_cur_loc argument.
11357 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11358 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11359 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11360 note for all calls.
11361 (vt_add_function_parameter): Use cselib_lookup_from_insn.
11362 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11363 argument. Don't call cselib_preserve_only_values and
11364 cselib_reset_table.
11365 (note_register_arguments): New function.
11366 (vt_initialize): Compute argument_reg_set. Call
11367 vt_add_function_parameters before processing basic blocks instead of
11368 afterwards. For calls call prepare_call_arguments before calling
11369 cselib_process_insn.
11370 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11371 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11372 (var-tracking.o): Depend on $(TM_P_H).
11373 * cfglayout.h (insn_scope): New prototype.
11374 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11375 * cfglayout.c (insn_scope): No longer static.
11376 * insn-notes.def (CALL_ARG_LOCATION): New.
11377 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11378 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11379 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11380 nothing for DECL_EXTERNAL BLOCK_VARS.
11381
9ef13bd0
AM
113822011-03-16 Alan Modra <amodra@gmail.com>
11383
11384 PR target/45844
11385 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11386 create invalid offset address for vsx splat insn.
11387 * config/rs6000/predicates.md (splat_input_operand): New.
11388 * config/rs6000/vsx.md (vsx_splat_*): Use it.
11389
56b67510
XDL
113902011-03-15 Xinliang David Li <davidxl@google.com>
11391
11392 PR c/47837
11393 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11394 (normalize_preds): New function.
11395 (is_use_properly_guarded): Normalize def predicates.
11396
80fffdef
RR
113972011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11398
732f37c6 11399 PR target/46788
80fffdef
RR
11400 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11401 in the output template.
11402
930672ad
RG
114032011-03-15 Richard Guenther <rguenther@suse.de>
11404
11405 PR middle-end/47650
11406 * tree-pretty-print.c (dump_function_declaration): Properly
11407 dump unprototyped and varargs function types.
11408
c7ee7b45
RG
114092011-03-15 Richard Guenther <rguenther@suse.de>
11410
11411 PR tree-optimization/13954
11412 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11413 and friends.
11414
b2ad5e37
RG
114152011-03-15 Richard Guenther <rguenther@suse.de>
11416
11417 PR tree-optimization/48037
11418 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11419 selects into BIT_FIELD_REFs.
11420 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11421 vector select.
11422
7ee93d4e
JJ
114232011-03-15 Jakub Jelinek <jakub@redhat.com>
11424
11425 PR tree-optimization/48129
11426 * builtins.c (fold_builtin_snprintf): Convert to type of
11427 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11428 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11429
e106efc7
RG
114302011-03-15 Richard Guenther <rguenther@suse.de>
11431
11432 PR tree-optimization/41490
11433 * tree-ssa-dce.c (propagate_necessity): Handle returns without
11434 value but with VUSE.
11435 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11436 return statements.
11437 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11438 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11439 * tree-tailcall.c (find_tail_calls): Ignore returns.
11440
17dea42f
RG
114412011-03-15 Richard Guenther <rguenther@suse.de>
11442
11443 PR middle-end/48031
11444 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11445 or variable-indexed array accesses when in gimple form.
11446
01c77a60
RG
114472011-03-15 Richard Guenther <rguenther@suse.de>
11448
16cc4440 11449 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 11450
77b0791e
AM
114512011-03-15 Alan Modra <amodra@gmail.com>
11452
11453 PR target/48032
11454 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11455 presume symbol_refs without a symbol_ref_decl are suitably
11456 aligned, nor other trees we may see here. Handle anchor symbols.
11457 (legitimate_constant_pool_address_p): Comment. Add mode param.
11458 Check cmodel=medium addresses. Adjust all calls.
11459 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11460 creating cmodel=medium optimized access to locals.
11461 * config/rs6000/constraints.md (R): Pass QImode to
11462 legitimate_constant_pool_address_p.
11463 * config/rs6000/predicates.md (input_operand): Pass mode to
11464 legitimate_constant_pool_address_p.
11465 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11466 Update prototype.
11467
35f61ba4
MM
114682011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11469
11470 PR target/48053
11471 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11472 64-bit constants being loaded into registers other than GPRs such
11473 as loading 0 into a VSX register.
11474
07332e6d
RO
114752011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11476
16cc4440 11477 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 11478
de888d90
JJ
114792011-03-14 Jakub Jelinek <jakub@redhat.com>
11480
ba3ceb2d
JJ
11481 PR middle-end/47917
11482 * builtins.c (fold_builtin_snprintf): New function.
11483 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11484 (fold_builtin_4): Likewise.
11485
2e64f8b8
JJ
11486 PR middle-end/38878
11487 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11488 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
11489 and C - X == X also strip nops from +/-/p+ operand.
11490 When optimizing -X == C, fold C to arg0's type.
11491
de888d90
JJ
11492 PR debug/47946
11493 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11494 emit it as add_AT_int instead of add_AT_unsigned.
11495
114962011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
11497
11498 * unwind-dw2.c: Include sys/sdt.h if it exists.
11499 (_Unwind_DebugHook): Use STAP_PROBE2.
11500 * config.in, configure: Rebuild.
11501 * configure.ac: Check for sys/sdt.h.
11502
d34abfd2
UB
115032011-03-14 Uros Bizjak <ubizjak@gmail.com>
11504
11505 * config/i386/i386.md (ROUND_FLOOR): New constant.
11506 (ROUND_CEIL): Ditto.
11507 (ROUND_TRUNC): Ditto.
11508 (ROUND_MXCSR): Ditto.
11509 (ROUND_NO_EXC): Ditto.
11510 (rint<mode>2): Use new defines instead of numerical constants.
11511 (floor<mode>2): Ditto.
11512 (ceil<mode>2): Ditto.
11513 (btrunc<mode>2): Ditto.
11514 * config/i386/i386-builtin-types.def: Define ROUND function type
11515 aliases.
11516 * config/i386/i386.c (enum ix86_builtins): Add
11517 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11518 (struct builtin_description): Add
11519 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11520 (ix86_expand_sse_round): New static function.
11521 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11522 function types.
11523 (ix86_builtin_vectorized_function): Handle
11524 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11525
87f9e23d
TT
115262011-03-14 Tom Tromey <tromey@redhat.com>
11527
11528 * c-parser.c (c_parser_asm_string_literal): Clear
11529 warn_overlength_strings.
11530
b3ab9ea2
TT
115312011-03-14 Tom Tromey <tromey@redhat.com>
11532
11533 * c-parser.c (disable_extension_diagnostics): Save
11534 warn_overlength_strings.
11535 (restore_extension_diagnostics): Restore warn_overlength_strings.
11536
6bd73dd8
JJ
115372011-03-14 Jakub Jelinek <jakub@redhat.com>
11538
11539 * BASE-VER: Change to 4.7.0.
11540
7f4d6e1b
RG
115412011-03-14 Richard Guenther <rguenther@suse.de>
11542
11543 PR middle-end/48098
11544 * tree.c (build_vector_from_val): Adjust assert to requirements
11545 and reality.
11546
c6104ef1
JJ
115472011-03-14 Jakub Jelinek <jakub@redhat.com>
11548
11549 PR bootstrap/48102
d34abfd2 11550 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 11551
dfa95e19
AT
115522011-03-14 Andreas Tobler <andreast@fgznet.ch>
11553
f60c2554 11554 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
11555 terms of target_flags_explicit. Adjust copyright year.
11556
11557 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11558 * config/rs6000/t-freebsd: New file. Add override for
11559 LIB2FUNCS_EXTRA.
11560
bb322018
CD
115612011-03-13 Chris Demetriou <cgd@google.com>
11562
11563 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11564 (-fno-diagnostics-show-option): this, to reflect current default.
11565 (-Werror=): Update text about -fno-diagnostics-show-option.
11566
12b1c80b
PB
115672011-03-12 Peter Bergner <bergner@vnet.ibm.com>
11568
11569 PR target/48053
11570 * config/rs6000/predicates.md (easy_vector_constant_add_self,
11571 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11572 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11573 mode is not V2DImode or V2DFmode.
11574 (vspltis_constant): Do not handle V2DImode and V2DFmode.
11575 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11576 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11577 registers to 0.
11578 (movdi_internal64): Likewise.
11579
57d598f7
SP
115802011-03-12 Sebastian Pop <sebastian.pop@amd.com>
11581
11582 PR tree-optimization/47127
11583 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11584 parameter.
11585 (set_cloog_options): Same.
11586 (scop_to_clast): Same.
11587 (print_clast_stmt): Do not call cloog_state_malloc and
11588 cloog_state_free.
11589 (print_generated_program): Same.
11590 (gloog): Same.
11591 * graphite-clast-to-gimple.h (cloog_state): Declared.
11592 (scop_to_clast): Adjust declaration.
11593 * graphite.c (cloog_state): Defined here.
11594 (graphite_initialize): Call cloog_state_malloc.
11595 (graphite_finalize): Call cloog_state_free.
11596
f231b5ff
JM
115972011-03-11 Jason Merrill <jason@redhat.com>
11598
11599 * attribs.c (lookup_attribute_spec): Take const_tree.
11600 * tree.h: Adjust.
11601
6a4e2bd5
JM
116022011-03-11 Joseph Myers <joseph@codesourcery.com>
11603
11604 * config/sparc/sparc.c (sparc_option_override): Use
11605 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11606
a758fd67
RG
116072011-03-11 Richard Guenther <rguenther@suse.de>
11608
11609 PR tree-optimization/48067
11610 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11611 multiplication result will be only used once on the target
11612 stmt.
11613
03dfda54
RG
116142011-03-11 Richard Guenther <rguenther@suse.de>
11615
11616 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11617
5f11a50a
RG
116182011-03-11 Richard Guenther <rguenther@suse.de>
11619
11620 PR lto/48073
11621 * tree.c (find_decls_types_r): Do not walk types only reachable
11622 from IDENTIFIER_NODEs.
11623
4074f163
JJ
116242011-03-11 Jakub Jelinek <jakub@redhat.com>
11625
11626 PR middle-end/48044
11627 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11628 all vnode->force_output nodes as needed.
11629
30f7cdcd
JM
116302011-03-11 Jason Merrill <jason@redhat.com>
11631
11632 PR c++/48069
11633 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11634 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11635
62ecfeb8
MJ
116362011-03-11 Martin Jambor <mjambor@suse.cz>
11637
11638 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11639 cgraph_node.
11640
e89e03ab
JJ
116412011-03-11 Jakub Jelinek <jakub@redhat.com>
11642
11643 PR tree-optimization/48063
11644 * ipa-inline.c (cgraph_decide_inlining): Don't try to
11645 inline functions called once if !tree_can_inline_p (node->callers).
11646
efbe978b 116472011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 11648
efbe978b
EB
11649 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11650 extra_objs.
9d6193a7
CL
11651 * config/score/score3.c: Delete.
11652 * config/score/score3.h: Delete.
11653 * config/score/mul-div.S: Delete.
11654 * config/score/sfp-machine.h: Add new file.
11655 * config/score/constraints.md: Add new file.
11656 * config/score/t-score-softfp: Add new file.
efbe978b 11657 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
11658 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11659 (score7_extra_constraint): Delete.
efbe978b 11660 (score7_option_override): Remove unused code.
9d6193a7
CL
11661 * config/score/score.c: Remove score3 and score5 define and code.
11662 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 11663 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
11664 * config/score/score.opt: Remove score3 and score5 options.
11665
5de27cca
JDA
116662011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11667
11668 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11669 when _HPUX_SOURCE is defined.
11670 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11671
18d92053
JM
116722011-03-10 Jason Merrill <jason@redhat.com>
11673
11674 PR c++/48029
11675 * stor-layout.c (layout_type): Don't set structural equality
11676 on arrays of incomplete type.
11677 * tree.c (type_hash_eq): Handle comparing them properly.
11678
67a2f76d
JJ
116792011-03-10 Jakub Jelinek <jakub@redhat.com>
11680
11681 PR debug/48043
18d92053 11682 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
11683 result mode matches original rtl mode.
11684
d845b2f9
NC
116852011-03-10 Nick Clifton <nickc@redhat.com>
11686
11687 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 11688 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 11689
db7ec035
JJ
116902011-03-09 Jakub Jelinek <jakub@redhat.com>
11691
11692 PR rtl-optimization/47866
11693 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11694 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11695 if target wasn't scalar.
11696 * function.c (assign_stack_temp_for_type): Assert that neither
11697 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11698 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11699 macro.
11700 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11701
5d304e47
AK
117022011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11703
11704 * config/s390/s390-protos.h (s390_label_align): New prototype.
11705 * config/s390/s390.c (s390_label_align): New function.
11706 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11707
93b826f0
MM
117082011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11709
11710 PR target/47755
11711 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11712 V2DI/V2DF constants. Only all 0's or all 1's are easy.
11713 (output_vec_const_move): Ditto.
11714
ef78aed6
AS
117152011-03-08 Anatoly Sokolov <aesok@post.ru>
11716
11717 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11718 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11719 * config/mips/mips.c (mips_preferred_reload_class): Make static.
11720 Change 'rclass' argument and result type to reg_class_t.
11721 (TARGET_PREFERRED_RELOAD_CLASS): Define.
11722
5f892aa0
GJL
117232011-03-08 Georg-Johann Lay <avr@gjlay.de>
11724
9e43ad68
UB
11725 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11726 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11727 (TARGET_MEMORY_MOVE_COST): Define.
11728 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 11729
32bd2409
JJ
117302011-03-08 Jakub Jelinek <jakub@redhat.com>
11731
530a4800
JJ
11732 PR debug/47881
11733 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11734 removed anything.
11735
32bd2409
JJ
11736 PR tree-optimization/48022
11737 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11738 for EQ/NE_EXPR.
11739
c7148991
JJ
117402011-03-07 Jakub Jelinek <jakub@redhat.com>
11741
11742 PR debug/47991
11743 * var-tracking.c (find_use_val): Return NULL for
11744 cui->sets && cui->store_p BLKmode MEMs.
11745
43070a6e
AS
117462011-03-07 Anatoly Sokolov <aesok@post.ru>
11747
11748 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11749 Remove.
11750 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11751 xstormy16_print_operand_address): Remove.
11752 * config/stormy16/stormy16.c (xstormy16_print_operand,
11753 xstormy16_print_operand_address): Make static.
11754 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11755
efbe978b 117562011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
11757
11758 PR target/47862
11759 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11760 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11761 before definition.
11762
cec8ac0b
ZD
117632011-03-07 Zdenek Dvorak <ook@ucw.cz>
11764
11765 PR bootstrap/48000
11766 * cfgloopmanip.c (fix_bb_placements): Return immediately
11767 if FROM is BASE_LOOP's header.
11768
59527282
PW
117692011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
11770
11771 * gimplify.c (gimplify_function_tree): Fix building calls
11772 to __builtin_return_address.
11773
617718f7
AM
117742011-03-07 Alan Modra <amodra@gmail.com>
11775
11776 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11777 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11778 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11779 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11780 return_mode args.
11781 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11782 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11783 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11784 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11785 * config/rs6000/rs6000.c
11786 (rs6000_elf_end_indicate_exec_stack): Rename to..
11787 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
11788 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
11789 (rs6000_file_start): ..here.
11790 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11791 file scope variables.
11792 (call_ABI_of_interest): New function.
11793 (init_cumulative_args): Set above vars when function return value
11794 is a float, vector, or small struct.
11795 (rs6000_function_arg_advance_1): Likewise for function args.
11796 (rs6000_va_start): Set rs6000_passes_float if variable arg function
11797 references float args.
11798
38528d50
MX
117992011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
11800
11801 * doc/cfg.texi: Remove "See" before @ref.
11802 * doc/invoke.texi: Likewise.
11803
f42cf4f4
JM
118042011-03-05 Jason Merrill <jason@redhat.com>
11805
11806 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11807
804a304d
AG
118082011-03-05 Anthony Green <green@moxielogic.com>
11809
11810 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11811
634ee309
ZD
118122011-03-05 Zdenek Dvorak <ook@ucw.cz>
11813
11814 PR rtl-optimization/47899
11815 * cfgloopmanip.c (fix_bb_placements): Fix first argument
11816 to flow_loop_nested_p when moving the loop upward.
11817
6fe471c8
RE
118182011-03-05 Richard Earnshaw <rearnsha@arm.com>
11819
11820 PR target/47719
11821 * arm.md (movhi_insn_arch4): Accept any immediate constant.
11822
cc58ceee
JJ
118232011-03-05 Jakub Jelinek <jakub@redhat.com>
11824
11825 PR tree-optimization/47967
11826 * ipa-cp.c (build_const_val): Return NULL instead of creating
11827 VIEW_CONVERT_EXPR for mismatching sizes.
11828 (ipcp_create_replace_map): Return NULL if build_const_val failed.
11829 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11830 give up on versioning.
11831
ea868305
AM
118322011-03-05 Alan Modra <amodra@gmail.com>
11833
11834 PR target/47986
11835 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11836 full cmodel medium/large lo_sum + high addresses.
11837
bc6ce334
AK
118382011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11839
11840 * config/s390/s390.c (s390_decompose_address): Reject non-literal
11841 pool references in UNSPEC_LTREL_OFFSET.
11842
87e7b310
JH
118432011-03-04 Jan Hubicka <jh@suse.cz>
11844
11845 PR lto/47497
11846 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11847 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
11848 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11849 Add node pointers.
87e7b310
JH
11850 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11851 cgraph_add_thunk): Add node pointers.
11852 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11853 associated to right node.
11854 (input_node): Update use of cgraph_same_body_alias
11855 and cgraph_add_thunk.
11856
d9c64246
CF
118572011-03-04 Changpeng Fang <changpeng.fang@amd.com>
11858
11859 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
11860 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11861 modes when the flag -mprefer-avx128 is on.
d9c64246 11862
08707076
RS
118632011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
11864
11865 * dwarf2out.c (compare_loc_operands): Fix address handling.
11866
52517c81
AM
118672011-03-04 Alan Modra <amodra@gmail.com>
11868
11869 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11870
b147c5b9
RG
118712011-03-04 Richard Guenther <rguenther@suse.de>
11872
11873 PR middle-end/47968
11874 * expmed.c (extract_bit_field_1): Prefer vector modes that
11875 vec_extract patterns can handle.
11876
8750672f
RG
118772011-03-04 Richard Guenther <rguenther@suse.de>
11878
11879 PR middle-end/47975
11880 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11881
9eac0f2a
RH
118822011-03-04 Richard Henderson <rth@redhat.com>
11883
11884 * explow.c (emit_stack_save): Remove 'after' parameter.
11885 (emit_stack_restore): Likewise.
11886 * expr.h: Update to match.
11887 * builtins.c, calls.c, stmt.c: Likewise.
11888 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11889 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11890 * function.c (expand_function_end): Insert the emit_stack_save
11891 sequence before parm_birth_insn instead of after.
11892
dfee1406
UB
118932011-03-03 Uros Bizjak <ubizjak@gmail.com>
11894
11895 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11896 (ssse3_pmaddubsw128): Ditto.
11897 (ssse3_pmaddubsw): Ditto.
11898
f1d4c3de
SE
118992011-03-03 Steve Ellcey <sje@cup.hp.com>
11900
11901 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11902
71f3a3f5
JJ
119032011-03-03 Jakub Jelinek <jakub@redhat.com>
11904
423ed416
JJ
11905 PR c/47963
11906 * gimplify.c (omp_add_variable): Only call omp_notice_variable
11907 on TYPE_SIZE_UNIT if it is a DECL.
11908
71f3a3f5
JJ
11909 PR debug/47283
11910 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11911 first operand is not is_gimple_mem_ref_addr, try to fold it.
11912 If the operand still isn't is_gimple_mem_ref_addr, clear
11913 MEM_EXPR on op0.
11914
4b1a5c0d
RG
119152011-03-03 Richard Guenther <rguenther@suse.de>
11916
11917 PR middle-end/47283
11918 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11919 match comment.
11920 (refs_may_alias_p_1): For release branches return true if
11921 we are confused by our input.
11922
b46616fd
AK
119232011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11924
11925 * config/s390/s390.c (s390_function_value): Rename to ...
11926 (s390_function_and_libcall_value): ... this.
11927 (s390_function_value): New function.
11928 (s390_libcall_value): New function.
dfee1406 11929 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
11930 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
11931 target macro definitions.
11932 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
11933
46d8fabb
JM
119342011-03-02 Joseph Myers <joseph@codesourcery.com>
11935
11936 * config/i386/freebsd64.h (CC1_SPEC): Define.
11937 * config/i386/linux64.h (CC1_SPEC): Define.
11938 * config/i386/x86-64.h (CC1_SPEC): Don't define.
11939
6b1ce545
AS
119402011-03-02 Anatoly Sokolov <aesok@post.ru>
11941
11942 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11943 Remove.
11944 * config/stormy16/stormy16.c: Include reload.h.
11945 (xstormy16_memory_move_cost): New function.
11946 (TARGET_MEMORY_MOVE_COST): Define.
11947
34161e98
RS
119482011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
11949
11950 PR rtl-optimization/47925
11951 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
11952 with side effects. Remove the more-specific check for volatile asms.
11953
f60a97cf
AM
119542011-03-02 Alan Modra <amodra@gmail.com>
11955
11956 PR target/47935
11957 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
11958 toc relative addresses for valid offsets.
11959
f2ca11ca
RG
119602011-03-01 Richard Guenther <rguenther@suse.de>
11961
11962 PR tree-optimization/47890
11963 * tree-vect-loop.c (get_initial_def_for_induction): Set
11964 related stmt properly.
11965
7a00d9ea
RG
119662011-03-01 Richard Guenther <rguenther@suse.de>
11967
11968 PR lto/47924
11969 * lto-streamer.c (lto_record_common_node): Also register
11970 the canonical type.
11971
06c7edcc
RG
119722011-03-01 Richard Guenther <rguenther@suse.de>
11973
11974 PR lto/46911
11975 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11976 Do not stream DECL_ABSTRACT_ORIGIN.
11977 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11978 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11979 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
11980 Do not stream DECL_ABSTRACT_ORIGIN.
11981 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
11982 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
11983
998871e9
AS
119842011-02-28 Anatoly Sokolov <aesok@post.ru>
11985
11986 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
11987 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 11988 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
11989 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
11990 Add 'outgoing' argument.
11991 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
11992 function.
11993 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11994 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11995
94369251
KT
119962011-02-28 Kai Tietz <kai.tietz@onevision.com>
11997
11998 PR debug/28047
11999 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12000 (lookup_filename): Likewise.
b2e2ea67 12001 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 12002
80a832cd
JJ
120032011-02-28 Bernd Schmidt <bernds@codesourcery.com>
12004 Jakub Jelinek <jakub@redhat.com>
12005
12006 PR middle-end/47893
12007 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12008 (assign_stack_local_1): Change last argument type to int.
12009 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12010 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 12011 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
12012 (assign_stack_local): Adjust caller.
12013 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12014 of assign_stack_local, pass 0 as last argument.
12015 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12016 callers.
12017
1b500976
JJ
120182011-02-28 Jakub Jelinek <jakub@redhat.com>
12019
f61c6f34
JJ
12020 PR debug/47283
12021 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12022 Use target address_mode and pointer_mode hooks instead of hardcoded
12023 Pmode and ptr_mode. Handle some simple cases of extending if
12024 POINTERS_EXTEND_UNSIGNED < 0.
12025 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12026 Call convert_debug_memory_address.
12027 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12028 convert_debug_memory_address.
12029
1b500976
JJ
12030 PR middle-end/46790
12031 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12032 * configure: Regenerated.
12033 * config.in: Regenerated.
12034 * varasm.c (default_function_section): Return NULL
b2e2ea67 12035 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 12036
2f2935b6
MJ
120372011-02-28 Martin Jambor <mjambor@suse.cz>
12038
12039 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12040 the description to match the printed values.
12041
474086eb
RG
120422011-02-28 Richard Guenther <rguenther@suse.de>
12043
12044 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12045 of the copied scope tree.
12046
15bf6f3a
RW
120472011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12048
12049 * doc/extend.texi (Function Attributes): Avoid deeply (and
12050 wrongly) nested tables.
12051
f6b439c9
JJ
120522011-02-27 Jakub Jelinek <jakub@redhat.com>
12053
12054 PR middle-end/47903
12055 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12056 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12057 r isn't op0 nor op1.
12058
1d8ca2c7
GJL
120592011-02-23 Georg-Johann Lay <avr@gjlay.de>
12060
12061 * config/avr/avr.md: Remove magic comment for emacs.
12062
593fca4b
GJL
120632011-02-23 Georg-Johann Lay <avr@gjlay.de>
12064
12065 PR target/45261
12066 * config/avr/avr.c (avr_option_override): Use error on bad options.
12067 (avr_help): New function.
12068 (TARGET_HELP): Define.
12069
6609216e
GJL
120702011-02-22 Georg-Johann Lay <avr@gjlay.de>
12071
12072 PR target/42240
12073 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12074 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12075
03d458af
GP
120762011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12077
12078 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12079 (ARM Options): Ditto.
12080 (i386 and x86-64 Options): Ditto.
12081 (RX Options): Ditto.
12082 (SPARC Options): Ditto.
12083
1c379b78
TC
120842011-02-26 Tijl Coosemans <tijl@coosemans.org>
12085
12086 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12087 FreeBSD 6 and later. Generally use cpu generic.
12088
d5ed058c 120892011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 12090
d5ed058c
GP
12091 * doc/cpp.texi: Update copyright years.
12092
509d65dd 120932011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 12094
509d65dd 12095 PR target/46898
308d39cd
SB
12096 * config/lm32/lm32.md (ashrsi3): Added needed variable.
12097
509d65dd 120982011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 12099
509d65dd 12100 PR target/46898
308d39cd
SB
12101 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12102 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12103 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12104 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 12105 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
12106 (gen_int_relational): Move declarations to start of function.
12107
822ba6d7
EB
121082011-02-25 Eric Botcazou <ebotcazou@adacore.com>
12109
12110 PR tree-optimization/45470
12111 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12112 can throw internally only.
12113 * tree-vect-stmts.c (vectorizable_call): Likewise.
12114
ef795fc2
AS
121152011-02-24 Anatoly Sokolov <aesok@post.ru>
12116
12117 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12118 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12119 * config/stormy16/stormy16-protos.h
12120 (xstormy16_preferred_reload_class): Remove.
12121 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12122 static. Change 'rclass' argument and return type to reg_class_t.
12123 (TARGET_PREFERRED_RELOAD_CLASS,
12124 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12125
1c3277ee
RG
121262011-02-24 Richard Guenther <rguenther@suse.de>
12127
12128 * lto-streamer-in.c (input_bb): Do not find referenced vars
12129 in debug statements.
12130
67e18edb
JM
121312011-02-23 Jason Merrill <jason@redhat.com>
12132
12133 * common.opt (fabi-version): Document v5 and v6.
12134
b14fad9d
RG
121352011-02-23 Richard Guenther <rguenther@suse.de>
12136
12137 PR tree-optimization/47849
12138 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12139
7fcf46f5
JZ
121402011-02-23 Jie Zhang <jie@codesourcery.com>
12141
12142 * opts-common.c (decode_cmdline_option): Print empty string
12143 argument as "" in decoded->orig_option_with_args_text.
12144 * gcc.c (execute): Print empty string argument as ""
12145 in the verbose output.
12146 (do_spec_1): Keep empty string argument.
12147
f85b70fd
NF
121482011-02-23 Nathan Froyd <froydnj@codesourcery.com>
12149
12150 * config.gcc: Declare score-* and crx-* obsolete.
12151
b152a615
JZ
121522011-02-23 Jie Zhang <jie@codesourcery.com>
12153
12154 PR rtl-optimization/47763
12155 * web.c (web_main): Ignore naked clobber when replacing register.
12156
bb6e77bc
AS
121572011-02-22 Anatoly Sokolov <aesok@post.ru>
12158
12159 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12160 Remove.
12161
68bf6491
SP
121622011-02-22 Sebastian Pop <sebastian.pop@amd.com>
12163
12164 PR doc/47848
12165 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12166
88ee1fc7
MS
121672011-02-22 Mike Stump <mikestump@comcast.net>
12168
12169 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12170 assembler.
12171 * configure: Regenerate.
12172
6042d1dd
CLT
121732011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
12174
12175 PR rtl-optimization/46002
12176 * ira-color.c (update_copy_costs): Change class intersection
12177 test to reg_class_contents[] test of 'hard_regno'.
12178
7de97f9e
JM
121792011-02-21 Joseph Myers <joseph@codesourcery.com>
12180
12181 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12182 than Driver option.
12183 * config/hpux11.opt (mt): Likewise.
12184 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12185 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12186 * config/vax/elf.opt (mno-asm-pic): Likewise.
12187 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12188
d1d46f9f
MS
121892011-02-21 Mike Stump <mikestump@comcast.net>
12190
12191 PR target/47822
12192 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12193 tree so we can get save the type.
12194 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12195 for CFString instead of trying to use past the end of the builtins.
12196 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12197 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12198 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12199 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12200 Rename to darwin_builtin_cfstring.
12201 (darwin_init_cfstring_builtins): Return the built type.
12202
23e0d930
UB
122032011-02-21 Uros Bizjak <ubizjak@gmail.com>
12204
12205 PR target/47840
12206 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12207 (_mm256_insert_epi64): Use _mm_insert_epi64.
12208
192997cf
AS
122092011-02-21 Anatoly Sokolov <aesok@post.ru>
12210
12211 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12212 * config/stormy16/stormy16-protos.h
12213 (xstormy16_mode_dependent_address_p): Remove.
12214 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12215 Make static. Change return type to bool. Change argument type to
12216 const_rtx. Remove dead code.
12217 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12218
e292d003
RG
122192011-02-21 Richard Guenther <rguenther@suse.de>
12220
12221 PR lto/47820
12222 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12223 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12224 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12225 TUs context.
23e0d930 12226 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
12227 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12228
77f846e9
RG
122292011-02-20 Richard Guenther <rguenther@suse.de>
12230
12231 PR lto/47822
12232 * tree.c (free_lang_data_in_decl): Clean builtins from
12233 the TU decl BLOCK_VARS.
23e0d930 12234
b2cddfc8
AO
122352011-02-19 Alexandre Oliva <aoliva@redhat.com>
12236
12237 PR debug/47620
12238 PR debug/47630
12239 * haifa-sched.c (fix_tick_ready): Skip tick computation
12240 for debug insns.
12241
becf4c11
RG
122422011-02-19 Richard Guenther <rguenther@suse.de>
12243
12244 PR lto/47647
12245 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12246 Remove lazy BLOCK_VARS streaming.
12247 (lto_input_ts_block_tree_pointers): Likewise.
12248 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12249
27f98305
JM
122502011-02-19 Joseph Myers <joseph@codesourcery.com>
12251
12252 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12253
064bf3f4
JM
122542011-02-19 Joseph Myers <joseph@codesourcery.com>
12255
12256 * config/i386/biarch32.h, config/i386/mach.h,
12257 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12258
9215ddc3
JJ
122592011-02-19 Jakub Jelinek <jakub@redhat.com>
12260
12261 PR target/47800
12262 * config/i386/i386.md (peephole2 for shift and plus): Use
12263 operands[1] original mode in the first insn.
12264
8b021004
MS
122652011-02-18 Mike Stump <mikestump@comcast.net>
12266
65ded153 12267 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 12268
f84ae14c
JH
122692011-02-18 Jan Hubicka <jh@suse.cz>
12270
12271 PR middle-end/47788
65ded153
EB
12272 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12273 to zero when the function is not inlinable at all.
f84ae14c 12274
eddabc80
JDA
122752011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12276
12277 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12278 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12279 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12280 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12281 * config/pa/t-pa64: Likewise.
12282 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12283
ca3da783
JJ
122842011-02-18 Jakub Jelinek <jakub@redhat.com>
12285
12286 PR driver/47787
12287 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12288
430aa868
JDA
122892011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12290
12291 PR target/47792
12292 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12293
4bf7ff7e
AS
122942011-02-18 Anatoly Sokolov <aesok@post.ru>
12295
12296 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12297 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12298 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12299 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12300 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12301 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12302 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12303 m32r_load_postinc_p, m32r_store_preinc_predec_p,
12304 m32r_legitimate_address_p): New functions.
12305 * config/m32r/constraints.md (constraint "S"): Don't use
12306 STORE_PREINC_PREDEC_P.
12307 (constraint "U"): Don't use LOAD_POSTINC_P.
12308
7efcf910
CLT
123092011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
12310
12311 PR rtl-optimization/46178
12312 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12313 compute ira_hard_regno_cover_class[].
12314
237d6259
RG
123152011-02-18 Richard Guenther <rguenther@suse.de>
12316
12317 PR lto/47798
12318 * lto-streamer.h (lto_global_var_decls): Declare.
12319 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12320 statics for global var processing.
12321
12d80acc
RG
123222011-02-18 Richard Guenther <rguenther@suse.de>
12323
12324 PR tree-optimization/47737
12325 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12326 edge dominance check.
12327
abfea58d
JJ
123282011-02-18 Jakub Jelinek <jakub@redhat.com>
12329
12330 PR debug/47780
12331 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12332 avoid invalid rtx sharing.
12333
f73c8882
GP
123342011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
12335
12336 * doc/cpp.texi (Obsolete Features): Add background on the
12337 origin of assertions.
12338
d764a8e6
IS
123392011-02-17 Iain Sandoe <iains@gcc.gnu.org>
12340
12341 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 12342 objc_abi == 2.
d764a8e6
IS
12343 * config/darwin.c (output_objc_section_asm_op): Added support for
12344 ABI v1 and v2.
12345 (is_objc_metadata): New.
12346 (darwin_objc2_section): New.
12347 (darwin_objc1_section): New.
12348 (machopic_select_section): Added support for ABI v1 and v2.
12349 (darwin_emit_objc_zeroed): New.
12350 (darwin_output_aligned_bss): Detect objc metadata and treat it
12351 appropriately.
12352 (darwin_asm_output_aligned_decl_common): Same.
12353 (darwin_asm_output_aligned_decl_local): Same.
12354 * config/darwin-sections.def: Updated for ABI v1 and v2.
12355 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12356 compiling Objective-C code for the NeXT runtime, default to using
12357 ABI version 0 for 32-bit, and version 2 for 64-bit.
12358
0a8134ca
JM
123592011-02-17 Joseph Myers <joseph@codesourcery.com>
12360
12361 * common.opt (optimize_fast): New Variable.
12362 * opts.c (default_options_optimization): Use opts->x_optimize_fast
12363 instead of local variable ofast.
12364
0a256240
NP
123652011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
12366
12367 * doc/invoke.texi (fobjc-abi-version): Documented.
12368 (fobjc-nilcheck): Documented.
12369 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12370 version.
12371
fa381cb2
JM
123722011-02-17 Joseph Myers <joseph@codesourcery.com>
12373
12374 PR driver/47390
12375 * common.opt (export-dynamic): New Driver option.
12376 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12377
5437eaa6
JM
123782011-02-17 Joseph Myers <joseph@codesourcery.com>
12379
12380 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12381
bb7e6d55
AO
123822011-02-17 Alexandre Oliva <aoliva@redhat.com>
12383 Jan Hubicka <jh@suse.cz>
12384
12385 PR debug/47106
12386 PR debug/47402
12387 * cfgexpand.c (account_used_vars_for_block): Remove.
12388 (estimated_stack_frame_size): Use referenced vars.
12389 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12390 that were referenced in the original function. Test src_fn
12391 rather than cfun. Drop redundant get_var_ann.
12392 (setup_one_parameter): Drop redundant get_var_ann.
12393 (declare_return_variable): Likewise.
12394 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12395 (copy_arguments_for_versioning): Drop redundant get_var_ann.
12396 * ipa-inline.c (compute_inline_parameters): Do not compute
12397 disregard_inline_limits here.
bb7e6d55
AO
12398 (compute_inlinable_for_current, pass_inlinable): New.
12399 (pass_inline_parameters): Require PROP_referenced_vars.
12400 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 12401 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
12402 (cgraph_analyze_function): Set .disregard_inline_limits.
12403 * tree-sra.c (convert_callers): Compute inliner parameters
12404 only for functions already in SSA form.
12405
f181a8a7
JM
124062011-02-17 Joseph Myers <joseph@codesourcery.com>
12407
12408 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12409 -mlittle-endian-data.
12410
c6869789
JM
124112011-02-17 Joseph Myers <joseph@codesourcery.com>
12412
12413 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12414 -mno-fpu, not -fpu and -no-fpu.
12415 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12416 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12417
fbf4bfd3
UB
124182011-02-17 Uros Bizjak <ubizjak@gmail.com>
12419
12420 PR target/43653
12421 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12422 input reload with PLUS RTX.
12423
70be5dc7
JM
124242011-02-16 Joseph Myers <joseph@codesourcery.com>
12425
12426 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12427 of InverseVar(MDMX).
12428
30b1646e
JM
124292011-02-16 Joseph Myers <joseph@codesourcery.com>
12430
12431 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12432 --m4-340.
12433
ab7b71e9
JM
124342011-02-16 Joseph Myers <joseph@codesourcery.com>
12435
12436 * config/mn10300/mn10300.opt (mno-crt0): New.
12437
466f3f08
JM
124382011-02-16 Joseph Myers <joseph@codesourcery.com>
12439
12440 * config/m68k/uclinux.opt (static-libc): New Driver option.
12441
8226cd7b
JM
124422011-02-16 Joseph Myers <joseph@codesourcery.com>
12443
12444 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12445
45cab1d7
JM
124462011-02-16 Joseph Myers <joseph@codesourcery.com>
12447
12448 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12449 %{muser-extend-enabled}.
12450
65aab64f
RG
124512011-02-16 Richard Guenther <rguenther@suse.de>
12452
12453 PR tree-optimization/47738
12454 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12455 the TODO from tree_predictive_commoning.
12456
fc2fa4fb
JL
124572011-02-15 Jeff Law <law@redhat.com>
12458
12459 Revert
12460 2011-01-25 Jeff Law <law@redhat.com>
12461
12462 PR rtl-optimization/37273
12463 * ira-costs.c (scan_one_insn): Detect constants living in memory and
12464 handle them like argument loads from stack slots. Do not double
12465 count memory for memory constants and argument loads from stack slots.
12466
4e380b8e
L
124672011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12468
12469 PR middle-end/47725
12470 * combine.c (cant_combine_insn_p): Revert the last change.
12471
e3a69bb4
MM
124722011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12473
12474 PR target/47755
12475 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12476 mode for vector constants. Remove code that checks for TImode.
12477
de650422
AO
124782011-02-15 Alexandre Oliva <aoliva@redhat.com>
12479
12480 PR debug/47106
12481 PR debug/47402
12482 * cgraph.h (compute_inline_parameters): Return void.
12483 * ipa-inline.c (compute_inline_parameters): Adjust.
12484
30925d94
AO
124852011-02-15 Alexandre Oliva <aoliva@redhat.com>
12486
12487 PR debug/47106
12488 PR debug/47402
12489 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12490 rather than decl.
12491 * cfgexpand.c (estimated_stack_frame_size): Likewise.
12492 * ipa-inline.c (compute_inline_parameters): Adjust.
12493
1b9a784a
AO
124942011-02-15 Alexandre Oliva <aoliva@redhat.com>
12495
12496 PR debug/47106
12497 PR debug/47402
12498 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12499 Adjust all users. Pass FN to...
12500 * tree-flow-inline.h (first_referenced_var): ... this. Add
12501 fn argument.
12502 * ipa-struct-reorg.c: Adjust.
12503 * tree-dfa.c: Adjust.
12504 * tree-into-ssa.c: Adjust.
12505 * tree-sra.c: Adjust.
12506 * tree-ssa-alias.c: Adjust.
12507 * tree-ssa-live.c: Adjust.
12508 * tree-ssa.c: Adjust.
12509 * tree-ssanames.c: Adjust.
12510 * tree-tailcall.c: Adjust.
12511
27c6b086
AO
125122011-02-15 Alexandre Oliva <aoliva@redhat.com>
12513
12514 PR debug/47106
12515 PR debug/47402
12516 * tree-flow.h (referenced_var_lookup): Add fn parameter.
12517 Adjust all callers.
12518 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12519 * tree-flow-inline.h: Adjust.
12520 * gimple-pretty-print.c: Adjust.
12521 * tree-into-ssa.c: Adjust.
12522 * tree-ssa.c: Adjust.
12523 * cfgexpand.c: Adjust.
12524
679e8183
NF
125252011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12526
fbf4bfd3
UB
12527 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12528 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12529 (EXTRA_CONSTRAINT): Delete.
12530 * config/iq2000/constraints.md: New file.
12531 * config/iq2000/iq2000.md: Include it.
679e8183
NF
12532 (define_insn ""): Delete.
12533 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12534 unsupported constraint letters from patterns.
12535 (call_value, call_value_internal1): Likewise.
12536 (call_value_multiple_internal1): Likewise.
12537
a45d420a
NC
125382011-02-15 Nick Clifton <nickc@redhat.com>
12539
12540 * config/mn10300/mn10300.c: Include tm-constrs.h.
12541 (struct liw_data): New data structure describing an LIW candidate
12542 instruction.
12543 (extract_bundle): Use struct liw_data. Allow small integer
12544 operands for some instructions.
12545 (check_liw_constraints): Use struct liw_data. Remove swapped
12546 parameter. Add comments describing the checks. Fix bug when
12547 assigning the source of liw1 to the source of liw2.
12548 (liw_candidate): Delete. Code moved into extract_bundle.
12549 (mn10300_bundle_liw): Use struct liw_data. Check constraints
12550 before swapping.
12551 * config/mn10300/predicates.md (liw_operand): New predicate.
12552 Allows registers and small integer constants.
12553 * config/mn10300/constraints.md (O): New constraint. Accetps
12554 integers in the range -8 to +7 inclusive.
12555 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12556 for moving a small integer into a register. Give this alternative
12557 LIW attributes.
12558 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12559 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12560 using the J,K,L and M constraints,
12561 (liw): Remove SI mode on second operands to allow for HI and QI
12562 mode values.
12563 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
12564 instruction.
12565
8a73faf1
L
125662011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12567
12568 PR middle-end/47725
12569 * combine.c (cant_combine_insn_p): Check zero/sign extended
12570 hard registers.
12571
48feba28
RG
125722011-02-15 Richard Guenther <rguenther@suse.de>
12573
12574 PR tree-optimization/47743
12575 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12576 for a non-type-compatible VN lookup bail out.
12577
ad1c1eeb
NF
125782011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12579
12580 * config/fr30/constraints.md: New file.
12581 * config/fr30/fr30.md: Include it.
12582 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12583 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12584 (EXTRA_CONSTRAINT): Delete.
12585
49ac143d
NF
125862011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12587
12588 * config/frv/constraints.md: New file.
12589 * config/frv/predicates.md: Include it.
12590 * config/frv/frv.c (reg_class_from_letter): Delete.
12591 (frv_option_override): Don't initialize it.
12592 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12593 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12594 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12595 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12596 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12597 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12598 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12599 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12600 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12601 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12602 (REG_CLASS_FROM_CONSTRAINT): Delete.
12603
c95f9494
JJ
126042011-02-15 Jakub Jelinek <jakub@redhat.com>
12605
12606 PR middle-end/47581
12607 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12608 if frame size is 0 in a leaf function.
12609
13aed611
RO
126102011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12611
12612 PR pch/14940
12613 * config/alpha/host-osf.c: New file.
12614 * config/alpha/x-osf: New file.
12615 * config.host (alpha*-dec-osf*): Use it.
12616
b09c3081
AS
126172011-02-14 Anatoly Sokolov <aesok@post.ru>
12618
12619 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12620 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12621 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12622 (rx_mode_dependent_address_p): ...this. Make static. Change argument
12623 type to const_rtx.
12624 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12625
d634083b
NF
126262011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12627
12628 * config/stormy16/constraints.md: New file.
12629 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12630 Use satisfies_constraint_Q and satisfies_constraint_R.
12631 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12632 Delete.
12633 (xstormy16_legitiamte_address_p): Declare.
12634 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12635 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12636 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 12637 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
12638 Un-staticize.
12639 (xstormy16_extra_constraint_p): Delete.
12640
c7dd803e
EB
126412011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12642
12643 PR tree-optimization/46494
12644 * loop-unroll.c (split_edge_and_insert): Adjust comment.
12645 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12646 (pass_rtl_loop_done): Add TODO_verify_flow.
12647 * fwprop.c (pass_rtl_fwprop): Likewise.
12648 * modulo-sched.c (pass_sms): Likewise.
12649 * tree-ssa-dom.c (pass_dominator): Likewise.
12650 * tree-ssa-loop-ch.c (pass_ch): Likewise.
12651 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12652 (pass_tree_loop_done): Likewise.
12653 * tree-ssa-pre.c (execute_pre): Likewise.
12654 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12655 * tree-ssa-sink.c (pass_sink_code): Likewise.
12656 * tree-vrp.c (pass_vrp): Likewise.
12657
c6150df6
NF
126582011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12659
c7dd803e
EB
12660 * config/v850/constraints.md: New file.
12661 * config/v850/v850.md: Include it.
12662 * config/v850/predicates.md (reg_or_0_operand): Use
12663 satisfies_constraint_G.
12664 (special_symbolref_operand): Use satisfies_constraint_K.
12665 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12666 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12667 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12668 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12669 (EXTRA_CONSTRAINT): Delete.
12670 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12671 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12672 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 12673
30dd1ea3
AS
126742011-02-14 Anatoly Sokolov <aesok@post.ru>
12675
12676 PR target/47696
12677 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12678 description.
12679
944f4bb3
NF
126802011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12681
12682 * config/mcore/constraints.md: New file.
12683 * config/mcore/mcore.md: Include it.
12684 * config/mcore/mcore.c (reg_class_from_letter): Delete.
12685 * config/mcore/mcore.h (reg_class_from_letter): Delete.
12686 (REG_CLASS_FROM_LETTER): Delete.
12687 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12688 insn_const_int_ok_for_constraint.
12689 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12690 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12691 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12692 (EXTRA_CONSTRAINT): Delete.
12693
ad56a54c
RO
126942011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12695
12696 PR ada/41929
12697 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12698 (IS_SIGHANDLER): Define.
12699 (sparc64_is_sighandler): New function, split off from
12700 sparc64_fallback_frame_state.
12701 (sparc_is_sighandler): New function, split off from
12702 sparc_fallback_frame_state.
12703 (sparc64_fallback_frame_state): Merge with ...
12704 (sparc_fallback_frame_state): ... this into ...
12705 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
12706 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
12707 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
12708 stack instead of hardcoded offsets.
ad56a54c 12709
fbf4bfd3 127102011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
12711
12712 PR target/45808
12713 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12714
029c8f3e
RW
127152011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12716
12717 * configure: Regenerate.
12718
a016dc83
JM
127192011-02-12 Joseph Myers <joseph@codesourcery.com>
12720
12721 PR driver/45731
12722 * gcc.c (asm_options): Correct spec matching --target-help.
12723
8957a0ec
MJ
127242011-02-12 Martin Jambor <mjambor@suse.cz>
12725
12726 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12727 to gimple call error.
12728
6ef828bc
MS
127292011-02-12 Mike Stump <mikestump@comcast.net>
12730
12731 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12732 comments in backslash regions.
12733
a4015be5
MS
127342011-02-12 Mike Stump <mikestump@comcast.net>
12735 Jakub Jelinek <jakub@redhat.com>
12736 Iain Sandoe <iains@gcc.gnu.org>
12737
12738 PR target/47324
12739 * dwarf2out.c (output_cfa_loc): When required, apply the
12740 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12741 (output_loc_sequence): Likewise.
12742 (output_loc_operands_raw): Likewise.
12743 (output_loc_sequence_raw): Likewise.
12744 (output_cfa_loc): Likewise.
12745 (output_loc_list): Suppress register number adjustment when
12746 calling output_loc_sequence()
12747 (output_die): Likewise.
12748
5378dda2
AS
127492011-02-12 Anatoly Sokolov <aesok@post.ru>
12750
12751 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12752 Remove macros.
12753 * config/xtensa/xtensa.c (xtensa_register_move_cost,
12754 xtensa_memory_move_cost): New functions.
12755 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12756
f3d533d3
AO
127572011-02-12 Alexandre Oliva <aoliva@redhat.com>
12758
12759 PR lto/47225
12760 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12761 in the current directory.
12762 * configure: Rebuilt.
12763
9d53403c
IS
127642011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12765
12766 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 12767 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
12768 correct indents of the preceding block.
12769
a350a6c8
IS
127702011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12771
12772 * gcc.c (driver_handle_option): Concatenate the argument to -F with
12773 the switch.
12774
bab79a40
JM
127752011-02-11 Joseph Myers <joseph@codesourcery.com>
12776
12777 * common.opt (nostartfiles): New Driver option.
12778
1bbc6693
XDL
127792011-02-11 Xinliang David Li <davidxl@google.com>
12780
12781 PR tree-optimization/47707
12782 * tree-chrec.c (convert_affine_scev): Keep type precision.
12783
1da7d8c0
EB
127842011-02-11 Eric Botcazou <ebotcazou@adacore.com>
12785
12786 PR tree-optimization/47420
12787 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12788
127892011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
12790
12791 PR rtl-optimization/47614
12792 * rtl.h (check_for_inc_dec): Declare.
12793 * dse.c (check_for_inc_dec): Externalize...
12794 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12795 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12796
4df47bca
JM
127972011-02-11 Joseph Myers <joseph@codesourcery.com>
12798
12799 PR driver/47678
12800 * gcc.c (main): Do not compile inputs if there were errors in
12801 option handling.
12802 * opts-common.c (read_cmdline_option): Check for wrong language
12803 after other error checks.
12804
61502ca8
NF
128052011-02-11 Nathan Froyd <froydnj@codesourcery.com>
12806
12807 * cgraph.c: Fix comment typos.
12808 * cgraph.h: Likewise.
12809 * cgraphunit.c: Likewise.
12810 * ipa-cp.c: Likewise.
12811 * ipa-inline.c: Likewise.
12812 * ipa-prop.c: Likewise.
12813 * ipa-pure-const.c: Likewise.
12814 * ipa-ref.c: Likewise.
12815 * ipa-reference.c: Likewise.
12816
b63f974e
JJ
128172011-02-11 Jakub Jelinek <jakub@redhat.com>
12818
d50c5e0c
JJ
12819 PR debug/47684
12820 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 12821
6dd2a13c
RO
128222011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12823
12824 PR testsuite/47400
12825 * doc/sourcebuild.texi (Require Support): Document
12826 dg-require-ascii-locale.
12827
4a087ccf
MX
128282011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
12829
12830 * doc/lto.texi (Write summary): Fix missing parentheses.
12831
a4403164
DD
128322011-02-10 DJ Delorie <dj@redhat.com>
12833
12834 * config/m32c/m32c.c (m32c_option_override): Disable
12835 -fcombine-stack-adjustments until flag value tracking and compare
12836 optimization can be rewritten.
12837
4fac45bd
PB
128382011-02-10 Peter Bergner <bergner@vnet.ibm.com>
12839
12840 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12841 PROCESSOR_POWER7.
12842 (PROCESSOR_DEFAULT64): Likewise.
12843
72602cd1
RH
128442011-02-10 Richard Henderson <rth@redhat.com>
12845
12846 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12847 change from 2011-02-03.
12848 * config/rx/rx.c (flags_from_code): Likewise.
12849 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12850 is valid, n/pz otherwise.
12851 (rx_select_cc_mode): Return CCmode if Y is not zero.
12852
ea57f573
RG
128532011-02-10 Richard Guenther <rguenther@suse.de>
12854
ea4c3e65 12855 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 12856
92b1d23b
RG
128572011-02-10 Richard Guenther <rguenther@suse.de>
12858
12859 PR tree-optimization/47677
12860 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12861
525a2d06
JJ
128622011-02-10 Jakub Jelinek <jakub@redhat.com>
12863
12864 PR target/47665
12865 * combine.c (make_compound_operation): Only change shifts into
12866 multiplication for SCALAR_INT_MODE_P.
12867
06c969bd
JZ
128682011-02-10 Jie Zhang <jie@codesourcery.com>
12869
12870 PR testsuite/47622
12871 Revert
12872 2011-02-05 Jie Zhang <jie@codesourcery.com>
12873 PR debug/42631
12874 * web.c (entry_register): Don't clobber the number of the
12875 first uninitialized reference in used[].
12876
282ec48e
RG
128772011-02-09 Richard Guenther <rguenther@suse.de>
12878
12879 PR tree-optimization/47664
12880 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12881 all edges again.
12882
df98c3e8
DE
128832011-02-09 David Edelsohn <dje.gcc@gmail.com>
12884
d0f21cd6
DE
12885 PR target/46481
12886 PR target/47032
df98c3e8
DE
12887 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12888 PROCESSOR_POWER7.
12889 (PROCESSOR_DEFAULT64): Same.
12890 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12891
67b6839f
RO
128922011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12893
12894 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12895
4fd73214
MJ
128962011-02-09 Martin Jambor <mjambor@suse.cz>
12897
12898 PR middle-end/45505
12899 * tree-sra.c (struct access): New flags grp_scalar_read and
12900 grp_scalar_write. Changed description of assignment read and write
12901 flags.
12902 (dump_access): Dump new flags, reorder all of them.
12903 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12904 to detect multiple scalar reads.
12905 (analyze_access_subtree): Use the new scalar read write flags instead
12906 of the old flags. Adjusted comments.
12907
91140cd3
DD
129082011-02-08 DJ Delorie <dj@redhat.com>
12909
12910 PR target/47548
12911 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12912 patterns.
12913
4254bbfe
JM
129142011-02-08 Joseph Myers <joseph@codesourcery.com>
12915
12916 * config/m68k/uclinux.opt: New.
12917 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12918
f1fda84e
JM
129192011-02-08 Joseph Myers <joseph@codesourcery.com>
12920
12921 * config/cris/elf.opt (sim): New Driver option.
12922
4933ae74
JM
129232011-02-08 Joseph Myers <joseph@codesourcery.com>
12924
12925 * config/xtensa/elf.opt: New.
12926 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
12927
4ad70280
JM
129282011-02-08 Joseph Myers <joseph@codesourcery.com>
12929
12930 * config/vax/elf.opt: New.
12931 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
12932
20893707
JM
129332011-02-08 Joseph Myers <joseph@codesourcery.com>
12934
12935 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
12936
b8e7038e
JM
129372011-02-08 Joseph Myers <joseph@codesourcery.com>
12938
12939 * config/gnu-user.opt: New.
12940 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
12941 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
12942 *-*-uclinux*): Use gnu-user.opt.
12943
e1c5225a
TS
129442011-02-08 Thomas Schwinge <thomas@schwinge.name>
12945
12946 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
12947 * config/i386/gnu.h (CPP_SPEC): Likewise.
12948
5e46b0c6
ILT
129492011-02-08 Ian Lance Taylor <iant@google.com>
12950
12951 * common.opt (fcx-limited-range): Add SetByCombined flag.
12952 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
12953 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
12954 (fassociative-math, freciprocal-math): Likewise.
12955 (funsafe-math-optimizations): Likewise.
12956 * opth-gen.awk: Handle SetByCombined.
12957 * optc-gen.awk: Likewise.
ea4c3e65 12958 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
12959 (set_unsafe_math_optimizations_flags): Likewise.
12960 * doc/options.texi (Option properties): Document SetByCombined.
12961
32243d46
JM
129622011-02-08 Joseph Myers <joseph@codesourcery.com>
12963
12964 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
12965 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
12966 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
12967 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
12968 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
12969
479c1fb3
SP
129702011-02-08 Sebastian Pop <sebastian.pop@amd.com>
12971
12972 PR tree-optimization/46834
12973 PR tree-optimization/46994
12974 PR tree-optimization/46995
12975 * graphite-sese-to-poly.c (used_outside_reduction): New.
12976 (detect_commutative_reduction): Call used_outside_reduction.
12977 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
12978 translate_scalar_reduction_to_array only when at least one
12979 loop-phi/close-phi tuple has been detected.
12980
3865a06f
RG
129812011-02-08 Richard Guenther <rguenther@suse.de>
12982
12983 PR middle-end/47639
12984 * tree-vect-generic.c (expand_vector_operations_1): Update
12985 stmts here ...
12986 (expand_vector_operations): ... not here. Cleanup EH info
12987 and the CFG if required.
12988
62902f3f
RG
129892011-02-08 Richard Guenther <rguenther@suse.de>
12990
12991 PR tree-optimization/47641
12992 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
12993 require type compatibility.
12994
0efb9d64
AK
129952011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12996
12997 * gimple-low.c (lower_function_body): Don't remove the location of
12998 the return statement here.
12999 (lower_gimple_return): Do it here instead but only if the return
13000 statement is actually used twice.
13001
034b8ae4
RG
130022011-02-08 Richard Guenther <rguenther@suse.de>
13003
13004 PR tree-optimization/47632
13005 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13006 unused up_to_stmt parameter, return whether cfg-cleanup is
13007 necessary, remove EH info properly.
13008 (forward_propagate_into_gimple_cond): Adjust caller.
13009 (forward_propagate_into_cond): Likewise.
13010 (forward_propagate_comparison): Likewise.
13011 (tree_ssa_forward_propagate_single_use_vars): Make
13012 forward_propagate_comparison case similar to the two others.
13013
298362c8
NC
130142011-02-08 Nick Clifton <nickc@redhat.com>
13015
13016 * config/mn10300/mn10300.opt (mliw): New command line option.
13017 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13018 (liw_bundling): New automaton.
13019 (liw): New attribute.
13020 (liw_op): New attribute.
13021 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13022 (movsi_internal): Add LIW attributes.
13023 (andsi3): Likewise.
13024 (iorsi3): Likewise.
13025 (xorsi3): Likewise.
13026 (addsi3): Separate register and immediate alternatives.
13027 Add LIW attributes.
13028 (subsi3): Likewise.
13029 (cmpsi): Likewise.
13030 (aslsi3): Likewise.
13031 (lshrsi3): Likewise.
13032 (ashrsi3): Likewise.
13033 (liw): New pattern.
13034 * config/mn10300/mn10300.c (liw_op_names): New
13035 (mn10300_print_operand): Handle 'W' operand descriptor.
13036 (extract_bundle): New function.
13037 (check_liw_constraints): New function.
13038 (liw_candidate): New function.
13039 (mn10300_bundle_liw): New function.
13040 (mn10300_reorg): New function.
13041 (TARGET_MACHINE_DEPENDENT_REORG): Define.
13042 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13043 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13044 __LIW__ or __NO_LIW__.
13045 * doc/invoke.texi: Describe the -mliw command line option.
13046
90488014
JDA
130472011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13048
13049 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13050 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13051 pthread_mutex_unlock): Remove.
13052 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13053 * config/pa/t-pa64: Likewise.
13054 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13055 shared libc if not linking against libpthread.
13056 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13057
689ff841
IS
130582011-02-07 Iain Sandoe <iains@gcc.gnu.org>
13059
13060 PR target/47558
13061 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13062 on 10.6 and later to ensure that we always use the unwinder from
13063 the system. Only add -no_compact_unwind when tarteting darwin
13064 10.6 or later.
13065
821014aa
SE
130662011-02-07 Steve Ellcey <sje@cup.hp.com>
13067
13068 PR target/46997
13069 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13070 (vec_interleave_lowv2sf): Ditto.
13071 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13072 (vec_extract_oddv2sf): Ditto.
13073
41cf94fb
MS
130742011-02-07 Mike Stump <mikestump@comcast.net>
13075
62dea57d 13076 PR target/42333
41cf94fb
MS
13077 Add __ieee_divdc3 entry point.
13078 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13079 entry point.
13080 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13081 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13082 * config/darwin.c (darwin_rename_builtins): Add.
13083 * config/darwin-protos.h (darwin_rename_builtins): Add.
13084
ee09a3dd
MM
130852011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
13086
13087 PR target/47636
13088 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13089 for the condition.
13090
83296cd0
MS
130912011-02-07 Mike Stump <mikestump@comcast.net>
13092
ea4c3e65 13093 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 13094
0f4e946f
DC
130952011-02-07 Denis Chertykov <chertykov@gmail.com>
13096
13097 PR target/47534
13098 * config/avr/libgcc.S (exit): Move .endfunc
13099
1ec87690
RG
131002011-02-07 Richard Guenther <rguenther@suse.de>
13101
13102 PR tree-optimization/47615
13103 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13104 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13105 (run_scc_vn): Initialize it.
13106 (visit_reference_op_load): Use it.
13107 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13108
b46ae6da
UW
131092011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13110
13111 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13112 DImode trapping arithmetic libfuncs.
13113
c0aae19c
RG
131142011-02-07 Richard Guenther <rguenther@suse.de>
13115
13116 PR tree-optimization/47621
13117 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13118 two duplicates ...
13119 (execute_update_addresses_taken): ... here. Make it more
13120 conservative in what we accept.
13121
295d926b
JM
131222011-02-06 Joseph Myers <joseph@codesourcery.com>
13123
13124 * config/sparc/freebsd.h (ASM_SPEC): Define.
13125 * config/sparc/vxworks.h (ASM_SPEC): Define.
13126
bdeb2471
JM
131272011-02-06 Joseph Myers <joseph@codesourcery.com>
13128
13129 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13130
d5d3781a
SB
131312011-02-06 Steven Bosscher <steven@gcc.gnu.org>
13132
13133 * doc/invoke.texi: Remove reference to compiler internals from
13134 user documentation.
13135
13136 * reg-notes.def: Remove REG_VALUE_PROFILE.
13137 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13138
c42c09fc
JJ
131392011-02-05 Jakub Jelinek <jakub@redhat.com>
13140
13141 PR middle-end/47610
13142 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 13143 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 13144
beea2755
JZ
131452011-02-05 Jie Zhang <jie@codesourcery.com>
13146
13147 PR debug/42631
13148 * web.c (entry_register): Don't clobber the number of the
13149 first uninitialized reference in used[].
13150
a130584a
SP
131512011-02-04 Sebastian Pop <sebastian.pop@amd.com>
13152
13153 PR tree-optimization/46194
13154 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13155 (build_classic_dist_vector_1): Do not represent classic distance
13156 vectors when the access functions are variating in different loops.
13157
962101ac
JM
131582011-02-04 Joseph Myers <joseph@codesourcery.com>
13159
13160 * config/mips/iris6.opt: New.
13161 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13162
55eaaa5b
RH
131632011-02-04 Richard Henderson <rth@redhat.com>
13164 Steve Ellcey <sje@cup.hp.com>
13165
13166 PR target/46997
13167 * config/ia64/predicates.md (mux1_brcst_element): New.
13168 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13169 * config/ia64/ia64.c (ia64_unpack_assemble): New.
13170 (ia64_unpack_sign): New.
13171 (ia64_expand_unpack): Rewrite using new routines.
13172 (ia64_expand_widen_sum): Ditto.
13173 (ia64_expand_dot_prod_v8qi): Ditto.
13174 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13175 routines, add endian check.
13176 (pmpy2_even): Rename from pmpy2_r, add endian check.
13177 (pmpy2_odd): Rename from pmpy2_l, add endian check.
13178 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13179 (vec_widen_smult_hi_v4hi): Ditto.
13180 (vec_widen_umult_lo_v4hi): Ditto.
13181 (vec_widen_umult_hi_v4hi): Ditto.
13182 (mulv2si3): Change endian checks.
13183 (sdot_prodv4hi): Rewrite with new calls.
13184 (udot_prodv4hi): New.
13185 (vec_pack_ssat_v4hi): Add endian check.
13186 (vec_pack_usat_v4hi): Ditto.
13187 (vec_pack_ssat_v2si): Ditto.
13188 (max1_even): Rename from max1_r, add endian check.
13189 (max1_odd): Rename from max1_l, add endian check.
13190 (*mux1_rev): Format change.
13191 (*mux1_mix): Ditto.
13192 (*mux1_shuf): Ditto.
13193 (*mux1_alt): Ditto.
13194 (*mux1_brcst_v8qi): Use new predicate.
13195 (vec_extract_evenv8qi): Remove endian check.
13196 (vec_extract_oddv8qi): Ditto.
13197 (vec_interleave_lowv4hi): Format change.
13198 (vec_interleave_highv4hi): Ditto.
13199 (mix2_even): Rename from mix2_r, add endian check.
13200 (mix2_odd): Rename from mux2_l, add endian check.
13201 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13202 (vec_extract_evenodd_helper): Format change.
13203 (vec_extract_evenv4hi): Remove endian check.
13204 (vec_extract_oddv4hi): Remove endian check.
13205 (vec_interleave_lowv2si): Format change.
13206 (vec_interleave_highv2si): Format change.
13207 (vec_initv2si): Remove endian check.
13208 (vecinit_v2si): Add endian check.
13209 (reduc_splus_v2sf): Add endian check.
13210 (reduc_smax_v2sf): Ditto.
13211 (reduc_smin_v2sf): Ditto.
13212 (vec_initv2sf): Remove endian check.
13213 (fpack): Add endian check.
13214 (fswap): Add endian check.
13215 (vec_interleave_highv2sf): Add endian check.
13216 (vec_interleave_lowv2sf): Add endian check.
13217 (fmix_lr): Add endian check.
13218 (vec_setv2sf): Format change.
13219 (*vec_extractv2sf_0_be): Use shift to extract operand.
13220 (*vec_extractv2sf_1_be): New.
13221 (vec_pack_trunc_v4hi): Add endian check.
13222 (vec_pack_trunc_v2si): Format change.
13223
dcde5957
JJ
132242011-02-04 Jakub Jelinek <jakub@redhat.com>
13225
13226 PR inline-asm/23200
13227 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 13228 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
13229 (stmt_is_replaceable_p): New function.
13230 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13231 callers.
13232 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13233 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13234 SSA_NAME_DEF_STMT.
13235 * tree-flow.h (stmt_is_replaceable_p): New prototype.
13236
a64a8e5a
JM
132372011-02-04 Joseph Myers <joseph@codesourcery.com>
13238
13239 * config/rs6000/xilinx.opt: New.
13240 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13241
4da2ed2f
JM
132422011-02-04 Joseph Myers <joseph@codesourcery.com>
13243
13244 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13245
a6e508f9
AS
132462011-02-03 Anatoly Sokolov <aesok@post.ru>
13247
13248 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13249 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13250 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13251 secondary_reload_info, xtensa_secondary_reload): Remove.
13252 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13253 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13254 (xtensa_preferred_reload_class): Make static. Change return and
13255 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13256 Use CONST_DOUBLE_P predicate.
13257 (xtensa_preferred_output_reload_class): New function.
13258 (xtensa_secondary_reload): Make static.
13259
82dc0de3
JM
132602011-02-03 Joseph Myers <joseph@codesourcery.com>
13261
13262 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13263 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13264 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13265
7fece979
JJ
132662011-02-03 Jakub Jelinek <jakub@redhat.com>
13267
13268 PR middle-end/31490
13269 * output.h (SECTION_RELRO): Define.
13270 (SECTION_MACH_DEP): Adjust.
13271 (get_variable_section): New prototype.
13272 * varpool.c (varpool_finalize_named_section_flags): New function.
13273 (varpool_assemble_pending_decls): Call it.
13274 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13275 * cgraphunit.c (cgraph_output_in_order): Call
13276 varpool_finalize_named_section_flags.
13277 * varasm.c (get_section): Allow section flags conflicts between
13278 relro and read-only sections if the section hasn't been declared yet.
13279 Set SECTION_OVERRIDE after diagnosing section type conflict.
13280 (get_variable_section): No longer static.
13281 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13282 readonly sections that need relocations.
13283 (decl_readonly_section_1): New function.
13284 (decl_readonly_section): Use it.
13285
13286 Revert:
509d65dd 13287 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
13288 Steve Ellcey <sje@cup.hp.com>
13289
13290 PR middle-end/31490
13291 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13292 if section attribute used.
13293
d18d5478
JJ
132942011-02-03 Jakub Jelinek <jakub@redhat.com>
13295
13296 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13297 * config/darwin.c (SECTION_NO_ANCHOR): Define.
13298 (darwin_init_sections): Remove assertion.
13299
6479ed4b
NC
133002011-02-03 Nick Clifton <nickc@redhat.com>
13301
13302 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13303 lt and ge.
38be4072 13304 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
13305 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13306 instead of "n" and "pz".
13307 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13308 CC_FLAG_S.
13309
89843f5d
JJ
133102011-02-03 Jakub Jelinek <jakub@redhat.com>
13311
65450d64
JJ
13312 PR target/47312
13313 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13314 fma, expand FMA_EXPR as fma{,f,l} call.
13315
7d58701c
JJ
13316 PR lto/47274
13317 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13318 copy them into a unsigned char variable and pass address of it to
13319 lto_output_data_stream.
13320
89843f5d
JJ
13321 PR target/47564
13322 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13323 around backend_init_target and lang_dependent_init_target calls.
13324 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13325 (verify_cgraph_node): Don't call set_cfun here. Use
13326 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13327 Set error_found for incorrectly represented calls to thunks.
13328
4deef538
AO
133292011-02-03 Alexandre Oliva <aoliva@redhat.com>
13330
13331 PR debug/43092
13332 PR rtl-optimization/43494
13333 * rtl.h (for_each_inc_dec_fn): New type.
13334 (for_each_inc_dec): Declare.
13335 * rtlanal.c (struct for_each_inc_dec_ops): New type.
13336 (for_each_inc_dec_find_inc_dec): New fn.
13337 (for_each_inc_dec_find_mem): New fn.
13338 (for_each_inc_dec): New fn.
13339 * dse.c (struct insn_size): Remove.
13340 (replace_inc_dec, replace_inc_dec_mem): Remove.
13341 (emit_inc_dec_insn_before): New fn.
13342 (check_for_inc_dec): Use it, along with for_each_inc_dec.
13343 (canon_address): Pass mem modes to cselib_lookup.
13344 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
13345 (cselib_lookup_from_insn): Likewise.
13346 (cselib_subst_to_values): Likewise.
13347 * cselib.c (find_slot_memmode): New var.
13348 (cselib_find_slot): New fn. Use it instead of
13349 htab_find_slot_with_hash everywhere.
13350 (entry_and_rtx_equal_p): Use find_slot_memmode.
13351 (autoinc_split): New fn.
13352 (rtx_equal_for_cselib_p): Rename and implement in terms of...
13353 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
13354 Deal with autoinc. Special-case recursion into MEMs.
13355 (cselib_hash_rtx): Likewise.
13356 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
13357 address and MEM modes.
13358 (cselib_subst_to_values): Add memmode, pass it on.
13359 Deal with autoinc.
13360 (cselib_lookup): Add memmode argument, pass it on.
13361 (cselib_lookup_from_insn): Add memmode.
13362 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13363 (struct cselib_record_autoinc_data): New.
13364 (cselib_record_autoinc_cb): New fn.
13365 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
13366 mode to cselib_lookup. Reset autoinced REGs here instead of...
13367 (cselib_process_insn): ... here.
13368 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13369 to cselib_lookup.
13370 (add_uses): Likewise, also to cselib_subst_to_values.
13371 (add_stores): Likewise.
13372 * sched-deps.c (add_insn_mem_dependence): Pass mode to
13373 cselib_subst_to_values.
13374 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
13375 * gcse.c (do_local_cprop): Adjusted.
13376 * postreload.c (reload_cse_simplify_set): Adjusted.
13377 (reload_cse_simplify_operands): Adjusted.
13378 * sel-sched-dump (debug_mem_addr_value): Pass mode.
13379
1551d44a
AO
133802011-02-03 Alexandre Oliva <aoliva@redhat.com>
13381
13382 PR tree-optimization/45122
13383 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13384 unsafe assumptions when there's more than one loop exit.
13385
c9485473
MM
133862011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
13387
13388 PR target/47272
13389 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13390 Document using vector double with the load/store builtins, and
13391 that the load/store builtins always use Altivec instructions.
13392
13393 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13394 to use altivec memory instructions, even on VSX.
13395 (vector_altivec_store_<mode>): Ditto.
13396
13397 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13398 function.
13399
13400 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13401 V2DF, V2DI support to load/store overloaded builtins.
13402
13403 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13404 altivec load/store builtins for V2DF/V2DI types.
13405
13406 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13407 set avoid indexed addresses on power6 if -maltivec.
13408 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13409 vector_altivec_load/vector_altivec_store builtins.
13410 (altivec_expand_st_builtin): Ditto.
13411 (altivec_expand_builtin): Add VSX memory builtins.
13412 (rs6000_init_builtins): Add V2DI types to internal types.
13413 (altivec_init_builtins): Add support for V2DF/V2DI altivec
13414 load/store builtins.
13415 (rs6000_address_for_altivec): Insure memory address is appropriate
13416 for Altivec.
13417
13418 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13419 vec_vsx_ld and vec_vsx_st.
13420 (vsx_store_<mode>): Ditto.
13421
13422 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13423 variables to hold long long types for VSX vector memory builtins.
13424 (RS6000_BTI_unsigned_long_long): Ditto.
13425 (long_long_integer_type_internal_node): Ditti.
13426 (long_long_unsigned_type_internal_node): Ditti.
13427
13428 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13429 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13430 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13431
13432 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13433 short cuts.
13434 (vec_vsx_st): Ditto.
13435
b24d1acf
JM
134362011-02-02 Joseph Myers <joseph@codesourcery.com>
13437
13438 * config/pa/pa-hpux10.opt: New.
13439 * config/hpux11.opt (pthread): New Driver option.
13440 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13441 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13442
aa18dd0f
JM
134432011-02-02 Joseph Myers <joseph@codesourcery.com>
13444
13445 * config/ia64/vms.opt: New.
13446 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13447
28fc3eee
MM
134482011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
13449
13450 PR target/47580
13451 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13452 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13453 generator functions.
13454 (vsx_floatuns<VSi><mode>2): Ditto.
13455 (vsx_fix_trunc<mode><VSi>2): Ditto.
13456 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13457
b5838b1f
JM
134582011-02-02 Joseph Myers <joseph@codesourcery.com>
13459
13460 * config/i386/djgpp.opt (posix): New Driver option.
13461
0db8fa89
GP
134622011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
13463
13464 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13465 Move to the unsupported targets list.
13466
9cd4f22a
PB
134672011-02-02 Peter Bergner <bergner@vnet.ibm.com>
13468
13469 PR rtl-optimization/47525
13470 * df-scan.c: Update copyright years.
13471 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13472 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13473
9ed8059c
RO
134742011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13475
13476 * config/i386/sysv4.h (TARGET_VERSION): Remove.
13477 (SUBTARGET_RETURN_IN_MEMORY): Remove.
13478 (ASM_OUTPUT_ASCII): Remove.
13479 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13480
2a737389
JL
134812011-02-02 Jeff Law <law@redhat.com>
13482
13483 PR middle-end/47543
13484 * reload.c (find_reloads_address): Handle reg+d address where both
13485 components are invalid by reloading the entire address.
13486
9dac82c4
SP
134872011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13488 Richard Guenther <rguenther@suse.de>
13489
13490 PR tree-optimization/40979
13491 PR bootstrap/47044
13492 * passes.c (init_optimization_passes): After LIM call copy_prop
13493 and DCE to clean up.
13494 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13495
14dd9aab
SP
134962011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13497
13498 PR tree-optimization/47576
13499 PR tree-optimization/47555
13500 * doc/invoke.texi (scev-max-expr-complexity): Documented.
13501 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13502 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13503 * tree-scalar-evolution.c (follow_ssa_edge): Use
13504 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13505
5cbf5c20
RG
135062011-02-02 Richard Guenther <rguenther@suse.de>
13507
13508 PR tree-optimization/47566
13509 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13510
83d70792
AO
135112011-02-02 Alexandre Oliva <aoliva@redhat.com>
13512
e829c321
AO
13513 PR debug/47106
13514 PR debug/47402
13515 * tree-inline.c (declare_return_variable): Remove unused caller
13516 variable.
13517
83d70792
AO
13518 PR debug/47106
13519 PR debug/47402
13520 * tree-flow-inline.h (clear_is_used, is_used_p): New.
13521 * cfgexpand.c (account_used_vars_for_block): Use them.
13522 * tree-nrv.c (tree_nrv): Likewise.
13523 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13524 (dump_scope_block): Likewise.
13525 (remove_unused_locals): Likewise.
13526
aaa2ac93
AO
13527 PR debug/47106
13528 PR debug/47402
13529 * tree-inline.c (declare_return_variable): Add result decl to
13530 local decls only once.
13531 * gimple-low.c (record_vars_into): Mark newly-created variables
13532 as referenced.
13533
a59d15cf
AO
135342011-02-02 Alexandre Oliva <aoliva@redhat.com>
13535
13536 PR debug/47498
13537 PR debug/47501
13538 PR debug/45136
13539 PR debug/45130
13540 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13541 debug insns.
13542 (no_real_insns_p, schedule_block, set_priorities): Drop special
13543 treatment of boundary debug insns.
38be4072 13544 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
13545 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13546 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13547 (BOUNDARY_DEBUG_INSN_P): Likewise.
13548 (SCHEDULE_DEBUG_INSN_P): Likewise.
13549 * sched-rgn.c (init_ready_list): Drop special treatment of
13550 boundary debug insns.
13551 * final.c (rest_of_clean_state): Clear notes' BB.
13552
6fc2f091
JM
135532011-02-01 Joseph Myers <joseph@codesourcery.com>
13554
13555 * config/openbsd.opt (assert=): New Driver option.
13556
fc523387
JM
135572011-02-01 Joseph Myers <joseph@codesourcery.com>
13558
13559 * config/i386/nto.opt: New.
13560 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13561
6d9821e5
JM
135622011-02-01 Joseph Myers <joseph@codesourcery.com>
13563
13564 * config/i386/netware.opt: New.
13565 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13566
cef932d4
JM
135672011-02-01 Joseph Myers <joseph@codesourcery.com>
13568
13569 * config/interix.opt (posix): New Driver option.
13570
22843acd
DD
135712011-02-01 DJ Delorie <dj@redhat.com>
13572
56490b74
DD
13573 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13574
22843acd
DD
13575 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13576 class for A0/A1.
13577
199c8f2f
SP
135782011-02-01 Sebastian Pop <sebastian.pop@amd.com>
13579
13580 PR tree-optimization/47561
13581 * toplev.c (process_options): Print the Graphite flags. Add
13582 flag_loop_flatten to the list of options requiring Graphite.
13583
926bcf22
JM
135842011-02-01 Joseph Myers <joseph@codesourcery.com>
13585
13586 * config/i386/cygming.opt (posix): New Driver option.
13587
59793c51
JM
135882011-02-01 Joseph Myers <joseph@codesourcery.com>
13589
13590 * config/arm/vxworks.opt: New.
13591 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13592
183c38a4
JM
135932011-02-01 Joseph Myers <joseph@codesourcery.com>
13594
13595 * config/alpha/elf.opt: New.
13596 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13597 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13598
9939e416
RG
135992011-02-01 Richard Guenther <rguenther@suse.de>
13600
13601 PR tree-optimization/47559
13602 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13603 store-motion on references that can throw.
13604
4a3c9687
BS
136052011-02-01 Bernd Schmidt <bernds@codesourcery.com>
13606
13607 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13608 * tree-pass.h (TDF_CSELIB): New macro.
13609 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13610 cselib_lookup): Check for it rather than for TDF_DETAILS.
13611
dd3b31fb
L
136122011-02-01 H.J. Lu <hongjiu.lu@intel.com>
13613
13614 PR driver/47547
13615 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13616 is HOST_BIT_BUCKET.
13617
13618 * opts.c (finish_options): Don't add x_aux_base_name if it is
13619 HOST_BIT_BUCKET.
13620
34c1de79
RG
136212011-02-01 Richard Guenther <rguenther@suse.de>
13622
13623 PR tree-optimization/47555
13624 Revert
13625 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
13626
13627 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13628
dd2804d2
SB
136292011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
13630
13631 PR gcc/46692
13632 * config/lm32/t-lm32: Add multilib for all CPU options.
13633
3fd3b156
RG
136342011-02-01 Richard Guenther <rguenther@suse.de>
13635
13636 PR tree-optimization/47541
13637 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13638 sure to have a field at offset zero.
13639
f16072b6
JM
136402011-01-31 Joseph Myers <joseph@codesourcery.com>
13641
13642 * config/arc/arc.opt (EB, EL): New Driver options.
13643
6456cf2e
JM
136442011-01-31 Joseph Myers <joseph@codesourcery.com>
13645
13646 * config/alpha/osf5.opt: New.
13647 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13648
cdde6ab4
JM
136492011-01-31 Joseph Myers <joseph@codesourcery.com>
13650
13651 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13652
7633415c
SP
136532011-01-31 Sebastian Pop <sebastian.pop@amd.com>
13654
13655 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13656 -floop-interchange.
13657 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13658 is an alias of -floop-interchange and that it requires the
13659 Graphite infrastructure.
13660 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13661 flag_loop_interchange based on the value of flag_tree_loop_linear.
13662
0425d6f5
JJ
136632011-01-31 Jakub Jelinek <jakub@redhat.com>
13664 Richard Guenther <rguenther@suse.de>
13665
13666 PR tree-optimization/47538
13667 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13668 type instead of r1type, except for comparisons. For right
13669 shifts and comparisons punt if there are mismatches in
13670 sizetype vs. non-sizetype types.
13671
500b16c3
RO
136722011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13673
13674 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13675 avx_runtime.
13676
e279edb0
RO
136772011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13678
13679 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13680 version number.
13681 * configure: Regenerate.
13682
c6092243
RO
136832011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13684
13685 * configure.ac (gcc_cv_ld_static_option): Define.
13686 (gcc_cv_ld_dynamic_option): Define.
13687 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13688 instead.
13689 (HAVE_LD_STATIC_DYNAMIC): Update message.
13690 (LD_STATIC_OPTION): Define.
13691 (LD_DYNAMIC_OPTION): Define.
13692 * configure: Regenerate.
13693 * config.in: Regenerate.
13694 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13695 HAVE_LD_STATIC_DYNAMIC]: Use them.
13696
d7862be3
NC
136972011-01-31 Nick Clifton <nickc@redhat.com>
13698
13699 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13700 registers inside interrupt handlers if the handler is not a leaf
13701 function.
13702
ba4ec0e0
NC
137032011-01-31 Nick Clifton <nickc@redhat.com>
13704
13705 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13706 reg_renumber returning an INVALID_REGNUM.
13707
29a63921
AO
137082011-01-31 Alexandre Oliva <aoliva@redhat.com>
13709
13710 PR libgcj/44341
13711 * doc/install.texi: Document host options discarded when cross
13712 configuring target libraries.
13713
ef591d3f
AO
137142011-01-31 Alexandre Oliva <aoliva@redhat.com>
13715
13716 Reverted:
13717 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
13718 PR debug/45136
13719 PR debug/45130
13720 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13721 debug insns.
13722 (no_real_insns_p, schedule_block, set_priorities): Drop special
13723 treatment of boundary debug insns.
38be4072 13724 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
13725 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13726 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13727 (BOUNDARY_DEBUG_INSN_P): Likewise.
13728 (SCHEDULE_DEBUG_INSN_P): Likewise.
13729 * sched-rgn.c (init_ready_list): Drop special treatment of
13730 boundary debug insns.
13731 * final.c (rest_of_clean-state): Clear notes' BB.
13732
61052244
AM
137332011-01-31 Alan Modra <amodra@gmail.com>
13734
13735 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13736 toc relative expressions as we do in print_operand_address.
13737
c4c8962b
KH
137382011-01-30 Kazu Hirata <kazu@codesourcery.com>
13739
13740 * doc/extend.texi: Follow spelling conventions.
13741 * doc/invoke.texi: Fix a typo.
13742
e543b94c
JM
137432011-01-30 Joseph Myers <joseph@codesourcery.com>
13744
13745 * config/hpux11.opt: New.
13746 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13747 ia64*-*-hpux*): Use hpux11.opt.
13748
509d65dd 137492011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
13750
13751 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13752 to tmake_file.
13753
7be03a0e
GP
137542011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13755
13756 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13757 support sites.
13758
419d1d37
GP
137592011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13760
b596ed64
GP
13761 * doc/install.texi (Binaries): Remove outdated reference for
13762 Motorola 68HC11/68HC12 downloads.
13763
137642011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 13765
419d1d37
GP
13766 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13767 Drepper's paper.
13768
4406d0e9
JW
137692011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
13770
13771 PR bootstrap/47147
13772 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13773 used by NetBSD.
13774
38be4072 137752011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
13776
13777 * value-prof.c (check_counter): Corrected error message.
13778
0cd98787
JZ
137792011-01-29 Jie Zhang <jie@codesourcery.com>
13780
13781 * config/arm/arm.c (arm_legitimize_reload_address): New.
13782 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13783 arm_legitimize_reload_address.
38be4072 13784 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 13785
9b798ac5
ILT
137862011-01-28 Ian Lance Taylor <iant@google.com>
13787
13788 * godump.c (go_define): Ignore macros whose definitions include
13789 two adjacent operands.
13790
591e29d9
JJ
137912011-01-28 Jakub Jelinek <jakub@redhat.com>
13792
13793 PR target/42894
13794 * varasm.c (force_const_mem): Store copy of x in desc->constant
13795 instead of x itself.
13796 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13797 itself into REG_EQUAL note.
13798
62dcc44a
JM
137992011-01-28 Joseph Myers <joseph@codesourcery.com>
13800
13801 * config/freebsd.opt (posix, rdynamic): New Driver options.
13802
c9f58b9a
RO
138032011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13804
13805 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13806 -Bstatic/-Bdynamic.
13807 * configure: Regenerate.
13808
5f02b9db
JM
138092011-01-27 Joseph Myers <joseph@codesourcery.com>
13810
13811 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13812 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13813
5df97412
AS
138142011-01-27 Anatoly Sokolov <aesok@post.ru>
13815
13816 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13817 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13818 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13819 (s390_preferred_reload_class): Make static. Change return and
13820 'rclass' argument type to reg_class_t.
13821
779d4b91
JH
138222011-01-27 Jan Hubicka <jh@suse.cz>
13823
13824 PR middle-end/46949
13825 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13826 (process_function_and_variable_attributes): Check defined weakrefs.
13827
e80b21ed
MJ
138282011-01-27 Martin Jambor <mjambor@suse.cz>
13829
13830 PR tree-optimization/47228
13831 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13832 build_ref_for_offset.
13833
6dcc4f31
UW
138342011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13835
13836 * config/spu/spu-elf.h (ASM_SPEC): Remove.
13837
509d65dd 138382011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
13839
13840 PR rtl-optimization/46856
13841 * postreload.c (reload_combine_recognize_const_pattern): Do not
13842 separate cc0 setter and user on cc0 targets.
13843
04af8788
NP
138442011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
13845
13846 PR c/43082
13847 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13848 passed a VOID_TYPE expression, immediately emit an error and
13849 return error_mark_node.
13850
f7a60085
JL
138512011-01-26 Jeff Law <law@redhat.com>
13852
13853 PR rtl-optimization/47464
13854 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13855 rather than may_trap_p as needed.
13856
5c2917ec
DD
138572011-01-26 DJ Delorie <dj@redhat.com>
13858
13859 PR rtl-optimization/46878
13860 * combine.c (insn_a_feeds_b): Check for the implicit cc0
13861 setter/user dependency as well.
13862
bef16e87
EB
138632011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13864
13865 PR rtl-optimization/44469
13866 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13867 after removing trivially dead basic blocks.
13868
c75d884b
JM
138692011-01-26 Joseph Myers <joseph@codesourcery.com>
13870
13871 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13872 * config/frv/frv.h (LINK_SPEC): Likewise.
13873 * config/i386/netware.h (LINK_SPEC): Likewise.
13874 * config/m68k/linux.h (ASM_SPEC): Likewise.
13875 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13876 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13877 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13878 * config/sparc/linux.h (ASM_SPEC): Likewise.
13879 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13880 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13881
d3153553
JM
138822011-01-26 Joseph Myers <joseph@codesourcery.com>
13883
13884 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13885 * config/frv/frv.h (ASM_SPEC): Likewise.
13886 * config/m68k/linux.h (ASM_SPEC): Likewise.
13887 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13888 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13889 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13890 * config/sparc/linux.h (ASM_SPEC): Likewise.
13891 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13892 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13893
b89b1e9d
JM
138942011-01-26 Joseph Myers <joseph@codesourcery.com>
13895
13896 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13897 * config/frv/frv.h (LINK_SPEC): Likewise.
13898 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13899
12eb1a9c
JM
139002011-01-26 Joseph Myers <joseph@codesourcery.com>
13901
13902 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13903 * config/frv/frv.h (ASM_SPEC): Likewise.
13904 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13905 * config/m68k/linux.h (ASM_SPEC): Likewise.
13906 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13907 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13908 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13909 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13910 * config/sparc/linux.h (ASM_SPEC): Likewise.
13911 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13912 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13913 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13914
e435f098
SE
139152011-01-26 Steve Ellcey <sje@cup.hp.com>
13916
13917 PR target/46997
13918 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13919 (*mux2): Ditto.
13920 (vec_extract_evenodd_help): Ditto.
13921 (vec_extract_evenv4hi): Ditto.
13922 (vec_extract_oddv4hi): Ditto.
13923 (vec_interleave_lowv2si): Ditto.
13924 (vec_interleave_highv2si): Ditto.
13925 (vec_extract_evenv2si): Ditto.
13926 (vec_extract_oddv2si: Ditto.
13927 (vec_pack_trunc_v2si): Ditto.
13928
34f0eee0
JH
139292011-01-22 Jan Hubicka <jh@suse.cz>
13930
13931 PR target/47237
13932 * cgraph.h (cgraph_local_info): New field can_change_signature.
13933 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
13934 signature can change.
13935 (ipcp_estimate_growth): Call sequence simplify only if calle signature
13936 can change.
13937 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
13938 (cgraph_function_versioning): We can not change signature of functions
13939 that don't allow that.
13940 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
13941 (lto_input_node): Likewise.
38be4072
UB
13942 * ipa-inline.c (compute_inline_parameters): Compute
13943 local.can_change_signature.
34f0eee0 13944 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
13945 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
13946 functions that can not change signature.
34f0eee0 13947 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
13948 init_cumulative_args): Do not use local calling conventions
13949 for functions that can not change signature.
34f0eee0 13950
980ca891
JH
139512011-01-22 Jan Hubicka <jh@suse.cz>
13952
13953 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
13954
768e3c60
RG
139552011-01-26 Richard Guenther <rguenther@suse.de>
13956
13957 PR tree-optimization/47190
61052244
AM
13958 * cgraphunit.c (process_common_attributes): New function.
13959 (process_function_and_variable_attributes): Use it.
768e3c60 13960
21d6a1c7
RG
139612011-01-26 Richard Guenther <rguenther@suse.de>
13962
13963 PR lto/47423
13964 * cgraphbuild.c (record_eh_tables): Record reference to personality
13965 function.
13966
48bb58b1
AO
139672011-01-26 Alexandre Oliva <aoliva@redhat.com>
13968
13969 PR debug/45454
13970 * sel-sched.c (moveup_expr): Don't let debug insns prevent
13971 non-debug insns from moving up.
13972
58c741a6
DK
139732011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
13974
13975 PR target/40125
13976 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
13977 t-dlldir{,-x} fragment for build and add it to tmake_file.
13978 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13979 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
13980 * config/i386/t-dlldir: New file.
13981 (SHLIB_DLLDIR): Define.
13982 * config/i386/t-dlldir-x: New file.
13983 (SHLIB_DLLDIR): Define.
13984 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
13985 (SHLIB_INSTALL): Use it.
13986
bff99262
CLT
139872011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
13988
13989 PR target/47246
13990 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
13991 lower bound of the allowed Thumb-2 coprocessor load/store
13992 index range to -256. Add explaining comment.
13993
82c03907
ILT
139942011-01-25 Ian Lance Taylor <iant@google.com>
13995
13996 * godump.c (go_define): Improve lexing of macro expansion to only
13997 accept expressions which match Go spec.
13998
47ea1edf
DK
139992011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14000
d4dba752 14001 PR c++/43601
47ea1edf
DK
14002 * tree.c (handle_dll_attribute): Handle it.
14003 * doc/extend.texi (@item dllexport): Mention it.
14004 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14005
744f0946
ILT
140062011-01-25 Ian Lance Taylor <iant@google.com>
14007
14008 PR tree-optimization/26854
14009 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14010 (decl_jump_unsafe): Move higher in file, with no other change.
14011 (bind): Set has_jump_unsafe_decl if appropriate.
14012 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14013 (check_earlier_gotos): Likewise.
14014 (c_check_switch_jump_warnings): Likewise.
14015
5734f2b3
JW
140162011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
14017
14018 * doc/invoke.texi (Warning Options): Add missing hyphen.
14019 (-fprofile-dir): Minor grammatical fixes.
14020 (-fbranch-probabilities): Likewise.
14021
9bdbdcef
AO
140222011-01-25 Alexandre Oliva <aoliva@redhat.com>
14023
14024 PR debug/45136
14025 PR debug/45130
14026 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14027 debug insns.
14028 (no_real_insns_p, schedule_block, set_priorities): Drop special
14029 treatment of boundary debug insns.
38be4072 14030 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
14031 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14032 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14033 (BOUNDARY_DEBUG_INSN_P): Likewise.
14034 (SCHEDULE_DEBUG_INSN_P): Likewise.
14035 * sched-rgn.c (init_ready_list): Drop special treatment of
14036 boundary debug insns.
14037 * final.c (rest_of_clean-state): Clear notes' BB.
14038
b305e3da
SP
140392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14040
14041 * Makefile.in (LAMBDA_H): Removed.
14042 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14043 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14044 lambda-trans.o, and tree-loop-linear.o.
14045 (lto-symtab.o): Remove dependence on LAMBDA_H.
14046 (tree-loop-linear.o): Remove rule.
14047 (lambda-mat.o): Same.
14048 (lambda-trans.o): Same.
14049 (lambda-code.o): Same.
14050 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14051 (tree-vect-slp.o): Same.
14052 * hwint.h (gcd): Moved here.
14053 (least_common_multiple): Same.
14054 * lambda-code.c: Removed.
14055 * lambda-mat.c: Removed.
14056 * lambda-trans.c: Removed.
14057 * lambda.h: Removed.
14058 * tree-loop-linear.c: Removed.
14059 * lto-symtab.c: Do not include lambda.h.
14060 * omega.c (gcd): Removed.
14061 * passes.c (init_optimization_passes): Remove pass_linear_transform.
14062 * tree-data-ref.c (print_lambda_vector): Moved here.
14063 (lambda_vector_copy): Same.
14064 (lambda_matrix_copy): Same.
14065 (lambda_matrix_id): Same.
14066 (lambda_vector_first_nz): Same.
14067 (lambda_matrix_row_add): Same.
14068 (lambda_matrix_row_exchange): Same.
14069 (lambda_vector_mult_const): Same.
14070 (lambda_vector_negate): Same.
14071 (lambda_matrix_row_negate): Same.
14072 (lambda_vector_equal): Same.
14073 (lambda_matrix_right_hermite): Same.
14074 * tree-data-ref.h: Do not include lambda.h.
14075 (lambda_vector): Moved here.
14076 (lambda_matrix): Same.
14077 (dependence_level): Same.
14078 (lambda_transform_legal_p): Removed declaration.
14079 (lambda_collect_parameters): Same.
14080 (lambda_compute_access_matrices): Same.
14081 (lambda_vector_gcd): Same.
14082 (lambda_vector_new): Same.
14083 (lambda_vector_clear): Same.
14084 (lambda_vector_lexico_pos): Same.
14085 (lambda_vector_zerop): Same.
14086 (lambda_matrix_new): Same.
14087 * tree-flow.h (least_common_multiple): Removed declaration.
14088 * tree-parloops.c (lambda_trans_matrix): Moved here.
14089 (LTM_MATRIX): Same.
14090 (LTM_ROWSIZE): Same.
14091 (LTM_COLSIZE): Same.
14092 (LTM_DENOMINATOR): Same.
14093 (lambda_trans_matrix_new): Same.
14094 (lambda_matrix_vector_mult): Same.
14095 (lambda_transform_legal_p): Same.
14096 * tree-pass.h (pass_linear_transform): Removed declaration.
14097 * tree-ssa-loop.c (tree_linear_transform): Removed.
14098 (gate_tree_linear_transform): Removed.
14099 (pass_linear_transform): Removed.
14100 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14101 flag_loop_interchange.
14102
6bdfdb96
JJ
141032011-01-25 Jakub Jelinek <jakub@redhat.com>
14104
14105 PR tree-optimization/47265
14106 PR tree-optimization/47443
14107 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14108 if name still has some uses.
14109
e4cba915
MJ
141102011-01-25 Martin Jambor <mjambor@suse.cz>
14111
14112 PR tree-optimization/47382
14113 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14114 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14115
509d65dd 141162011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
14117
14118 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14119 sjlj_except_unwind_info.
14120
194313e2
RG
141212011-01-25 Richard Guenther <rguenther@suse.de>
14122
14123 PR tree-optimization/47426
14124 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14125 visible functions results escape.
14126
147a0bcf
JJ
141272011-01-25 Jakub Jelinek <jakub@redhat.com>
14128
14129 PR target/45701
14130 * config/arm/arm.c (any_sibcall_uses_r3): New function.
14131 (arm_get_frame_offsets): Use it.
14132
db963b52
SP
141332011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14134 Jakub Jelinek <jakub@redhat.com>
14135
14136 PR tree-optimization/47271
14137 * tree-if-conv.c (bb_postdominates_preds): New.
14138 (if_convertible_bb_p): Call bb_postdominates_preds.
14139 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14140 (predicate_scalar_phi): Call bb_postdominates_preds.
14141
bcddd3b9
NC
141422011-01-25 Nick Clifton <nickc@redhat.com>
14143
14144 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14145 * config/rx/rx.c (rx_function_value): Likewise.
14146 (rx_promote_function_mode): Likewise.
14147 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14148 in order to make it legitimate.
38be4072
UB
14149 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14150 make sure that the first operand is the same as the result register.
bcddd3b9
NC
14151 (addsi3_unspec): Delete.
14152 (subdi3): Do not accept immediate operands.
14153 (subdi3_internal): Likewise.
14154
7e6cb022
JL
141552011-01-25 Jeff Law <law@redhat.com>
14156
14157 PR rtl-optimization/37273
14158 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14159 handle them like argument loads from stack slots. Do not double
14160 count memory for memory constants and argument loads from stack slots.
14161
9ffa621e
JJ
141622011-01-25 Jakub Jelinek <jakub@redhat.com>
14163
14164 PR tree-optimization/47427
14165 PR tree-optimization/47428
14166 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14167 coalesce if the new root var would be TREE_READONLY.
14168
5bd6e652
RG
141692011-01-25 Richard Guenther <rguenther@suse.de>
14170
14171 PR middle-end/47414
14172 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14173 correct type for TBAA.
14174
7c48ea69
SP
141752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14176
14177 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14178 (close_phi_written_to_memory): Call for_each_index with
14179 dr_indices_valid_in_loop.
14180
38013f25
SP
141812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14182
14183 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14184 when it is initialized.
14185
5c640e29
SP
141862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14187
14188 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14189 call to graphite_find_data_references_in_stmt.
14190 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14191 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
14192 call to graphite_find_data_references_in_stmt.
14193 (analyze_drs_in_stmts): Same.
14194 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14195 in which the scalar analysis of indices is performed.
14196 (create_data_ref): Same. Update call to dr_analyze_indices.
14197 (find_data_references_in_stmt): Update call to create_data_ref.
14198 (graphite_find_data_references_in_stmt): Same.
14199 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14200 declaration.
14201 (create_data_ref): Same.
14202 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14203 call to create_data_ref.
14204
ac53c069
SP
142052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14206
14207 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 14208 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 14209
3d17df15
SP
142102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14211
14212 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14213 VAR_DECL, PARM_DECL, and RESULT_DECL.
14214
c513da01
SP
142152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14216
14217 * graphite-dependences.c (reduction_dr_1): Allow several reductions
14218 in a reduction PBB.
14219 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14220 that have already been marked as PBB_IS_REDUCTION.
14221
3a292d59
SP
142222011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14223
14224 * graphite-scop-detection.c (same_close_phi_node): New.
14225 (remove_duplicate_close_phi): New.
14226 (make_close_phi_nodes_unique): New.
14227 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14228
ba858447
SP
142292011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14230
14231 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14232 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14233 of both data references to be the same.
14234
8d865c56
SP
142352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14236
38be4072
UB
14237 * graphite-dependences.c (build_lexicographical_constraint): Remove
14238 the gdim parameter.
14239 (build_lexicographical_constraint): Adjust call to
14240 ppl_powerset_is_empty.
8d865c56
SP
14241 (dependence_polyhedron): Same.
14242 (graphite_legal_transform_dr): Same.
14243 (graphite_carried_dependence_level_k): Same.
38be4072
UB
14244 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14245 parameter.
8d865c56
SP
14246 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14247
50034a36
SP
142482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14249
14250 * graphite-sese-to-poly.c
14251 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14252 (close_phi_written_to_memory): New.
14253 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14254 and unshare_expr.
14255
0deada9e
SP
142562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14257
14258 * doc/install.texi: Update the expected version number of PPL to 0.11.
14259 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14260 #if PPL_VERSION_MINOR < 11.
14261
d7d3d6af
SP
142622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14263
14264 * graphite-dependences.c: Include graphite-cloog-util.h.
14265 (new_poly_ddr): Inlined into dependence_polyhedron.
14266 (free_poly_ddr): Moved close by new_poly_ddr.
14267 (dependence_polyhedron_1): Renamed dependence_polyhedron.
14268 Early return NULL when ppl_powerset_is_empty returns true.
14269 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
14270 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
14271 (graphite_legal_transform_dr): Call new_poly_ddr.
14272 (graphite_carried_dependence_level_k): Same.
14273 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
14274 (dot_transformed_deps_stmt_1): Removed.
14275 (dot_deps_stmt_1): Call dot_deps_stmt_2.
14276 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
14277 (dot_deps_1): Call dot_deps_2.
14278 * Makefile.in (graphite-dependences.o): Add missing dependence on
14279 graphite-cloog-util.h.
14280
28c5db57
SP
142812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14282
14283 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14284 (build_lexicographical_constraint): Same.
14285 (dependence_polyhedron_1): Same.
14286 (graphite_legal_transform_dr): Same.
14287 (graphite_carried_dependence_level_k): Same.
14288 * graphite-ppl.c (ppl_powerset_is_empty): New.
14289 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14290 * tree-data-ref.c (dump_data_reference): Print the basic block index.
14291
5168d98f
SP
142922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14293
14294 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14295 the "a followed by b" relation and document it.
14296
4a40293a
SP
142972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14298
14299 * graphite-dependences.c (build_lexicographical_constraint): Stop the
14300 iteration when the bag of constraints is empty.
14301
271fb6fa
SP
143022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14303
14304 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14305
92d23680
SP
143062011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14307
14308 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14309 nest and two loop depths as parameters.
14310 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14311 lst_perfect_nestify.
14312
2f51deff
SP
143132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14314
14315 * graphite-dependences.c (print_pddr): Call
14316 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14317
07f3593c
SP
143182011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14319
14320 * graphite-ppl.c (debug_gmp_value): New.
14321 * graphite-ppl.h (debug_gmp_value): Declared.
14322
3fae6099
TG
143232011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
14324
14325 * doc/install.texi: Document availability of cloog-0.16.
14326
1c3ba85b
SP
143272011-01-25 Vladimir Kargov <kargov@gmail.com>
14328
14329 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14330 invalid postdominance info.
14331
e8ba94fc
JH
143322011-01-24 Jan Hubicka <jh@suse.cz>
14333
14334 PR c/21659
14335 * doc/extend.texi (weak pragma): Drop claim that it must
14336 appear before definition.
14337 * varasm.c (merge_weak, declare_weak): Only sanity check
14338 that DECL is not output at a time it is declared weak.
14339
2b6e2d13
KZ
143402011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
14341
14342 * machmode.def: Fixed comments.
1c3ba85b 14343
9841210f
KT
143442011-01-24 Kai Tietz <kai.tietz@onevision.com>
14345
14346 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14347
143482011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
14349
14350 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 14351 WORDS_BIG_ENDIAN.
e046112d 14352
a6c5070a
L
143532011-01-24 H.J. Lu <hongjiu.lu@intel.com>
14354
14355 PR target/46519
14356 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14357 (block_info): Add scanned and prev.
14358 (move_or_delete_vzeroupper_2): Return if the basic block
14359 has been scanned and the upper 128bit state is unchanged
14360 from the last scan.
14361 (move_or_delete_vzeroupper_1): Return true if the exit
14362 state is changed.
14363 (move_or_delete_vzeroupper): Visit basic blocks using the
14364 work-list based algorithm based on vt_find_locations in
14365 var-tracking.c.
14366
14367 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14368
a40d79d7
NC
143692011-01-24 Nick Clifton <nickc@redhat.com>
14370
14371 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14372 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14373 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
14374 then define __v850e1__.
14375 * doc/invoke.texi: Document -mv850es.
14376
440eb8de
RH
143772011-01-24 Richard Henderson <rth@redhat.com>
14378
14379 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14380 compound unordered comparisons.
14381 * config/rx/rx.c (rx_split_fp_compare): Remove.
14382 * config/rx/rx-protos.h: Update.
14383 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14384 (cbranchsf4): Don't call rx_split_fp_compare.
14385 (*cbranchsf4): Use rx_split_cbranch.
14386 (*cmpsf): Don't accept "i" constraint.
14387 (*conditional_branch): Only valid after reload.
14388 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
14389
3ff79f99
MM
143902011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
14391
14392 PR target/47385
14393 * config/rs6000/altivec.md (vector constant splitters): Add
14394 support for creating vector single precision constants if -mvsx is
14395 used and we would create the constant using Altivec primitives.
14396
ff3d9d08
BS
143972011-01-23 Bernd Schmidt <bernds@codesourcery.com>
14398 Richard Sandiford <rdsandiford@googlemail.com>
14399
14400 PR rtl-optimization/47166
14401 * reload1.c (emit_reload_insns): Disable the spill_reg_store
14402 mechanism for PRE_MODIFY and POST_MODIFY.
14403 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14404 reloadreg.
14405
7fcaf152
AS
144062011-01-23 Andreas Schwab <schwab@linux-m68k.org>
14407
8788adb6 14408 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 14409
d09b58c4
JH
144102011-01-22 Jan Hubicka <jh@suse.cz>
14411
14412 PR lto/47333
14413 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14414
e8ff8c5a
JH
144152011-01-22 Jan Hubicka <jh@suse.cz>
14416
14417 PR tree-optimization/43884
14418 PR lto/44334
8788adb6 14419 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
14420 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14421
ccaed3ba
AS
144222011-01-22 Anatoly Sokolov <aesok@post.ru>
14423
14424 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14425 * config/s390/s390.c (s390_register_move_cost,
14426 s390_memory_move_cost): New.
14427 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14428
0cecee06
UW
144292011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14430
14431 PR middle-end/47401
14432 * except.c (sjlj_assign_call_site_values): Move setting the
14433 crtl->uses_eh_lsda flag to ...
14434 (sjlj_mark_call_sites): ... here.
14435 (sjlj_emit_function_enter): Support NULL dispatch label.
14436 (sjlj_build_landing_pads): In a function with no landing pads
14437 that still has must-not-throw regions, generate code to register
14438 a personality function with empty LSDA.
14439
e692f276
RH
144402011-01-21 Richard Henderson <rth@redhat.com>
14441
1b7ae0b7
RH
14442 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14443
3843787f
RH
14444 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14445
e692f276
RH
14446 * compare-elim.c: New file.
14447 * Makefile.in (OBJS-common): Add it.
14448 (compare-elim.o): New.
14449 * common.opt (fcompare-elim): New.
14450 * opts.c (default_options_table): Add OPT_fcompare_elim.
14451 * tree-pass.h (pass_compare_elim_after_reload): New.
14452 * passes.c (init_optimization_passes): Add it.
14453 * recog.h: Protect against re-inclusion.
14454 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14455 * doc/invoke.texi (-fcompare-elim): Document it.
14456 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14457 * doc/tm.texi: Rebuild.
14458
9a7c2050
NC
144592011-01-22 Nick Clifton <nickc@redhat.com>
14460
14461 * config/rx/rx.md (cstoresf4): Pass comparison operator to
14462 rx_split_fp_compare.
14463
15ba5696
NC
144642011-01-22 Nick Clifton <nickc@redhat.com>
14465
14466 * config/rx/rx.md (UNSPEC_CONST): New.
14467 (deallocate_and_return): Wrap the amount popped off the stack in
14468 an UNSPEC_CONST in order to stop it being rejected by
14469 -mmax-constant-size.
14470 (pop_and_return): Add a "(return)" rtx.
14471 (call): Drop the immediate operand.
14472 (call_internal): Likewise.
14473 (call_value): Likewise.
14474 (call_value_internal): Likewise.
14475 (sibcall_internal): Likewise.
14476 (sibcall_value_internal): Likewise.
14477 (sibcall): Likewise. Generate an explicit call using
14478 sibcall_internal.
14479 (sibcall_value): Likewise.
14480 (mov<>): FAIL if a constant operand is not legitimate.
14481 (addsi3_unpsec): New pattern.
9a7c2050 14482
38be4072 14483 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
14484 (ok_for_max_constant): New function.
14485 (gen_safe_add): New function.
14486 (rx_expand_prologue): Use gen_safe_add.
14487 (rx_expand_epilogue): Likewise.
14488 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
14489 UNSPEC CONSTs.
14490
caaf13d3
JL
144912011-01-21 Jeff Law <law@redhat.com>
14492
14493 PR tree-optimization/47053
14494 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14495 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14496 statements are deleted.
14497 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
14498 is nonempty, then purge dead edges and cleanup the CFG.
14499
12c30f2f
AO
145002011-01-21 Alexandre Oliva <aoliva@redhat.com>
14501
14502 PR debug/47402
14503 Temporarily revert:
14504 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
14505 PR debug/47106
14506 * tree-dfa.c (create_var_ann): Mark variable as used.
14507
7360d2ac
JJ
145082011-01-21 Jakub Jelinek <jakub@redhat.com>
14509
aaa52a96
JJ
14510 PR middle-end/45566
14511 * except.c (convert_to_eh_region_ranges): Emit queued no-region
14512 notes from other section in hot/cold partitioning even if
14513 last_action is -3. Increment call_site_base.
14514
7360d2ac
JJ
14515 PR rtl-optimization/47366
14516 * fwprop.c (forward_propagate_into): Return bool. If
14517 any changes are made, -fnon-call-exceptions is used and
14518 REG_EH_REGION note is present, call purge_dead_edges
14519 and return true if it purged anything.
14520 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14521 any EH edges were purged.
14522
e90b336f
JL
145232011-01-21 Jeff Law <law@redhat.com>
14524
14525 PR rtl-optimization/41619
14526 * caller-save.c (setup_save_areas): Break out code to determine
14527 which hard regs are live across calls by examining the reload chains
14528 so that it is always used.
14529 Eliminate code which checked REG_N_CALLS_CROSSED.
14530
3ffe07e1
JJ
145312011-01-21 Jakub Jelinek <jakub@redhat.com>
14532
14533 PR tree-optimization/47355
14534 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14535 NOP has non-debug uses beyond PHIs in new_bb.
14536
1c7d0b34
AO
145372011-01-21 Alexandre Oliva <aoliva@redhat.com>
14538
14539 PR debug/47106
14540 * cfgexpand.c (account_used_vars_for_block): Only account vars
14541 that are annotated as used.
14542 (estimated_stack_frame_size): Don't set TREE_USED.
14543 * tree-dfa.c (create_var_ann): Mark variable as used.
14544
f99cc488
RG
145452011-01-21 Richard Guenther <rguenther@suse.de>
14546
14547 PR middle-end/47395
14548 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14549
3bc27de7
RG
145502011-01-21 Richard Guenther <rguenther@suse.de>
14551
14552 PR tree-optimization/47365
14553 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14554 (vn_reference_lookup_pieces): Adjust.
14555 (vn_reference_lookup): Likewise.
14556 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14557 (vn_reference_lookup_3): Only look through kills if in
14558 VN_WALKREWRITE mode.
14559 (vn_reference_lookup_pieces): Adjust.
14560 (vn_reference_lookup): Likewise.
14561 (visit_reference_op_load): Likewise.
14562 (visit_reference_op_store): Likewise.
14563 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14564 (compute_avail): Likewise.
14565 (eliminate): Likewise.
14566
d8debb1d
JJ
145672011-01-21 Jakub Jelinek <jakub@redhat.com>
14568
14569 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14570 DECL_IGNORED_P non-reg vars if they are used.
14571
3a2df831
JJ
14572 PR tree-optimization/47391
14573 * varpool.c (const_value_known_p): Return false if
14574 decl is volatile.
14575
1dd584a2
KT
145762011-01-21 Kai Tietz <kai.tietz@onevision.com>
14577
14578 PR bootstrap/47215
14579 * config/i386/i386.c (ix86_local_alignment): Handle
14580 case for va_list_type_node is nil.
14581 (ix86_canonical_va_list_type): Likewise.
14582
7f9f095e
AM
145832011-01-21 Alan Modra <amodra@gmail.com>
14584
14585 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14586 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14587
837b01f6
RR
145882011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14589
14590 * config/arm/arm.md (define_attr type): Rename f_load
14591 and f_store to f_fpa_load and f_fpa_store. Update.
14592 (write_conflict): Deal with rename fallout.
14593 (*push_fp_multi): Likewise.
14594 * config/arm/fpa.md (f_load): Use f_fpa_load.
14595 (f_store): Use f_fpa_store.
14596 (*movsf_fpa): Likewise.
14597 (*movdf_fpa): Likewise.
14598 (*movxf_fpa): Likewise.
14599 (*thumb2_movsf_fpa): Likewise.
14600 (*thumb2_movdf_fpa): Likewise.
14601 (*thumb2_movxf_fpa): Likewise.
14602 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14603 f_loadd and f_stored.
14604 (*thumb2_movdi_vfp): Likewise.
14605 (*thumb2_movsf_vfp): Fix attribute to f_loads.
14606 (*thumb2_movsi_vfp): Likewise.
14607 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14608 Use f_loads instead of f_load.
14609 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14610
a1a79768
AS
146112011-01-20 Anatoly Sokolov <aesok@post.ru>
14612
14613 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14614 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14615 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14616 (xtensa_mode_dependent_address_p): New function.
14617 (constantpool_address_p): Make static. Change return type to bool.
14618 Change argument type to const_rtx. Use CONST_INT_P predicate.
14619
427f6cec
AO
146202011-01-20 Alexandre Oliva <aoliva@redhat.com>
14621
14622 PR debug/46583
14623 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14624
583ac69c
JJ
146252011-01-20 Jakub Jelinek <jakub@redhat.com>
14626
14627 PR debug/47283
14628 * cfgexpand.c (expand_debug_expr): Instead of generating
14629 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14630 etc. handling.
14631
93e452ed
RG
146322011-01-20 Richard Guenther <rguenther@suse.de>
14633
14634 PR middle-end/47370
14635 * tree-inline.c (remap_gimple_op_r): Recurse manually for
14636 the pointer operand of MEM_REFs.
14637
28fc44f3
JJ
146382011-01-20 Jakub Jelinek <jakub@redhat.com>
14639
14640 PR tree-optimization/46130
14641 * ipa-split.c (consider_split): If return_bb contains non-virtual
14642 PHIs other than for retval or if split_function would not adjust it,
14643 refuse to split.
14644
ddd268f2
RG
146452011-01-20 Richard Guenther <rguenther@suse.de>
14646
14647 PR tree-optimization/47167
14648 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14649 Revert previous change, only avoid enumeral type changes.
14650
882020aa
MS
146512011-01-19 Mike Stump <mikestump@comcast.net>
14652
14653 * doc/tm.texi.in (BRANCH_COST): Englishify.
14654 * doc/tm.texi (BRANCH_COST): Likewise.
14655
7edb6247
DS
146562011-01-19 Dodji Seketeli <dodji@redhat.com>
14657
14658 PR c++/47291
14659 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
14660 (gen_scheduled_generic_parms_dies): New functions.
14661 (gen_struct_or_union_type_die): Schedule template parameters DIEs
14662 generation for the end of CU compilation.
14663 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 14664
23d5ed5d
AO
146652011-01-19 Alexandre Oliva <aoliva@redhat.com>
14666
14667 PR debug/46240
14668 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14669 debug bind stmt on merge edges.
14670
37d6a488
AO
146712011-01-19 Alexandre Oliva <aoliva@redhat.com>
14672
14673 PR debug/47079
14674 PR debug/46724
14675 * function.c (instantiate_expr): Instantiate incoming rtl of
14676 implicit arguments, and recurse on VALUE_EXPRs.
14677 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14678 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14679
689f2c82
AO
146802011-01-19 Alexandre Oliva <aoliva@redhat.com>
14681
14682 * c-parser.c (c_parser_for_statement): Initialize
14683 collection_expression.
14684
03029de4
JM
146852011-01-19 Joseph Myers <joseph@codesourcery.com>
14686
14687 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14688
3e03217e
JM
146892011-01-19 Joseph Myers <joseph@codesourcery.com>
14690
14691 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14692 (LINK_SHLIB_SPEC): Don't use %(link_path).
14693 (SUBTARGET_EXTRA_SPECS): Remove link_path.
14694
5bbe9b3f
JM
146952011-01-19 Joseph Myers <joseph@codesourcery.com>
14696
14697 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14698 (NO_SHARED_LIB_SUPPORT): Remove.
14699 (LINK_SHLIB_SPEC): Remove one conditional definition.
14700
368e0b39
JM
147012011-01-19 Joseph Myers <joseph@codesourcery.com>
14702
14703 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14704 %{call_shared}.
14705 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14706 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14707 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14708 %{call_shared} and conditionals on these options not being passed.
14709 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14710 %{call_shared}.
14711
ed7656f6
JJ
147122011-01-19 Jakub Jelinek <jakub@redhat.com>
14713
68457901
JJ
14714 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14715 simplify.
14716
ed7656f6
JJ
14717 * ipa-split.c: Spelling fixes.
14718
e0d1958f
RH
147192011-01-19 Richard Henderson <rth@redhat.com>
14720
14721 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14722 (*mulsi3): Likewise.
14723
27098b6b
RH
14724 * longlong.h [__mn10300__] (count_leading_zeros): New.
14725 [__mn10300__] (umul_ppmm, smul_ppmm): New.
14726 [__mn10300__] (add_ssaaaa, subddmmss): New.
14727 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14728 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14729
d6be7c36
UW
147302011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14731
14732 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14733
b1efde2a
RH
147342011-01-19 Richard Henderson <rth@redhat.com>
14735
44217823
RH
14736 * config/mn10300/mn10300.md (addsi3_flags): New.
14737 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14738 (subsi3_flags, subc_internal, subdi3): New.
14739 (subdi3_internal, *subdi3_degenerate): New.
14740 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14741
37a185d7
RH
14742 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14743 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14744 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
14745 * config/mn10300/mn10300-protos.h: Update.
14746 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14747 (return_ret): Likewise. Rename from return_internal_regs.
14748 (return_internal): Remove.
14749
040c5757
RH
14750 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14751 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14752 (mn10300_legitimate_constant_p): Likewise.
14753 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14754 (mn10300_frame_size): New.
14755 (mn10300_expand_prologue): Use it.
14756 (mn10300_expand_epilogue): Likewise.
14757 (mn10300_initial_offset): Likewise.
14758 * config/mn10300/mn10300-protos.h: Update.
14759 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14760 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14761 (prologue, epilogue, return_internal): Tidy output code.
14762 (mn10300_store_multiple_operation, return): Likewise.
14763 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14764 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14765 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14766 (load_pic, am33_load_pic): New.
14767 (mn10300_load_pic0, mn10300_load_pic1): New.
14768
bad41521
RH
14769 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14770 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14771 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14772 (cc_flags_for_mode, cc_flags_for_code): New.
14773 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14774 overflow flag is not valid. Validate that the flags we need
14775 for the comparison are valid.
14776 (mn10300_output_cmp): Remove.
14777 (mn10300_output_add): New.
14778 (mn10300_select_cc_mode): Use cc_flags_for_code.
14779 (mn10300_split_cbranch): New.
14780 (mn10300_match_ccmode): New.
14781 (mn10300_split_and_operand_count): New.
14782 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14783 to the function.
14784 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14785 (addsi3): ... here. Use mn10300_output_add.
14786 (*addsi3_flags): New.
14787 (*am33_subsi3, *mn10300_subsi3): Merge...
14788 (subsi3): ... here. Use attribute isa.
14789 (*subsi3_flags): New.
14790 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
14791 when possible.
14792 (*am33_andsi3, *mn10300_andsi3): Merge...
14793 (andsi3): ... here.
14794 (*andsi3_flags): New.
14795 (andsi3 splitters): New.
14796 (*am33_iorsi3, *mn10300_iorsi3): Merge...
14797 (iorsi3): ... here.
14798 (*iorsi3_flags): New.
14799 (*am33_xorsi3, *mn10300_xorsi3): Merge...
14800 (xorsi3): ... here.
14801 (*xorsi3_flags): New.
14802 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14803 (one_cmplsi2): ... here.
14804 (*one_cmplsi2_flags): New.
14805 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
14806 instead of "dax" in constraints. Use mn10300_split_cbranch.
14807 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
14808 use matching constraints to eliminate a self-comparison.
14809 (*integer_conditional_branch): Rename from integer_conditional_branch.
14810 Use int_mode_flags to match CC_REG.
14811 (*cbranchsi4_btst, *btstsi): New.
14812 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
14813 mn10300_split_cbranch.
14814 (*am33_cmpsf): Rename from am33_cmpsf.
14815 (*float_conditional_branch): Rename from float_conditional_branch.
14816 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14817 (zero_extendqisi2): ... here.
14818 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14819 (zero_extendhisi2): ... here.
14820 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14821 (extendqisi2): ... here.
14822 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14823 (extendhisi2): ... here.
14824 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14825 (ashlsi3): ... here.
14826 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14827 (lshrsi3): ... here.
14828 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14829 (ashrsi3): ... here.
14830 (consecutive add peephole): Remove.
14831 * config/mn10300/predicates.md (label_ref_operand): New.
14832 (int_mode_flags): New.
14833 (CCZN_comparison_operator): New.
14834
9efb4993
RH
14835 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14836 (throughput_42_latency_43): New reservation.
14837 (mulsidi3, umulsidi3): New expanders.
14838 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
14839 the MDR register to allocation; separately allocate the low and
14840 high parts of the DImode result.
14841 (umulsidi3_internal): Similarly.
14842 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14843 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
14844 (udivsi3, umodsi3): Remove.
14845 (udivmodsi4, divmodsi4): New expanders.
14846 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
14847 (*divmodsi4): Simiarly.
14848 (ext_internal): New.
14849
c25a21f5
RH
14850 * config/mn10300/constraints.md ("z"): New constraint.
14851 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14852 (FIXED_REGISTERS): Don't fix MDR.
14853 (CALL_USED_REGSITERS): Reformat nicely.
14854 (REG_ALLOC_ORDER): Add MDR.
14855 (enum regclass): Add MDR_REGS.
14856 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14857 (IRA_COVER_CLASSES): Add MDR_REGS.
14858 (REGNO_REG_CLASS): Handle MDR_REG.
14859 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14860 (mn10300_register_move_cost): Likewise.
14861 * config/mn10300/mn10300.md (MDR_REG): New.
14862 (*movsi_internal): Handle moves to/from MDR_REGS.
14863
36846b26
RH
14864 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14865 POST_MODIFY.
14866 (mn10300_secondary_reload): Tidy combination reload classes.
14867 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14868 addresses for AM33. Allow symbolic offsets for reg+imm.
14869 (mn10300_regno_in_class_p): New.
14870 (mn10300_legitimize_reload_address): New.
14871 * config/mn10300/mn10300.h (enum reg_class): Remove
14872 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14873 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
14874 SP_OR_GENERAL_REGS.
14875 (REG_CLASS_NAMES): Update to match.
14876 (REG_CLASS_CONTENTS): Likewise.
14877 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14878 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14879 (REGNO_IN_RANGE_P): Remove.
14880 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14881 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14882 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14883 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14884 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14885 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14886 (REGNO_GENERAL_P): New.
14887 (HAVE_POST_MODIFY_DISP): New.
14888 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14889 (LEGITIMIZE_RELOAD_ADDRESS): New.
14890 * config/mn10300/mn10300-protos.h: Update.
14891
8b119bb6
RH
14892 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14893 DATA_REGS for AM33 stack-pointer destination.
14894 (mn10300_preferred_output_reload_class): Likewise.
14895 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14896 into a form appropriate for ...
14897 (TARGET_SECONDARY_RELOAD): New.
14898 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14899 * config/mn10300/mn10300-protos.h: Update.
14900 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14901 reload_insi; use the "A" constraint for the scratch; handle AM33
14902 moves of sp to non-address registers.
14903
b1efde2a
RH
14904 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14905 (*movqi_internal): ... here.
14906 (*am33_movhi, *mn10300_movhi): Merge into...
14907 (*movhi_internal): ... here.
14908 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
14909 as the source/destination of moves from/to SP.
14910 (movsf): Only allow for AM33-2.
1c3ba85b 14911 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
14912 any integer constant constraint. Only allow for AM33-2. Tidy
14913 all of the alternative outputs.
14914 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14915 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
14916 for MN103.
14917 (udivsi3, umodsi3): New patterns for MN103 only.
14918
b899fd78
JR
149192011-01-19 Joern Rennecke <amylaar@spamcop.net>
14920
14921 * doc/tm.texi.in: Spell out that a lack of register class unions
14922 can lead to ICEs.
14923 * doc/tm.texi: Regenerate.
14924
afaaa67d
JJ
149252011-01-19 Jakub Jelinek <jakub@redhat.com>
14926
2e0642cd
JJ
14927 PR rtl-optimization/47337
14928 * dce.c (check_argument_store): New function.
14929 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
14930
afaaa67d
JJ
14931 PR tree-optimization/47290
14932 * tree-eh.c (infinite_empty_loop_p): New function.
14933 (cleanup_empty_eh): Use it.
14934
d2cd871f
SE
149352011-01-18 Steve Ellcey <sje@cup.hp.com>
14936
14937 PR target/46997
14938 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
14939 (a64_expand_widen_sum): Ditto.
14940 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
14941 (vec_extract_evenodd_help): Ditto.
14942 (vec_extract_evenv4hi): Ditto.
14943 (vec_extract_oddv4hi): Ditto.
14944 (vec_extract_evenv2si): Ditto.
14945 (vec_extract_oddv2si): Ditto.
14946 (vec_extract_evenv2sf): Ditto.
14947 (vec_extract_oddv2sf): Ditto.
14948 (vec_pack_trunc_v4hi: Ditto.
14949 (vec_pack_trunc_v2si): Ditto.
14950 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
14951 (vec_interleave_highv8qi): Ditto.
14952 (mix1_r): Ditto.
14953 (vec_extract_oddv8qi): Ditto.
14954 (vec_interleave_lowv4hi): Ditto.
14955 (vec_interleave_highv4hi): Ditto.
14956 (vec_interleave_lowv2si): Ditto.
14957 (vec_interleave_highv2si): Ditto.
14958
41a1208a
JDA
149592011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14960
14961 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
14962 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
14963 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
14964 (pa_c_mode_for_suffix): New.
14965 (TARGET_EXPAND_BUILTIN): Define.
14966 (TARGET_C_MODE_FOR_SUFFIX): Define.
14967 (pa_builtins): Define.
14968 (pa_init_builtins): Register __float128 type and init new support
14969 builtins.
14970 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
14971 * config/pa/quadlib.c (_U_Qfcopysign): New.
14972
1ecad98e
EB
149732011-01-18 Eric Botcazou <ebotcazou@adacore.com>
14974
14975 PR middle-end/46894
14976 * explow.c (allocate_dynamic_stack_space): Do not assume more than
14977 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
14978 are defined.
14979
d4f2460a
UW
149802011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14981
14982 PR tree-optimization/47179
14983 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
14984 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
14985
4994da65
RG
149862011-01-18 Richard Guenther <rguenther@suse.de>
14987
14988 PR rtl-optimization/47216
14989 * emit-rtl.c: Include tree-flow.h.
14990 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
14991 of replicating it with different semantics.
14992 * Makefile.in (emit-rtl.o): Adjust.
14993
1eb458d1
RR
149942011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14995
38be4072 14996 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 14997 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 14998
e7ef91dc
JJ
149992011-01-18 Jakub Jelinek <jakub@redhat.com>
15000
15001 PR rtl-optimization/47299
15002 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 15003 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
15004 * expmed.c (expand_widening_mult): Don't try to optimize constant
15005 multiplication if op0 has VOIDmode. Convert op1 constant to mode
15006 before using it.
15007
535b7874
RW
150082011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15009
15010 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
15011 spacing after 'e.g.', typos, comma, hyphenation.
15012
27bf36f3
RH
150132011-01-17 Richard Henderson <rth@redhat.com>
15014
8a5b5449
RH
15015 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15016 (rx_restricted_mem_operand): New.
15017 (rx_shift_operand): Use register_operand.
15018 (rx_source_operand, rx_compare_operand): Likewise.
15019 * config/rx/rx.md (addsi3_flags): New expander.
15020 (adddi3): Rewrite as expander.
15021 (adc_internal, *adc_flags, adddi3_internal): New patterns.
15022 (subsi3_flags): New expander.
15023 (subdi3): Rewrite as expander.
15024 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15025
784f69be
RH
15026 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15027 (rx_init_builtins): Remove sat builtin.
15028 (rx_expand_builtin): Likewise.
15029 * config/rx/rx.md (ssaddsi3): New.
15030 (*sat): Rename from sat. Represent the CC_REG input.
15031
f033541c
RH
15032 * config/rx/predicates.md (rshift_operator): New.
15033 * config/rx/rx.c (rx_expand_insv): Remove.
15034 * config/rx/rx-protos.h: Update.
15035 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
15036 operand to the canonical position.
15037 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15038 (*bitclr, *bitclr_in_memory): Similarly.
15039 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15040 (insv): Retain the zero_extract in the expansion.
15041
34fee389
RH
15042 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15043 (bswaphi2, bitinvert, revw): Likewise.
15044
265c835f
RH
15045 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15046 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15047 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15048 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15049 (bitset, bitset_in_memory): Likewise.
15050 (bitinvert, bitinvert_in_memory): Likewise.
15051 (bitclr, bitclr_in_memory): Likewise.
15052 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15053 (rx_strend, rx_cmpstrn): Likewise.
15054 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
15055 (bitop peep2 patterns): Remove.
15056
b4d83be3
RH
15057 * config/rx/rx.c (rx_match_ccmode): New.
15058 * config/rx/rx-protos.h: Update.
15059 * config/rx/rx.md (abssi2): Clobber, don't set flags.
15060 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15061 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15062 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15063 (fix_truncsfsi2, floatsisf2): Likewise.
15064 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15065 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15066 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15067 (*subsi3_flags, *xorsi3_flags): New.
15068
d0acb939
RH
15069 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15070
c06fc3d9
RH
15071 * config/rx/rx.c (rx_print_operand): Remove workaround for
15072 unsplit comparison operations.
15073
2882702b
RH
15074 * config/rx/rx.md (movsicc): Split after reload.
15075 (*movsicc): Merge *movsieq and *movsine via match_operator.
15076 (*stcc): New pattern.
15077
6f7310f2
RH
15078 * config/rx/rx.c (rx_float_compare_mode): Remove.
15079 * config/rx/rx.h (rx_float_compare_mode): Remove.
15080 * config/rx/rx.md (cstoresi4): Split after reload.
15081 (*sccc): New pattern.
15082
e963cb1a
RH
15083 * config/rx/predicates.md (label_ref_operand): New.
15084 (rx_z_comparison_operator): New.
15085 (rx_zs_comparison_operator): New.
15086 (rx_fp_comparison_operator): New.
15087 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15088 Validate that the flags are set properly for the comparison.
15089 (rx_gen_cond_branch_template): Remove.
15090 (rx_cc_modes_compatible): Remove.
15091 (mode_from_flags): New.
15092 (flags_from_code): Rename from flags_needed_for_conditional.
15093 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15094 (rx_select_cc_mode): Likewise.
15095 (rx_split_fp_compare): New.
15096 (rx_split_cbranch): New.
15097 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15098 (*cbranchsi4): Use match_operator and rx_split_cbranch.
15099 (*cbranchsf4): Similarly.
15100 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
15101 match_operator and rx_split_cbranch.
15102 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15103 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
15104 (*cmpsi): Rename from cmpsi.
15105 (*tstsi): Rename from tstsi.
15106 (*cmpsf): Rename from cmpsf; use CC_Fmode.
15107 (*conditional_branch): Rename from conditional_branch.
15108 (*reveresed_conditional_branch): Remove.
15109 (b<code>): Remove expander.
15110 * config/rx/rx-protos.h: Update.
15111
af530bb4
RH
15112 * config/rx/rx.c (rx_compare_redundant): Remove.
15113 * config/rx/rx.md (cmpsi): Don't use it.
15114 * config/rx/rx-protos.h: Update.
15115
27bf36f3
RH
15116 * config/rx/rx-modes.def (CC_F): New mode.
15117 * config/rx/rx.c (rx_select_cc_mode): New.
15118 * config/rx/rx.h (SELECT_CC_MODE): Use it.
15119 * config/rx/rx-protos.h: Update.
15120
d7fde127
RH
151212011-01-17 Richard Henderson <rth@redhat.com>
15122
15123 * except.c (dump_eh_tree): Fix stray ; after for statement.
15124
6ff38230
RG
151252011-01-17 Richard Guenther <rguenther@suse.de>
15126
15127 PR tree-optimization/47313
15128 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15129 handling before copying the body. Properly deal with
15130 by-reference result in SSA form.
15131
114ce554
ILT
151322011-01-17 Ian Lance Taylor <iant@google.com>
15133
bf5cd92b 15134 PR target/47219
114ce554
ILT
15135 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15136 (struct_value_alias_set): Don't define.
15137 (sparc_option_override): Don't set sparc_sr_alias_set and
15138 struct_value_alias_set.
15139 (save_or_restore_regs): Use gen_frame_mem rather than calling
15140 set_mem_alias_set.
15141 (sparc_struct_value_rtx): Likewise.
15142
98c6d93c
L
151432011-01-17 H.J. Lu <hongjiu.lu@intel.com>
15144
15145 PR target/47318
7a81008b 15146 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
15147 (_mm_maskstore_pd): Likewise.
15148 (_mm_maskload_ps): Likewise.
15149 (_mm_maskstore_ps): Likewise.
15150 (_mm256_maskload_pd): Change mask to __m256i.
15151 (_mm256_maskstore_pd): Likewise.
15152 (_mm256_maskload_ps): Likewise.
15153 (_mm256_maskstore_ps): Likewise.
15154
15155 * config/i386/i386-builtin-types.def: Updated.
15156 (ix86_expand_special_args_builtin): Likewise.
15157
15158 * config/i386/i386.c (bdesc_special_args): Update
15159 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15160 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15161 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15162 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15163
15164 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15165 Use <avxpermvecmode> on mask register.
15166 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15167
b9361af2 151682011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
15169 Michael Haubenwallner <michael.haubenwallner@salomon.at>
15170 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
15171
15172 PR target/46655
15173 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15174 if <= USHRT_MAX in 32-bit mode.
15175
b7ae9eb5
RW
151762011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15177
15178 * doc/install.texi (Configuration, Specific): Wrap long
15179 lines in examples. Allow line wrapping in long options
15180 and URLs where beneficial for PDF output.
15181
4377fad9
RS
151822011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
15183
15184 * config/mips/mips.c (mips_classify_symbol): Don't return
15185 SYMBOL_PC_RELATIVE for nonlocal labels.
15186
55959ffa 151872011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 15188
55959ffa
EB
15189 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15190
151912011-01-15 Jan Hubicka <jh@suse.cz>
15192
15193 PR tree-optimization/47276
be46831f
JH
15194 * ipa.c (function_and_variable_visibility): Do not try to mark alias
15195 declarations as needed.
15196
05842ff5
MJ
151972011-01-15 Martin Jambor <mjambor@suse.cz>
15198
15199 * common.opt (fdevirtualize): New flag.
15200 * doc/invoke.texi (Option Summary): Document it.
15201 * opts.c (default_options_table): Add devirtualize flag.
15202 * ipa-prop.c (detect_type_change): Return immediately if
15203 devirtualize flag is not set.
15204 (detect_type_change_ssa): Likewise.
15205 (compute_known_type_jump_func): Likewise.
15206 (ipa_analyze_virtual_call_uses): Likewise.
15207
f65cf2b7
MJ
152082011-01-14 Martin Jambor <mjambor@suse.cz>
15209
15210 PR tree-optimization/45934
15211 PR tree-optimization/46302
15212 * ipa-prop.c (type_change_info): New type.
15213 (stmt_may_be_vtbl_ptr_store): New function.
15214 (check_stmt_for_type_change): Likewise.
15215 (detect_type_change): Likewise.
15216 (detect_type_change_ssa): Likewise.
15217 (compute_complex_assign_jump_func): Check for dynamic type change.
15218 (compute_complex_ancestor_jump_func): Likewise.
15219 (compute_known_type_jump_func): Likewise.
15220 (compute_scalar_jump_functions): Likewise.
15221 (ipa_analyze_virtual_call_uses): Likewise.
15222 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15223
eb5bb0fd
JM
152242011-01-14 Joseph Myers <joseph@codesourcery.com>
15225
15226 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15227 * config/i386/i386.opt (msse5): New Alias.
15228
f2060fbe
JM
152292011-01-14 Joseph Myers <joseph@codesourcery.com>
15230
15231 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15232 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15233 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15234 * config/sparc/sparc.h (CC1_SPEC): Likewise.
15235
3a7b4385
JM
152362011-01-14 Joseph Myers <joseph@codesourcery.com>
15237
15238 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15239 -mcpu options.
15240 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15241 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15242 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15243 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15244 Likewise.
15245 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15246
a7b778f8
JM
152472011-01-14 Joseph Myers <joseph@codesourcery.com>
15248
38be4072 15249 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 15250
a7edae0a
MS
152512011-01-14 Mike Stump <mikestump@comcast.net>
15252
15253 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15254 * config/fr30/fr30.md: Likweise
15255 (movsi_push): Likewise.
15256 (movsi_pop): Likewise.
15257 (enter_func): Likewise.
15258 * config/moxie/moxie.md (movsi_push): Likewise.
15259 (movsi_pop): Likewise.
15260
cbabf03f
JM
152612011-01-14 Joseph Myers <joseph@codesourcery.com>
15262
15263 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15264 %{no_archive} %{exact_version}.
15265 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15266 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15267 %{no_archive} %{exact_version}.
15268 * config/mips/openbsd.h (LINK_SPEC): Likewise.
15269 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15270 * config/mips/vxworks.h: Likewise.
15271
438da41a
JM
152722011-01-14 Joseph Myers <joseph@codesourcery.com>
15273
38be4072 15274 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 15275
da290a42
JM
152762011-01-14 Joseph Myers <joseph@codesourcery.com>
15277
15278 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15279 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15280
8989d00e
JM
152812011-01-14 Joseph Myers <joseph@codesourcery.com>
15282
15283 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15284 -nodefaultlib.
15285
a3010a69
JM
152862011-01-14 Joseph Myers <joseph@codesourcery.com>
15287
15288 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15289 for mcpu not cpu.
15290 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15291 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15292 not cpu.
15293 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15294 Don't handle -shlib.
15295
e7f2f537
JM
152962011-01-14 Joseph Myers <joseph@codesourcery.com>
15297
15298 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15299 (CC1_SPEC): Don't handle -profile.
15300
34830bfd
JM
153012011-01-14 Joseph Myers <joseph@codesourcery.com>
15302
15303 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15304 * config/mips/mips.h (CC1_SPEC): Likewise.
15305
b2d36e74
JM
153062011-01-14 Joseph Myers <joseph@codesourcery.com>
15307
15308 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15309 * config/mips/mips.h (CC1_SPEC): Likewise.
15310
dabadc52
JM
153112011-01-14 Joseph Myers <joseph@codesourcery.com>
15312
15313 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15314 * config/m32r/linux.h (LINK_SPEC): Likewise.
15315 * config/mips/linux.h (LINK_SPEC): Likewise.
15316 * config/mips/linux64.h (LINK_SPEC): Likewise.
15317 * config/sparc/linux.h (LINK_SPEC): Likewise.
15318 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15319 LINK_SPEC): Likewise.
15320 * config/xtensa/linux.h (LINK_SPEC): Likewise.
15321
43ee6785
JM
153222011-01-14 Joseph Myers <joseph@codesourcery.com>
15323
15324 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15325 %{version:-v}.
15326 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15327
45e79dfd
JM
153282011-01-14 Joseph Myers <joseph@codesourcery.com>
15329
15330 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15331 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15332
37e9e71d
JM
153332011-01-14 Joseph Myers <joseph@codesourcery.com>
15334
15335 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15336
bb127cd8
RO
153372011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15338
15339 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15340 supports -Bstatic/-Bdynamic.
15341 * configure: Regenerate.
15342
89a012ea 153432011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 15344 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
15345
15346 PR target/46037
15347 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15348 when checking debug_info_level. Test write_symbols instead of
15349 debug_hooks->var_location when setting flag_var_tracking_uninit.
15350
7352c013
RG
153512011-01-14 Richard Guenther <rguenther@suse.de>
15352
15353 PR tree-optimization/47179
15354 * target.def (ref_may_alias_errno): New target hook.
15355 * targhooks.h (default_ref_may_alias_errno): Declare.
15356 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15357 (default_ref_may_alias_errno): New function.
15358 * target.h (struct ao_ref_s): Declare.
15359 * tree-ssa-alias.c: Include target.h.
15360 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15361 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15362 (targhooks.o): Likewise.
15363 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15364 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15365
9a6c9288
RG
153662011-01-14 Richard Guenther <rguenther@suse.de>
15367
15368 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
15369
0fdb0d27
RG
153702011-01-14 Richard Guenther <rguenther@suse.de>
15371
15372 PR tree-optimization/47280
15373 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15374 return CFG changes.
15375 (tree_ssa_forward_propagate_single_use_vars): Deal with
15376 CFG changes from associate_plusminus.
15377
8f66db3b
RG
153782011-01-14 Richard Guenther <rguenther@suse.de>
15379
15380 PR middle-end/47281
15381 Revert
15382 2011-01-11 Richard Guenther <rguenther@suse.de>
15383
280d9630
EB
15384 PR tree-optimization/46076
15385 * tree-ssa.c (useless_type_conversion_p): Conversions from
15386 unprototyped to empty argument list function types are useless.
8f66db3b 15387
6c0c92e6
RG
153882011-01-14 Richard Guenther <rguenther@suse.de>
15389
15390 PR tree-optimization/47286
280d9630 15391 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 15392
db09f943
MJ
153932011-01-14 Martin Jambor <mjambor@suse.cz>
15394
15395 PR middle-end/46823
15396 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15397
dde8a3a4
AS
153982011-01-13 Anatoly Sokolov <aesok@post.ru>
15399
15400 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15401 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15402 * config/xtensa/xtensa.c (xtensa_libcall_value,
15403 xtensa_function_value_regno_p): New functions.
15404 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15405
a2b63a20
KT
154062011-01-13 Kai Tietz <kai.tietz@onevision.com>
15407
15408 PR c++/47213
15409 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15410 PE specific hook.
15411 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15412 New function prototype.
15413 * config/i386/winnt.c (i386_pe_assemble_visibility):
15414 Warn only if attribute was specified by user.
15415
b41f0b34
MM
154162011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
15417
15418 PR target/47251
15419 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15420 floating point.
15421 (floatunsdidf2_fcfidu): Ditto.
15422
3f3c098d
AK
154232011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15424
15425 * config/s390/s390.c (print_operand_address): Replace 'error' with
15426 'output_operand_lossage'.
15427 (print_operand): Likewise.
15428
29fa95ed
JL
154292011-01-13 Jeff Law <law@redhat.com>
15430
280d9630 15431 PR rtl-optimization/39077
29fa95ed
JL
15432 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15433 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15434 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15435 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15436 * gcse.c (prune_insertions_deletions): New function.
15437 (compute_pre_data): Use it.
15438
71d12276
DS
154392011-01-13 Dodji Seketeli <dodji@redhat.com>
15440
15441 PR debug/PR46973
15442 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15443 static function.
61052244 15444 (prune_unused_types_mark): Use it.
71d12276 15445
9b0f04e7
AB
154462011-01-13 Andrey Belevantsev <abel@ispras.ru>
15447
15448 PR rtl-optimization/45352
1c3ba85b 15449 * sel-sched.c: Update copyright years.
9b0f04e7 15450 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 15451 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 15452
d6a3e264
RH
154532011-01-12 Richard Henderson <rth@redhat.com>
15454
a49b692a
RH
15455 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15456 (TARGET_MD_ASM_CLOBBERS): New.
15457
126b1483
RH
15458 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15459 (TARGET_DELEGITIMIZE_ADDRESS): New.
15460
f3d9d2e0
RH
15461 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15462 (clzsi2, *bsch): New patterns.
15463
d84760c9
RH
15464 * config/mn10300/mn10300.md (INT): New mode iterator.
15465 (*mov<INT>_clr): New pattern, and peep2 to generate it.
15466
ec815d65
RH
15467 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15468 flag_split_wide_types.
15469
d6a3e264
RH
15470 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15471 (mn10300_trampoline_init): Rewrite without a template, an immediate
15472 load and a direct branch.
15473 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15474
0f8ab434
AS
154752011-01-12 Anatoly Sokolov <aesok@post.ru>
15476
15477 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15478 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15479 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15480 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15481
d8a24b65
KT
154822011-01-12 Kai Tietz <kai.tietz@onevision.com>
15483
15484 PR debug/47209
15485 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15486 of type.
15487
56e22cab
JH
154882011-01-12 Jan Hubicka <jh@suse.cz>
15489
15490 PR driver/47244
15491 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15492 (PLUGIN_COND_CLOSE): New macro.
15493 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15494
4b18b3c2
RG
154952011-01-12 Richard Guenther <rguenther@suse.de>
15496
15497 PR lto/47259
15498 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15499 register variables in a MEM_REF.
15500
8e38461c
JM
155012011-01-12 Joseph Myers <joseph@codesourcery.com>
15502
15503 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15504 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15505 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15506 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15507 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15508 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15509 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15510 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15511 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15512 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15513 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15514 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15515 * config/gnu-user.h: New. Copied from linux.h.
15516 (LINUX_TARGET_STARTFILE_SPEC): Rename to
15517 GNU_USER_TARGET_STARTFILE_SPEC.
15518 (LINUX_TARGET_ENDFILE_SPEC): Rename to
15519 GNU_USER_TARGET_ENDFILE_SPEC.
15520 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15521 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15522 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15523 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15524 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15525 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15526 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15527 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15528 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15529 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15530 * config/arm/linux-eabi.h (CC1_SPEC): Use
15531 GNU_USER_TARGET_CC1_SPEC.
15532 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15533 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15534 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15535 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15536 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15537 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15538 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15539 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15540
a570fc16
RG
155412011-01-12 Richard Guenther <rguenther@suse.de>
15542
15543 PR other/46946
15544 * doc/invoke.texi (ffast-math): Document it is turned on
15545 with -Ofast.
15546
b0223c3e
JH
155472011-01-12 Jan Hubicka <jh@suse.cz>
15548
15549 PR tree-optimization/47233
ca1e00b3
EB
15550 * opts.c (common_handle_option): Disable ipa-reference with profile
15551 feedback.
b0223c3e 15552
1c3ba85b 155532011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
15554
15555 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
15556 error message.
15557
d853ee42
NP
155582011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
15559
15560 * c-parser.c (c_lex_one_token): Updated and reindented some
15561 comments. No changes in code.
15562
4053a5a0
ILT
155632011-01-11 Ian Lance Taylor <iant@google.com>
15564
15565 * godump.c (go_output_var): Don't output the variable if there is
15566 already a type with the same name.
15567
fa3e04d2
ILT
155682011-01-11 Ian Lance Taylor <iant@google.com>
15569
15570 * godump.c (go_format_type): Don't generate float80.
15571
885fe07c
RH
155722011-01-11 Richard Henderson <rth@redhat.com>
15573
72d6e3c5
RH
15574 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15575 declaration. Rewrite for both speed and size.
15576 (mn10300_address_cost_1): Remove.
15577 (mn10300_register_move_cost): New.
15578 (mn10300_memory_move_cost): New.
15579 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
15580 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
15581 extensions, shifts, BSWAP, CLZ.
15582 (mn10300_wide_const_load_uses_clr): Remove.
15583 (TARGET_REGISTER_MOVE_COST): New.
15584 (TARGET_MEMORY_MOVE_COST): New.
15585 * config/mn10300/mn10300-protos.h: Update.
15586 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15587
df37c023
RH
15588 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15589 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15590 * config/mn10300/mn10300-protos.h: Update.
15591 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15592 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15593 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15594 (*test_int_bitfield, *test_byte_bitfield): Remove.
15595 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 15596 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 15597
85a337b5
RH
15598 * config/mn10300/constraints.md ("c"): Rename from "A".
15599 ("A", "D"): New constraint letters.
15600 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15601 (fmssf4, fnmasf4, fnmssf4): Likewise.
15602
a5c727e3
RH
15603 * config/mn10300/mn10300.md (isa): New attribute.
15604 (enabled): New attribute.
15605
0d9e23f4
RH
15606 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15607 (abssf2, negsf2): Define only for hardware fp.
15608 (sqrtsf2): Reformat.
15609 (addsf3, subsf3, mulsf3): Merge expander and insn.
15610
c157b3f0
RH
15611 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15612 (DEBUGGER_AUTO_OFFSET): Remove.
15613 (DEBUGGER_ARG_OFFSET): Remove.
15614
cc909bba
RH
15615 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15616 Emit register stores with the same offsets as the hardware.
15617 (mn10300_store_multiple_operation): Don't check that the register
15618 save offsets are monotonic.
15619 * config/mn10300/mn10300-protos.h: Update.
15620
e3b5c2f3
RH
15621 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15622
885fe07c
RH
15623 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15624 in terms of the value on the stack, not the MDR register.
15625
6e701822
JH
156262011-01-11 Jan Hubicka <jh@suse.cz>
15627
15628 PR lto/45721
15629 PR lto/45375
15630 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15631 (symbol_alias_set_destroy, symbol_alias_set_contains,
15632 propagate_aliases_backward): Declare.
15633 * lto-streamer-out.c (struct sets): New sturcture.
15634 (trivally_defined_alias): New function.
15635 (output_alias_pair_p): Rewrite.
15636 (output_unreferenced_globals): Fix output of alias pairs.
15637 (produce_symtab): Likewise.
15638 * ipa.c (function_and_variable_visibility): Set weak alias destination
15639 as needed in lto.
15640 * varasm.c (symbol_alias_set_t): Remove.
15641 (symbol_alias_set_destroy): Export.
15642 (propagate_aliases_forward, propagate_aliases_backward): New functions
15643 based on ...
15644 (compute_visible_aliases): ... this one; remove.
15645 (trivially_visible_alias): New
15646 (trivially_defined_alias): New.
15647 (remove_unreachable_alias_pairs): Rewrite.
15648 (finish_aliases_1): Reorganize code checking if alias is defined.
15649 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15650 in LTO mode.
15651
1b248907
RG
156522011-01-11 Richard Guenther <rguenther@suse.de>
15653
15654 PR tree-optimization/46076
15655 * tree-ssa.c (useless_type_conversion_p): Conversions from
15656 unprototyped to empty argument list function types are useless.
15657
b1923f0a
RG
156582011-01-11 Richard Guenther <rguenther@suse.de>
15659
15660 PR middle-end/45235
15661 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15662 volatile MEMs as MEM_READONLY_P.
15663
e98965af
RG
156642011-01-11 Richard Guenther <rguenther@suse.de>
15665
15666 PR tree-optimization/47239
15667 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15668
9f9ca914
JL
156692011-01-11 Jeff Law <law@redhat.com>
15670
1ee3ea05 15671 PR tree-optimization/47086
9f9ca914
JL
15672 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15673 IVs from statements that might throw.
15674
345fdcb7
JH
156752011-01-10 Jan Hubicka <jh@suse.cz>
15676
15677 PR lto/45375
15678 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15679
c459c97b
JH
156802011-01-10 Jan Hubicka <jh@suse.cz>
15681
15682 PR lto/45375
15683 * profile.c (read_profile_edge_counts): Ignore profile inconistency
15684 when correcting profile.
15685
06c9eb51
JH
156862011-01-10 Jan Hubicka <jh@suse.cz>
15687
15688 PR lto/46083
15689 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15690 DECL_FINI_PRIORITY.
15691 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15692 Restore DECL_FINI_PRIORITY.
15693
ae9fd815
RW
156942011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15695
15696 * doc/gimple.texi: Fix quoting of multi-word return values in
15697 @deftypefn statements. Ensure presence of return value. Wrap
15698 overlong @deftypefn lines.
15699 (is_gimple_operand, is_gimple_min_invariant_address): Remove
15700 descriptions of removed functions.
15701 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15702 of multi-word return value in @deftypefn statement.
15703
0ecb4a7c
RW
157042011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15705
15706 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15707 (Conditional Expressions, Logical Operators)
15708 (Statement and operand traversals): Do not indent smallexample
15709 code. Fix duplicate function argument in example.
15710
2e5e346d
JL
157112011-01-10 Jeff Law <law@redhat.com>
15712
1ee3ea05 15713 PR tree-optimization/47141
2e5e346d
JL
15714 * ipa-split.c (split_function): Handle case where we are
15715 returning a value and the return block has a virtual operand phi.
15716
cf9712cc
JH
157172011-01-10 Jan Hubicka <jh@suse.cz>
15718
1c3ba85b 15719 PR tree-optimization/47234
cf9712cc
JH
15720 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15721 (pass_feedback_split_functions): Declare.
15722 * passes.c (init_optimization_passes): Add ipa-split as subpass of
15723 tree-profile.
15724 * ipa-split.c (gate_split_functions): Update comments; disable
15725 split-functions for profile_arc_flag and branch_probabilities.
15726 (gate_feedback_split_functions): New function.
15727 (execute_feedback_split_functions): New function.
15728 (pass_feedback_split_functions): New global var.
15729
94cd932c
L
157302011-01-10 H.J. Lu <hongjiu.lu@intel.com>
15731
15732 PR lto/46760
15733 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15734 calling gimple_call_set_cannot_inline.
15735
fbbfcaf1
IS
157362011-01-10 Iain Sandoe <iains@gcc.gnu.org>
15737
15738 * config/darwin-sections.def: Remove unused section.
15739
d06865bf
DK
157402011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
15741
15742 PR c++/47218
15743 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15744
96bbfbac
NP
157452011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
15746
15747 PR objc/47232
15748 * c-parser.c (c_parser_declaration_or_fndef): Improved
15749 error message.
15750
1ba6516f
KT
157512011-01-09 Kai Tietz <kai.tietz@onevision.com>
15752
15753 * config/i386/winnt.c (i386_pe_start_function): Make sure
15754 to switch back to function's section.
15755
0c5d770e
IS
157562011-01-09 Iain Sandoe <iains@gcc.gnu.org>
15757
15758 PR gcc/46902
15759 PR testsuite/46912
15760 * plugin.c: Move include of dlfcn.h from here...
15761 * system.h: ... to here.
15762
157632011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
15764
15765 * doc/cpp.texi (C++ Named Operators): Fix markup for header
15766 file name.
15767 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15768 two extra empty pages in PDF output.
15769
046608a3
NP
157702011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
15771
15772 PR objc/47078
15773 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15774 for error recovery purposes behave as if it was not specified so
15775 that the default type is usd.
15776
8cb114b9
JH
157772011-01-07 Jan Hubicka <jh@suse.cz>
15778
15779 PR tree-optmization/46469
15780 * ipa.c (function_and_variable_visibility): Clear needed flags on
15781 nodes with external decls; handle weakrefs merging correctly.
15782
b294a75e
JM
157832011-01-07 Joseph Myers <joseph@codesourcery.com>
15784
15785 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15786 not false.
15787
96bdf9b4
JH
157882011-01-07 Jan Hubicka <jh@suse.cz>
15789
f60c2554 15790 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
15791 and no longer claim that gold is required for linker plugin.
15792 * configure: Regenerate.
15793 * gcc.c (PLUGIN_COND): New macro.
15794 (LINK_COMMAND_SPEC): Use it.
15795 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15796 * config.in (HAVE_LTO_PLUGIN): New.
15797 * configure.ac (--with-lto-plugin): New parameter; autodetect
15798 HAVE_LTO_PLUGIN.
15799
17afc0fe
JH
158002011-01-07 Jan Hubicka <jh@suse.cz>
15801
15802 PR tree-optimization/46367
15803 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15804 when we can update original.
15805 (cgraph_mark_inline_edge): Sanity check.
15806 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15807
d4c48c0f
UW
158082011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15809
15810 * config/spu/spu.h (ASM_COMMENT_START): Define.
15811
96f5b137
L
158122011-01-07 H.J. Lu <hongjiu.lu@intel.com>
15813
15814 PR driver/42445
15815 * gcc.c (%>S): New.
15816 (SWITCH_KEEP_FOR_GCC): Likewise.
15817 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15818 (do_spec_1): Handle "%>".
15819
15820 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15821
c6a8f6de
JJ
158222011-01-07 Jakub Jelinek <jakub@redhat.com>
15823
c21bbd7a
JJ
15824 PR target/47201
15825 * config/i386/i386.c (ix86_delegitimize_address): If
15826 simplify_gen_subreg fails, return orig_x.
15827
c6a8f6de
JJ
15828 PR bootstrap/47187
15829 * value-prof.c (gimple_stringop_fixed_value): Handle
15830 lhs of the call properly.
15831
fe95fbf9
JH
158322011-01-07 Jan Hubicka <jh@suse.cz>
15833
15834 PR lto/45375
15835 * lto-opt.c (lto_reissue_options): Set flag_shlib.
15836
14d11d40
IS
158372011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15838
72e961c8
EB
15839 * target.def (function_switched_text_sections): New hook.
15840 * doc/tm.texi: Regenerated.
15841 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15842 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
15843 (final_scan_insn): Call function_switched_text_sections when a
15844 mid-function section change occurs.
14d11d40 15845 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
15846 * config/darwin-protos.h (darwin_function_switched_text_sections):
15847 Likewise.
14d11d40 15848 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 15849 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15850
0b764288
IS
158512011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15852
15853 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
15854 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
15855 the secondary code fragment when outputting for DWARF == 2.
15856
2ac6bb04
AS
158572011-01-07 Anatoly Sokolov <aesok@post.ru>
15858
15859 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15860 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15861 Remove.
15862 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15863 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15864
9f82de11
EB
158652011-01-06 Eric Botcazou <ebotcazou@adacore.com>
15866
15867 PR debug/46704
280d9630
EB
15868 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15869 when it is not empty.
9f82de11
EB
15870
158712011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 15872
1ed72abf 15873 Bobcat Enablement
14b52538 15874 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 15875 (case ${target}): Add btver1.
14b52538 15876 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 15877 -march=native recognize btver1 processors.
14b52538 15878 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 15879 btver1 def_and_undef
14b52538 15880 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
15881 btver1 cost table.
15882 (m_BTVER1): New definition.
15883 (m_AMD_MULTIPLE): Includes m_BTVER1.
15884 (initial_ix86_tune_features): Add btver1 tune.
15885 (processor_target_table): Add btver1 entry.
15886 (static const char *const cpu_names): Add btver1 entry.
15887 (software_prefetching_beneficial_p): Add btver1.
15888 (ix86_option_override_internal): Add btver1 instruction sets.
15889 (ix86_issue_rate): Add btver1.
15890 (ix86_adjust_cost): Add btver1.
14b52538 15891 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
15892 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15893 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
15894 * config/i386/i386.md (define_attr "cpu"): Add btver1.
15895
e1a973d8
RO
158962011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15897
15898 PR target/43309
15899 * config/i386/i386.c (legitimize_tls_address)
15900 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15901 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15902 (tls_initial_exec_64_sun): New pattern.
15903
c73f67c5
GP
159042011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15905
15906 * doc/invoke.texi (Overall Options): Improve wording and markup
15907 of the description of -wrapper.
15908
bc4c6f9c
JM
159092011-01-06 Joseph Myers <joseph@codesourcery.com>
15910
15911 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15912 rdynamic, threads): New Driver options.
15913
adb75db0
RO
159142011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15915
15916 PR target/38118
15917 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15918 if coming from .tdata.
15919 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15920
402c1cb4
JH
159212011-01-06 Jan Hubicka <jh@suse.cz>
15922
15923 PR lto/47188
15924 * collect2.c (main): Do not enable LTOmode when plugin is active.
15925
a4da6485
RO
159262011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15927
15928 PR other/45915
15929 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
15930 --version output if supported.
15931 * configure: Regenerate.
15932
028dbdf4
JM
159332011-01-06 Joseph Myers <joseph@codesourcery.com>
15934
15935 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
15936 Driver options.
15937
dfe776dd
JJ
159382011-01-06 Jakub Jelinek <jakub@redhat.com>
15939
15940 PR c/47150
15941 * c-convert.c (convert): When converting a complex expression
15942 other than COMPLEX_EXPR to a different complex type, ensure
15943 c_save_expr is called instead of save_expr, unless in_late_binary_op.
15944 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
15945 when converting COMPLEX_TYPE.
15946
210dedfe
IR
159472011-01-06 Ira Rosen <irar@il.ibm.com>
15948
15949 PR tree-optimization/47139
15950 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
15951 only the last reduction value is used outside the loop. Update
15952 documentation.
15953
cd33a412
JM
159542011-01-05 Joseph Myers <joseph@codesourcery.com>
15955
15956 * config/rtems.opt: New.
15957 * config.gcc (*-*-rtems*): Use rtems.opt.
15958
819edd94
CF
159592011-01-05 Changpeng Fang <changpeng.fang@amd.com>
15960
15961 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
15962 processors do not support 3DNow instructions.
15963
dc242c4a
UW
159642011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15965
15966 * config/spu/spu.c (spu_option_override): Set parameter
15967 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
15968
be286227
JH
159692011-01-05 Jan Hubicka <jh@suse.cz>
15970
15971 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
15972 at the command line.
15973
644e637f
MJ
159742011-01-05 Martin Jambor <mjambor@suse.cz>
15975
15976 PR lto/47162
15977 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
15978 deltas on streamed outgoing edges.
15979 (output_node_opt_summary): Output info for outgoing edges only when
15980 the node is in new parameter set.
15981 (output_cgraph_opt_summary): New parameter set, passed to the two
15982 aforementioned functions. Update its forward declaration and its
15983 callee too.
15984
7bd11157
TT
159852011-01-05 Tom Tromey <tromey@redhat.com>
15986
15987 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
15988 operator to c_finish_omp_atomic.
15989 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
15990 (build_unary_op): Update.
15991 (build_modify_expr): Update.
15992 (build_asm_expr): Update.
15993
f626b979
UW
159942011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15995
15996 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
15997 newly inserted insns.
15998 (pad_bb): Likewise.
15999 (spu_emit_branch_hint): Likewise.
16000 (insert_hbrp_for_ilb_runout): Likewise.
16001 (spu_machine_dependent_reorg): Call df_finish_pass after
16002 schedule_insns returns.
16003
4c825c02
UW
160042011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16005
16006 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16007
5e9fba51
EB
160082011-01-05 Eric Botcazou <ebotcazou@adacore.com>
16009
16010 PR tree-optimization/47005
16011 * tree-sra.c (struct access): Add 'non_addressable' bit.
16012 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16013 (decide_one_param_reduction): Return 0 if the parameter is passed by
16014 reference and one of the accesses in the group is non_addressable.
16015
3ebb5ca6
EB
160162011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16017
16018 PR tree-optimization/47056
16019 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16020 (mark_load): Likewise. Handle FUNCTION_DECL specially.
16021 (mark_store): Likewise. Pass STMT to ipa_record_reference.
16022
d5d4d14e
EB
160232011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16024
16025 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16026 initializer. Skip view conversions from aggregate types.
16027
d996ef70
KT
160282011-01-04 Kai Tietz <kai.tietz@onevision.com>
16029
16030 PR bootstrap/47055
16031 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16032
509d65dd 160332011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
16034
16035 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16036 obvious typo.
16037
55c623b5
UW
160382011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16039
16040 * function.c (thread_prologue_and_epilogue_insns): Do not crash
16041 on empty epilogue sequences.
16042
b98d6b35
JM
160432011-01-04 Joseph Myers <joseph@codesourcery.com>
16044
16045 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16046 non-static): New Driver options.
16047
a0d43bac
JZ
160482011-01-04 Jie Zhang <jie@codesourcery.com>
16049
16050 PR driver/47137
16051 * gcc.c (default_compilers[]): Set combinable field to 0
16052 for all assembly languages.
16053
2b18eb32
MX
160542011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
16055
16056 * config/mips/loongson3a.md: New file.
16057 * config/mips/mips.md: Include loongson3a.md.
16058 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16059 TUNE_LOONGSON_3A.
16060
42a48c4f
EB
160612011-01-03 Eric Botcazou <ebotcazou@adacore.com>
16062
16063 PR middle-end/47017
16064 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16065 instead of convert_memory_address_addr_space on the base expression.
16066
9c1732c4
UW
160672011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16068
16069 * config/spu/spu.c (spu_option_override): Update error text
16070 for bad -march= / -mtune= values.
16071
aa474365
UW
160722011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16073
16074 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16075 if branch-hint optimization will be performed.
16076
9766135b
JJ
160772011-01-03 Jakub Jelinek <jakub@redhat.com>
16078
371556ee
JJ
16079 PR tree-optimization/47148
16080 * ipa-split.c (split_function): Convert arguments to
16081 DECL_ARG_TYPE if possible.
16082
1ac12fa2
JJ
16083 PR tree-optimization/47155
16084 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16085 when computing uns.
16086
9766135b
JJ
16087 PR rtl-optimization/47157
16088 * combine.c (try_combine): If undobuf.other_insn becomes
16089 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16090 and set *new_direct_jump_p too.
16091
f4a2e571
SP
160922011-01-03 Sebastian Pop <sebastian.pop@amd.com>
16093
16094 PR tree-optimization/47021
16095 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16096
9f8e43c0
JJ
160972011-01-03 Jakub Jelinek <jakub@redhat.com>
16098
16099 * gcc.c (process_command): Update copyright notice dates.
16100 * gcov.c (print_version): Likewise.
16101 * gcov-dump.c (print_version): Likewise.
16102 * mips-tfile.c (main): Likewise.
16103 * mips-tdump.c (main): Likewise.
16104
1a2e38f3
MJ
161052011-01-03 Martin Jambor <mjambor@suse.cz>
16106
16107 PR tree-optimization/46801
16108 * tree-sra.c (type_internals_preclude_sra_p): Check whether
16109 aggregate fields start at byte boundary instead of the bit-field flag.
16110
56b721c5
L
161112011-01-03 H.J. Lu <hongjiu.lu@intel.com>
16112
16113 PR driver/47137
16114 * gcc.c (main): Revert revision 168407.
16115
839d549b
MJ
161162011-01-03 Martin Jambor <mjambor@suse.cz>
16117
16118 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16119
4ce99a20 161202011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
16121
16122 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16123 vector optab to expand vector/scalar shift, update gimple to vector.
16124
76df0ae6
MJ
161252011-01-03 Martin Jambor <mjambor@suse.cz>
16126
16127 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16128 a thunk.
16129
ce47fda3
MJ
161302011-01-03 Martin Jambor <mjambor@suse.cz>
16131
16132 PR tree-optimization/46984
16133 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16134 HOST_WIDE_INT.
16135 (cgraph_create_indirect_edge): Fixed line length.
16136 (cgraph_indirect_call_info): Declare.
16137 (cgraph_make_edge_direct) Update declaration.
16138 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16139 (cgraph_create_indirect_edge): Use it.
16140 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
16141 callees.
16142 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16143 the new thunk_delta representation.
16144 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16145 HOST_WIDE_INT.
16146 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16147 (ipa_read_indirect_edge_info): Likewise.
16148 * lto-cgraph.c (output_edge_opt_summary): New function.
16149 (output_node_opt_summary): Call it on all outgoing edges.
16150 (input_edge_opt_summary): New function.
16151 (input_node_opt_summary): Call it on all outgoing edges.
16152
1e67fa1f
L
161532011-01-02 H.J. Lu <hongjiu.lu@intel.com>
16154
16155 PR driver/47137
16156 * gcc.c (main): Don't check have_o when settting combine_inputs.
16157
6656b2ac
EB
161582011-01-02 Eric Botcazou <ebotcazou@adacore.com>
16159
16160 * regrename.c: Add general comment describing the pass.
16161 (struct du_head): Remove 'length' field.
16162 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16163 (regrename_optimize): Do not sort chains. Rework comments, add others.
16164 Force renaming to the preferred class (if any) in the first pass and do
16165 not consider registers that belong to it in the second pass.
16166 (create_new_chain): Do not set 'length' field.
16167 (scan_rtx_reg): Likewise.
16168
bc470c24
JJ
161692011-01-02 Jakub Jelinek <jakub@redhat.com>
16170
4e996296
JJ
16171 PR tree-optimization/47140
16172 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16173 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16174 to bit_value_binop.
16175
bc470c24 16176 PR rtl-optimization/47028
6656b2ac
EB
16177 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16178 parm_birth_insn instead of at the beginning of first bb.
bc470c24 16179
5af62fcd 161802011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
16181
16182 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16183 Remove the word "see" before "@pxref".
16184 * doc/rtl.texi: Remove the word "see" before "@pxref".
16185
0e20c89f
JH
161862011-01-01 Jan Hubicka <jh@suse.cz>
16187
6656b2ac
EB
16188 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16189 memory.
0e20c89f 16190
220e83ca
KT
161912011-01-01 Kai Tietz <kai.tietz@onevision.com>
16192
16193 PR target/38662
6656b2ac 16194 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 16195
ad41bd84 16196\f
797103eb 16197Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
16198
16199Copying and distribution of this file, with or without modification,
16200are permitted in any medium without royalty provided the copyright
16201notice and this notice are preserved.