]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
ipa-utils.c (searchc_env): New field allow_overwritable.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
b6156cf2
MJ
12011-06-01 Martin Jambor <mjambor@suse.cz>
2
3 * ipa-utils.c (searchc_env): New field allow_overwritable.
4 (searchc): do not ignore edges to overwritable nodes if indicated
5 by env->allow_overwritable.
6 (ipa_reduced_postorder): Set env.allow_overwritable.
7
6807da97
RG
82011-06-01 Richard Guenther <rguenther@suse.de>
9
10 * tree.c (free_lang_data): Do not reset boolean_type_node nor
11 char_type_node.
12 * lto-streamer.c (lto_record_common_node): Take node pointer,
13 do not register types.
14 (lto_preload_common_nodes): Explicitly skip preloading nodes
15 that differ between frontends.
16
ddaf42bc
PH
172011-05-31 Pat Haugen <pthaugen@us.ibm.com>
18
19 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
20 NON_FLOAT_REGS.
21
abdd692e
PH
222011-05-31 Pat Haugen <pthaugen@us.ibm.com>
23
24 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
25 parameter value for dump. Dump cost on outermost call only.
26 (rs6000_memory_move_cost): Dump cost on outermost call only.
27
7351d8da
JJ
282011-05-31 Jakub Jelinek <jakub@redhat.com>
29
ead7c399
JJ
30 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
31 DW_OP_GNU_convert ops.
32
509f4495
JJ
33 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
34 cselib_preserve_constants.
35 (cselib_lookup_1): If cselib_preserve_constants,
36 a new VALUE is being created for REG and there is a VALUE for the
37 same register in wider mode, add another loc with lowpart SUBREG of
38 the wider VALUE.
39 (cselib_subst_to_values): Handle ENTRY_VALUE.
40 * var-tracking.c (replace_expr_with_values): Return NULL for
41 ENTRY_VALUE too.
42 * dwarf2out.c (convert_descriptor_to_signed): New function.
43 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
44 instead of two shifts.
45 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
46 the right mode if needed.
47 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
48 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
49 convert_descriptor_to_signed.
50 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
51 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
52
7351d8da
JJ
53 PR target/48688
54 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
55
5cc93ee0
UB
562011-05-31 Uros Bizjak <ubizjak@gmail.com>
57
58 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
59 of X87MODEI12 and SWI48x instead of SSEMODEI24.
60 (SWI248x): New mode iterator, rename from X87MODEI.
61 (X87MODEI): Remove mode iterator.
62 (X87MODEI12): Ditto.
63 (SSEMODEI24): Ditto.
64
f0686e78
AO
652011-05-31 Alexandre Oliva <aoliva@redhat.com>
66
67 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
68 * doc/invoke.texi: Document max-vartrack-expr-depth.
69 * var-tracking.c (EXPR_DEPTH): New.
70 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
71
f3308413
AO
722011-05-31 Alexandre Oliva <aoliva@redhat.com>
73
74 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
75 * config/i386/sse.md: Add n to negated FMA pattern names.
76
28c14a04
AO
772011-05-31 Alexandre Oliva <aoliva@redhat.com>
78
79 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
80
70efc82d
AO
812011-05-31 Alexandre Oliva <aoliva@redhat.com>
82
5cc93ee0 83 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 84
6ba5d856
UB
852011-05-31 Uros Bizjak <ubizjak@gmail.com>
86
87 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
88 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
89
902011-05-31 Uros Bizjak <ubizjak@gmail.com>
91
92 * config/i386/i386.md (*movtf_internal): Avoid allocating general
93 registers. Penalize F*r->o alternative to prevent partial memory
94 stalls. Slightly penalize *roF->*r alternative. Generate SSE
95 CONST_DOUBLE immediates when optimizing function for size. Do not move
96 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
97 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
98 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
99 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
100 alternatives.
101 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
102
103 (fp_register_operand splitters): Use fp_register_operand
104 constraint. Do not use FP_REG_P in insn condition.
105 (any_fp_register_operand splitters): Use any_fp_register_operand
106 constraint. Do not use ANY_FP_REG_P in insn condition.
107
533c07c5
JH
1082011-05-31 Jan Hubicka <jh@suse.cz>
109
110 * cgraph.h (cgraph_inline_failed_t): Give enum a name
111 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
112 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
113 (lto_output_edge): Use output_enum and var_len_unsigned.
114 (lto_output_varpool_node): Likewise.
115 (input_overwrite_node): Do not take resolution parameter;
116 extract it from a bitpack.
117 (input_node): Do not read resolution; use input_enum and
118 var_len_unsigned.
119 (input_varpool_node): Likewise.
120 (input_edge): Likewise.
121 (input_cgraph_1): Likewise.
122
2611db71
RG
1232011-05-31 Richard Guenther <rguenther@suse.de>
124
125 * gimple.c (gimple_register_canonical_type): Do not register
126 any types via gimple_register_type.
127
b9e57365
JH
1282011-05-31 Jan Hubicka <jh@suse.cz>
129
130 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
131 of thunks.
132
35979cc2
JJ
1332011-05-31 Jakub Jelinek <jakub@redhat.com>
134
135 PR rtl-optimization/49235
136 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
137 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
138
8f7de592
IR
1392011-05-31 Ira Rosen <ira.rosen@linaro.org>
140
141 PR tree-optimization/49093
142 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
143 data references.
144
8d8a3bda
DS
1452011-05-31 Dodji Seketeli <dodji@redhat.com>
146
147 PR debug/49047
148 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 149 for concrete functions containing the code of cloned functions.
8d8a3bda 150
2e87621c
RG
1512011-05-31 Richard Guenther <rguenther@suse.de>
152
153 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
154 to ...
155 (forward_propagate_into_comparison_1): ... this.
156 (forward_propagate_comparison): Rename to ...
157 (forward_propagate_into_comparison): ... this. Split out
158 real forward propagation code to ...
159 (forward_propagate_comparison): ... this.
160 (forward_propagate_into_gimple_cond): Remove looping.
161 (forward_propagate_into_cond): Likewise.
162 (simplify_not_neg_expr): Return whether we have done something.
163 (simplify_gimple_switch): Likewise.
164 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
165 (ssa_forward_propagate_and_combine): ... this. Re-structure
166 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 167 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
168 (pass_forwprop): Adjust.
169
5a880d5d
ILT
1702011-05-30 Ian Lance Taylor <iant@google.com>
171
172 * godump.c (go_format_type): Correct length of name added to
173 obstack for anonymous field.
174
5f133038
KK
1752011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
176
177 PR target/49186
178 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
179 part of the second operand is 0.
180
b17d5426
UB
1812011-05-30 Uros Bizjak <ubizjak@gmail.com>
182
183 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
184 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
185 to memory for !TARGET_MEMORY_MISMATCH_STALL.
186 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 187 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
188 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
189 when optimizing function for size. Do not move CONST_DOUBLEs
190 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
191 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
192 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
193 check for ANY_FP_REGNO_P instead.
194 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
195 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
196 function for speed.
197 * config/i386/i386.c (ix86_option_override_internal): Do not
198 set TARGET_INTEGER_DFMODE_MOVES here.
199
a0cd843f
L
2002011-05-30 H.J. Lu <hongjiu.lu@intel.com>
201
202 PR target/49168
203 * config/i386/i386.md (*movtf_internal): Handle misaligned
204 load/store.
205
006a5f38
JJ
2062011-05-30 Jakub Jelinek <jakub@redhat.com>
207
208 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
209 DW_TAG_rvalue_reference_type even for
210 -gdwarf-4 -fno-debug-types-section.
211
6e96f98a
BS
2122011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
213
214 PR tree-optimization/46728
215 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
216 (build_and_insert_binop): New.
217 (gimple_expand_builtin_pow): Reorder args for
218 build_and_insert_call; use build_and_insert_binop; add more
219 optimizations for fractional exponents.
b17d5426 220
4f60111f
NF
2212011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
222
223 PR bootstrap/49190
224
225 Revert:
226 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
227
228 * tree.h (struct tree_identifier): Inherit from tree_typed, not
229 tree_common.
230 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
231 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
232 TS_BASE instead of TS_COMMON.
233 * varasm.c (assemble_name): Remove assert.
234
3fd7879d
RS
2352011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
236
237 * config.gcc: Keep obselete list sorted.
238
80060f7a
JJ
2392011-05-30 Jakub Jelinek <jakub@redhat.com>
240 Eric Botcazou <ebotcazou@adacore.com>
241
242 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
243 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
244 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
245 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
246 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
247
17e99cdb
RG
2482011-05-30 Richard Guenther <rguenther@suse.de>
249
250 * gimple.c (gimple_types_compatible_p_1): Compare record
251 and union type members properly.
252
42b05b6e
RG
2532011-05-30 Richard Guenther <rguenther@suse.de>
254
255 PR tree-optimization/49210
6ba5d856
UB
256 * ipa-split.c (split_function): Care for the case where the call
257 result is not trivially convertible to the result holding variable.
42b05b6e 258
f3321158
RG
2592011-05-30 Richard Guenther <rguenther@suse.de>
260
261 PR tree-optimization/49218
262 * tree-vrp.c (adjust_range_with_scev): Properly check whether
263 overflow occured.
264
d12d8efe
RG
2652011-05-30 Richard Guenther <rguenther@suse.de>
266
267 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
268 New function split out from ...
269 (forward_propagate_into_gimple_cond): ... here. Adjust.
270 (forward_propagate_into_cond): Likewise.
271 (forward_propagate_comparison): Also propagate into
272 comparisons on assignment RHS. Change return value to
273 behave similar to forward_propagate_into_cond.
274 (tree_ssa_forward_propagate_single_use_vars): Handle
275 strict-overflow warnings properly for forward_propagate_comparison.
276
df33b41f
RO
2772011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
278
279 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
280 from plugin linker.
281 * configure: Regenerate.
282
69940d4d
IR
2832011-05-30 Ira Rosen <ira.rosen@linaro.org>
284
285 PR tree-optimization/49199
286 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 287 non-reduction operands are either defined in the loop or by induction.
69940d4d 288
226c52aa
XDL
2892011-05-29 Xinliang David Li <davidxl@google.com>
290
291 * opts-global.c (handle_common_deferred_options): Handle new options.
292 * passes.c (register_one_dump_file): Call register_pass_name.
293 (execute_one_pass): Check explicit enable/disable flag.
294 (passr_hash): New function.
295 (passr_eq): Ditto.
296 (register_pass_name): Ditto.
297 (get_pass_by_name): Ditto.
298 (pass_hash): Ditto.
299 (pass_eq): Ditto.
300 (enable_pass): Ditto.
301 (disable_pass): Ditto.
302 (is_pass_explicitly_enabled_or_disabled): Ditto.
303
491d8eed
UB
3042011-05-29 Uros Bizjak <ubizjak@gmail.com>
305
306 * config/i386/i386.md (*movoi_internal_avx): Use
307 standard_sse_constant_opcode for alternative 0.
308 (*movti_internal_sse): Ditto.
309 (*movti_internal_rex64): Use standard_sse_constant_opcode for
310 alternative 2.
311 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
312 sselog1 type moves.
313 (*movsi_internal): Ditto.
314 (*movdi_internal): Ditto. Add ssecvt type moves.
315
eb93b31f
EB
3162011-05-29 Eric Botcazou <ebotcazou@adacore.com>
317
318 PR target/48830
319 * rtlanal.c (simplify_subreg_regno): Adjust comment.
320
3f831b7d
JJ
3212011-05-29 Jakub Jelinek <jakub@redhat.com>
322
323 PR rtl-optimization/49095
324 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
325 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
326
ee3ee488
RS
3272011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
328
329 PR target/43995
330 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
331 recurse_p argument. Only follow register copies if it is set,
332 and prevent mips_find_pic_call_symbol from recursing.
333 (mips_find_pic_call_symbol): Add a recurse_p argument.
334 Pass it to mips_pic_call_symbol_from_set.
335 (mips_annotate_pic_calls): Update accordingly.
336
65f3dedb
RS
3372011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
338
339 * emit-rtl.c (try_split): Use a loop to search for
340 NOTE_INSN_CALL_ARG_LOCATIONs.
341
61e374ab
RG
3422011-05-29 Richard Guenther <rguenther@suse.de>
343
344 PR tree-optimization/49217
345 * ipa-pure-const.c (propagate_pure_const): Fix typos.
346
fac009a8
JH
3472011-05-28 Jan Hubicka <jh@suse.cz>
348
349 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
350 length.
351 (string_slot_free): Remove
352 (create_output_block): Initialize obstack.
353 (destroy_output_block): Free obstack.
354 (lto_string_index): Add PERSISTENT parameter; do not duplicate
355 the string unless it needs to be added into the hash.
356 (lto_output_string_with_length): Add persistent attribute;
357 handle NULL strings.
358 (lto_output_string): Add PERSISTENT parameter.
359 (output_string_cst, output_identifier): Simplify.
360 (lto_output_location_bitpack): Update.
361 (lto_output_builtin_tree): Update.
362 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
363 (lto_output_string, lto_output_string_with_length): Remove
364 declarations; functions are static now.
fac009a8 365
fa766006
JH
3662011-05-28 Jan Hubicka <jh@suse.cz>
367
368 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
369 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
370 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
371 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
372 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
373 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
374 unpack_ts_decl_with_vis_value_fields,
375 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
376 lto_get_builtin_tree): Use enum and variable length i/o.
377 * basic-block.h (profile_status_d): Add PROFILE_LAST.
378 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
379 New functions.
380 (bp_pack_enum, bp_unpack_enum): New macros.
381
e092158b
RS
3822011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
383
384 * genrecog.c: Remove redundant forward declarations.
385
7ca2afa0
RS
3862011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
387
388 * config.gcc: Deprecate mips*-*-openbsd*.
389
a601a53a
RS
3902011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
391
392 PR bootstrap/49195
393 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
394 for match_op_dup.
395
fc64b448
AP
3962011-05-27 Andrew Pinski <pinskia@gmail.com>
397
398 PR middle-end/48981
399 * gengtype.c (vec_prefix_type): New function.
400 (note_def_vec): Use vec_prefix_type and change the length
401 attribute to be based on the prefix.
402 * vec.c: Include coretypes.h before vec.h.
403 (struct vec_prefix): Remove.
404 (vec_gc_p_reserve): Change the offsetof to sizeof.
405 (vec_gc_p_reserve_exact): Likewise.
406 (vec_heap_p_reserve): Likewise.
407 (vec_heap_p_reserve_exact): Likewise.
408 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
409 (vec_stack_p_reserve): Change the offsetof to sizeof.
410 (vec_stack_p_reserve_exact): Likewise.
411 * vec.h (struct vec_prefix): New struct definition.
412 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
413 (VEC_T_GTY(T,B)): Likewise.
414 (DEF_VEC_FUNC_P(T)): Use prefix field.
415 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
416 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
417
ba869341
BS
4182011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
419
420 PR tree-optimization/46728
421 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
422 (powi_as_mults): Add gimple_set_location.
423 (build_and_insert_call): New.
424 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
425 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 426
d296760d
AM
4272011-05-27 Alexander Monakov <amonakov@ispras.ru>
428
429 * doc/contrib.texi: Update copyright years.
430 (Contributors): Add Zdenek Sojka.
431
38e01f9e
NF
4322011-05-27 Nathan Froyd <froydnj@codesourcery.com>
433
434 * c-decl.c (c_push_function_context): Copy the current statement
435 list stack.
436 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
437 (finish_struct): Call building_stmt_list_p instead of checking
438 cur_stmt_list.
439 * c-parser.c (c_parser_postfix_expression): Likewise.
440 * c-typeck.c (c_end_compound_stmt): Likewise.
441 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
442 * tree-iterator.c (stmt_list_cache): Change to a VEC.
443 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
444 (free_stmt_list): Likewise.
445 * tree.h (struct tree_statement_list): Include typed_tree instead
446 of tree_common.
447 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
448 as TS_TYPED instead of TS_COMMON.
449
8950516e
RO
4502011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
451 Uros Bizjak <ubizjak@gmail.com>
452
453 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
454 (HAVE_AS_IX86_TLSGDPTL): Define.
455 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
456 (HAVE_AS_IX86_TLSLDMPLT): Define.
457 * configure: Regenerate.
458 * config.in: Regenerate.
459 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
460 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
461 TARGET_SUN_TLS, use @tlsgdplt or @plt.
462 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
463 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
464 @tlsldmplt or @plt.
465 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
466
b0bd15f7
BS
4672011-05-27 Bernd Schmidt <bernds@codesourcery.com>
468
469 * sched-int.h (struct _haifa_deps_insn_data): New members cond
470 and reverse_cond.
471 (INSN_COND, INSN_REVERSE_COND): New macros.
472 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
473 once.
474 (sched_get_condition_with_rev): Cache the results, and look them up
475 if possible.
476 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
477 are clobbered by the current insn.
478 * target.def (exposed_pipline): New sched data hook.
479 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
480 * doc/tm.texi: Regenerate.
481
fa65a9cf
BS
4822011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
483
484 PR tree-optimization/49170
485 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
486 sincos or cexp.
b0bd15f7 487
c2299dfe
RG
4882011-05-27 Richard Guenther <rguenther@suse.de>
489
490 PR middle-end/49189
491 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
492 of comparisons.
493
a95b23b4
BS
4942011-05-27 Bernd Schmidt <bernds@codesourcery.com>
495
496 * haifa-sched.c (sched_scan_info): Remove.
497 (schedule_block): Call sched_extend_luids rather than sched_init_luids
498 with NULL args.
499 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
500 Remove functions.
501 (sched_scan): Remove.
502 (sched_extend_luids): Renamed from luids_extend_insn and no longer
503 static. All callers changed.
504 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
505 static. All callers changed.
506 (sched_init_luids): Remove all arguments except the first. All
507 callers changed. Don't use sched_scan.
508 (haifa_init_h_i_d): Likewise.
509 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
510 manually rather than using sched_init_luids. Likewise with
511 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
512 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
513 rather than sched_init_luids with NULL args.
514 * sel-sched-ir.c (new_insns): Remove variable.
515 (sched_scan): New static function, previously in haifa-sched.c. Remove
516 all arguments but the first two; all callers changed.
517 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
518 rather than sched_init_luids.
519 (sel_init_bbs): Remove second argument. All callers changed.
520 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
521 with NULL arguments.
522 (create_insn_rtx_from_pattern): Likewise.
523 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
524 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
525 (sched_init_insn_luid, sched_extend_luids): Declare.
526 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
527 declarations.
528
f8f972fc
RB
5292011-05-27 Richard Guenther <rguenther@suse.de>
530
531 PR middle-end/49177
532 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
533 A CMP B ? (T) true : (T) false for non-integral types T again.
534
51a9ed47
JH
5352011-05-27 Jan Hubicka <jh@suse.cz>
536
537 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
538 so 0 means NULL string.
539 (lto_output_string_with_length): ... here.
f8f972fc
RB
540 (lto_output_string, output_string_cst, output_identifier): Update
541 handling of NULL strings.
51a9ed47
JH
542 (lto_output_location_bitpack): New function.
543 (lto_output_location): Use it.
544 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
545 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
546 len values.
547 * lto-streamer-in.c (string_for_index): Break out from ...; offset
548 values by 1.
491d8eed 549 (input_string_internal): ... here;
f8f972fc
RB
550 (input_string_cst, input_identifier, lto_input_string): Update handling
551 of NULL strings.
51a9ed47
JH
552 (lto_input_location_bitpack): New function
553 (lto_input_location): Use it.
f8f972fc
RB
554 (unpack_ts_type_common_value_fields): Pack align & alias in var len
555 values.
51a9ed47
JH
556 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
557 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
558 (bp_pack_value): Sanity check the value range.
559 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
560 New functions.
561 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
562 New functions.
563
dc38fc2e
HS
5642011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
565
566 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
567 call_arg_location instructions down the floor.
568
574e418a
VM
5692011-05-26 Vladimir Makarov <vmakarov@redhat.com>
570
571 PR rtl-optimization/49154
572 * ira.c (setup_pressure_classes): Process class without sublcasses
573 as a candidate for pressure classes.
574
6a1a787e
RS
5752011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
576
577 PR rtl-optimization/48575
578 * genrecog.c (position_type): New enum.
579 (position): New structure.
580 (decision): Use position structure instead of a string.
581 (root_pos, peep2_insn_pos_list): New variables.
582 (next_position, compare_positions): New functions.
583 (new_decision): Use position structures instead of strings.
584 (maybe_both_true): Likewise.
585 (change_state): Likewise.
586 (write_tree): Likewise.
587 (make_insn_sequence): Likewise.
588
92e948a8
NF
5892011-05-26 Nathan Froyd <froydnj@codesourcery.com>
590
591 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
592 TS_BASE instead of TS_COMMON.
593 (find_decls_types_r): Check for TS_TYPED structure before looking at
594 TREE_TYPE.
595 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
596 Add chain field.
597 (BLOCK_CHAIN): Use new chain field.
598
c61e40d3
PH
5992011-05-26 Pat Haugen <pthaugen@us.ibm.com>
600
601 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
602 moves expensive on Power7 also.
603
1f498652
RG
6042011-05-26 Richard Guenther <rguenther@suse.de>
605
606 * fold-const.c (fold_unary_loc): Remove bogus code.
607
a2fc3e63
NF
6082011-05-26 Nathan Froyd <froydnj@codesourcery.com>
609
610 * tree.h (struct tree_identifier): Inherit from tree_typed, not
611 tree_common.
612 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
613 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
614 TS_BASE instead of TS_COMMON.
615 * varasm.c (assemble_name): Remove assert.
616
d11bf18f
BS
6172011-05-26 Bernd Schmidt <bernds@codesourcery.com>
618
619 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
620 substituted first.
621 * libgcc-std.ver: Delete file.
622
ac8e1875
RG
6232011-05-26 Richard Guenther <rguenther@suse.de>
624
625 PR tree-optimization/48702
626 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
627 only when we know the base address is within bounds.
628 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
629 assume the base address of TARGET_MEM_REFs is in bounds.
630
7e32e652
RO
6312011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
632
633 PR target/49099
634 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
635 declaration in TARGET_SOLARIS.
636
43660e0b
HS
6372011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
638
639 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 640 The instruction is then expanded explicitly.
43660e0b
HS
641 (supported_compare): Callable instruction.
642 (compare): Likewise.
643
1537737f
JJ
6442011-05-26 Jakub Jelinek <jakub@redhat.com>
645
646 PR c++/49165
647 * gimplify.c (shortcut_cond_r): Don't special case
648 COND_EXPRs if they have void type on one of their arms.
649
7b1ac803
BS
6502011-05-26 Bernd Schmidt <bernds@codesourcery.com>
651
652 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
653 to reduce duplication, and to achieve a slightly more logical order
654 of operations.
655
1aa9438f
JJ
6562011-05-26 Jakub Jelinek <jakub@redhat.com>
657
658 PR tree-optimization/49161
659 * tree-vrp.c (struct case_info): New type.
660 (compare_case_labels): Sort case_info structs instead of
661 trees, and not primarily by CASE_LABEL uids but by
662 label_for_block indexes.
663 (find_switch_asserts): Put case labels into struct case_info
664 array instead of TREE_VEC, adjust sorting, compare label_for_block
665 values instead of CASE_LABELs.
666
50fed7bf
RR
6672011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
668
669 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
670 ("orndi3_neon"): Likewise.
671 ("bic<mode>3_neon"): Likewise.
672
48df3fa6
IR
6732011-05-26 Ira Rosen <ira.rosen@linaro.org>
674
675 PR tree-optimization/49038
676 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
677 Ensure at least one epilogue iteration if required by data
678 accesses with gaps.
679 * tree-vectorizer.h (struct _loop_vec_info): Add new field
680 to mark loops that require peeling for gaps.
681 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
682 (vect_get_known_peeling_cost): Take peeling for gaps into
683 account.
684 (vect_transform_loop): Generate epilogue if required by data
685 access with gaps.
686 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
687 loop as requiring an epilogue if there are gaps in the end of
688 the strided group.
689
53febcba
ILT
6902011-05-25 Ian Lance Taylor <iant@google.com>
691
692 * godump.c (go_format_type): Output the first field with a usable
693 Go type, if any.
694
dbbc4d4c
ILT
6952011-05-25 Ian Lance Taylor <iant@google.com>
696
697 * godump.c (go_format_type): Check for invalid type names, pointer
698 target types, and struct field types.
699
f03a5402
JM
7002011-05-25 Jason Merrill <jason@redhat.com>
701
702 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
703
c497c412
UB
7042011-05-25 Uros Bizjak <ubizjak@gmail.com>
705
706 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
707
e470affe
L
7082011-05-25 H.J. Lu <hongjiu.lu@intel.com>
709
710 * config/i386/i386.md (*movqi_extv_1)): Put back
711 "register_operand" check in "type" calculation.
712 (*movqi_extzv_2): Likewise.
713
6c81b2bc
L
7142011-05-25 H.J. Lu <hongjiu.lu@intel.com>
715
c497c412 716 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 717
0c007eb2
BS
7182011-05-25 Bernd Schmidt <bernds@codesourcery.com>
719
720 PR bootstrap/49160
721 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
722 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
723 __divxc3, __divtc3): Wrap definitions in #ifndef.
724
521ca78e
L
7252011-05-25 H.J. Lu <hongjiu.lu@intel.com>
726
727 PR target/49142
728 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
729 "register_operand" check and replace q_regs_operand with
730 QIreg_operand in "type" calculation.
731 (*movqi_extv_1): Likewise.
732 (*movqi_extzv_2_rex64): Likewise.
733 (*movqi_extzv_2): Likewise.
734
735 * config/i386/predicates.md (QIreg_operand): New.
736
29f8b844
RG
7372011-05-25 Richard Guenther <rguenther@suse.de>
738
739 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
740 type-based offset disambiguation, streamline MEM_REF and
741 TARGET_MEM_REF handling.
742
74838de3
L
7432011-05-25 H.J. Lu <hongjiu.lu@intel.com>
744
745 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
746 (bdesc_special_args): Add pause intrinsic.
747
748 * config/i386/i386.md (UNSPEC_PAUSE): New.
749 (pause): Likewise.
750 (*pause): Likewise.
751 * config/i386/ia32intrin.h (__pause): Likewise.
752
753 * doc/extend.texi (X86 Built-in Functions): Add documentation for
754 pause intrinsic.
755
d24ad7d6
BS
7562011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
757
758 PR tree-optimization/46728
759 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
760 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 761
d9f8303f
NF
7622011-05-25 Nathan Froyd <froydnj@codesourcery.com>
763
764 * tree.h (struct tree_exp): Inherit from struct tree_typed.
765 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
766 instead of TS_COMMON.
767
cdbf4541
BS
7682011-05-25 Bernd Schmidt <bernds@codesourcery.com>
769
770 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
771 LIBGCC2_GNU_PREFIX is defined.
772 (__N): New macro.
773 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
774 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
775 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
776 __clz_tab): Define using __N.
777 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
778 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
779 * target.def (libfunc_gnu_prefix): New hook.
780 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
781 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
782 * doc/tm.texi: Regenerate.
783 * system.h (LIBGCC2_GNU_PREFIX): Poison.
784 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
785 account.
786 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
787 (init_optabs): Likewise for the bswap libfuncs.
788 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
789 and divide.
790 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
791 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
792 * libgcc-std.ver: Remove.
793 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
794 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
795 libgcc-std.ver.
796 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
797 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
798 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
799 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
800 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
801 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
802 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
803 * config/fixed-bit.h (FIXED_OP): Define differently depending on
804 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
805 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
806
f242c0a5
JH
8072011-05-25 Jan Hubicka <jh@suse.cz>
808
809 * lto-streamer-out.c (output_record_start): Use lto_output_enum
810 (lto_output_tree): Use output_record_start.
811 * lto-streamer-in.c (input_record_start): Use lto_input_enum
812 (lto_get_pickled_tree): Use input_record_start.
813 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
814 (lto_value_range_error): New function.
815 * lto-streamer.h (lto_value_range_error): Declare.
816 (lto_output_int_in_range, lto_input_int_in_range): New functions.
817 (lto_output_enum, lto_input_enum): New macros.
818
a11e0df4
EB
8192011-05-25 Eric Botcazou <ebotcazou@adacore.com>
820
821 * common.opt (flag_stack_usage_info): New variable.
822 (-Wstack-usage): New option.
823 * doc/invoke.texi (Warning options): Document -Wstack-usage.
824 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
825 <OPT_fstack_usage>: Likewise.
826 * toplev.c (output_stack_usage): Handle -Wstack-usage.
827 * calls.c (expand_call): Test flag_stack_usage_info variable instead
828 of flag_stack_usage.
829 (emit_library_call_value_1): Likewise.
830 * explow.c (allocate_dynamic_stack_space): Likewise.
831 * function.c (instantiate_virtual_regs ): Likewise.
832 (prepare_function_start): Likewise.
833 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
834 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
835 * config/arm/arm.c (arm_expand_prologue): Likewise.
836 (thumb1_expand_prologue): Likewise.
837 * config/avr/avr.c (expand_prologue): Likewise.
838 * config/i386/i386.c (ix86_expand_prologue): Likewise.
839 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
840 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
841 * config/mips/mips.c (mips_expand_prologue): Likewise.
842 * config/pa/pa.c (hppa_expand_prologue): Likewise.
843 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
844 * config/s390/s390.c (s390_emit_prologue): Likewise.
845 * config/sh/sh.c (sh_expand_prologue): Likewise.
846 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
847 * config/spu/spu.c (spu_expand_prologue): Likewise.
848
e7cfe241
RG
8492011-05-25 Richard Guenther <rguenther@suse.de>
850
851 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
852 (gimple_canonical_types_compatible_p): Likewise.
853
c5235f4c
JH
8542011-05-25 Jan Hubicka <jh@suse.cz>
855
856 PR middle-end/49062
857 * ipa.c (function_and_variable_visibility): Only add to same
858 comdat group list if DECL_ONE_ONLY.
859
8242a0f6
AB
8602011-05-25 Andrey Belevantsev <abel@ispras.ru>
861
862 PR rtl-optimization/49014
863 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
864
642a011d
JJ
8652011-05-25 Jakub Jelinek <jakub@redhat.com>
866
867 PR target/49128
868 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
869
30a435d8
VM
8702011-05-24 Vladimir Makarov <vmakarov@redhat.com>
871
872 PR rtl-optimization/48757
873 * ira-build.c (loop_with_eh_edge_p): Rename to
874 loop_with_complex_edge_p, check edges on complexity, make function
875 conditional.
876 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
877 conditional.
878
24d1bbc7
EB
8792011-05-24 Eric Botcazou <ebotcazou@adacore.com>
880
881 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
882 force flag_ira_share_save_slots to 0.
883
65773087
EB
8842011-05-24 Eric Botcazou <ebotcazou@adacore.com>
885
886 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
887 (vt_initialize): Set PROLOGUE_BB unconditionally.
888 Add block comment about CFA_BASE_RTX machinery.
889 Reset FP_CFA_OFFSET to -1 on all invalid paths.
890 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
891
4e26ba90
NP
8922011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
893
894 PR objc/48187
895 * c-parser.c (c_parser_objc_class_instance_variables): More robust
896 parsing of syntax error in ObjC instance variable lists. In
897 particular, avoid an infinite loop if there is a stray ']'.
898 Updated error message.
899
936fd13c
ILT
9002011-05-24 Ian Lance Taylor <iant@google.com>
901
902 * godump.c (go_define): Don't accept a string immediately after
903 another operand.
904
f17333e3
ILT
9052011-05-24 Ian Lance Taylor <iant@google.com>
906
907 * godump.c (struct godump_container): Add invalid_hash field.
908 (go_format_type): Return false if type is found in invalid_hash.
909 (go_output_typedef): Add invalid type to invalid_hash.
910 (go_finish): Create and delete invalid_hash.
911
d24ad7d6 9122011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 913
78be79d5
BS
914 PR tree-optimization/46728
915 * tree-ssa-math-opts.c (powi_table): New.
916 (powi_lookup_cost): New.
917 (powi_cost): New.
918 (powi_as_mults_1): New.
919 (powi_as_mults): New.
920 (gimple_expand_builtin_powi): New.
921 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
922 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 923
caee412b
RO
9242011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
925
926 PR target/3746
927 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
928 mips-tdump native.
929 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
930 * mips-tdump.c: Likewise.
931
5eed4f27
L
9322011-05-24 H.J. Lu <hongjiu.lu@intel.com>
933
934 PR target/49128
935 * config/i386/driver-i386.c (host_detect_local_cpu): Always
936 add -mno-XXX. Handle FMA.
937
8c5fdaae
VM
9382011-05-24 Vladimir Makarov <vmakarov@redhat.com>
939
940 PR rtl-optimization/48633
941 * ira-build.c (loop_with_eh_edge_p): New function.
942 (mark_loops_for_removal): Use it.
943
9442011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
945
946 PR rtl-optimization/48971
947 * ira.c (setup_pressure_classes): Don't check register move cost
948 for classes with one registers. Don't add pressure class if there
949 is a pressure class with the same available hard registers.
950 Check contains_reg_of_mode. Fix a typo in collecting
951 temp_hard_regset. Ignore hard registers not belonging to a class.
952
df1f7315
UB
9532011-05-24 Uros Bizjak <ubizjak@gmail.com>
954
955 PR target/49133
956 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
957
ee0cb37c
EB
9582011-05-24 Eric Botcazou <ebotcazou@adacore.com>
959 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
960
961 PR gcov-profile/48845
962 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
963
6a20ce76
RG
9642011-05-24 Richard Guenther <rguenther@suse.de>
965
966 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
967 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
968 (gimple_types_compatible_p_1): Adjust.
969 (iterative_hash_canonical_type): Do not bother about complete vs.
970 incomplete types.
971 (gimple_canonical_types_compatible_p): Likewise.
972
2fcb858c
RO
9732011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
974
975 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
976
96d91dcf
RG
9772011-05-24 Richard Guenther <rguenther@suse.de>
978
979 PR bootstrap/49078
980 * gimple.c (gimple_register_canonical_type): Revert
981 previous change.
982 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
983 does not for a tree for the case where it matters. Cache
984 pointer-type alias-sets.
985
1ed1641d
JM
9862011-05-24 Joseph Myers <joseph@codesourcery.com>
987
988 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
989 (OBJS): Remove options.o, opts-common.o and prefix.o.
990 (OBJS-libcommon-target): New.
991 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
992 (BACKEND): Include libcommon-target.a.
993 (MOSTLYCLEANFILES): Include libcommon-target.a.
994 (libcommon-target.a): New.
995 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
996 prefix.o.
997
57dfdff0
JM
9982011-05-23 Joseph Myers <joseph@codesourcery.com>
999
1000 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
1001 parts of output shared with the driver.
1002 * optc-gen.awk: Don't generate parts of output not shared with the
1003 driver.
1004 * opth-gen.awk: Remove GCC_DRIVER conditionals.
1005 * doc/options.texi (SourcerInclude): Mention options-save.c.
1006 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
1007 (OBJS): Add options-save.o.
1008 (options-save.c, options-save.o): New.
1009 (options.o): Update dependencies.
1010 (gcc-options.o): Remove.
1011 (mostlyclean): Remove options-save.c.
1012
0e0d82a7
JJ
10132011-05-23 Jakub Jelinek <jakub@redhat.com>
1014
9166988f
JJ
1015 PR debug/49032
1016 * dbxout.c: Include cgraph.h.
1017 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
1018 and without value expr, return NULL if no varpool node exists for
1019 it or if it is not needed.
1020 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
1021
0e0d82a7
JJ
1022 PR c/49120
1023 * c-decl.c (start_decl): Convert expr to void_type_node.
1024
65712d5c
RS
10252011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
1026
1027 PR rtl-optimization/48826
1028 * emit-rtl.c (try_split): When splitting a call that is followed
1029 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
1030
9025085e
JJ
10312011-05-23 Jakub Jelinek <jakub@redhat.com>
1032
1033 * cfgexpand.c (expand_debug_expr): For unused non-addressable
1034 parameters passed in memory prefer using DECL_INCOMING_RTL over
1035 the pseudos it will be copied into.
1036
34a061be
L
10372011-05-23 H.J. Lu <hongjiu.lu@intel.com>
1038
1039 PR target/47315
1040 * config/i386/i386.c (ix86_option_override_internal): Save the
1041 initial options after checking vzeroupper.
1042
c375a3a4
DL
10432011-05-23 David Li <davidxl@google.com>
1044
1045 PR tree-optimization/48988
1046 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
1047 Initialize has_valid_pred for each pred chain.
1048
e1caba18
RG
10492011-05-23 Richard Guenther <rguenther@suse.de>
1050
1051 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
1052 (iterative_hash_gimple_type): Always hash type names.
1053
dde05067
NF
10542011-05-23 Nathan Froyd <froydnj@codesourcery.com>
1055
1056 * c-typeck.c (build_function_call_vec): Tweak call to
1057 check_function_arguments.
1058
094f6ab3
RG
10592011-05-23 Richard Guenther <rguenther@suse.de>
1060
1061 PR tree-optimization/49115
1062 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
1063 is not necessarily carried out, do not claim it kills the ref.
1064 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1065
9a9822e1
RG
10662011-05-23 Richard Guenther <rguenther@suse.de>
1067
1068 PR middle-end/15419
1069 * builtins.c (fold_builtin_memory_op): Be less restrictive about
1070 what pointer types we accept for folding.
1071
c8028650
RO
10722011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1073
1074 * gthr-gnat.c: Remove.
1075 * gthr-gnat.h: Remove.
1076 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
1077 * config/t-freebsd (LIB2ADDEH): Likewise.
1078 * config/t-linux (LIB2ADDEH): Likewise.
1079 * config/t-sol2 (LIB2ADDEH): Likewise.
1080 * config/ia64/t-vms (LIB2ADDEH): Likewise.
1081 * configure.ac (target_thread_file): Remove gnat handling.
1082 * configure: Regenerate.
1083 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
1084
15882fe9
TG
10852011-05-23 Tristan Gingold <gingold@adacore.com>
1086 Eric Botcazou <ebotcazou@adacore.com>
1087
1088 * gcov.c (create_file_names): If no object directory is specified,
1089 keep the directory of the file.
1090
da90c957
RO
10912011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1092
1093 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
1094 * configure: Regenerate.
1095
7bba408b
JJ
10962011-05-23 Jakub Jelinek <jakub@redhat.com>
1097
1098 PR middle-end/48973
1099 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
1100 failed and the comparison has a single bit signed type, use
1101 constm1_rtx instead of const1_rtx for true value.
1102 (do_store_flag): If ops->type is single bit signed type, disable
1103 signel bit test optimization and pass -1 instead of 1 as last
1104 parameter to emit_store_flag_force.
1105
bc69f7ff
TV
11062011-05-23 Tom de Vries <tom@codesourcery.com>
1107
1108 PR target/45098
1109 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
1110 function.
1111 (infer_loop_bounds_from_undefined): Use new function.
1112
29cedf8e
RS
11132011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1114
1115 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
1116 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
1117 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
1118 and -O0 otherwise.
1119 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
1120
afe8b6ec
EB
11212011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1122
1123 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
1124 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
1125 returns true.
1126
872dab53
RS
11272011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
1128
1129 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
1130
145f6c5b
EB
11312011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1132
1133 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
1134 UNSPEC_MOVE_PIC pattern.
1135
8ac79835
EB
11362011-05-22 Eric Botcazou <ebotcazou@adacore.com>
1137
1138 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
1139 (sparc-*-rtems*): Likewise.
1140 (sparc64-*-elf*): Likewise.
1141 (sparc64-*-rtems*): Likewise.
1142 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
1143 * config/sparc/t-crtin: New file.
1144 * config/sparc/t-sol2 (crti.o): Delete rule.
1145 (crtn.o): Likewise.
1146 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
1147 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1148 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1149 (ENDFILE_SPEC): Add crtn.o.
1150
5fb43dd8
TV
11512011-05-22 Tom de Vries <tom@codesourcery.com>
1152
1153 PR middle-end/48689
1154 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1155 CODE_CONTAINS_STRUCT (TS_COMMON).
1156
ccb1b17b
JJ
11572011-05-22 Jakub Jelinek <jakub@redhat.com>
1158
1159 PR middle-end/49029
1160 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1161 only after deciding which mode to use.
1162
50ad7db2
TV
11632011-05-22 Tom de Vries <tom@codesourcery.com>
1164
1165 PR target/45098
dc0a3366 1166 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
1167 for call to get_shiftadd_cost.
1168
ef230b38
UB
11692011-05-22 Uros Bizjak <ubizjak@gmail.com>
1170
1171 PR target/49104
1172 * config/i386/cpuid.h (bit_MMXEXT): New define.
1173
15f072f9
NC
11742011-05-22 Nick Clifton <nickc@redhat.com>
1175
1176 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1177 initialisation of non-existant args[2] element. Use args[] array
1178 not arg[] array to pass arguments to build_function_type_list.
1179
e38fdc94
IR
11802011-05-22 Ira Rosen <ira.rosen@linaro.org>
1181
1182 PR tree-optimization/49087
ef230b38 1183 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 1184
5b018c65
JM
11852011-05-21 Jason Merrill <jason@redhat.com>
1186
1187 PR c++/49092
1188 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1189 static storage duration.
1190
abd9a770
EB
11912011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1192
1193 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1194 frame pointer.
1195
bd9a3248
EB
11962011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1197
1198 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1199 false if there are call-saved registers here...
1200 (sparc_can_use_return_insn_p): ...but here instead.
1201 (save_or_restore_regs): Fix thinko.
1202 (sparc_expand_prologue): Use current_function_is_leaf.
1203 (sparc_frame_pointer_required): Likewise.
1204
a5dfec9a
NC
12052011-05-21 Nick Clifton <nickc@redhat.com>
1206
1207 PR target/49098
1208 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1209
555c3771
NP
12102011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1211
1212 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1213 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1214
86fa5de4
JM
12152011-05-21 Joseph Myers <joseph@codesourcery.com>
1216
1217 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1218 * optc-gen.awk: Move common code to opt-read.awk.
1219 * opth-gen.awk: Likewise.
ef230b38 1220 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 1221
bce33ab2
NF
12222011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1223
1224 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1225
e6450c11
TV
12262011-05-20 Tom de Vries <tom@codesourcery.com>
1227
1228 PR target/45098
1229 * tree-ssa-loop-ivopts.c: Include expmed.h.
1230 (get_shiftadd_cost): New function.
1231 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1232
0e8b84ec
JJ
12332011-05-20 Jakub Jelinek <jakub@redhat.com>
1234
1235 PR bootstrap/49086
1236 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1237 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1238
946bdf67
JM
12392011-05-20 Joseph Myers <joseph@codesourcery.com>
1240
1241 * Makefile.in: Update comment referring to $(OBJS-common).
1242
c53aafdf
ILT
12432011-05-20 Ian Lance Taylor <iant@google.com>
1244
1245 * godump.c (go_output_typedef): Put enum constants in the macro
1246 hash table to avoid duplicate Go const definitions.
1247
2691e6d7
JM
12482011-05-20 Joseph Myers <joseph@codesourcery.com>
1249
1250 * Makefile.in (LIBDEPS): Add libcommon.a.
1251 (LIBS): Likewise.
1252 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1253 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1254 pretty-print.o and version.o.
1255 (OBJS-libcommon): New.
1256 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1257 (BACKEND): Add libcommon.a.
1258 (MOSTLYCLEANFILES): Likewise.
1259 (libcommon.a): New.
1260 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1261 (cpp$(exeext)): Likewise.
1262 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1263 pretty-print.o and input.o.
1264 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1265 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1266 (errors.o): Remove.
1267 (mips-tfile): Don't explicitly use version.o.
1268 (mips-tdump): Likewise.
1269 (gcov.o): Depend on $(DIAGNOSTIC_H).
1270 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1271 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1272 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1273 * gcov-dump.c: Include intl.h and diagnostic.h.
1274 (main): Initialize diagnostics.
1275 * gcov.c: Include diagnostic.h.
1276 (fnotice): Remove.
1277 (main): Initialize diagnostics.
1278 * lto-wrapper.c: Include diagnostic.h.
1279 (main): Initialize diagnostics.
1280
252b3e8c
MM
12812011-05-20 Michael Matz <matz@suse.de>
1282
1283 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1284
2ee36ba6
MM
12852011-05-20 Michael Matz <matz@suse.de>
1286 Richard Guenther <rguenther@suse.de>
1287
1288 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1289 use lto_streamer_cache_append directly instead of returning a VEC.
1290 (preload_common_node): Remove.
1291 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1292 track seen nodes.
1293 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1294
90ff582f
RG
12952011-05-20 Richard Guenther <rguenther@suse.de>
1296
1297 PR tree-optimization/49079
1298 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1299 MEM_REFs correctly for the trailing array access detection.
1300 Special case constants the same way as decls for overall size
1301 constraining.
1302
3cda91d8
UB
13032011-05-20 Uros Bizjak <ubizjak@gmail.com>
1304
1305 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1306 argument expansion.
1307
6c66f733
JJ
13082011-05-20 Jakub Jelinek <jakub@redhat.com>
1309
1310 PR tree-optimization/49073
3cda91d8
UB
1311 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1312 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
1313 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1314
0ea80a16
RG
13152011-05-20 Richard Guenther <rguenther@suse.de>
1316
1317 PR middle-end/48849
1318 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1319 of pointer types the same way the middle-end does.
1320
fb291a1e
RG
13212011-05-20 Richard Guenther <rguenther@suse.de>
1322
3cda91d8
UB
1323 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1324 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 1325
37cb25ed
QN
13262011-05-19 Quentin Neill <quentin.neill@amd.com>
1327
1328 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1329 (fma4_fmaddsub): Likewise
1330
a30726a4
JH
13312011-05-19 Jan Hubicka <jh@suse.cz>
1332
1333 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1334 (GIMPLE_TYPE_PAIR_SIZE): New macro.
1335 (type_pair_cache): New static var.
1336 (lookup_type_pair): Use fixed sized custom hash; make inline.
1337 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1338 calls of lookup_type_pair.
1339 (print_gimple_types_stats): Remove cache stats.
1340 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1341 and gtc_ob.
1342
0955cf61
UB
13432011-05-19 Uros Bizjak <ubizjak@gmail.com>
1344
1345 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1346 when TARGET_RDRND is active.
1347 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1348 Generate dummy SImode target register when target is NULL.
1349
12d844c8
JM
13502011-05-19 Joseph Myers <joseph@codesourcery.com>
1351
1352 * config/arm/arm-fpus.def: New.
1353 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1354 arm-fpus.def.
1355 * config/arm/arm-tables.opt: Regenerate.
1356 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1357 (arm_option_override): Don't decode FPU name to string here.
1358 * config/arm/arm.opt (mfpu=): Use Enum.
1359 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1360 Update dependencies.
1361
9e350e99
JM
13622011-05-19 Joseph Myers <joseph@codesourcery.com>
1363
1364 * collect2.c: Include diagnostic.h.
1365 (fatal_perror, fatal, error, fancy_abort): Remove.
1366 (main): Set progname. Call xmalloc_set_program_name and
1367 diagnostic_initialize.
1368 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1369 scan_libraries, resolve_lib_name): Call fatal_error instead of
1370 fatal and fatal_perror.
1371 * collect2.h (error, fatal, fatal_perror): Don't declare.
1372 * tlink.c: Include diagnostic-core.h.
1373 (recompile_files): Call fatal_error instead of fatal_perror.
1374 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1375 pretty-print.o and input.o.
1376 (collect2.o, tlink.o): Update dependencies.
1377
86ff4081
RO
13782011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1379
1380 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1381
2ca48caa
RO
13822011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1383
1384 PR target/40483
1385 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1386 COMDAT group syntax, both SPARC and x86 variants.
1387 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1388 * configure: Regenerate.
1389 * config/sol2.h (TARGET_SOLARIS): Define.
1390 (PUSHSECTION_FORMAT): Remove.
1391 (SECTION_NAME_FORMAT): Define.
1392 * config/sol2.c: Include hashtab.h.
1393 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1394 expansion, using SECTION_NAME_FORMAT.
1395 (solaris_comdat_htab): New variable.
1396 (struct comdat_entry): Define.
1397 (comdat_hash): New function.
1398 (comdat_eq): New function.
1399 (solaris_elf_asm_comdat_section): New function.
1400 (solaris_define_comdat_signature): New function.
1401 (solaris_code_end): New function.
1402 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1403 (solaris_code_end): Declare.
1404 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1405 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1406 solaris_code_end.
1407 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1408 Remove ATTRIBUTE_UNUSED.
1409 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1410 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 1411 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
1412 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1413 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1414 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1415 (PUSHSECTION_FORMAT): Remove.
1416 (SECTION_NAME_FORMAT): Redefine.
1417
da5fb469
KT
14182011-05-19 Kai Tietz <ktietz@redhat.com>
1419
1420 * tree-cfg.c (verify_gimple_assign_binary): Barf on
1421 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1422 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1423
1651e703 14242011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
1425 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1426
1427 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1428
e497b9bd
RG
14292011-05-19 Richard Guenther <rguenther@suse.de>
1430
1431 PR middle-end/48985
1432 * tree-object-size.c (addr_object_size): If the pointed-to
1433 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1434
31b3ca64
RG
14352011-05-19 Richard Guenther <rguenther@suse.de>
1436
1437 * gimple.c (gimple_types_compatible_p_1): Compare names of
1438 the types themselves.
1439 (iterative_hash_gimple_type): And hash them that way.
1440 (gimple_register_type_1): If we register a main variant properly
1441 initialize the leader to ourselves.
1442
bb8d292d
TV
14432011-05-19 Tom de Vries <tom@codesourcery.com>
1444
1445 PR target/45098
1446 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1447 get_loop_invariant_expr_id.
1448 (get_loop_invariant_expr_id): Use get_expr_id.
1449 (parm_decl_cost): New function.
1450 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1451 Improve bound cost estimation. Use different inv_expr_id for elim and
1452 express cases.
1453
a53c5024
TV
14542011-05-19 Tom de Vries <tom@codesourcery.com>
1455
1456 PR target/45098
1457 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1458 cost_base.cost == 0.
1459
31f9eb59
L
14602011-05-18 H.J. Lu <hongjiu.lu@intel.com>
1461
1462 PR target/49002
1463 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1464 Properly handle load cast.
1465
681056ae
JJ
14662011-05-18 Jakub Jelinek <jakub@redhat.com>
1467
1468 PR tree-optimization/49039
1469 * tree-vrp.c (extract_range_from_binary_expr): For
1470 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1471 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1472
b5ee6752
TV
14732011-05-18 Tom de Vries <tom@codesourcery.com>
1474
1475 PR target/45098
1476 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1477
0bda47a3
UB
14782011-05-18 Uros Bizjak <ubizjak@gmail.com>
1479
1480 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1481 (*tls_global_dynamic_64): Ditto.
1482 (*tls_local_dynamic_base_32_gnu): Ditto.
1483 (*tls_local_dynamic_base_64): Ditto.
1484 (tls_initial_exec_64_sun): Ditto.
1485
033b0805
SH
14862011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
1487
1488 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1489 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1490 bf592-none.
1491 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1492 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1493 * config/bfin/bfin.c (bfin_cpus): Add bf592.
1494 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 1495 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
1496 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1497 * config/bfin/elf.h (LIB_SPEC): Add bf592.
1498
ba163417
JM
14992011-05-18 Joseph Myers <joseph@codesourcery.com>
1500
1501 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 1502 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
1503 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1504 target_thread_pointer, arm_structure_size_boundary, struct
1505 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1506 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
1507 (arm_option_override) Don't process most enumerated option values here.
1508 Don't process target_fpe_name here. Work with integer not string for
1509 structure size boundary; use separate diagnostics for each case.
ba163417
JM
1510 * config/arm/arm.h (enum float_abi_type, enum
1511 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1512 to arm-opts.h.
1513 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1514 arm_structure_size_boundary): Remove.
1515 * config/arm/arm.opt (mabi=): Use Enum and Init.
1516 (arm_abi_type): New Enum and EnumValue entries.
1517 (mfloat-abi=): Use Enum and Init.
1518 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 1519 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
1520 (mfp16-format=): Use Enum and Init.
1521 (arm_fp16_format_type): New Enum and EnumValue entries.
1522 (mstructure-size-boundary=): Use UInteger and Init.
1523 (mtp=): Use Enum and Init.
1524 (arm_tp_type): New Enum and EnumValue entries.
1525
179184e3
RG
15262011-05-18 Richard Guenther <rguenther@suse.de>
1527
1528 PR tree-optimization/49018
1529 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1530 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1531 gimple_has_side_effects.
1532
93b2a207
RG
15332011-05-18 Richard Guenther <rguenther@suse.de>
1534
1535 * gimple.c (gimple_register_type_1): New function, split out from ...
1536 (gimple_register_type): ... here. Avoid infinite recursion.
1537
b010117a
IR
15382011-05-18 Ira Rosen <ira.rosen@linaro.org>
1539
1540 PR tree-optimization/41881
1541 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1542 reduction_chains along with a macro for its access.
1543 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1544 (destroy_loop_vec_info): Free reduction chains.
1545 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1546 (vect_is_slp_reduction): New function.
1547 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1548 (vect_create_epilog_for_reduction): Support SLP reduction chains.
1549 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1550 definition types for reduction chains.
1551 (vect_supported_load_permutation_p): Don't allow permutations for
1552 reduction chains.
1553 (vect_analyze_slp_instance): Support reduction chains.
1554 (vect_analyze_slp): Try to build SLP instance from reduction chains.
1555 (vect_get_constant_vectors): Handle reduction chains.
1556 (vect_schedule_slp_instance): Mark the first statement of the
1557 reduction chain as reduction.
1558
e14c1050
IR
15592011-05-18 Ira Rosen <ira.rosen@linaro.org>
1560
1561 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1562 names for group elements access.
1563 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1564 reduction chains as well. Remove data reference and interleaving
1565 related words from the fields names.
1566 * tree-vect-loop.c (vect_transform_loop): Use new names for group
1567 elements access.
1568 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1569 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1570 vect_update_interleaving_chain, vect_same_range_drs,
1571 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1572 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1573 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1574 vect_analyze_group_access, vect_analyze_data_ref_access,
1575 vect_create_data_ref_ptr, vect_transform_strided_load,
1576 vect_record_strided_load_vectors): Likewise.
1577 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1578 vect_model_load_cost, vectorizable_store, vectorizable_load,
1579 vect_remove_stores, new_stmt_vec_info): Likewise.
1580 * tree-vect-slp.c (vect_build_slp_tree,
1581 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1582
51c213f7
RG
15832011-05-18 Richard Guenther <rguenther@suse.de>
1584
1585 PR middle-end/48989
1586 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1587 operand verification.
1588 (verify_gimple_assign_binary): Likewise.
1589 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1590 to non-1-precision BOOLEAN_TYPEs.
1591
8f5e5434
TV
15922011-05-18 Tom de Vries <tom@codesourcery.com>
1593
1594 PR target/45098
1595 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1596
116bc3a4
JJ
15972011-05-18 Jakub Jelinek <jakub@redhat.com>
1598
1599 PR tree-optimization/49000
1600 * tree-ssa.c (execute_update_addresses_taken): Call
1601 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
1602 be rewritten and decl has been marked for renaming, reset
1603 the debug stmt.
1604
26a8964c
JM
16052011-05-17 Joseph Myers <joseph@codesourcery.com>
1606
1607 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1608 enum_opts_set when testing if attributes have set -mfpmath=.
1609
82bd45d7
RS
16102011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
1611
1612 * config/mips/mips.c (mips_handle_option): Remove unused variable.
1613
267ffce3
UB
16142011-05-17 Uros Bizjak <ubizjak@gmail.com>
1615
1616 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1617 info->entry with 0
1618 * tree-inline.c (maybe_inline_call_in_expr): Initialize
1619 id.transform_lang_insert_block with NULL.
1620
16212011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
1622
1623 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1624 (output_fp_compare): Change args 3 and 4 to bool.
1625 (ix86_expand_call): Change arg 6 to bool.
1626 (ix86_attr_length_immediate_default): Change arg 2 to bool.
1627 (ix86_attr_length_vex_default): Change arg 3 to bool.
1628 * config/i386/i386.md: Update all uses.
1629 * config/i386/i386.c: Ditto.
1630 (ix86_flags_dependent): Change return type to bool.
1631
5beaf664
RG
16322011-05-17 Richard Guenther <rguenther@suse.de>
1633
1634 * gimple.c (type_hash_pair_compare): Fix comparison.
1635
008bad7a
RG
16362011-05-17 Richard Guenther <rguenther@suse.de>
1637
1638 * gimple.c (iterative_hash_gimple_type): Simplify singleton
1639 case some more, fix final hash value of the non-singleton case.
1640
36461340
RG
16412011-05-17 Richard Guenther <rguenther@suse.de>
1642
1643 PR bootstrap/49013
1644 Revert
1645 2011-05-16 Richard Guenther <rguenther@suse.de>
1646
1647 * gimple.c (gimple_types_compatible_p_1): Use names of the
1648 type itself, not its main variant.
1649 (iterative_hash_gimple_type): Likewise.
1650
6b6a59f3
RG
16512011-05-17 Richard Guenther <rguenther@suse.de>
1652
1653 * gimple.c (gimple_register_canonical_type): Use the main-variant
1654 leader for computing the canonical type.
1655
4ffc4134
NC
16562011-05-17 Nick Clifton <nickc@redhat.com>
1657
a1d8754e
NC
1658 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1659 moves.
1660
4ffc4134
NC
1661 * config/rx/rx.md: Add peephole to remove redundant extensions
1662 after loads.
39960f7a
NC
1663 (bitset_in_memory): Use rx_restricted_mem_operand.
1664 (bitinvert_in_memory): Likewise.
1665 (bitclr_in_memory): Likewise.
4ffc4134 1666
b3db92ac
KI
16672011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
1668 Nick Clifton <nickc@redhat.com>
1669
1670 * config/rx/rx.md: Add peepholes to match a register move followed
1671 by a comparison of the moved register. Replace these with an
1672 addition of zero that does both actions in one instruction.
1673
8637e32a
JJ
16742011-05-17 Jakub Jelinek <jakub@redhat.com>
1675
1676 PR target/48986
1677 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1678 predicate to allow CONST_INT.
1679 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1680
8023568e
JM
16812011-05-16 Joseph Myers <joseph@codesourcery.com>
1682
1683 * opts-common.c (opt_enum_arg_to_value): New.
1684 * opts.h (opt_enum_arg_to_value): Declare.
1685 * config/i386/i386.opt (fpmath): Remove.
1686 (mfpmath=): Use Enum, Init and Save.
1687 (fpmath_unit): New Enum and EnumValue entries.
1688 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1689 name for function fpmath state.
1690 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1691 * config/i386/i386.c: Include diagnostic.h.
1692 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 1693 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 1694 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 1695 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
1696 (x86_function_specific_save, ix86_function_specific_restore):
1697 Don't handle fpmath state specially.
1698 (ix86_function_specific_print): Pass fpmath state to
1699 ix86_target_string instead of printing in this function.
1700 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1701 Handle enum attributes.
1702 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1703 (ix86_valid_target_attribute_tree): Update option_strings
1704 handling. Handle fpmath as enum option.
1705 (ix86_can_inline_p): Update field names for function fpmath state.
1706 (ix86_expand_builtin): Update call to ix86_target_string.
1707 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1708 (ix86_fpmath): Remove.
1709 * config/i386/t-i386 (i386.o): Update dependencies.
1710
9e8d926e
JM
17112011-05-16 Joseph Myers <joseph@codesourcery.com>
1712
1713 PR preprocessor/48677
1714 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1715 from decoded_options[0], not from itself.
1716
f6449011
UB
17172011-05-16 Uros Bizjak <ubizjak@gmail.com>
1718
1719 * config/i386/constraints.md (z): New constraint.
1720 * config/i386/i386.c (c): New mode attribute.
1721 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1722 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1723 constraint for operand 0.
1724 (*call_vzeroupper): Ditto.
1725 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1726 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1727 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1728 Use "lzm" constraint for operand 0.
1729 (*call_pop_vzeroupper): Ditto.
1730 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1731 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1732 constraint for operand 0.
1733 (*sibcall_vzeroupper): Ditto.
1734 (*sibcall_rex64_ms_sysv): Ditto.
1735 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1736 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1737 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1738 (*sibcall_pop_vzeroupper): Ditto.
1739 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1740 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1741 mode iterator. Use "<c>zm" constraint for operand 1.
1742 (*call_value_vzeroupper): Ditto.
1743 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 1744 for operand 1.
f6449011
UB
1745 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1746 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1747 *call_value_pop_1. Use "lzm" constraint for operand 1.
1748 (*call_value_pop_vzeroupper): Ditto.
1749 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1750 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1751 mode iterator. Use "Uz" constraint for operand 1.
1752 (*sibcall_value_vzeroupper): Ditto.
1753 (*sibcall_value_rex64_ms_sysv): Ditto.
1754 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1755 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1756 constraint for operand 1.
1757 (*sibcall_value_pop_vzeroupper): Ditto.
1758 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1759 and "z" constraint for operand 2.
1760 (*tls_global_dynamic_32_gnu): Ditto.
1761 (*tls_local_dynamic_base_32_gnu): Ditto.
1762 (*tls_local_dynamic_base_64): Ditto.
1763 (*tls_local_dynamic_32_once): Ditto.
1764 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1765 Update all callers.
1766 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1767
c11b6902
RG
17682011-05-16 Richard Guenther <rguenther@suse.de>
1769
1770 * gimple.c (gimple_types_compatible_p_1): Use names of the
1771 type itself, not its main variant.
1772 (iterative_hash_gimple_type): Likewise.
1773
1e83b5f1
RG
17742011-05-16 Richard Guenther <rguenther@suse.de>
1775
f6449011
UB
1776 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1777 always visit pointer target and function result and argument types.
1e83b5f1 1778
62e36382
JM
17792011-05-16 Jason Merrill <jason@redhat.com>
1780
1781 PR c++/48999
1782 * tree-inline.c (copy_statement_list): Put back recursion.
1783
687027a4
GJL
17842011-05-16 Georg-Johann Lay <avr@gjlay.de>
1785
1786 PR target/27663
1787 PR target/41076
1788 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1789 * config/avr/avr.md ("*ior<mode>qi.byte0",
1790 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1791
f24a5190
GJL
17922011-05-16 Georg-Johann Lay <avr@gjlay.de>
1793
1794 PR target/45099
1795 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1796 register is needed for a function argument.
1797
3066f593
RG
17982011-05-16 Richard Guenther <rguenther@suse.de>
1799
1800 * gimple.c (struct type_hash_pair): New type.
1801 (type_hash_pair_compare): New function.
f6449011 1802 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 1803
b2ab2cf4
RE
18042011-05-16 Revital Eres <revital.eres@linaro.org>
1805
f6449011 1806 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 1807
dfb737fc
UB
18082011-05-15 Uros Bizjak <ubizjak@gmail.com>
1809
1810 * config/i386/i386.md (floating point move splitters): Fix
1811 usage of standard_80387_constant_p.
f6449011 1812 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 1813
8caa1de0
UB
18142011-05-15 Uros Bizjak <ubizjak@gmail.com>
1815
1816 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1817
8a519095
EB
18182011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1819
1820 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1821 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1822 (tree_ssa_lim_finalize): Likewise.
1823
479fecd3
UB
18242011-05-14 Uros Bizjak <ubizjak@gmail.com>
1825
1826 * config/i386/constraint.md (Yd, Yx): New register constraints.
1827 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1828 Yd conditional register constraint.
1829 (*movtf_internal): Use standard_sse_constant_opcode.
1830 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1831 Yx conditional register constraint.
1832 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1833 Yd conditional register constraint. Use standard_sse_constant_p to
1834 check for valid SSE constants and call standard_sse_constant_opcode to
1835 output SSE insn.
1836 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1837 constants and call standard_sse_constant_opcode to output SSE insn.
1838 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1839 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1840 optimize_size is set.
1841 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1842
2d8c9ad5
TB
18432011-05-14 Tobias Burnus <burnus@net-b.de>
1844
1845 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1846
411a20d6
MJ
18472011-05-13 Martin Jambor <mjambor@suse.cz>
1848
1849 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1850 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1851 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1852 (evaluate_conditions_for_ipcp_clone): Removed.
1853 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1854 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1855 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1856
dc764d10
EB
18572011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1858
1859 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1860 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1861 lieu of MAY_HAVE_DEBUG_STMTS.
1862 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1863 debug statements if !MAY_HAVE_DEBUG_STMTS.
1864
9f47a24e
MT
18652011-05-13 Martin Thuresson <martint@google.com>
1866
1867 PR gcov-profile/47793
1868 * libgcov.c (gcov_exit): Support relative profile paths.
1869 * doc/invoke.texi (-fprofile-dir): Update for above change.
1870
b8a71aed
RG
18712011-05-13 Richard Guenther <rguenther@suse.de>
1872
1873 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1874 type-pair caching, do not compare hashes.
1875
eb9f9259
NF
18762011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1877
1878 PR middle-end/48965
1879 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1880 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1881
3c6cbf7a
KT
18822011-05-13 Kai Tietz <ktietz@redhat.com>
1883
1884 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1885 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1886 compatible type for TRUTH_NOT_EXPR.
1887
2e7f5dc0
L
18882011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1889
dc764d10 1890 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
1891 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1892 can_create_pseudo_p ().
1893
e834e95c
RG
18942011-05-13 Richard Guenther <rguenther@suse.de>
1895
1896 PR lto/48978
1897 * gimple.c (iterative_hash_gimple_type): Revert change in
1898 pointer target and function result and argument hashing.
1899
34203483
UB
19002011-05-13 Uros Bizjak <ubizjak@gmail.com>
1901
1902 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1903 (*movxf_internal_nointeger): Ditto.
1904 (*movdf_internal_rex64): Ditto.
1905 (*movdf_internal): Ditto.
1906 (*movdf_internal_nointeger): Ditto.
1907 (*movsf_internal): Ditto.
1908 (sincos splitters): Use can_create_pseudo ().
1909
7eb68c06
JM
19102011-05-13 Joseph Myers <joseph@codesourcery.com>
1911
1912 * config/i386/i386-opts.h: New.
1913 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1914 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1915 ix86_section_threshold): Remove.
1916 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1917 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1918 OPT_mbranch_cost_.
1919 (ix86_option_override_internal): Don't decode strings for options
1920 other than -march=, -mtune= and -mfpmath=. Don't allow for
1921 __attribute__ uses in remaining diagnostics for options with
34203483 1922 string arguments. Don't check for integer arguments being negative.
7eb68c06 1923 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 1924 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
1925 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1926 ix86_branch_cost, ix86_section_threshold): Remove.
1927 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1928 HeaderInclude.
1929 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1930 but not Var.
1931 (masm=): Use Enum and Init.
1932 (asm_dialect): New Enum and EnumValue entries.
1933 (mbranch-cost=): Use UInteger.
1934 (mlarge-data-threshold=): Use UInteger and Init.
1935 (mcmodel=): Use Enum and Init.
1936 (cmodel): New Enum and EnumValue entries.
1937 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1938 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1939 mregparm=): Use UInteger.
1940 (mstringop-strategy=): Use Enum and Init.
1941 (stringop_alg): New Enum and EnumValue entries.
1942 (mtls-dialect=): Use Enum and Init.
1943 (tls_dialect): New Enum and EnumValue entries.
1944 (mabi=): Use Enum and Init.
1945 (calling_abi): New Enum and EnumValue entries.
1946 (mveclibabi=): Use Enum and Init.
1947 (ix86_veclibabi): New Enum and EnumValue entries.
1948
f67e203c
NC
19492011-05-13 Nick Clifton <nickc@redhat.com>
1950
34203483
UB
1951 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1952 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 1953
221df0b6
KT
19542011-05-13 Kai Tietz <ktietz@redhat.com>
1955
1956 PR middle-end/48984
1957 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1958 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1959 (gimple_boolify): Check for cast for boolean_type_node instead for
1960 BOOLEAN_TYPE.
1961
208cb8cb
RG
19622011-05-13 Richard Guenther <rguenther@suse.de>
1963
1964 PR tree-optimization/48172
1965 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1966 multiplying by number of iterations for equal step.
1967 (vect_create_cond_for_alias_checks): Likewise.
1968
b88ecf55
AS
19692011-05-13 Andreas Schwab <schwab@redhat.com>
1970
1971 * configure.ac: Use AS_HELP_STRING throughout.
1972 * configure: Regenerate.
1973
569b527e
L
19742011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1975
34203483 1976 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
1977 (ix86_emit_restore_regs_using_mov): Likewise.
1978 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1979
8b9a1428
AS
19802011-05-12 Anatoly Sokolov <aesok@post.ru>
1981
1982 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1983 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1984 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1985 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1986 RTX_OK_FOR_OLO10_P): ...here.
1987 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1988 SYMBOLIC_CONST.
1989
1d15f620
KT
19902011-05-12 Kai Tietz <ktietz@redhat.com>
1991
1992 * gimplify.c (gimple_boolify): Re-boolify expression
1993 arguments even if expression type is of kind BOOLEAN_TYPE.
1994 (gimplify_boolean_expr): Removed.
1995 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1996 and XOR. Additional take care that we keep expression's type.
1997 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1998 of TRUTH_AND|OR|XOR_EXPR.
1999
c2b5fc8d
JJ
20002011-05-12 Jakub Jelinek <jakub@redhat.com>
2001
2002 PR tree-optimization/48975
2003 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
2004 on all bbs here and free and clear ifc_bbs at the end.
2005
61332f77
RG
20062011-05-12 Richard Guenther <rguenther@suse.de>
2007
2008 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
2009 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
2010 until after simple checks.
2011 (gimple_types_compatible_p): Likewise.
2012 (iterative_hash_gimple_type): Always hash pointer targets
2013 and function return and argument types.
2014 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
2015 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
2016 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
2017 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
2018 completely in the simple compare section.
2019 (gimple_register_canonical_type): Query the cache again after
2020 registering.
2021
e2a3a5f1
RG
20222011-05-12 Richard Guenther <rguenther@suse.de>
2023
2024 PR tree-optimization/48172
2025 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
2026 the number of iterations from the segment size calculation.
2027 (vect_create_cond_for_alias_checks): Adjust.
2028
2c703f3a
JJ
20292011-05-12 Jakub Jelinek <jakub@redhat.com>
2030
2031 PR debug/48967
2032 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
2033 if validate_subreg fails.
2034
20352011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
2036
2037 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
2038 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
2039 early.
2040
87e91fca
DD
20412011-05-12 DJ Delorie <dj@redhat.com>
2042
d53903d6 2043 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
2044 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
2045 created builtin into rx_builtins array.
2046 (rx_builtin_decl): New function.
34203483 2047 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 2048
5f2f13fd
DD
20492011-05-12 DJ Delorie <dj@redhat.com>
2050 Nick Clifton <nickc@redhat.com>
2051
2052 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
2053 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
2054 (rx_is_legitimate_address): Add pre-decrement and post-increment
2055 addressing in HImode and QImode. Fix test for out of range
2056 REG+INT addressing.
87e91fca 2057 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 2058 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 2059 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 2060 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 2061
57421f45
JM
20622011-05-11 Jason Merrill <jason@redhat.com>
2063
2064 * tree.c (type_hash_canon): Use struct tree_type_non_common.
2065
898c90c0
EB
20662011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2067
2068 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
2069 reindent the subsequent block.
2070
79bec923
ST
20712011-05-11 Satoru Takabayashi <satorux@google.com>
2072 Paul Pluzhnikov <ppluzhnikov@google.com>
2073
34203483 2074 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
2075 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
2076 * config.in: Add LINKER_HASH_STYLE.
2077 * configure.ac: Add --with-linker-hash-style.
2078 * configure: Regenerate.
79bec923 2079
d0340959
RG
20802011-05-11 Richard Guenther <rguenther@suse.de>
2081
2082 PR middle-end/48964
2083 * gimple.c (iterative_hash_canonical_type): Fix typo.
2084
cb032fee
UB
20852011-05-11 Uros Bizjak <ubizjak@gmail.com>
2086
2087 * config/i386/i386.c (legitimize_tls_address)
479fecd3 2088 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
2089 expanders directly for TARGET_GNU2_TLS. Determine pic and
2090 __tls_get_addr symbol reference here. Update call to
2091 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 2092 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
2093 expanders directly for TARGET_GNU2_TLS. Determine
2094 __tls_get_addr symbol reference here. Update call to
2095 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
2096 unique UNSPEC REG_EQUIV to libcall block.
2097 (ix86_tls_get_addr): Declare static.
2098 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
2099 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
2100 Do not determine pic and __tls_get_addr symbol reference here. Do not
2101 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
2102 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
2103 (tls_global_dynamic_64): Add operand 2. Do not determine
2104 __tls_get_addr symbol reference here. Do not call
2105 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
2106 (tls_local_dynamic_base64): Ditto for operand 1.
2107
6d3cc8f0
EB
21082011-05-11 Eric Botcazou <ebotcazou@adacore.com>
2109
2110 * function.c (expand_function_start): Initialize stack_check_probe_note
2111 only if the generic stack checking mechanism is used.
2112
51e020fc
RG
21132011-05-11 Richard Guenther <rguenther@suse.de>
2114
2115 PR tree-optimization/15256
2116 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
2117 (A & B) | C, combine (A op CST1) op CST2.
2118 (tree_ssa_forward_propagate_single_use_vars): Only bother to
2119 visit assigns that have uses.
2120
51545682
NF
21212011-05-11 Nathan Froyd <froydnj@codesourcery.com>
2122
cb032fee 2123 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
2124 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
2125 (unpack_ts_type_common_value_fields): ...this. Update comment.
2126 (unpack_value_fields): Adjust for renaming.
2127 (lto_input_ts_type_tree_pointers): Split into...
2128 (lto_input_ts_type_common_tree_pointer): ...this and...
2129 (lto_input_ts_type_non_common_tree_pointers): ...this.
2130 (lto_input_tree_pointers): Adjust for above split.
2131 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
2132 (pack_ts_type_common_value_fields): ...this. Update comment.
2133 (lto_output_ts_type_tree_pointers): Split into...
2134 (lto_output_ts_type_common_tree_pointers): ...this and...
2135 (lto_output_ts_type_non_common_tree_pointers): ...this.
2136 (lto_output_tree_pointers): Adjust for above split.
2137 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
2138 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
2139 * stor-layout.c (vector_type_mode): Adjust location of mode field.
2140 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
2141 Define.
2142 (struct tree_type): Split into...
2143 (struct tree_type_common: ...this and...
2144 (struct tree_type_with_lang_specific): ...this and...
2145 (struct tree_type_non_common): ...this. Adjust accessor macros
2146 accordingly.
2147 (TYPE_VALUES_RAW): Define.
2148 (union tree_node): Update for above changes.
2149 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2150 TS_TYPE_NON_COMMON.
2151 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2152 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2153 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2154 * treestructu.def (TS_TYPE): Remove.
2155 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2156 Define.
2157
b03c3082
JJ
21582011-05-11 Jakub Jelinek <jakub@redhat.com>
2159
2160 PR debug/48159
2161 * tree-ssa.c (reset_debug_uses): New function.
2162 * tree-flow.h (reset_debug_uses): New prototype.
2163 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2164 * tree-loop-distribution.c (generate_loops_for_partition): Call
2165 reset_debug_uses on the stmts that will be removed. Keep around
2166 all debug stmts, don't count them as bits in partition bitmap.
2167 (generate_builtin): Don't count debug stmts or labels as bits in
2168 partition bitmap.
2169
b5e04de5
RG
21702011-05-11 Richard Guenther <rguenther@suse.de>
2171
2172 * gimple.c (gimple_type_hash_1): Merge with ...
2173 (gimple_type_hash): ... this.
2174 (gtc_visit): Remove mode parameter and simplify accordingly.
2175 (gimple_types_compatible_p_1): Likewise.
2176 (gimple_types_compatible_p): Likewise.
2177 (iterative_hash_gimple_type): Likewise.
2178 (visit): Likewise.
2179 (gimple_type_eq): Adjust.
2180
fc6970e4
RE
21812011-05-11 Revital Eres <revital.eres@linaro.org>
2182
2183 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2184 enters the branch create an anti edge in the opposite direction
2185 to prevent the creation of reg-moves.
2186 * modulo-sched.c: Adjust comment to reflect the fact we are
2187 scheduling closing branch.
2188 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2189 (stage_count): New field in struct partial_schedule.
2190 (calculate_stage_count): New function.
2191 (normalize_sched_times): Rename to reset_sched_times and handle
2192 incrementing the sched time of the nodes by a constant value
2193 passed as parameter.
2194 (duplicate_insns_of_cycles): Skip closing branch.
2195 (sms_schedule_by_order): Schedule closing branch.
2196 (ps_insn_find_column): Handle closing branch.
2197 (sms_schedule): Call reset_sched_times and adjust the code to
2198 support scheduling of the closing branch.
2199 (ps_insert_empty_row): Update calls to normalize_sched_times
2200 and rotate_partial_schedule functions.
2201
41a58a92
RG
22022011-05-11 Richard Guenther <rguenther@suse.de>
2203
2204 PR middle-end/48953
2205 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2206
e9f8dcf9
JM
22072011-05-11 Joseph Myers <joseph@codesourcery.com>
2208
cb032fee
UB
2209 * opts.c (finish_options): Move warning settings from process_options.
2210 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 2211
10c224a9
RG
22122011-05-11 Richard Guenther <rguenther@suse.de>
2213
2214 PR tree-optimization/18041
2215 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2216 (simplify_bitwise_binary): ... this. Handle operand conversions
2217 by applying them to the result instead.
2218 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2219
825b27de
RG
22202011-05-11 Richard Guenther <rguenther@suse.de>
2221
2222 * gimple.c (gimple_canonical_types_compatible_p): Split out
2223 from gimple_types_compatible_p and friends. Do not recurse
2224 to pointed-to types.
2225 (gimple_canonical_type_eq): Use it.
2226 (iterative_hash_canonical_type): Split out from
2227 iterative_hash_gimple_type and friends. Do not recurse
2228 to pointed-to types.
2229 (gimple_canonical_type_hash): Use it, allocate the hash here.
2230
ca756625
RE
22312011-05-11 Revital Eres <revital.eres@linaro.org>
2232
2233 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2234 recognizing doloop.
2235
b8abece3
RE
22362011-05-11 Revital Eres <revital.eres@linaro.org>
2237
2238 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2239 instead of PREV_INSN.
2240
ce7b3761
RE
22412011-05-11 Revital Eres <revital.eres@linaro.org>
2242
2243 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2244 * loop-doloop.c (doloop_condition_get): Likewise.
2245 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2246 (doloop_end): New.
2247 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2248
a9dc9d37
NF
22492011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2250
2251 * tree.def (CASE_LABEL_EXPR): Add an operand.
2252 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2253
96703596
JM
22542011-05-10 Joseph Myers <joseph@codesourcery.com>
2255
2256 * c-decl.c (c_override_global_bindings_to_false): Remove.
2257 (global_bindings_p): Don't check
2258 c_override_global_bindings_to_false.
2259 * c-tree.h (c_override_global_bindings_to_false): Remove.
2260 * c-typeck.c (composite_type): Don't set
2261 c_override_global_bindings_to_false.
2262
dbcc9f08
MM
22632011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2264
2265 PR target/48857, 48495
2266 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2267 (VSX_MODE): Ditto.
2268 (VSX_MOVE_MODE): Ditto.
2269 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2270 VSX vector types. Add V2DImode.
2271 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2272 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2273 (MODES_TIEABLE_P): Ditto.
2274
2275 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2276 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2277 VSX_VECTOR_MODE.
2278 (init_cumulative_args): Ditto.
2279 (rs6000_function_arg_boundary): Ditto.
2280 (rs6000_function_arg_advance_1): Ditto.
2281 (rs6000_function_arg): Ditto.
2282 (rs6000_function_ok_for_sibcall): Ditto.
2283 (emit_frame_save): Ditto.
2284 (rs6000_function_value): Ditto.
2285 (rs6000_libcall_value): Ditto.
2286
4a68b4ca
JM
22872011-05-10 Joseph Myers <joseph@codesourcery.com>
2288
2289 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2290 i386/darwin-lib.h to $libgcc_tm_file.
2291 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2292
bcb521e9
JM
22932011-05-10 Joseph Myers <joseph@codesourcery.com>
2294
2295 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2296
f10d3ac9
JM
22972011-05-10 Joseph Myers <joseph@codesourcery.com>
2298
cb032fee 2299 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
2300 * config/rs6000/rs6000-tables.opt: New file (generated).
2301 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2302 rs6000/rs6000-tables.opt to extra_options.
2303 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2304 * config/rs6000/rs6000.c (rs6000_select): Remove.
2305 (processor_target_table): Move contents to rs6000-cpus.def.
2306 (darwin_rs6000_override_options): Check
2307 global_options_set.x_rs6000_cpu_index instead of
2308 rs6000_select[1].string.
2309 (rs6000_option_override_internal): Likewise.
2310 (rs6000_handle_option): Don't assert that global structures are in
2311 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
2312 (rs6000_default_cpu): New variable.
2313 (rs6000_file_start): Set it instead of local default_cpu. Check
2314 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2315 global_options_set.x_rs6000_tune_index instead of rs6000_select.
2316 (rs6000_darwin_file_start): Check rs6000_default_cpu and
2317 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2318 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2319 rs6000_select): Remove.
2320 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2321 Remove.
2322 (mcpu=, mtune=): Use Var, Init, Enum and Save.
2323 * config/rs6000/t-rs6000
2324 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2325 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2326 global_options_set.x_rs6000_cpu_index instead of
2327 rs6000_select[1].string.
2328 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2329 global_options_set.x_rs6000_cpu_index instead of
2330 rs6000_select[1].string.
2331
80cf2e08
JM
23322011-05-10 Joseph Myers <joseph@codesourcery.com>
2333
2334 * config.gcc (libgcc_tm_file): Define instead of including files
2335 from ../../libgcc/config/ in tm_file.
cb032fee 2336 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
2337 * configure: Regenerate.
2338 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2339 libgcc_tm.h, cs-libgcc_tm.h): New.
2340 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2341 (clean): Remove libgcc_tm.h.
2342 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2343 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2344 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2345
fd01a351
GJL
23462011-05-10 Georg-Johann Lay <avr@gjlay.de>
2347
2348 PR target/48896
2349 * config/avr/avr.c (avr_ret_register): Return unsigned int
2350 instead of int.
2351 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2352 it to avr_libcall_value.
2353 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2354 expand_expr.
2355 (avr_expand_binop_builtin): Ditto.
2356 (avr_expand_unop_builtin): Ditto.
2357
34cc3c86
DD
23582011-05-10 DJ Delorie <dj@redhat.com>
2359
2360 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2361 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2362 * config/rx/rx.c (rx_align_for_label): Add label and
2363 uses_threshold parameters. Do not align when the label is not
2364 used enough.
2365 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2366
be173289
RG
23672011-05-10 Richard Guenther <rguenther@suse.de>
2368
2369 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2370 a series of conversions and apply foldings similar to what
2371 fold-const does.
2372 (tree_ssa_forward_propagate_single_use_vars): Call it.
2373
e7f78021
JJ
23742011-05-10 Jakub Jelinek <jakub@redhat.com>
2375
6ae70ea2
JJ
2376 PR tree-optimization/48611
2377 PR tree-optimization/48794
2378 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2379 referenced from RESX or EH_DISPATCH arguments.
2380
e7f78021
JJ
2381 PR debug/48928
2382 * dfp.c (decimal_to_decnumber): Handle conversion from
2383 dconst{1,2,m1,half}.
2384
fca132b9
UB
23852011-05-09 Uros Bizjak <ubizjak@gmail.com>
2386
2387 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2388 for !flag_prefer_avx128.
2389 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2390
e4c03378
EB
23912011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2392
2393 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2394 (fold_ternary_loc): Use expr_location_or.
2395
805d6a75
L
23962011-05-09 H.J. Lu <hongjiu.lu@intel.com>
2397
2398 PR debug/48853
2399 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2400 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2401 Pmode and mem_mode is not VOIDmode.
2402
e4c03378 24032011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 2404
e4c03378
EB
2405 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2406 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 2407
51e7f377
UB
24082011-05-09 Uros Bizjak <ubizjak@gmail.com>
2409
2410 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2411 (const_pow2_1_to_8_operand): Ditto.
2412 (const_pow2_1_to_128_operand): Ditto.
2413 (const_pow2_1_to_32768_operand): Ditto.
2414 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2415 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
2416 in insn constraint to check integer value of operand 3.
2417 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2418
2419 (PINSR_MODE): New mode iterator.
2420 (sse2p4_1): New mode attribute.
2421 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2422 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2423 iterator. Use const_int_operand instead of
2424 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
2425 exact_log2 in insn constraint to check integer value of operand 3.
2426
24272011-05-09 Uros Bizjak <ubizjak@gmail.com>
2428
2429 * config/i386/sse.md (blendbits): Remove mode attribute.
2430 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2431 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2432 Check integer value of operand 3 in insn constraint.
2433
0ca8de87
RG
24342011-05-09 Richard Guenther <rguenther@suse.de>
2435
2436 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2437 for diagnostics.
2438 (lto_symtab_merge): Likewise. Do not register types here.
2439 (lto_symtab_merge_decls_2): Likewise.
2440 (lto_symtab_merge_decls_1): Likewise.
2441 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2442 * gimple.c (enum gtc_mode): Declare.
2443 (gimple_types_compatible_p): Make static.
2444
a9e6994a
AK
24452011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2446
2447 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2448 temporary register to match Pmode.
2449
fb55d62e
UB
24502011-05-09 Uros Bizjak <ubizjak@gmail.com>
2451
2452 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2453 and *vec_concatv4si_1_avx.
2454
eb1485a6
UB
24552011-05-09 Uros Bizjak <ubizjak@gmail.com>
2456
2457 PR rtl-optimization/48927
2458 * ira-conflicts.c (commutative_constraint_p): Use
2459 recog_data.alternative_enabled_p to disable alternatives where
2460 "enabled" attribute is false.
2461 (get_dup_num): Ditto.
2462 * ira-lives.c (single_reg_class): Ditto.
2463 (ira_implicitly_set_insn_hard_regs): Ditto.
2464
c46d001a
EB
24652011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2466
2467 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2468 (dataflow_set_preserve_mem_locs): Likewise.
2469
24702011-05-09 Philipp Thomas <pth@suse.de>
2471
6d9e7c41
PT
2472 * config/mep/mep.c (mep_validate_vliw): Syntax description
2473 should not be translated.
2474
d371df6f
JM
24752011-05-09 Joseph Myers <joseph@codesourcery.com>
2476
2477 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2478 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 2479 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
2480 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2481 MIPS_ARCH_OPTION_NATIVE): Define.
2482 * config/mips/mips.c (mips_cpu_info_table): Move contents to
2483 mips-cpus.def.
2484 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2485 mips_parse_cpu): Remove.
2486 (mips_cpu_info_from_opt, mips_default_arch): New.
2487 (mips_handle_option): Don't assert that global structures are in
2488 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2489 (mips_option_override): Use new variables and functions to set
eb1485a6 2490 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
2491 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2492 definition.
2493 * config/mips/mips.opt (march=): Use ToLower and Enum.
2494 (mips): Use ToLower, Enum and Var.
2495 (mtune=): Use ToLower and Enum.
2496 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2497
4fc07af9
JH
24982011-05-08 Jan Hubicka <jh@suse.cz>
2499
2500 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2501 Arrange type pairs to be UID ordered.
2502 (gimple_lookup_type_leader): Make inline.
2503
2cf320a8
NC
25042011-05-09 Nick Clifton <nickc@redhat.com>
2505
61d6def5
NC
2506 PR target/48899
2507 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2508 PROCESSOR_DEFAULT.
2509
2cf320a8
NC
2510 PR target/48897
2511 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2512 variable 's'.
2513
4f82319d
CLT
25142011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
2515
2516 * combine.c (simplify_comparison): Abstract out parts into...
2517 (simplify_compare_const): ... new function.
2518 (try_combine): Generalize parallel arithmetic/compare combining
2519 to call simplify_compare_const() and CANONICALIZE_COMPARE().
2520
74605a11
JH
25212011-05-08 Jan Hubicka <jh@suse.cz>
2522
2523 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
2524 (cgraph_create_virtual_clone): Call hooks once virtual clone
2525 is finished.
74605a11 2526 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
2527 * ipa-cp.c (ipcp_estimate_growth): Use
2528 estimate_ipcp_clone_size_and_time.
74605a11
JH
2529 * ipa-inline-transform.c (clone_inlined_nodes): Update.
2530 * lto-cgraph.c (input_node): Update.
2531 * ipa-inline.c (recursive_inlining): Update.
2532 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2533 (evaluate_conditions_for_known_args): Break out from ...
2534 (evaluate_conditions_for_edge): ... here.
2535 (evaluate_conditions_for_ipcp_clone): New function.
2536 (inline_node_duplication_hook): Update clone summary based
2537 on parameter map.
2538 (estimate_callee_size_and_time): Rename to ...
2539 (estimate_node_size_and_time): take NODE instead of EDGE;
2540 take POSSIBLE_TRUTHS as argument.
2541 (estimate_callee_size_and_time): Update.
2542 (estimate_ipcp_clone_size_and_time): New function.
2543 (do_estimate_edge_time): Update.
2544
5c049507
RG
25452011-05-08 Richard Guenther <rguenther@suse.de>
2546
2547 PR middle-end/48908
2548 PR middle-end/48905
2549 * expmed.c (expand_shift_1): Compute adjusted constant shift
2550 amount manually.
2551
f64c36ba
EB
25522011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2553
2554 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2555
c461a957
EB
25562011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2557
2558 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2559
7c74e556
JW
25602011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
2561
2562 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2563
b4c0a884
JH
25642011-05-07 Jan Hubicka <jh@suse.cz>
2565
a9bcb3f0
EB
2566 * ipa-inline-transform.c (inline_call): Account when program size
2567 decreases.
b4c0a884 2568 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
2569 (edge_badness): Reorganize to be power 2 based; fix thinko when
2570 computing badness for negative growth; update comments to match
2571 reality; better dumps.
b4c0a884 2572
c99c0026
EB
25732011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2574
2575 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2576 type to bool and adjust comment.
2577 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2578 (fold_mathfn_compare): Remove calls to global_bindings_p.
2579 (fold_inf_compare): Likewise.
2580 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2581 * c-tree.h (global_bindings_p): Adjust prototype.
2582 * c-decl.c (global_bindings_p): Return bool and simplify.
2583
1400c8e5
ZD
25842011-05-07 Zdenek Dvorak <ook@ucw.cz>
2585
2586 PR tree-optimization/48837
2587 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2588 when accumulator transformation is performed.
2589
5d0878e7
JH
25902011-05-06 Jan Hubicka <jh@suse.cz>
2591
a9bcb3f0
EB
2592 * i386.h (ix86_tune_indices): Add
2593 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 2594 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
2595 * i386.c (initial_ix86_tune_features): Add
2596 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
2597 (software_prefetching_beneficial_p): Remove predicate.
2598 (ix86_option_override_internal): Use new macro.
2599
58696ce5
JH
26002011-05-06 Jan Hubicka <jh@suse.cz>
2601
2602 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2603
c47d0034
JH
26042011-05-06 Jan Hubicka <jh@suse.cz>
2605
2606 * cgraph.c (cgraph_add_thunk): Create real function node instead
2607 of alias node; finalize it and mark needed/reachale; arrange visibility
2608 to be right and add it into the corresponding same comdat group list.
2609 (dump_cgraph_node): Dump thunks.
2610 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
2611 cgraph_function_with_gimple_body_p,
2612 cgraph_first_function_with_gimple_body,
c47d0034
JH
2613 cgraph_next_function_with_gimple_body): New functions.
2614 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2615 New macros.
2616 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2617 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2618 * cgraphunit.c (cgraph_finalize_function): Only look into possible
2619 devirtualization when optimizing.
2620 (verify_cgraph_node): Verify thunks.
2621 (cgraph_analyze_function): Analyze thunks.
2622 (cgraph_mark_functions_to_output): Output thunks only in combination
2623 with function they are assigned to.
2624 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2625 alias into normal node.
2626 (assemble_thunks): New functoin.
2627 (cgraph_expand_function): Use it.
2628 * lto-cgraph.c (lto_output_node): Stream thunks.
2629 (input_overwrite_node): Stream in thunks.
2630 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2631 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2632 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2633 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2634 (inline_analyze_function): Do not care about thunk jump functions.
2635 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
2636 * ipa-prop.c (ipa_prop_write_jump_functions): Use
2637 cgraph_function_with_gimple_body_p.
2638 * passes.c (do_per_function_toporder): Use
2639 cgraph_function_with_gimple_body_p.
c47d0034
JH
2640 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2641 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2642 (function_called_by_processed_nodes_p): Likewise.
2643
d8f426ec
JM
26442011-05-06 Joseph Myers <joseph@codesourcery.com>
2645
2646 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2647 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2648 entries.
2649 (mabi=): Replace with separate entries for mabi=altivec,
2650 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2651 mabi=ieeelongdouble and mabi=ibmlongdouble.
2652 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2653 check for -mabi=spe without SPE ABI support here.
2654 (rs6000_handle_option): Replace OPT_mabi_ handling with
2655 OPT_mabi_altivec and OPT_mabi_spe handling.
2656
80bde45b
CC
26572011-05-06 Cary Coutant <ccoutant@google.com>
2658
2659 * dwarf2out.c (contains_subprogram_definition): New function.
2660 (should_move_die_to_comdat): Call it.
2661
a91926b9
JL
26622011-05-06 Jeff Law <law@redhat.com>
2663
2664 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2665 remove_ctrl_stmt_and_useless_edges.
2666 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2667 (fixup_template_block, thread_single_edge): Likewise.
2668 (mark_threaded_blocks): Use THREAD_TARGET.
2669
1fc1b66d
AM
26702011-05-06 Alan Modra <amodra@gmail.com>
2671
2672 PR target/48900
2673 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2674 const0_rtx as the arg to the dummy __tls_get_addr libcall.
2675
e194de64
UB
26762011-05-06 Uros Bizjak <ubizjak@gmail.com>
2677
2678 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2679 constraint modifier to "r".
2680
d740dc9e
JM
26812011-05-06 Joseph Myers <joseph@codesourcery.com>
2682
2683 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2684 fall through for OPT_mcmodel_.
2685
cab78b15
AK
26862011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2687
2688 * config/s390/s390.c (s390_asm_trampoline_template): Comment
2689 instruction sizes.
e194de64 2690 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 2691
ee6824ae
RR
26922011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2693
eb1485a6
UB
2694 PR target/47930
2695 * config/arm/arm.opt (marm): Document it.
2696 (mthumb): Reject negative variant.
ee6824ae 2697
9ef58464
UB
26982011-05-06 Uros Bizjak <ubizjak@gmail.com>
2699
2700 PR target/48898
2701 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2702 Fix typo in "ccvt" variable name.
2703
155b6176
TG
27042011-05-06 Tristan Gingold <gingold@adacore.com>
2705
2706 PR target/48895
2707 * config/vms/vms-ar.c (main): Remove cwd variable.
2708
3becc47b
JJ
27092011-05-06 Jakub Jelinek <jakub@redhat.com>
2710
2711 PR debug/48902
2712 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2713
3d528853
NF
27142011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2715
2716 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2717 * gimplify.c (gimplify_switch_expr): Likewise.
2718 * omp-low.c (expand_omp_sections): Likewise.
2719 * tree-eh.c (lower_try_finally_switch): Likewise.
2720 (lower_eh_dispatch): Likewise.
2721 * tree.h (build_case_label): Declare.
2722 * tree.c (build_case_label): Define.
2723
deb5046b
JM
27242011-05-05 Jason Merrill <jason@redhat.com>
2725
2726 PR c++/40975
2727 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2728 (copy_statement_list): Don't recurse.
2729 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2730 STATEMENT_LIST.
2731
013c0411
JM
27322011-05-05 Joseph Myers <joseph@codesourcery.com>
2733
2734 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2735 through from -mfpu= handling.
2736 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2737
a0905f8b
BS
27382011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2739
2740 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2741 POST_MODIFY.
2742
fc4538e4
SE
27432011-05-05 Steve Ellcey <sje@cup.hp.com>
2744
2745 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2746 for 11.31.
2747 (hppa[12]*-*-hpux11*): Ditto.
2748 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2749 * config/ia64/hpux-unix2003.h: New.
2750 * config/pa/pa-hpux1131.opt: New.
2751 * config/pa/pa-hpux1131.h: New.
2752 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2753 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 2754 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 2755
1e30c578
JJ
27562011-05-05 Jakub Jelinek <jakub@redhat.com>
2757
2758 PR debug/48853
2759 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2760 instead of mode as 3rd argument to recursive call.
2761 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2762 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2763 VOIDmode.
2764 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2765 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2766 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2767 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2768
d19eb620
JB
27692011-05-05 Julian Brown <julian@codesourcery.com>
2770
2771 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2772 parenthesis in D-register case.
2773
c860fe8c
JM
27742011-05-05 Joseph Myers <joseph@codesourcery.com>
2775
2776 * opt-functions.awk (var_type_struct): Handle Enum options.
2777 * optc-gen.awk: Don't check range of variables of character type.
2778 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2779 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2780 rs6000_sdata_name, rs6000_explicit_options): Remove.
2781 (rs6000_option_override_internal): Check for -malign-power here.
2782 Use global_options_set instead of rs6000_explicit_options.
2783 (rs6000_parse_fpu_option): Remove.
2784 (rs6000_handle_option): Access variables via opts and opts_set
2785 pointers. Use error_at and warning_at. Add fall-through
2786 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2787 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2788 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2789 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2790 here. Don't use rs6000_parse_fpu_option.
2791 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2792 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2793 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2794 (mrecip=): Use Var.
2795 (mspe): Use Var and Save.
2796 (mtraceback=): Use Enum and Var.
2797 (rs6000_traceback_type): New Enum and EnumValue entries.
2798 (mfloat-gprs=): Use Enum, Var and Save.
2799 (rs6000_float_gprs): New Enum and EnumValue entries.
2800 (mlong-double-): use Var and Save.
2801 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2802 (malign-): Use Enum and Var.
2803 (rs6000_alignment_flags): New Enum and EnumValue entries.
2804 (mfpu=): Use Enum.
2805 (fpu_type_t): New Enum and EnumValue entries.
2806 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2807 global_options_set instead of rs6000_explicit_options.
2808 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2809 global_options_set instead of rs6000_explicit_options.
2810 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2811 global_options_set instead of rs6000_explicit_options.
2812 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2813 global_options_set instead of rs6000_explicit_options.
2814 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2815 global_options_set instead of rs6000_explicit_options.
2816 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2817 global_options_set instead of rs6000_explicit_options.
2818 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2819 definition.
2820 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2821 global_options_set instead of rs6000_explicit_options.
2822 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2823 (rs6000_cmodel): New Enum and EnumValue entries.
2824 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2825 global_options_set instead of rs6000_explicit_options.
2826 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2827 (mtls-size=): Use Enum and Var.
2828 (rs6000_tls_size): New Enum and EnumValue entries.
2829
0691dde9
MM
28302011-05-05 Michael Matz <matz@suse.de>
2831
2832 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2833 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2834 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2835 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2836 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2837 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2838 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2839 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2840 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2841 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2842 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2843 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2844 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2845 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2846 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2847 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2848
86529a49
RG
28492011-05-05 Richard Guenther <rguenther@suse.de>
2850
2851 * expmed.c (expand_variable_shift): Rename to ...
2852 (expand_shift_1): ... this. Take an expanded shift amount.
2853 For rotates recurse directly not building trees for the shift amount.
2854 (expand_variable_shift): Wrap around expand_shift_1.
2855 (expand_shift): Adjust.
2856
d0228c2e
JJ
28572011-05-05 Jakub Jelinek <jakub@redhat.com>
2858
2859 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2860
907a08d9
EB
28612011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2862
2863 * tree.h (get_pending_sizes): Remove prototype.
2864 (put_pending_size): Likewise.
2865 (put_pending_sizes): Likewise.
2866 * stor-layout.c (pending_sizes): Delete.
2867 (get_pending_sizes): Likewise.
2868 (put_pending_size): Likewise.
2869 (put_pending_sizes): Likewise.
2870 (variable_size): Do not call put_pending_size and tidy up.
2871 * function.h (struct function): Remove dont_save_pending_sizes_p.
2872 * lto-streamer-in.c (input_function): Do not stream it.
2873 * lto-streamer-out.c (output_function): Likewise.
2874 * tree-inline.c (initialize_cfun): Do not copy it.
2875 * c-decl.c (store_parm_decls): Do not set it.
2876 * omp-low.c (create_task_copyfn): Likewise.
2877 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2878
386d9c57
UB
28792011-05-05 Uros Bizjak <ubizjak@gmail.com>
2880
2881 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2882 conditions.
2883 (*movdf_internal): Ditto.
2884 (*movdf_internal_nointeger): Ditto.
2885 (*movsf_internal): Ditto.
2886
a04a722b
JM
28872011-05-05 Joseph Myers <joseph@codesourcery.com>
2888
2889 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2890 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2891 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2892 (c_variable_size): Remove.
2893 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2894 call put_pending_sizes.
2895 (get_parm_info): Add parameter expr. Use it to set
2896 arg_info->pending_sizes.
2897 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2898 get_pending_sizes.
2899 * c-parser.c (c_parser_parms_declarator): Update call to
2900 c_parser_parms_list_declarator.
2901 (c_parser_parms_list_declarator): Take parameter expr. Update
2902 call to push_parm_decl. Update recursive call. Don't call
2903 get_pending_sizes. Update calls to get_parm_info.
2904 (c_parser_objc_method_definition): Update calls to
2905 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 2906 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
2907 (c_parser_objc_method_decl): Add parameter expr. Update call to
2908 grokparm.
386d9c57 2909 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
2910 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2911 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2912
c92a6f97
MH
29132011-05-05 Michael Hope <michael.hope@linaro.org>
2914
386d9c57
UB
2915 PR pch/45979
2916 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2917 __ARM_EABI__ hosts.
c92a6f97 2918
07ea0048
UW
29192011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2920
2921 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2922 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2923 (spu_output_mi_thunk): New function.
2924
d634bfa1
RO
29252011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2926
2927 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2928 targetm.asm_out.print_operand.
2929 * config/sol2.c: Include target.h.
2930
40fda55b
JH
29312011-05-04 Jan Hubicka <jh@suse.cz>
2932
2933 * ipa-inline.c (reset_edge_caches): New function.
2934 (update_caller_keys): Add check_inlinablity_for; do not
2935 reset edge caches; remove now unnecesary loop.
386d9c57 2936 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
2937 (update_all_callee_keys): Likewise.
2938 (inline_small_functions): Sanity check cache; update code
2939 recomputing it.
2940
0360f70d
BS
29412011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2942
2943 PR rtl-optimization/47612
2944 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2945 as the last insn of the sequence to be moved.
2946
7a994646
TB
29472011-05-04 Tobias Burnus <burnus@net-b.de>
2948
2949 PR fortran/48864
2950 * doc/invoke.texi (Ofast): Document that it
2951 enables Fortran's -fno-protect-parens.
2952
7a2f7208
UB
29532011-05-04 Uros Bizjak <ubizjak@gmail.com>
2954
2955 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2956
a2d42931
EB
29572011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2958
2959 * stor-layout.c (variable_size): Do not issue errors.
2960
f81b1a3d
RG
29612011-05-04 Richard Guenther <rguenther@suse.de>
2962
2963 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2964 for array-ref indices.
2965 (tree_coverage_counter_addr): Likewise.
2966 (build_fn_info_type): Use size_int for index types.
2967 (build_gcov_info): Likewise.
2968
c62c040f
RG
29692011-05-04 Richard Guenther <rguenther@suse.de>
2970
2971 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2972 to build_int_cst.
2973 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2974 for constructor indices.
2975 (push_init_level): Likewise.
2976
1e3287d0
RG
29772011-05-04 Richard Guenther <rguenther@suse.de>
2978
2979 * explow.c (promote_mode): Move variable declarations before code.
2980
6c32445b
NF
29812011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2982
2983 * tree.h (build_function_type_array): Declare.
2984 (build_varargs_function_type_array): Declare.
2985 (build_function_type_vec, build_varargs_function_type_vec): Define.
2986 * tree.c (build_function_type_array_1): New function.
2987 (build_function_type_array): New function.
2988 (build_varargs_function_type_array): New function.
2989
fdabf269
RS
29902011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2991
2992 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2993 before setting STMT_VINFO_TYPE.
2994
a207915a
UW
29952011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2996
2997 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2998 instead of spu_pass_by_reference.
2999
5e617be8
AK
30002011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3001
3002 * calls.c (emit_library_call_value_1): Invoke
3003 promote_function_mode hook on libcall arguments.
3004 * explow.c (promote_function_mode, promote_mode): Handle TYPE
3005 argument being NULL.
3006 * targhooks.c (default_promote_function_mode): Lisewise.
3007 * config/s390/s390.c (s390_promote_function_mode): Likewise.
3008 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
3009
3010 * doc/tm.texi: Document that TYPE argument might be NULL.
3011
486d04be
SH
30122011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3013
3014 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
3015
9b19b026
SH
30162011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3017
3018 From Bernd Schmidt
3019 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
3020
502bc3df
RO
30212011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3022
3023 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
3024 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
3025 Move ...
3026 * mips-tfile.c: ... here.
3027 Don't include coretypes.h, tm.h, filenames.h.
3028 (saber_stop): Remove definition and all calls.
3029 [__SABER__]: Remove.
3030 (__LINE__): Remove default.
3031 (Size_t, Ptrdiff_t): Remove definitions.
3032 Replace by size_t, ptrdiff_t.
3033 [!MIPS_DEBUGGING_INFO]: Remove.
3034 (SHASH_SIZE, THASH_SIZE): Remove defaults.
3035 (progname): Add const.
3036 (STATIC): Remove.
3037 Replace all uses by static.
3038 (ALIGN_SYMTABLE_OFFSET): Remove default.
3039 * mips-tdump.c: Don't include coretypes.h, tm.h.
3040 Remove !MIPS_IS_STAB guard.
3041 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
3042 $(TM_H), filenames.h dependencies.
3043 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
3044
991eb6ef
SH
30452011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3046
3047 From Jie Zhang
3048 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
3049 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3050
420ccc84
SH
30512011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3052
3053 From Bernd Schmidt
3054 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
3055 account and save/restore RETS.
3056 (PROFILE_BEFORE_PROLOGUE): Define.
3057 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
3058 the push insn to use predecrement.
3059
9f8d69ee
SH
30602011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
3061
3062 From Jie Zhang
3063 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
3064
662c03f4
NC
30652011-05-04 Nick Clifton <nickc@redhat.com>
3066
3067 * config/mn10300/mn10300.c: Include cfgloop.h.
3068 (DUMP): New macro.
3069 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
3070 Lcc or a FLcc insn into the instruction stream.
3071 (mn10300_block_contains_call): New function. Returns true if the
3072 given basic block contains a CALL insn.
3073 (mn10300_loop_contains_call_insn): New function. Returns true if
3074 the given loop contains a CALL insn.
3075 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
3076 to use the SETLB and Lcc or FLcc insns.
3077 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
3078 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
3079 * config/mn10300/mn10300.opt (msetlb): New option. Used to
3080 disable the SETLB optimization.
3081 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3082 __SETLB__ or __NO_SETLB__.
3083 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
3084 (movsf_internal): Handle MDR register.
3085 (cmpsi): Make visible.
3086 (setlb): New pattern.
3087 (Lcc): New pattern.
3088 (FLcc): New pattern.
3089
843b6915
UB
30902011-05-04 Uros Bizjak <ubizjak@gmail.com>
3091
3092 PR target/48860
3093 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
3094 for reg<->xmm moves.
3095 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
3096 (vec_concatv2di_rex64_sse): Ditto.
3097 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
3098 (*vec_extractv2di_1_rex64): Ditto.
3099
3100 Revert:
3101 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3102
3103 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3104 reg<->xmm moves.
3105 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
3106
d35936ab
RG
31072011-05-04 Richard Guenther <rguenther@suse.de>
3108
3109 * tree.h (int_const_binop): Remove notrunc argument.
3110 * fold-const.c (int_const_binop): Remove notrunc argument. Always
3111 create integer constants that are properly truncated.
3112 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
3113 (const_binop): Remove zero notrunc argument to int_const_binop.
3114 (size_binop_loc): Likewise.
3115 (fold_div_compare): Likewise.
3116 (maybe_canonicalize_comparison_1): Likewise.
3117 (fold_comparison): Likewise.
3118 (fold_binary_loc): Likewise.
3119 (multiple_of_p): Likewise.
3120 * expr.c (store_constructor): Likewise.
3121 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3122 (maybe_fold_stmt_addition): Likewise.
3123 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
3124 * stor-layout.c (layout_type): Likewise.
3125 * tree-data-ref.c (tree_fold_divides_p): Likewise.
3126 * tree-sra.c (build_ref_for_offset): Likewise.
3127 (build_user_friendly_ref_for_offset): Likewise.
3128 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
3129 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3130 * tree-ssa-loop-niter.c (inverse): Likewise.
3131 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3132 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
3133 * tree-switch-conversion.c (check_range): Likewise.
3134 (build_constructors): Likewise.
3135 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
3136 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
3137 (extract_range_from_assert): Likewise.
3138 (vrp_int_const_binop): Likewise.
3139 (extract_range_from_binary_expr): Likewise.
3140 (extract_range_from_unary_expr): Likewise.
3141 (check_array_ref): Likewise.
3142 (find_case_label_range): Likewise.
3143 (simplify_div_or_mod_using_ranges): Likewise.
3144 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
3145 comparing case labels for merging.
3146
8992c063
MW
31472011-05-03 Mark Wielaard <mjw@redhat.com>
3148
3149 * dwarf2out.c (debug_str_hash_forced): Removed.
3150 (gen_label_for_indirect_string): Removed.
3151 (get_debug_string_label): Removed.
3152 (AT_string_form): Generate label directly.
3153 (output_indirect_string): Test indirect_string_node for
3154 DW_FORM_strp instead of checking label and refcount.
3155 (prune_indirect_string): Removed.
3156 (prune_unused_types): Don't check debug_str_hash_forced or
3157 call prune_indirect_string.
3158
4868e6ea
AO
31592011-05-04 Alexandre Oliva <aoliva@redhat.com>
3160
3161 PR other/48093
3162 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3163
01a5c0ab
AO
31642011-05-04 Alexandre Oliva <aoliva@redhat.com>
3165
3166 PR debug/47994
3167 PR debug/47919
3168 * combine.c (try_combine): Skip debug insns at m_split tests.
3169
6ac00218
MW
31702011-04-26 Mark Wielaard <mjw@redhat.com>
3171
3172 PR42288
3173 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3174 when info_section_emitted.
3175
3af42a7b
JM
31762011-05-03 Joseph Myers <joseph@codesourcery.com>
3177
3178 * config/mips/mips-opts.h: New.
3179 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3180 to mips-opts.h.
3181 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3182 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3183 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3184 via opts pointer.
3185 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3186 mips-opts.h.
3187 (mips_abi, mips_code_readable): Don't declare.
843b6915 3188 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
3189 (mabi=): Use Enum and Var.
3190 (mips_abi): New Enum and EnumValue entries.
3191 (mcode-readable=): Use Enum and Var.
3192 (mips_code_readable_setting): New Enum and EnumValue entries.
3193 (mr10k-cache-barrier=): Use Enum and Var.
3194 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3195
1cb1a99f
JH
31962011-05-03 Jan Hubicka <jh@suse.cz>
3197
3198 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3199 replace hash by pointer map.
3200 (cgraph_node_set_element_def, cgraph_node_set_element,
3201 const_cgraph_node_set_element, varpool_node_set_element_def,
3202 varpool_node_set_element, const_varpool_node_set_element): Remove.
3203 (free_cgraph_node_set, free_varpool_node_set): New function.
3204 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3205 * tree-emutls.c: Free varpool node set.
3206 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3207 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3208 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3209 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3210 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3211 Move here from ipa.c; implement using pointer_map
3212 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3213 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3214 debug_cgraph_node_set, varpool_node_set_new,
3215 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3216 dump_varpool_node_set, debug_varpool_node_set):
3217 Move to ipa-uitls.c.
3218 * passes.c (ipa_write_summaries): Update.
3219
7f31f4db
SH
32202011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3221
7a2f7208
UB
3222 From Mike Frysinger:
3223 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3224 bf542/bf544/bf547/bf548/bf549.
7f31f4db 3225
b70fce6d
UB
32262011-05-03 Uros Bizjak <ubizjak@gmail.com>
3227
3228 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3229
265b1d82
SH
32302011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3231
3232 From Bernd Schmidt:
3233 * config/bfin/bfin.md (MOVCC): New mode_macro.
3234 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3235 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3236 comments from generated assembly.
3237
f0b568f3
SH
32382011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3239
3240 From Bernd Schmidt
3241 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3242 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3243 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3244 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3245 * config/bfin/lib1funcs.asm (___muldi3): New function.
3246
2c67cf6e
NF
32472011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3248
3249 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3250 build_function_type_list instead of build_function_type.
3251 Rearrange initialization of `args' to do so.
3252
f9ac28ad
NF
32532011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3254
3255 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3256 instead of build_function_type.
3257
22b8798c
NF
32582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3259
3260 * config/rs6000/rs6000.c (spe_init_builtins): Call
3261 build_function_type_list instead of build_function_type.
3262 (paired_init_builtins, altivec_init_builtins): Likewise.
3263 (builtin_function_type): Likewise.
3264
4cb44528
NF
32652011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3266
3267 * config/sh/sh.c (sh_media_init_builtins): Call
3268 build_function_type_list instead of build_function_type.
3269
4c203a6a
NF
32702011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3271
3272 * config/sparc/sparc.c (sparc_file_end): Call
3273 build_function_type_list instead of build_function_type.
3274
d6a3d62b
NF
32752011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3276
3277 * config/alpha/alpha.c (alpha_init_builtins): Call
3278 build_function_type_list instead of build_function_type.
3279
de530b86
NF
32802011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3281
3282 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3283 build_function_type_list instead of build_function_type.
3284
baeec5f2
NF
32852011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3286
3287 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3288 build_function_type_list instead of build_function_type.
3289 Delete `endlink' variable.
3290
c19afe52
NF
32912011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3292
3293 * config/avr/avr.c (avr_init_builtins): Call
3294 build_function_type_list instead of build_function_type.
3295
a341df0a
NF
32962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3297
3298 * config/picochip/picochip.c (picochip_init_builtins): Call
3299 build_function_type_list instead of build_function_type.
3300 Delete `endlink' variable.
3301
2102b1e1
NF
33022011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3303
3304 * config/bfin/bfin.c (bfin_init_builtins): Call
3305 build_function_type_list instead of build_function_type.
3306
9f111209
SH
33072011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3308
3309 From Bernd Schmidt
3310 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3311 that's not CONST_INT. Seemingly redundant check is due to PR39768.
3312
7071d064
SH
33132011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3314
3315 From Jie Zhang:
3316 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3317 libbffastfp overrides libgcc when -mfast-fp.
3318
748f7574 33192011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
3320
3321 Originally from Bernd Schmidt
3322 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3323 * config/bfin/bfin.c (override_options): Test it and error if
3324 TARGET_FDPIC.
3325
1a3a9152
SH
33262011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3327
3328 Originally From Bernd Schmidt
3329 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3330 FD-PIC.
3331
7134c090
JL
33322011-05-03 Jeff Law <law@redhat.com>
3333
3334 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3335 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3336 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
3337 than accessing AUX field directly. Free the AUX field before
3338 clearing it.
7134c090
JL
3339 (thread_block, thread_through_loop_header): Likewise.
3340 (thread_single_edge, mark_threaded_blocks): Likewise.
3341 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
3342 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 3343
2c7eebae
BS
33442011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3345
3346 * function.c (init_function_start): Call decide_function_section.
3347 * varasm.c (decide_function_section): New function.
3348 (assemble_start_function): When not using
3349 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3350 or first_function_block_is_cold.
3351 * rtl.h (decide_function_section): Declare.
3352
17038fcf
JJ
33532011-05-03 Uros Bizjak <ubizjak@gmail.com>
3354 Jakub Jelinek <jakub@redhat.com>
3355
3356 PR target/48774
3357 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3358 only succeed if req_mode is the same as set_mode.
3359
3810076b
BS
33602011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3361
3362 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3363 * genemit.c (gen_exp): Handle RETURN.
3364 * emit-rtl.c (verify_rtx_sharing): Likewise.
3365 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3366 * rtl.c (copy_rtx): RETURN is shared.
3367 * rtl.h (enum global_rtl_index): Add GR_RETURN.
3368 (ret_rtx): New.
3369 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3370 * config/s390/s390.c (s390_emit_epilogue): Likewise.
3371 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3372 * config/cris/cris.c (cris_expand_return): Likewise.
3373 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3374 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3375 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3376 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3377 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3378 Likewise.
3379 * config/v850/v850.c (expand_epilogue): Likewise.
3380 * config/bfin/bfin.c (bfin_expand_call): Likewise.
3381 * config/arm/arm.md (epilogue): Likewise.
3382 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3383 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3384 variable to ret_reg.
3385
9efdb4ad
RG
33862011-05-03 Richard Guenther <rguenther@suse.de>
3387
3388 PR lto/48846
3389 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3390 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3391 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3392
60a45536
RG
33932011-05-03 Richard Guenther <rguenther@suse.de>
3394
3395 * c-decl.c (grokdeclarator): Instead of looking at
3396 TREE_OVERFLOW check if the constant fits in the index type.
3397
3188ed59
RS
33982011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3399
3400 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3401 (vec_store_lanes<mode><mode>): Likewise.
3402
272c6793
RS
34032011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3404
3405 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3406 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3407 convert_optab_index values.
3408 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3409 * genopinit.c (optabs): Initialize the new optabs.
3410 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3411 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3412 (expand_STORE_LANES): New functions.
3413 * tree.h (build_array_type_nelts): Declare.
3414 * tree.c (build_array_type_nelts): New function.
3415 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3416 (vect_model_load_cost): Likewise.
3417 (vect_store_lanes_supported, vect_load_lanes_supported)
3418 (vect_record_strided_load_vectors): Declare.
3419 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3420 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3421 (vect_transform_strided_load): Split out statement recording into...
3422 (vect_record_strided_load_vectors): ...this new function.
3423 * tree-vect-stmts.c (create_vector_array, read_vector_array)
3424 (write_vector_array, create_array_ref): New functions.
3425 (vect_model_store_cost): Add store_lanes_p argument.
3426 (vect_model_load_cost): Add load_lanes_p argument.
3427 (vectorizable_store): Try to use store-lanes functions for
3428 interleaved stores.
3429 (vectorizable_load): Likewise load-lanes and loads.
3430 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3431 to vect_model_store_cost.
3432 (vect_build_slp_tree): Likewise vect_model_load_cost.
3433
0f6d54f7
RS
34342011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3435
3436 * hooks.h (hook_bool_mode_uhwi_false): Declare.
3437 * hooks.c (hook_bool_mode_uhwi_false): New function.
3438 * target.def (array_mode_supported_p): New hook.
3439 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3440 * doc/tm.texi: Regenerate.
3441 * stor-layout.c (mode_for_array): New function.
3442 (layout_type): Use it.
3443 * config/arm/arm.c (arm_array_mode_supported_p): New function.
3444 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3445
b15eacc7
EB
34462011-05-03 Eric Botcazou <ebotcazou@adacore.com>
3447
3448 PR target/48723
3449 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3450 for -fstack-check if the size to allocate is negative.
3451
575bfb00
LC
34522011-05-02 Lawrence Crowl <crowl@google.com>
3453
3454 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3455 (timevar_cond_start): New for starting a timer only when it is not
3456 already running.
3457 (timevar_cond_stop): New for stopping a timer when it was not already
3458 running.
3459
3460 * timevar.c (timevar_stop): Enable start/stop timers to start again.
3461 (timevar_cond_start): New as above.
3462 (timevar_cond_stop): New as above.
3463
3464 * timevar.def: Add start/stop timers for compiler phases,
3465 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3466 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3467 and TV_PHASE_FINALIZE.
3468 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3469 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3470 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3471 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3472 Make unused TV_OVERLOAD into a start/stop timer.
3473
3474 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3475 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3476 to indicate that they are start/stop timers.
3477
3478 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3479 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3480 Move initialization to do_compile.
3481 (do_compile): Add initialization from above.
3482 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3483
3484 * c-decl.c (c_write_global_declarations): Add start/stop of
3485 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3486
3487 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3488 or TV_PARSE_INLINE, as appropriate.
3489 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3490 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3491
3533b943
JM
34922011-05-02 Jason Merrill <jason@redhat.com>
3493
3494 PR c++/40975
3495 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3496
2609a0ce
SM
34972011-05-02 Simon Martin <simartin@users.sourceforge.net>
3498
3499 PR c/35445
3500 * c-decl.c (finish_decl): Only create a composite if the types are
3501 compatible.
3502
6b0e4cbb
JM
35032011-05-02 Joseph Myers <joseph@codesourcery.com>
3504
3505 * config/fr30/fr30-protos.h (Mmode): Don't define.
3506 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
3507 definition where used.
3508 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3509 define. Expand definitions where used.
3510 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3511 Expand definitions where used.
3512 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3513 rx_function_arg, rx_function_arg_advance,
3514 rx_function_arg_boundary): Expand definitions of those macros.
3515 * config/v850/v850-protos.h (Mmode): Don't define. Expand
3516 definition where used.
3517
4e938ce6
UB
35182011-05-02 Uros Bizjak <ubizjak@gmail.com>
3519
3520 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3521 reg<->xmm moves.
3522 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3523 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
3524 with *movv2sf_internal_rex64_avx.
3525 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3526 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3527 Use %v prefix in insn mnemonic to handle TARGET_AVX.
3528 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
3529 "vex" in "prefix" attribute calculation.
3530 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
3531
36019c19
SH
35322011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
3533
7a2f7208
UB
3534 PR target/47951
3535 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3536 inputs match the output.
36019c19 3537
f69ea688
AS
35382011-05-02 Andreas Schwab <schwab@linux-m68k.org>
3539
3540 PR target/47955
3541 * config/m68k/m68k.c (m68k_expand_prologue): Set
3542 current_function_static_stack_size.
3543
c33406f5
JH
35442011-05-02 Jan Hubicka <jh@suse.cz>
3545
3546 * lto-streamer.c (lto_streamer_cache_insert_1,
3547 lto_streamer_cache_lookup, lto_streamer_cache_create,
3548 lto_streamer_cache_delete): Use pointer map instead of hashtable.
3549 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3550
47c94d21
JM
35512011-05-02 Joseph Myers <joseph@codesourcery.com>
3552
3553 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3554 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3555 config/m68k/t-opts: New files.
3556 * config/m68k/m68k-tables.opt: New file (generated).
3557 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3558 extra_options and m68k/t-opts to tmake_file.
3559 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3560 (all_isas): Initialize using m68k-isas.def.
3561 (all_microarchs): Initialize using m68k-microarchs.def.
3562 (m68k_find_selection): Remove.
3563 (m68k_handle_option): Don't assert that global structures are in
3564 use. Use error_at. Access variables via opts pointer. Don't
3565 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
3566 directly for -m68020-40 and -m68020-60.
3567 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3568 m68k_tune_entry here.
3569 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3570 to m68k-opts.h.
3571 (m68k_library_id_string): Remove declaration.
4e938ce6 3572 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
3573 (m68k_library_id_string): New Variable.
3574 (march=, mcpu=, mtune=): Use Enum and Var.
3575
e562bf36
RG
35762011-05-02 Richard Guenther <rguenther@suse.de>
3577
3578 * varasm.c (output_constructor_regular_field): Compute zero-based
3579 index with double-ints. Make sure to ICE instead of producing
3580 wrong code.
3581 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3582 in asserts. Properly use a signed type.
3583
6bec6c98
UB
35842011-05-02 Uros Bizjak <ubizjak@gmail.com>
3585
3586 * config/i386/sse.md (V): New mode iterator.
3587 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
3588 TARGET_SSE2.
3589 (V_256): Rename from AVX256MODE.
3590 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
3591 condition to all users.
3592 (VF1): Ditto.
3593 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
3594 condition to all users.
3595 (VF_128): Make V4SF mode unconditional.
3596 (VF_256): Rename from AVX256MODEF2P.
3597 (VI4F_128): Rename from SSEMODE4S.
3598 (VI8F_128): Rename from SSEMODE2D.
3599 (VI4F_256): Rename from AVX256MODE8P.
3600 (VI8F_256): Rename from AVX256MODE4P.
3601 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
3602 (ssescalarmodesuffix): Remove SF and DF modes.
3603 (SSEMODE124): Remove.
3604 (SSEMODE1248): Ditto.
3605 (SSEMODEF2P): Ditto.
3606 (AVXMODEF2P): Ditto.
3607 (AVXMODEFDP): Ditto.
3608 (AVXMODEFSP): Ditto.
3609 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
3610 unconditional.
3611 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
3612 unconditional.
3613 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
3614 xop_pcmov_<mode>256. Use V mode iterator.
3615
3616 Adjust RTX patterns globally for renamed mode attributes.
3617
2dfdcb4b
UW
36182011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3619
3620 * haifa-sched.c (sched_emit_insn): Emit insn before first
3621 non-scheduled insn. Inform back-end about new insn. Add
3622 new insn to scheduled_insns list.
3623
90bc4623
RG
36242011-05-02 Richard Guenther <rguenther@suse.de>
3625
3626 PR tree-optimization/48822
3627 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
3628 (process_scc): Indicate which iteration we start.
3629
bc0fe8cb
JH
36302011-05-02 Jan Hubicka <jh@suse.cz>
3631
3632 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
3633 (lto_section_overrun): New.
3634 * lto-section-out.c (append_block): Rename to ...
3635 (lto_append_block): ... this one; export.
3636 (lto_output_1_stream): Move lto lto-streamer.h
3637 (lto_output_data_stream): Update.
3638 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
3639 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
3640 functions.
3641
f070a9d1
RG
36422011-05-02 Richard Guenther <rguenther@suse.de>
3643
3644 * tree.c (tree_code_counts): New global array.
3645 (record_node_allocation_statistics): Count individual tree codes.
3646 (dump_tree_statistics): Dump individual code stats.
3647
09dfe187
JH
36482011-05-01 Jan Hubicka <jh@suse.cz>
3649
3650 * ipa-inline.c (caller_growth_limits): Fix thinko when
3651 looking for largest stack frame.
3652 * ipa-inline.h (dump_inline_summary): Declare.
3653 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
3654 on stack usage.
3655 (dump_inline_summary): Export.
3656 (debug_inline_summary): Declare as DEBUG_FUNCTION.
3657
6f76a878
AS
36582011-05-01 Anatoly Sokolov <aesok@post.ru>
3659
3660 * reginfo.c (memory_move_cost): Change rclass argument type form
3661 'enum reg_class' to reg_class_t.
3662 * reload.h (memory_move_cost): Update prototype.
3663 * postreload.c reload_cse_simplify_set): Change type dclass var to
3664 reg_class_t.
3665 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
3666 Update prototype.
3667 (ira_allocate_and_set_costs): Change aclass argument type form
3668 'enum reg_class' to reg_class_t.
6bec6c98 3669 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
3670 Change aclass argument type to reg_class_t.
3671 (update_conflict_hard_reg_costs): Change type aclass and pref vars
3672 to reg_class_t.
3673 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
3674 memory_move_cost call.
3675
3676 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
3677 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
3678 Change type tmp var to reg_class_t.
3679
9a4ac625
JH
36802011-04-30 Jan Hubicka <jh@suse.cz>
3681
3682 * ipa-inline.c (can_inline_edge_p): Disregard limits when
3683 inlining into function with flatten attribute.
3684 (want_inline_small_function_p): Be more realistic about inlining
3685 cold calls where callee size grows.
3686
dd8352ee
JH
36872011-04-30 Jan Hubicka <jh@suse.cz>
3688
3689 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
3690 flags.
3691
46e43d2b
AS
36922011-04-30 Anatoly Sokolov <aesok@post.ru>
3693
3694 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3695 PRINT_OPERAND_PUNCT_VALID_P): Remove.
3696 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3697 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3698 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3699 (print_operand): Rename to...
3700 (sparc_print_operand): ...this. Make static. Adjust
3701 sparc_print_operand function call.
3702 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3703 functions.
3704
ecb62563
JH
37052011-04-30 Jan Hubicka <jh@suse.cz>
3706
6bec6c98 3707 PR middle-end/48752
ecb62563
JH
3708 * ipa-inline.c (early_inliner): Disable when doing late
3709 addition of function.
3710
edb9b69e
JJ
37112011-04-30 Jakub Jelinek <jakub@redhat.com>
3712
be80a87e
JJ
3713 * dwarf2out.c (get_address_mode): New inline.
3714 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3715 if not dwarf_strict emit
3716 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3717 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3718 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3719 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3720 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3721 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3722 mem_loc_descriptor callers.
3723 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3724 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3725 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3726 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3727 (base_types): New variable.
3728 (get_base_type_offset, calc_base_type_die_sizes,
3729 base_type_for_mode, mark_base_types, base_type_cmp,
3730 move_marked_base_types): New functions.
3731 (calc_die_sizes): Assert that die_offset is 0 or equal to
3732 next_die_offset.
3733 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3734 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3735 callers. If not dwarf_strict, call mem_loc_descriptor even for
3736 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3737 (gen_subprogram_die): Don't give up on call site parameters
3738 with non-integral or large integral modes. Adjust
3739 mem_loc_descriptor callers.
3740 (prune_unused_types): Call prune_unused_types_mark on base_types
3741 vector entries.
3742 (resolve_addr): Call mark_base_types.
3743 (dwarf2out_finish): Call move_marked_base_types.
3744
edb9b69e
JJ
3745 PR tree-optimization/48809
3746 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3747 type.
3748 (gen_inbound_check): Don't compute index_expr - range_min in utype
3749 again, instead reuse SSA_NAME initialized in build_arrays.
3750 Remove two useless gsi_for_stmt calls.
3751
a6545a3d
JL
37522011-04-29 Jeff Law <law@redhat.com>
3753
3754 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3755
af8bca3c
MJ
37562011-04-29 Martin Jambor <mjambor@suse.cz>
3757
3758 * cgraph.h (cgraph_postorder): Remove declaration.
3759 * ipa-utils.h (ipa_free_postorder_info): Declare.
3760 (ipa_reverse_postorder): Likewise.
3761 * cgraphunit.c: Include ipa-utils.h.
3762 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3763 * ipa-inline.c: Include ipa-utils.h.
3764 (ipa_inline): Update call to ipa_reverse_postorder.
3765 * ipa-pure-const.c (propagate_pure_const): Update call to
3766 ipa_reduced_postorder and ipa_print_order. Call
3767 ipa_free_postorder_info to clean up.
3768 (propagate_nothrow): Likewise.
3769 * ipa-reference.c (propagate): Removed a useless call to
3770 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3771 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3772 * ipa.c: Include ipa-utils.h.
3773 (ipa_profile): Update call to ipa_reverse_postorder.
3774 (cgraph_postorder): Moved to...
3775 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3776 (ipa_utils_print_order): Renamed to ipa_print_order.
3777 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3778 comments.
3779 (ipa_free_postorder_info): New function.
3780 * passes.c: Include ipa-utils.h.
3781 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3782 (ipa_write_summaries): Likewise.
3783 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3784 (cgraphunit.o): Likewise.
3785 (ipa.o): Likewise.
3786 (ipa-inline.o): Likewise.
3787
b15c64ee
JH
37882011-04-29 Jan Hubicka <jh@suse.cz>
3789
3790 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3791 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3792 * ipa-inline.h (clause_t): Turn into unsigned int.
3793 * ipa-inline-analysis.c (add_clause): Do more simplification.
3794 (and_predicates): Shortcut more cases.
3795 (predicates_equal_p): Move forward; check that clauses are properly
3796 ordered.
3797 (or_predicates): Shortcut more cases.
3798 (edge_execution_predicate): Rewrite as...
3799 (set_cond_stmt_execution_predicate): ... this function; handle
3800 __builtin_constant_p.
3801 (set_switch_stmt_execution_predicate): New .
3802 (compute_bb_predicates): New.
3803 (will_be_nonconstant_predicate): Update TODO.
3804 (estimate_function_body_sizes): Use compute_bb_predicates
3805 and free them later, always try to estimate if stmt is constant.
3806 (estimate_time_after_inlining, estimate_size_after_inlining):
3807 Gracefully handle optimized out edges.
3808 (read_predicate): Fix off by one error.
3809
a88fdc2a
NP
38102011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3811
3812 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3813
d984c8ef
XDL
38142011-04-27 Xinliang David Li <davidxl@google.com>
3815
3816 * tree-profile.c (init_ic_make_global_vars): Set
3817 tls attribute on ic vars.
3818 * coverage.c (coverage_end_function): Initialize
3819 function_list with zero.
3820
45a2c477
RG
38212011-04-29 Richard Guenther <rguenther@suse.de>
3822
3823 * builtins.c (fold_builtin_classify_type): Use integer_type_node
3824 for the type of the result.
3825 (fold_builtin_isascii): Likewise.
3826 (fold_builtin_toascii): Use integer_type_node where appropriate.
3827 (fold_builtin_logb): Likewise.
3828 (fold_builtin_frexp): Likewise.
3829 (fold_builtin_strstr): Likewise.
3830 (fold_builtin_strpbrk): Likewise.
3831 (fold_builtin_fputs): Likewise.
3832 (fold_builtin_sprintf): Likewise.
3833 (fold_builtin_snprintf): Likewise.
3834 (fold_builtin_printf): Likewise.
3835 (do_mpfr_remquo): Use a proper type for the assigned constant.
3836 (do_mpfr_lgamma_r): Likewise.
3837 * dwarf2out.c (resolve_one_addr): Use size_int.
3838 * except.c (init_eh): Likewise.
3839 (assign_filter_values): Use integer_type_node for filter values.
3840 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3841 indices.
3842 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3843 for EH region numbers.
3844 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3845 for the shift amount.
3846
eb6c3df1
RG
38472011-04-29 Richard Guenther <rguenther@suse.de>
3848
3849 * expr.h (expand_shift): Rename to ...
3850 (expand_variable_shift): ... this.
3851 (expand_shift): Take a constant shift amount.
3852 * expmed.c (expand_shift): Rename to ...
3853 (expand_variable_shift): ... this.
3854 (expand_shift): New wrapper around expand_variable_shift.
3855 * expr.c (convert_move, emit_group_load_1, emit_group_store,
3856 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3857 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3858 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3859 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3860 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3861 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3862 emit_store_flag_1, emit_store_flag): Likewise.
3863 * builtins.c (expand_builtin_signbit): Likewise.
3864 * calls.c (load_register_parameters): Likewise.
3865 * function.c (assign_parm_setup_block): Likewise.
3866 * lower-subreg.c (resolve_shift_zext): Likewise.
3867 * optabs.c (widen_bswap, expand_abs_nojump,
3868 expand_one_cmpl_abs_nojump, expand_float): Likewise.
3869 * spu/spu.c (spu_expand_extv): Likewise.
3870 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3871
9f616812
RG
38722011-04-29 Richard Guenther <rguenther@suse.de>
3873
3874 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3875 for the remapped region number.
3876 * predict.c (build_predict_expr): Use integer_type_node for the
3877 predict kind.
3878 * fold-const.c (fold_binary_loc): Use integer_type_node for
3879 the shift amount. Use a proper type for the PLUS_EXPR operand.
3880
b823cdfe
MM
38812011-04-29 Michael Matz <matz@suse.de>
3882
3883 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3884 other trees that just builtins.
3885 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3886
413581ba
RG
38872011-04-29 Richard Guenther <rguenther@suse.de>
3888
3889 * tree-nested.c (get_trampoline_type): Use size_int.
3890 (get_nl_goto_field): Likewise.
3891 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3892 for all indexes.
3893 (lower_eh_constructs_2): Likewise.
3894 (lower_resx): Likewise.
3895 (lower_eh_dispatch): Likewise.
3896 * tree-mudflap.c (mf_build_string): Use size_int.
3897 (mudflap_register_call): Use integer_type_node for the flag.
3898 (mudflap_enqueue_constant): Use size_int.
3899 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3900 instead of rebuilding it.
3901
5c04e9f4
RG
39022011-04-29 Richard Guenther <rguenther@suse.de>
3903
3904 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3905 Handle OBJ_TYPE_REF.
3906 (find_func_aliases_for_call): Use it more consistently.
3907
5c24671b
AO
39082011-04-29 Alexandre Oliva <aoliva@redhat.com>
3909
3910 * haifa-sched.c (last_nondebug_scheduled_insn): New.
3911 (rank_for_schedule): Use it.
3912 (schedule_block): Set it.
3913
10adac51
XDL
39142011-04-28 David Li <davidxl@google.com>
3915
3916 * tree.c (crc32_string): Use crc32_byte.
3917 (crc32_byte): New function.
3918 * tree.h (crc32_byte): New function.
3919 * gcov.c (read_graph_file): Handle new cfg_cksum.
3920 (read_count_file): Ditto.
3921 * profile.c (instrument_values): Ditto.
3922 (get_exec_counts): Ditto.
3923 (read_profile_edge_counts): Ditto.
3924 (compute_branch_probabilities): Ditto.
3925 (compute_value_histograms): Ditto.
3926 (branch_prob): Ditto.
3927 (end_branch_prob): Ditto.
3928 * coverage.c (read_counts_file): Ditto.
3929 (get_coverage_counts): Ditto.
3930 (tree_coverage_counter_addr): Ditto.
3931 (coverage_checksum_string): Ditto.
3932 (coverage_begin_output): Ditto.
3933 (coverage_end_function): Ditto.
3934 (build_fn_info_type): Ditto.
3935 (build_fn_info_value): Ditto.
3936 * libgcov.c (gcov_exit): Ditto.
3937 * gcov-dump.c (tag_function): Ditto.
3938 (compute_checksum): Remove.
3939
5d6358a5
AM
39402011-04-29 Alan Modra <amodra@gmail.com>
3941
3942 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3943 unspec plus offset. Tidy macho code.
3944
85ad2ef5
MJ
39452011-04-29 Martin Jambor <mjambor@suse.cz>
3946
3947 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3948 node instead of a decl. Update all callers.
3949 * cgraph.h: Update declaration.
3950
437f4a00
IR
39512011-04-28 Ira Rosen <ira.rosen@linaro.org>
3952
3953 PR tree-optimization/48765
3954 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3955 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3956 to indicate if loop aware SLP is being used. Scan the statements
3957 and update the vectorization factor according to the type of
3958 vectorization before statement analysis.
3959 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3960 pass it to vect_analyze_loop_operations.
3961 (vectorizable_reduction): Set number of copies to 1 in case of pure
3962 SLP statement.
3963 * tree-vect-stmts.c (vectorizable_conversion,
3964 vectorizable_assignment, vectorizable_shift,
3965 vectorizable_operation, vectorizable_type_demotion,
3966 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3967 Likewise.
3968 (vectorizable_condition): Move the check that it is not SLP
3969 vectorization before the number of copies check.
3970 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3971 to vectorize the loop using SLP.
3972
c6fc44f3
JJ
39732011-04-28 Jakub Jelinek <jakub@redhat.com>
3974
3975 PR middle-end/48597
3976 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3977 inline asm.
3978
6c0170ea
JM
39792011-04-28 Joseph Myers <joseph@codesourcery.com>
3980
3981 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3982 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3983 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3984 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3985 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3986 linux*.h headers.
6bec6c98 3987 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
3988 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3989 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3990 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 3991 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
3992 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3993 REG_NAME.
3994 * config/i386/linux.h (REG_NAME): Don't define.
3995 * config/i386/linux64.h (REG_NAME): Don't define.
3996 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3997 Undefine before defining.
3998
970dabbd
JH
39992011-04-28 Jan Hubicka <jh@suse.cz>
4000
6bec6c98
UB
4001 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
4002 nonconstant_names array.
970dabbd
JH
4003 (estimate_function_body_sizes): Build nonconstant_names array; handle
4004 BUILT_IN_CONSTANT_P.
4005
8d3e3924
RG
40062011-04-28 Richard Guenther <rguenther@suse.de>
4007
4008 PR bootstrap/48804
4009 Revert
4010 2011-04-28 Richard Guenther <rguenther@suse.de>
4011
4012 * tree-ssa-structalias.c (solve_constraints): Build succ graph
4013 as late as possible.
6bec6c98 4014
8576f20a
RG
40152011-04-28 Richard Guenther <rguenther@suse.de>
4016
4017 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
4018 (debug_constraint): Do it here.
4019 (dump_constraints): And here.
4020 (rewrite_constraints): And here.
4021 (dump_constraint_edge): Remove.
4022 (dump_constraint_graph): Rewrite to produce DOT output.
4023 (solve_constraints): Build succ graph as late as possible.
4024 Dump constraint graphs before and after solving.
4025
e38811ce
RG
40262011-04-28 Richard Guenther <rguenther@suse.de>
4027
4028 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4029 New function split out from ...
4030 (find_func_aliases): ... here. Call it.
4031 (find_func_aliases_for_call): Likewise.
4032
fbaf0d0c
GDR
40332011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4034
4035 * internal-fn.h (internal_fn_name_array): Declare.
4036 (internal_fn_flags_array): Likewise.
4037
cbb734aa
UB
40382011-04-27 Uros Bizjak <ubizjak@gmail.com>
4039
4040 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
4041 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
4042 Move from sse.md.
4043 (ssemodefsuffix): Remove.
4044 (ssevecmodesuffix): New mode attribute.
4045 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
4046 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4047 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4048 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4049 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
4050 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
4051 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
4052 ssemodesuffix mode attribute.
4053 (float splitters): Use ssevecmodesuffix mode attribute.
4054 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
4055 (sseinsmode): Rename from avxvecmode.
4056 (avxsizesuffix): Rename from avxmodesuffix.
4057 (sseintvecmode): Rename from avxpermvecmode.
4058 (ssedoublevecmode): Rename from ssedoublesizemode.
4059 (ssehalfvecmode): Rename from avxhalfvecmode.
4060 (ssescalarmode): Rename from avxscalarmode.
4061 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
4062 templates for ssemodesuffix mode attribute.
4063 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
4064 mode attribute.
4065
4066 Adjust RTX patterns globally for renamed mode attributes.
4067
991278ab
JH
40682011-04-27 Jan Hubcika <jh@suse.cz>
4069
4070 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
4071 * ipa-inline-analysis.c: Include alloc-pool.h.
4072 (edge_predicate_pool): New.
4073 (trye_predicate_p): New function
4074 (false_predicate_p): New function.
4075 (add_clause): Sanity check that false clauses are "optimized";
4076 never add clauses to predicate that is already known to be false.
4077 (and_predicate): Use flase_predicate_p.
4078 (evaulate_predicate): Rename to ...
4079 (evaluate_predicate): ... this one; update all callers; assert
4080 that false is not listed among possible truths.
4081 (dump_predicate): Use true_predicate_p.
4082 (account_size_time): Use false_predicate_p.
4083 (evaulate_conditions_for_edge): Rename to ...
4084 (evaluate_conditions_for_edge) ... this one.
4085 (edge_set_predicate): New function.
4086 (inline_edge_duplication_hook): Duplicate edge predicates.
4087 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 4088 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
4089 (dump_inline_summary): Update.
4090 (estimate_function_body_sizes): Set edge predicates.
4091 (estimate_calls_size_and_time): Handle predicates.
4092 (estimate_callee_size_and_time): Update.
4093 (remap_predicate): Add toplev_predicate; update comment.
4094 (remap_edge_predicates): New function.
4095 (inline_merge_summary): Compute toplev predicate; update.
4096 (read_predicate): New function.
4097 (read_inline_edge_summary): Use it.
4098 (inline_read_section): Likewise.
4099 (write_predicate): New function.
4100 (write_inline_edge_summary): Use it.
4101 (inline_write_summary): Likewise.
4102 (inline_free_summary): Free alloc pool and edge summary vec.
4103
648b5f85
RG
41042011-04-27 Richard Guenther <rguenther@suse.de>
4105
4106 * tree-ssa-structalias.c (changed_count): Remove.
4107 (changed): Use a bitmap.
4108 (unify_nodes): Adjust.
4109 (do_sd_constraint): Likewise.
4110 (do_ds_constraint): Likewise.
4111 (do_complex_constraint): Likewise.
4112 (solve_graph): Likewise.
4113
4d5dcfb2
JH
41142011-04-27 Jan Hubicka <jh@suse.cz>
4115
4116 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
4117
200eb7d2
UB
41182011-04-27 Uros Bizjak <ubizjak@gmail.com>
4119
4120 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
4121 (avx_vperm2f128_*_operand): Ditto.
4122 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
4123 Use avx_vpermilp_parallel in insn condition.
4124 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
4125 Use avx_vperm2f128_parallel in insn condition.
4126
7d6e2521
RG
41272011-04-27 Richard Guenther <rguenther@suse.de>
4128
4129 * Makefile.in (tree-ssa-structalias.o): Remove
4130 gt-tree-ssa-structalias.h dependency.
4131 (GTFILES): Remove tree-ssa-structalias.c.
4132 * tree.c (allocate_decl_uid): New function.
4133 (make_node_stat): Use it.
4134 (copy_node_stat): Likewise.
4135 * tree.h (allocate_decl_uid): Declare.
4136 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
4137 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
4138 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 4139 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
4140 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
4141 (struct heapvar_map): Likewise.
4142 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
4143 heapvar_insert): Likewise.
4144 (make_heapvar_for): Rename to ...
4145 (make_heapvar): ... this. Simplify.
4146 (fake_var_decl_obstack): New global var.
4147 (build_fake_var_decl): New function.
4148 (make_constraint_from_heapvar): Adjust.
4149 (handle_lhs_call): Likewise.
4150 (create_function_info_for): Likewise.
4151 (intra_create_variable_infos): Likewise.
4152 (init_alias_vars): Allocate fake_var_decl_obstack.
4153 (init_alias_heapvars, delete_alias_heapvars): Remove.
4154 (compute_points_to_sets): Do not call init_alias_heapvars.
4155 (ipa_pta_execute): Likewise.
4156 (delete_points_to_sets): Free fake_var_decl_obstack.
4157
526ed6c2
UW
41582011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4159
4160 * config/spu/divmovti4.c (union qword_UTItype): New data type.
4161 (si_from_UTItype, si_to_UTItype): New functions.
4162 (__udivmodti4): Use them to implement type-punning.
4163 * config/spu/multi3.c (union qword_TItype): New data type.
4164 (si_from_TItype, si_to_TItype): New functions.
4165 (__multi3): Use them to implement type-punning.
4166
c187d33c
UW
41672011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4168
4169 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
4170
40982661
JH
41712011-04-27 Jan Hubicka <jh@suse.cz>
4172
4173 * ipa-prop.c (function_insertion_hook_holder): New holder.
4174 (ipa_add_new_function): New function.
200eb7d2
UB
4175 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
4176 Register/deregister holder.
40982661 4177
9aef53ee
RG
41782011-04-27 Richard Guenther <rguenther@suse.de>
4179
4180 PR tree-optimization/48772
200eb7d2 4181 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 4182
f63d806d
RG
41832011-04-27 Richard Guenther <rguenther@suse.de>
4184
4185 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
4186 TARGET_MEM_REF handling.
4187
e1ea7451
NC
41882011-04-27 Nick Clifton <nickc@redhat.com>
4189
9b5db25d
NC
4190 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
4191 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
4192 (REG_CLASS_NAMES): Likewise.
4193 (REG_CLASS_CONTENTS): Likewise.
4194 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4195 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
4196 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
4197 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
4198 (EVEN_REGS): New macro. Alias for QUAD_REGS.
4199 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
4200 duplicate register classes.
97d20907 4201 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
4202 (frv_register_move_cost): Likewise.
4203
e1ea7451
NC
4204 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
4205 end of the regno_reg_class array.
4206
5c2f94b4
JJ
42072011-04-27 Jakub Jelinek <jakub@redhat.com>
4208
4209 PR c/48742
4210 * c-typeck.c (build_binary_op): Don't wrap arguments if
4211 int_operands is true.
4212
57a944d7
KK
42132011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
4214
4215 PR target/48767
4216 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
4217 targetm.calls.must_pass_in_stack for void type.
4218
898b8927
JH
42192011-04-26 Jan Hubicka <jh@suse.cz>
4220
4221 * cgraphbuild.c (build_cgraph_edges): Update call
4222 of cgraph_create_edge and cgraph_create_indirect_edge.
4223 * cgraph.c (cgraph_create_edge_including_clones,
4224 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
4225 cgraph_update_edges_for_call_stmt_node): Do not take nest
4226 argument; do not initialize call_stmt_size/time.
4227 (dump_cgraph_node): Do not dump nest.
4228 (cgraph_clone_edge): Do not take loop_nest argument;
4229 do not propagate it; do not clone call_stmt_size/time.
4230 (cgraph_clone_node): Likewise.
4231 (cgraph_create_virtual_clone): Update.
4232 * cgraph.h (struct cgraph_edge): Remove
4233 call_stmt_size/call_stmt_time/loop_nest.
4234 (cgraph_create_edge, cgraph_create_indirect_edge,
4235 cgraph_create_edge_including_clones, cgraph_clone_node): Update
4236 prototype.
4237 * tree-emutls.c (gen_emutls_addr): Update.
4238 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
4239 loop_nest; handle indirect calls, too.
4240 (clone_inlined_nodes): Do not care about updating inline summaries.
4241 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
4242 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
4243 stream call_stmt_size/call_stmt_time/loop_nest.
4244 * ipa-inline.c (edge_badness): Update.
4245 (ipa_inline): dump summaries after inlining.
4246 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 4247 New.
898b8927
JH
4248 (inline_edge_summary): New function.
4249 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
4250 (inline_edge_removal_hook): Handle edge summaries.
4251 (inline_edge_duplication_hook): New hook.
4252 (inline_summary_alloc): Alloc hooks.
4253 (initialize_growth_caches): Do not register removal hooks.
4254 (free_growth_caches); Do not free removal hook.
4255 (dump_inline_edge_summary): New function.
4256 (dump_inline_summary): Use it.
4257 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
4258 (inline_update_callee_summaries): New function.
4259 (inline_merge_summary): Use it.
4260 (do_estimate_edge_time, do_estimate_edge_growth): Update.
4261 (read_inline_edge_summary): New function.
4262 (inline_read_section): Use it.
4263 (write_inline_edge_summary): New function.
4264 (inline_write_summary): Use it.
4265 (inline_free_summary): Free edge new holders.
4266 * tree-inline.c (copy_bb): Update.
4267
ffa03772
JM
42682011-04-26 Jason Merrill <jason@redhat.com>
4269
4270 * tree-eh.c (lower_try_finally_switch): Create the label along with
4271 the CASE_LABEL_EXPR.
4272
6d7b45ad
DM
42732011-04-26 David S. Miller <davem@davemloft.net>
4274 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4275
4276 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
4277 * configure: Regenerate.
4278
df10b6d4
MM
42792011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
4280
4281 PR target/48258
4282 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
4283 reduction.
4284 (VEC_reduc): New code iterator and splitters for vector reduction.
4285 (VEC_reduc_name): Ditto.
4286 (VEC_reduc_rtx): Ditto.
4287 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
4288 (reduc_<VEC_reduc_name>_v4sf): Ditto.
4289
4290 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4291 support for extracting SF on VSX.
4292
4293 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
4294 generating xscvspdp.
4295 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
4296 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
4297 double add, minimum, maximum vector reduction.
4298 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
4299 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
4300 optimize double vector reduction.
4301 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
4302
35a5db04
JM
43032011-04-26 Joseph Myers <joseph@codesourcery.com>
4304
4305 * config/fr30/fr30.h (inhibit_libc): Don't define.
4306 * config/m32r/m32r-protos.h: Correct comment.
4307 * config/v850/v850.h (GHS_default_section_names,
4308 GHS_current_section_names): Use tree, not union tree_node *.
4309
2f964ad6
XDL
43102011-04-26 Xinliang David Li <davidxl@google.com>
4311
200eb7d2 4312 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
4313 * c-family/c-opts.c (c_common_handle_option): Set
4314 warn_maybe_uninitialized.
4315 * opts.c (common_handle_option): Ditto.
4316 * common.opt: New option.
4317 * tree-ssa.c (warn_uninit): Add one more parameter.
4318 (warn_uninitialized_var): Pass warning code.
4319 * tree-flow.h: Interface change.
4320
4321
9c7bd91a
RO
43222011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4323
200eb7d2 4324 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
4325 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
4326 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
4327
c2f36e21
RO
43282011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4329
4330 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
4331 * config/mips/mips.opt (mmips-tfile): Remove.
4332
4333 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
4334 mips-tdump reference to ...
200eb7d2 4335 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
4336 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
4337 reference by Tru64 UNIX.
4338
2c9da85b
JJ
43392011-04-26 Jakub Jelinek <jakub@redhat.com>
4340
0c5f6539
JJ
4341 PR debug/48768
4342 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
4343 is error_mark_node, set value to NULL.
4344
2c9da85b
JJ
4345 PR tree-optimization/48734
4346 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
4347 if return value from maybe_fold_*_comparsions isn't something
4348 the code is prepared to handle.
4349
77fa1d54
UB
43502011-04-26 Uros Bizjak <ubizjak@gmail.com>
4351
4352 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
4353 mode check.
4354 (ext_QIreg_nomode_operands): Remove.
4355 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
4356 (*andsi_1): Ditto.
4357 (*andhi_1): Ditto.
4358
0e2a6c2b
AS
43592011-04-26 Andrew Stubbs <ams@codesourcery.com>
4360
4361 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
4362
961562d8
RB
43632011-04-26 Richard Guenther <rguenther@suse.de>
4364
4365 * c-typeck.c (build_unary_op): Do not expand array-refs via
4366 pointer arithmetic. Only adjust qualifiers for function types.
4367
43682011-04-26 Richard Guenther <rguenther@suse.de>
4369
4370 PR middle-end/48694
4371 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
4372 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
4373 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
4374 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 4375
a0d260fc
PC
43762011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
4377
6bec6c98 4378 * doc/extend.texi: Document __underlying_type.
a0d260fc 4379
4d583bb9
SB
43802011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
4381
4382 * config/rs6000/titan.md (automata_option "progress"): Remove.
4383
1f3fcdc3
JL
43842011-04-25 Jeff Law <law@redhat.com>
4385
4386 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
4387
e5b0dad8
JK
43882011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
4389
4390 * system.h (ENUM_BITFIELD): Remove.
4391
5157a881 43922011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 4393 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
4394
4395 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
4396 for STORE_FLAG_VALUE==-1 case.
4397
ed4c109e
RS
43982011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
4399
4400 PR target/43804
4401 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
4402 LEGITIMATE_PIC_OPERAND_P.
4403
f3181aa2
JH
44042011-04-24 Jan Hubicka <jh@suse.cz>
4405
4406 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
4407 WPA hack.
77fa1d54
UB
4408 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
4409 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
4410 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
4411 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
4412 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
4413 Sanity check predicate length.
4414 (remap_predicate): Likewise; sanity check jump functions.
4415 (inline_read_section, inline_write_summary): Sanity check
4416 predicate length.
4417
5307cbaa
PC
44182011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
4419
4420 PR other/48748
4421 * doc/extend.texi (Type Traits): Document __is_standard_layout,
4422 __is_literal_type, and __is_trivial; update throughout about
4423 possibly cv-qualified void types.
4424
bebd5f99
GP
44252011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
4426
4427 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
4428 testsuite and make it version agnostic.
4429
7ee28a74
JH
44302011-04-22 Jan Hubicka <jh@suse.cz>
4431
4432 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
4433
16997bc0
JJ
44342011-04-23 Jakub Jelinek <jakub@redhat.com>
4435
4436 PR c/48685
4437 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
4438 to VOID_TYPE even around MODIFY_EXPR.
4439
f94d4ab1
MS
44402011-04-22 Mike Stump <mikestump@comcast.net>
4441
1a84c183 4442 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
4443 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
4444 comment.
4445
632b4f8e
JH
44462011-04-22 Jan Hubicka <jh@suse.cz>
4447
4448 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
4449 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
4450 ipa-prop.c; update all uses.
632b4f8e 4451 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
4452 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
4453 merge summary of inlined function into former caller.
632b4f8e
JH
4454 * ipa-inline.c (max_benefit): Remove.
4455 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
4456 (update_caller_keys): Use
4457 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
4458 (update_callee_keys): Likewise.
4459 (update_all_callee_keys): Likewise.
77fa1d54
UB
4460 (inline_small_functions): Do not collect max_benefit; do not reset
4461 estimated_growth; call free_growth_caches and initialize_growth_caches.
4462 * ipa-inline.h (struct condition, type clause_t, struct predicate,
4463 struct size_time_entry): New structures.
632b4f8e 4464 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
4465 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
4466 and estimated_growth.
632b4f8e
JH
4467 (edge_growth_cache_entry): New structure.
4468 (node_growth_cache, edge_growth_cache): New global vars.
4469 (estimate_growth): Turn into inline.
4470 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
4471 initialize_growth_caches, free_growth_caches): Declare.
4472 (estimate_edge_growth): Rewrite.
4473 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
4474 (reset_node_growth_cache, reset_edge_growth_cache): New inline
4475 functions.
632b4f8e
JH
4476 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
4477 (NUM_CONDITIONS): New constant.
4478 (predicate_conditions): New enum.
4479 (IS_NOT_CONSTANT): New constant.
4480 (edge_removal_hook_holder): New var.
4481 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
4482 (true_predicate, single_cond_predicate, false_predicate,
4483 not_inlined_predicate, add_condition, add_clause, and_predicates,
4484 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
4485 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
4486 evaulate_conditions_for_edge): New functions.
4487 (inline_summary_alloc): Move to heap.
4488 (inline_node_removal_hook): Clear condition and entry vectors.
4489 (inline_edge_removal_hook): New function.
4490 (initialize_growth_caches, free_growth_caches): New function.
4491 (dump_inline_summary): Update.
4492 (edge_execution_predicate): New function.
4493 (will_be_nonconstant_predicate): New function.
4494 (estimate_function_body_sizes): Compute BB and constantness predicates.
4495 (compute_inline_parameters): Do not clear estimated_growth.
4496 (estimate_edge_size_and_time): New function.
4497 (estimate_calls_size_and_time): New function.
4498 (estimate_callee_size_and_time): New function.
4499 (remap_predicate): New function.
4500 (inline_merge_summary): New function.
4501 (do_estimate_edge_time): New function based on...
4502 (estimate_edge_time): ... this one.
4503 (do_estimate_edge_growth): New function.
4504 (do_estimate_growth): New function based on....
4505 (estimate_growth): ... this one.
4506 (inline_analyze_function): Analyze after deciding on jump functions.
4507 (inline_read_section): New function.
4508 (inline_read_summary): Use it.
4509 (inline_write_summary): Write all the new data.
4510 * ipa-prop.c (ipa_get_param_decl_index): Export.
4511 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
4512 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
4513 Declare.
4514 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
4515 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
4516 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
4517 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
4518 cgraph_edge_inlinable_p): Remove.
4519 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
4520 (cgraph_process_new_functions): Update call of
4521 compute_inline_parameters.
632b4f8e 4522
1df5b0db
RG
45232011-04-22 Richard Guenther <rguenther@suse.de>
4524
4525 * tree.c (build_int_cst): Properly create canonicalized integer
4526 constants.
4527 (build_int_cst_type): Remove scary comments.
4528
ae01169c
XDL
45292011-04-22 Xinliang David Li <davidxl@google.com>
4530
4531 * toplev.c (process_options): Enable -Werror=coverage-mismatch
4532 by default when -Wno-error is not specified.
4533 * opts-global.c (decode_options): Remove call to
4534 control_warning_options.
4535
93dfac24
JJ
45362011-04-22 Jakub Jelinek <jakub@redhat.com>
4537
4538 PR tree-optimization/48717
4539 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
4540 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
4541
1b5f5069
JM
45422011-04-22 Joseph Myers <joseph@codesourcery.com>
4543
4544 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
4545 definition where used.
4546
144f4153
JJ
45472011-04-22 Jakub Jelinek <jakub@redhat.com>
4548
4549 PR c/48716
4550 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
4551 TREE_STATIC variables declared inside of some OpenMP construct.
4552
f9fd305b
MJ
45532011-04-22 Martin Jambor <mjambor@suse.cz>
4554
4555 PR middle-end/48585
1d284ec5 4556 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 4557
49819fef
AM
45582011-04-22 Alexander Monakov <amonakov@ispras.ru>
4559
4560 PR c/36750
4561 * c-typeck.c (pop_init_level): Do not warn about initializing
4562 with ` = {0}'.
4563
401f6699
AM
45642011-04-22 Alan Modra <amodra@gmail.com>
4565
4566 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
4567 when returning call_cookie.
4568 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
4569 pointers, to functions with no more vector args than the current
4570 function, and some non-local calls for ABI_V4.
4571 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
4572 sibcall_nonlocal_aix64): Combine to ..
4573 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
4574 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
4575 (sibcall_value_nonlocal_aix<mode>): ..likewise.
4576 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
4577 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
4578 operand.
4579 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
4580 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
4581 sibcall_value_symbolic_64): Delete.
4582
903d1e67
XDL
45832011-04-21 Xinliang David Li <davidxl@google.com>
4584
4585 * cgraph.h: Remove pid.
4586 * cgraph.c: Remove pid.
4587 * value-prof.c (init_node_map): New function.
4588 (del_node_map): New function.
4589 (find_func_by_funcdef_no): New function.
4590 (gimple_ic_transform): Call new function.
4591 * cgraphunit.c (cgraph_finalize_function): Remove pid.
4592 * function.c (get_last_funcdef_no): New function.
4593 * function.h (get_last_funcdef_no): New function.
4594 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
4595 to libgcov function.
4596 (tree-profiling): Call node map init and delete function.
4597
7378e95f
ILT
45982011-04-21 Ian Lance Taylor <iant@google.com>
4599
4600 * godump.c (go_format_type): Use exported Go name for anonymous
4601 field name.
4602
e84a6fcf
NF
46032011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4604
4605 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
4606 Call builtin_function_type_list instead of builtin_function_type.
4607 (UNARY, BINARY, TRINARY, QUAD): Likewise.
4608
4fe058e2
NF
46092011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4610
4611 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
4612 build_function_type_list instead of build_function_type.
4613 Delete variable `endlink'.
4614
1ba0a2d2
NF
46152011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4616
4617 * config/s390/s390.c (s390_init_builtins): Call
4618 build_function_type_list instead of build_function_type.
4619
c0676219
NF
46202011-04-21 Nathan Froyd <froydnj@codesourcery.com>
4621
4622 * config/ia64/ia64.c (ia64_init_builtins): Call
4623 build_function_type_list instead of builtin_function_type.
4624
6ddfda8a
ER
46252011-04-21 Easwaran Raman <eraman@google.com>
4626
3a6448ea 4627 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
4628 (add_stack_var): ...and its reference here...
4629 (expand_stack_vars): ...and here.
4630 (stack_var_cmp): Sort by descending order of size.
4631 (partition_stack_vars): Change heuristic.
1d284ec5 4632 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
4633 (dump_stack_var_partition): Add newline after each partition.
4634
23756963
DA
46352011-04-21 Dimitrios Apostolou <jimis@gmx.net>
4636 Jeff Law <law@redhat.com>
4637
77fa1d54 4638 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
4639 * gengtype.c (matching_file_name_substitute): Likewise.
4640
aa2a43d2
RG
46412011-04-21 Richard Guenther <rguenther@suse.de>
4642
4643 PR lto/48703
1d284ec5 4644 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 4645
4d931f41
EB
46462011-04-21 Eric Botcazou <ebotcazou@adacore.com>
4647
4648 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
4649
f103fa7a
RG
46502011-04-21 Richard Guenther <rguenther@suse.de>
4651
4652 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
4653 file name.
4654
e19f6650
RG
46552011-04-21 Richard Guenther <rguenther@suse.de>
4656
4657 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4658 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
4659 Use DECL_P, not SSA_VAR_P.
4660 (ptr_derefs_may_alias_p): Likewise.
4661 (ptr_deref_may_alias_ref_p_1): Likewise.
4662 (decl_refs_may_alias_p): Likewise.
4663 (refs_may_alias_p_1): Likewise.
4664 (ref_maybe_used_by_call_p_1): Likewise.
4665 (call_may_clobber_ref_p_1): Likewise.
4666 (indirect_ref_may_alias_decl_p): Assume indirect refrences
4667 are either MEM_REF or TARGET_MEM_REF.
4668 (indirect_refs_may_alias_p): Likewise.
4669 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
4670 for MEM_EXPR of indirect calls.
4671
9d1831bb
TG
46722011-04-21 Tristan Gingold <gingold@adacore.com>
4673
4674 * vmsdbgout.c (write_srccorr): Compute file length from the string.
4675 (dst_file_info_struct): Remove flen field.
4676 (lookup_filename): Remove code that set flen field.
4677
f199c029
TG
46782011-04-21 Tristan Gingold <gingold@adacore.com>
4679
4680 * config/ia64/ia64.c (ia64_start_function): Add a guard.
4681
2894086e
UB
46822011-04-21 Uros Bizjak <ubizjak@gmail.com>
4683
4684 PR target/48708
4685 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
4686 vec_extract and vec_concat for non-SSE4_1 targets.
4687
53f94a5c
RG
46882011-04-21 Richard Guenther <rguenther@suse.de>
4689
4690 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
4691 return statements.
4692
f0dca5ba
JM
46932011-04-21 Joseph Myers <joseph@codesourcery.com>
4694
4695 * config/i386/cygming.h (union tree_node, TREE): Don't define or
4696 undefine.
4697 (FILE): Don't undefine.
4698
984514ac
JM
46992011-04-21 Joseph Myers <joseph@codesourcery.com>
4700
4701 * config/alpha/alpha.c (struct machine_function): Use rtx, not
4702 struct rtx_def *.
4703 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
4704 struct rtx_def *.
4705 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 4706 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
4707 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
4708 rtx_def *.
4709 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
4710 definitions where used.
4711 * config/microblaze/microblaze.h (struct microblaze_args): Use
4712 rtx, not struct rtx_def *.
4713 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
4714 rtx_def *.
2894086e
UB
4715 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
4716 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
4717 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
4718 not struct rtx_def *.
4719 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
4720 struct rtx_def *.
4721 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
4722 rtx_def *.
2894086e 4723 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 4724
0b5a2724
RS
47252011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4726
4727 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
4728 operand_equal_p to compare DR_BASE_ADDRESSes.
4729 (vect_check_interleaving): Likewise.
4730
4b18d683
RS
47312011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4732
4733 PR target/46329
4734 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
4735 for all Neon struct constants.
4736
1a627b35
RS
47372011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4738
4739 * target.def (legitimate_constant_p): New hook.
4740 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
4741 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
4742 * doc/tm.texi: Regenerate.
4743 * hooks.h (hook_bool_mode_rtx_true): Declare.
4744 * hooks.c (hook_bool_mode_rtx_true): Define.
4745 * system.h (LEGITIMATE_CONSTANT_P): Poison.
4746 * calls.c (precompute_register_parameters): Replace uses of
4747 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
4748 (emit_library_call_value_1): Likewise.
4749 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
4750 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
4751 * ira-costs.c (scan_one_insn): Likewise.
4752 * recog.c (general_operand, immediate_operand): Likewise.
4753 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
4754 * reload1.c (init_eliminable_invariants): Likewise.
4755
4756 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
4757 mode argument.
4758 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
4759 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
4760 argument.
4761 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4762 * config/alpha/predicates.md (input_operand): Update call to
4763 alpha_legitimate_constant_p.
4764
4765 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
4766 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
4767 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
4768 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4769 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
4770 (arm_legitimate_constant_p): New functions.
4771 (arm_cannot_force_const_mem): Make static.
4772
4773 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
4774
4775 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
4776 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
4777 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
4778 instead of bfin_legitimate_constant_p.
4779 (bfin_legitimate_constant_p): Make static. Add a mode argument.
4780 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4781
4782 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
4783
4784 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
4785
4786 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
4787 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
4788 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4789 (frv_legitimate_constant_p): Make static. Add a mode argument.
4790
4791 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
4792 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
4793 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
4794
4795 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
4796 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
4797 * config/i386/i386.c (legitimate_constant_p): Rename to...
4798 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
4799 argument.
4800 (ix86_cannot_force_const_mem): Update accordingly.
4801 (ix86_legitimate_address_p): Likewise.
4802 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4803 * config/i386/i386.md: Update commentary.
4804
4805 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
4806 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
4807 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4808 (ia64_legitimate_constant_p): Make static. Add a mode argument.
4809
4810 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
4811
4812 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
4813 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
4814 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4815 (lm32_legitimate_constant_p): Make static. Add a mode argument.
4816
4817 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
4818 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
4819 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
4820
4821 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
4822 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4823 (m32r_legitimate_constant_p): New function.
4824
4825 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
4826 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
4827 LEGITIMATE_CONSTANT_P.
4828 (LEGITIMATE_CONSTANT_P): Delete.
4829 * config/m68k/m68k.c (m68k_expand_prologue): Call
4830 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
4831 (m68k_legitimate_constant_p): New function.
4832 * config/m68k/m68k.md: Update comments.
4833
4834 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
4835 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4836 (mcore_legitimate_constant_p): New function.
4837
4838 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
4839 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
4840 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
4841 Add a mode argument.
4842 (mep_legitimate_address): Update accordingly.
4843 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4844
4845 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
4846 Delete.
4847 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
4848 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
4849 static. Check OP's mode for VOIDmode.
4850 (microblaze_legitimate_constant_p): New function.
4851 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4852
4853 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
4854 * config/mips/mips.c (mips_legitimate_constant_p): New function.
4855 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
4856 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4857 * config/mips/predicates.md: Update comments.
4858
4859 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
4860 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
4861 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4862 (mmix_legitimate_constant_p): Make static, return a bool, and take
4863 a mode argument.
4864 (mmix_print_operand_address): Update accordingly.
4865
4866 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
4867 Delete.
4868 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
4869 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
4870 static. Add a mode argument.
1a627b35
RS
4871 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4872
4873 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
4874
4875 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
4876 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4877 (pa_legitimate_constant_p): New function.
4878
4879 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
4880
4881 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
4882 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4883 (pdp11_legitimate_constant_p): New function.
4884
4885 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
4886 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4887 (rs6000_legitimate_constant_p): New function.
4888
4889 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
4890 (rx_legitimate_constant_p): ...this.
4891 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
4892 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
4893 (rx_legitimate_constant_p): ...this.
4894 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4895 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
4896
4897 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
4898 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
4899 * config/s390/s390.c (legitimate_constant_p): Rename to...
4900 (s390_legitimate_constant_p): ...this. Make static, return a bool,
4901 and add a mode argument.
4902 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4903
4904 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
4905
4906 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
4907 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4908 (sh_legitimate_constant_p): New function.
4909
4910 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
4911 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
4912 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4913 (legitimate_constant_p): Rename to...
4914 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
4915 argument.
4916 (constant_address_p): Update accordingly.
4917
4918 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
4919 argument and return a bool.
4920 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
4921 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4922 (spu_legitimate_constant_p): Add a mode argument and return a bool.
4923 (spu_rtx_costs): Update accordingly.
4924 * config/spu/predicates.md (vec_imm_operand): Likewise.
4925
4926 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
4927
4928 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
4929 * config/v850/v850.c (v850_legitimate_constant_p): New function.
4930 (TARGET_LEGITIMATE_CONSTANT_P): Define.
4931
4932 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
4933 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
4934 * config/vax/vax.c (legitimate_constant_p): Likewise.
4935
4936 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
4937 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
4938 (xtensa_legitimate_constant_p): New function.
4939
fbbf66e7
RS
49402011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
4941
4942 * target.def (cannot_force_const_mem): Add a mode argument.
4943 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
4944 * doc/tm.texi: Regenerate.
4945 * hooks.h (hook_bool_mode_rtx_false): Declare.
4946 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
4947 (hook_bool_mode_const_rtx_true): Likewise.
4948 (hook_bool_mode_rtx_false): New function.
4949 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
4950 to be non-VOID. Update call to cannot_force_const_mem.
4951 (find_reloads): Update accordingly.
4952 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
4953 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
4954 argument.
4955 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
4956 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
4957 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
4958 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
4959 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
4960 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
4961 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
4962 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4963 (m68k_cannot_force_const_mem): ...this new function.
4964 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
4965 argument.
4966 (mips_const_insns, mips_legitimize_const_move): Update calls.
4967 (mips_secondary_reload_class): Likewise.
4968 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
4969 (pa_cannot_force_const_mem): ...this new function.
2894086e 4970 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
4971 (rs6000_cannot_force_const_mem): ...this new function.
4972 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
4973 argument.
4974 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
4975 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
4976 to...
4977 (xtensa_cannot_force_const_mem): ...this new function.
4978
b861891b
NF
49792011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4980
4981 * config/mips/mips.c (mips16_build_function_stub): Call
4982 build_function_type_list instead of build_function_type.
4983 (mips16_build_call_stub): Likewise.
4984
34149ed5
NF
49852011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4986
4987 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
4988 instead of build_function_type.
4989
12526412
NF
49902011-04-20 Nathan Froyd <froydnj@codesourcery.com>
4991
4992 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
4993 instead of build_function_type.
4994
3b84d61f
UB
49952011-04-20 Uros Bizjak <ubizjak@gmail.com>
4996
4997 PR target/48678
4998 * config/i386/i386.md (insv): Change operand 0 constraint to
4999 "register_operand". Change operand 1 and 2 constraint to
5000 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
5001 * config/i386/sse.md (sse4_1_pinsrb): Export.
5002 (sse2_pinsrw): Ditto.
5003 (sse4_1_pinsrd): Ditto.
5004 (sse4_1_pinsrq): Ditto.
5005 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
5006 * config/i386/i386.c (ix86_expand_pinsr): New.
5007
4a25752b
ER
50082011-04-20 Easwaran Raman <eraman@google.com>
5009
5010 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
5011 containing union type only with -fstrict-aliasing.
5012
04695783
JM
50132011-04-20 Jim Meyering <meyering@redhat.com>
5014
5015 Remove useless if-before-free tests.
5016 * calls.c (expand_call, save_area): Likewise.
5017 * cfgcleanup.c (try_forward_edges): Likewise.
5018 * collect2.c (collect_execute): Likewise.
5019 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
5020 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
5021 * coverage.c (coverage_checksum_string): Likewise.
5022 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
5023 * cselib.c (cselib_init): Likewise.
5024 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
5025 (df_set_clean_cfg): Likewise.
5026 * function.c (free_after_compilation): Likewise.
5027 * gcc.c (do_spec_1, main): Likewise.
5028 * gcov.c (create_file_names): Likewise.
5029 * gensupport.c (identify_predicable_attribute): Likewise.
5030 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
5031 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
5032 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
5033 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
5034 * ipa-pure-const.c (local_pure_const): Likewise.
5035 * ipa-reference.c (propagate): Likewise.
5036 * ira-costs.c (free_ira_costs): Likewise.
5037 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
5038 * matrix-reorg.c (mat_free): Likewise.
5039 * prefix.c (get_key_value): Likewise.
5040 * profile.c (compute_value_histograms): Likewise.
5041 * reload1.c (free_reg_equiv): Likewise.
5042 * sched-deps.c (free_deps): Likewise.
5043 * sel-sched-ir.c (fence_clear): Likewise.
5044 * sese.c (set_rename, if_region_set_false_region): Likewise.
5045 * tree-data-ref.c (free_rdg): Likewise.
5046 * tree-eh.c (lower_try_finally): Likewise.
5047 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
5048 * tree-ssa-live.c (delete_var_map): Likewise.
5049 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
5050 * tree-ssa-pre.c (phi_trans_add): Likewise.
5051
6788475a
JJ
50522011-04-20 Jakub Jelinek <jakub@redhat.com>
5053
5054 PR tree-optimization/48611
5055 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
5056 beyond ERT_MUST_NOT_THROW region.
5057
0eda4033
CM
50582011-04-20 Catherine Moore <clm@codesourcery.com>
5059
5060 * config/mips/mips.opt (mfix-24k): New.
5061 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
5062 * config/mips/mips.md (length): Increase by 4 for stores if
5063 fixing 24K errata.
5064 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
5065 all noreorder if fixing 24K errata.
5066 * doc/invoke.texi: Document mfix-24k.
5067
01475747
CLT
50682011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
5069
5070 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 5071 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 5072
bc2c1a60
AS
50732011-04-20 Andrew Stubbs <ams@codesourcery.com>
5074
5075 * config/arm/arm.c (arm_gen_constant): Move movw support ....
5076 (const_ok_for_op): ... to here.
5077
583722ee
KT
50782011-04-20 Kai Tietz <ktietz@redhat.com>
5079
2894086e
UB
5080 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
5081 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 5082
422c0989
AS
50832011-04-20 Andrew Stubbs <ams@codesourcery.com>
5084
5085 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
5086
d7978bff
RG
50872011-04-20 Richard Guenther <rguenther@suse.de>
5088
5089 PR tree-optimization/47892
5090 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
5091 are if-convertible.
5092
818412ba
EB
50932011-04-20 Eric Botcazou <ebotcazou@adacore.com>
5094
5095 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
5096
b501ce4e
TG
50972011-04-20 Tristan Gingold <gingold@adacore.com>
5098
5099 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
5100
516edfdd
GJL
51012011-04-20 Georg-Johann Lay <avr@gjlay.de>
5102
5103 PR target/18145
5104
5105 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
5106 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
5107 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
5108 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
5109 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
5110
5111 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
5112 New prototype.
5113
5114 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
5115 (avr_asm_named_section, avr_asm_output_aligned_common,
5116 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
5117 New functions to update...
5118 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
5119 (avr_asm_init_sections): Overwrite section callbacks for
5120 data_section, bss_section.
5121 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
5122 from here to...
5123 (avr_file_end): ...here.
5124
dafc9511
RG
51252011-04-20 Richard Guenther <rguenther@suse.de>
5126
5127 PR middle-end/48695
5128 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 5129 objects and types here. Adjust for their offset before comparing.
dafc9511 5130
1da0876c
RS
51312011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5132
5133 * tree-vect-stmts.c (vectorizable_store): Only chain one related
5134 statement per copy.
5135
25583c4f
RS
51362011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
5137
5138 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
5139 (GIMPLE_H): Include $(INTERNAL_FN_H).
5140 (OBJS-common): Add internal-fn.o.
5141 (internal-fn.o): New rule.
5142 * internal-fn.def: New file.
5143 * internal-fn.h: Likewise.
5144 * internal-fn.c: Likewise.
5145 * gimple.h: Include internal-fn.h.
5146 (GF_CALL_INTERNAL): New gf_mask.
5147 (gimple_statement_call): Put fntype into a union with a new
5148 internal_fn field.
5149 (gimple_build_call_internal): Declare.
5150 (gimple_build_call_internal_vec): Likewise.
5151 (gimple_call_same_target_p): Likewise.
5152 (gimple_call_internal_p): New function.
5153 (gimple_call_internal_fn): Likewise.
5154 (gimple_call_fntype): Return null for internal calls.
5155 (gimple_call_set_fntype): Assert that the function is not internal.
5156 (gimple_call_set_fn): Likewise.
5157 (gimple_call_set_fndecl): Likewise.
5158 (gimple_call_set_internal_fn): New function.
5159 (gimple_call_addr_fndecl): Handle null functions.
5160 (gimple_call_return_type): Likewise null types.
5161 * gimple.c (gimple_build_call_internal_1): New function.
5162 (gimple_build_call_internal): Likewise.
5163 (gimple_build_call_internal_vec): Likewise.
5164 (gimple_call_same_target_p): Likewise.
5165 (gimple_call_flags): Handle calls to internal functions.
5166 (gimple_call_fnspec): New function.
5167 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
5168 (gimple_has_side_effects): Handle null functions.
5169 (gimple_rhs_has_side_effects): Likewise.
5170 (gimple_call_copy_skip_args): Handle calls to internal functions.
5171 * cfgexpand.c (expand_call_stmt): Likewise.
5172 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
5173 * gimple-fold.c (gimple_fold_call): Handle null functions.
5174 (gimple_fold_stmt_to_constant_1): Don't fold
5175 calls to internal functions.
5176 * gimple-low.c (gimple_check_call_args): Handle calls to internal
5177 functions.
5178 * gimple-pretty-print.c (dump_gimple_call): Likewise.
5179 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
5180 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
5181 (do_warn_unused_result): Likewise.
5182 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
5183 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
5184 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
5185 the target of a call.
5186 (initialize_hash_element): Update accordingly.
5187 (hashable_expr_equal_p): Use gimple_call_same_target_p.
5188 (iterative_hash_hashable_expr): Handle calls to internal functions.
5189 (print_expr_hash_elt): Likewise.
5190 * tree-ssa-pre.c (can_value_number_call): Likewise.
5191 (eliminate): Handle null functions.
5192 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
5193 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
5194 (find_func_aliases): Likewise.
5195 * value-prof.c (gimple_ic_transform): Likewise.
5196 (gimple_indirect_call_to_profile): Likewise.
5197 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5198 * lto-streamer-out.c (output_gimple_stmt): Likewise.
5199
1a3118e9
JH
52002011-04-19 Jan Hubicka <jh@suse.cz>
5201
5202 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
5203 * ipa-inline.c (inline_small_functions): Compute summaries first,
5204 populate heap later.
1a3118e9 5205
fee8b6da
JH
52062011-04-19 Jan Hubicka <jh@suse.cz>
5207
5208 * cgraph.h (save_inline_function_body): Remove.
5209 * ipa-inline-transform.c: New file, broke out of...
5210 * ipa-inline.c: ... this one; Update toplevel comment.
5211 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
5212 make global.
5213 (update_noncloned_frequencies): Move to ipa-inline-transform.c
5214 (cgraph_mark_inline_edge): Rename to inline_call; move to
5215 ipa-inline-transform.c.
5216 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
5217 move to ipa-inline-transform.c
5218 (recursive_inlining, inline_small_functions, flatten_function,
5219 ipa_inline, inline_always_inline_functions,
5220 early_inline_small_functions): Update.
5221 (inline_transform): Move to ipa-inline-transform.c.
5222 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
5223 Declare.
5224 * Makefile.in (ipa-inline-transform.o): New file.
5225 * cgraphunit.c (save_inline_function_body): Move to
5226 ipa-inline-transform.c
5227
f0679612
DD
52282011-04-19 DJ Delorie <dj@redhat.com>
5229
5230 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
5231 registers if we already know there aren't any.
5232 (m32c_emit_epilogue): Don't emit a barrier here.
5233 (m32c_emit_eh_epilogue): Likewise.
5234 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
5235 operands at expand time.
5236 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
5237 int" wchar type.
5238 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
5239 duplicates. Provide aliases instead.
5240 * config/m32c/prologue.md (eh_return): Emit a barrier here.
5241 (eh_epilogue): Add a "(return)" here as a hint to other parts of
5242 the compiler.
5243
32257ddc
AS
52442011-04-19 Anatoly Sokolov <aesok@post.ru>
5245
5246 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
5247 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
5248 (general_or_i64_p, sparc_register_move_cost): New function.
5249
60bea929
RO
52502011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5251
5252 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 5253 Add lynx, mipssde. Sort table.
60bea929 5254
444b3995 52552011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 5256
9d12f71a
EB
5257 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
5258 not negative.
444b3995 5259
d708ce50
JJ
52602011-04-19 Jakub Jelinek <jakub@redhat.com>
5261
5262 PR target/48678
5263 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
5264 is a SUBREG with non-MODE_INT mode inside of it.
5265
49c471e3
MJ
52662011-04-19 Martin Jambor <mjambor@suse.cz>
5267
5268 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
5269 also according to actual contants.
5270 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
5271 (gimple_fold_call): Use it.
5272 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
5273
0004f992
MJ
52742011-04-19 Martin Jambor <mjambor@suse.cz>
5275
5276 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
5277 non-pointer assignments.
5278
40591473
MJ
52792011-04-19 Martin Jambor <mjambor@suse.cz>
5280
5281 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
5282 account anc_offset and otr_type from the indirect edge info.
5283 * ipa-prop.c (get_ancestor_addr_info): New function.
5284 (compute_complex_ancestor_jump_func): Assignment analysis moved to
5285 get_ancestor_addr_info, call it.
5286 (ipa_note_param_call): Do not initialize information about polymorphic
5287 calls, return the indirect call graph edge. Remove the last
5288 parameter, adjust all callers.
5289 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
5290 parameters. Initialize polymorphic information in the indirect edge.
5291
abe36b81
EB
52922011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5293
5294 PR lto/48148
5295 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
5296 the types if they have different enumeration identifiers.
5297
e6416b30
JH
52982011-04-19 Jan Hubicka <jh@suse.cz>
5299
5300 * cgraph.h (cgraph_optimize_for_size_p): Declare.
5301 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
5302 * predict.c (cgraph_optimize_for_size_p): Break out from ...
5303 (optimize_function_for_size_p) ... here.
5304
d39132ea
RG
53052011-04-19 Richard Guenther <rguenther@suse.de>
5306
5307 PR lto/48207
5308 * tree.c (free_lang_data): Do not reset the decl-assembler-name
5309 langhook.
5310
ff7037dc
EB
53112011-04-19 Eric Botcazou <ebotcazou@adacore.com>
5312
5313 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
5314 if DECL_NO_INLINE_WARNING_P is set on the function.
5315
c1ee2892
BS
53162011-04-19 Bernd Schmidt <bernds@codesourcery.com>
5317
5318 PR fortran/47976
5319 * reload1.c (inc_for_reload): Return void. All callers changed.
5320 (emit_input_reload_insns): Don't try to delete previous output
5321 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
5322
53232011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
5324
5325 * gengtype.h: Updated copyright year.
5326 (struct input_file_st): Add inpisplugin field.
5327 (type_fileloc): New function.
5328 * gengtype.c
5329 (write_typed_struct_alloc_def): Add gcc_assert.
5330 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
5331 (write_typed_alloc_defns): Don't output for plugin files.
5332 (input_file_by_name): Clear inpisplugin field.
5333 (main): Set inpisplugin field for plugin files.
5334
897e0a89
NP
53352011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
5336
5337 * gengtype-state.c (string_eq): New.
5338 (read_state): Use string_eq instead of strcmp when creating the
5339 state_ident_tab.
5340
363ee90e
WG
53412011-04-19 Wei Guozhi <carrot@google.com>
5342
5343 PR target/47855
5344 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
5345 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
5346 linkage.
5347 * config/arm/constraints.md (Uu): New constraint.
5348 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
5349
18a24fed
TG
53502011-04-19 Tristan Gingold <gingold@adacore.com>
5351
5352 * config.gcc (-*-*-*vms): Added.
5353 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
5354 definitions moved.
5355 * config/vms/vms-ld.c: New file.
5356 * config/vms/vms-ar.c: New file.
5357 * config/vms/t-vmsnative: New file.
5358
1c13f168
XDL
53592011-04-18 Xinliang David Li <davidxl@google.com>
5360
5361 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
5362
84825707
JJ
53632011-04-18 Jakub Jelinek <jakub@redhat.com>
5364
5365 PR middle-end/48661
5366 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
5367 if TREE_TYPE (v) is non-NULL.
5368
5369 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
5370 gimple_get_virt_mehtod_for_binfo.
5371 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
5372 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
5373 callers.
5374 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
5375
7d4f8d02 53762011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
5377 Steve Ellcey <sje@cup.hp.com>
5378
7d4f8d02
EB
5379 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
5380 use its mode as source mode if it isn't VOIDmode.
7254cb57 5381
474e8e70
DCR
53822011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
5383
5384 * doc/passes.texi: Fill crossref nodes.
5385
cff41484
JM
53862011-04-18 Jim Meyering <meyering@redhat.com>
5387
7d4f8d02 5388 Fix doubled-word typos in comments and strings
cff41484
JM
5389 * config/alpha/vms-unwind.h: s/for for/for/
5390 * config/arm/unwind-arm.h: Likewise.
5391 * config/microblaze/microblaze.c: Likewise.
5392 * config/sh/constraints.md: s/in in/in/
5393 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
5394
f60c2554
UB
53952011-04-18 Uros Bizjak <ubizjak@gmail.com>
5396
5397 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
5398 (AVX_FLOAT_MODE_P): Ditto.
5399 (AVX128_VEC_FLOAT_MODE_P): Ditto.
5400 (AVX256_VEC_FLOAT_MODE_P): Ditto.
5401 (AVX_VEC_FLOAT_MODE_P): Ditto.
5402 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
5403 (UNSPEC_MASKSTORE): Ditto.
5404 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
5405 Merge from <sse>_movmsk<ssemodesuffix> and
5406 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
5407 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
5408 iterator.
5409 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
5410 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
5411 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
5412
09a2806f
JH
54132011-04-18 Jan Hubicka <jh@suse.cz>
5414
8a8dccb2
JH
5415 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
5416
09a2806f
JH
5417 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
5418 (want_inline_function_called_once_p): Break out the logic from
5419 ipa_inline.
5420 (edge_badness): Ensure that profile is not misupdated.
5421 (lookup_recursive_calls): Prioritize by call frequencies.
5422 (inline_small_functions): Move program size estimates here;
5423 actually process whole queue even when unit growth has been
5424 met. (to properly compute inline_failed reasons and for the
f60c2554 5425 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
5426 (ipa_inline): Remove unit summary code; first inline hot calls
5427 of functions called once, cold calls next.
5428 (order, nnodes): Remove unused variables.
5429 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
5430 (GTFILES): Remove ipa-inline.c
5431 * sel-sched.c (fill_insns): Silence uninitialized var warning.
5432
3eea52ef
EB
54332011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5434
5435 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
5436
229a1c59 54372011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 5438 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
5439
5440 * arm.c (neon_builtin_type_bits): Remove.
5441 (typedef enum neon_builtin_mode): New.
5442 (T_MAX): Don't define.
5443 (typedef enum neon_builtin_datum): Remove bits, codes[],
5444 num_vars and base_fcode. Add mode, code and fcode.
5445 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
5446 VAR10): Change accordingly.
5447 (neon_builtin_data[]): Change accordingly
5448 (arm_init_neon_builtins): Change accordingly.
5449 (neon_builtin_compare): Remove.
5450 (locate_neon_builtin_icode): Remove.
5451 (arm_expand_neon_builtin): Change accordingly.
5452
5453 * arm.h (enum arm_builtins): Move to ...
5454 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
5455
5456 * arm.c (arm_builtin_decl): Declare.
5457 (TARGET_BUILTIN_DECL): Define.
5458 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
5459 (arm_builtin_decls[]): New.
5460 (arm_init_neon_builtins): Store builtin declarations in
5461 arm_builtin_decls[].
5462 (arm_init_tls_builtins): Likewise.
5463 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
5464 (arm_builtin_decl): New.
5465
75e802cc
RG
54662011-04-18 Richard Guenther <rguenther@suse.de>
5467
5468 * tree.c (upper_bound_in_type): Build properly canonicalized
5469 INTEGER_CSTs.
5470 (lower_bound_in_type): Likewise.
5471
3b45a007
RG
54722011-04-18 Richard Guenther <rguenther@suse.de>
5473
5474 * gimple.h (gimple_call_addr_fndecl): New function.
5475 (gimple_call_fndecl): Use it.
5476 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
5477 for direct calls.
5478 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
5479 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
5480
d25a79ea
RG
54812011-04-18 Richard Guenther <rguenther@suse.de>
5482
5483 PR middle-end/48650
5484 * tree.c (build_string): STRING_CST is now derived from tree_typed.
5485
7d5fc814
EB
54862011-04-18 Eric Botcazou <ebotcazou@adacore.com>
5487
5488 PR lto/48492
5489 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
5490 DECL_IN_CONSTANT_POOL without RTL.
5491
7e7cfcf6
UW
54922011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
5493 Ira Rosen <ira.rosen@linaro.org>
5494
5495 PR target/48252
5496 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
5497 to match neon_vzip/vuzp/vtrn_internal.
5498 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
5499 outputs explicitly dependent on both inputs.
5500 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
5501
49eab32e
JJ
55022011-04-18 Jakub Jelinek <jakub@redhat.com>
5503
5504 PR tree-optimization/48616
5505 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
5506 whether the shift is by scalar or vector based on whether all SLP
5507 scalar stmts have the same rhs.
5508
e54170f4
CLT
55092011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
5510
5511 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
5512 memory operands.
5513
b14ee6c9
RS
55142011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
5515
269e0e18 5516 PR target/43700
b14ee6c9
RS
5517 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
5518 registers.
5519
10158cd3
JH
55202011-04-17 Jan Hubicka <jh@suse.cz>
5521
5522 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
5523 * cgrpahunit.c (cgraph_finalize_function): Do not set
5524 finalized_by_frontend.
10158cd3
JH
5525 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5526 finalized_by_frontend.
5527
2e9bb6ba
JH
55282011-04-17 Jan Hubicka <jh@suse.cz>
5529
5530 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
5531 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
5532 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
5533 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
5534 method.
2e9bb6ba
JH
5535 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
5536 gimple-fold.c
5537 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
5538
beb628e1
EB
55392011-04-17 Eric Botcazou <ebotcazou@adacore.com>
5540
5541 PR lto/48538
5542 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
5543 is non-null before accessing it.
5544 (input_cgraph): Remove trailing spaces.
5545
3e2fdd24
RE
55462011-04-17 Revital Eres <revital.eres@linaro.org>
5547
5548 * params.def (sms-min-sc): New param flag.
5549 * modulo-sched.c (sms_schedule): Use it.
5550 * doc/invoke.texi (sms-min-sc): Document it.
5551
4c0f7679
JH
55522011-04-17 Jan Hubicka <jh@suse.cz>
5553
5554 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
5555 present, also set gimple_call_set_cannot_inline.
5556 * ipa-inline.c: Update toplevel comment.
5557 (MAX_TIME): Remove.
5558 (cgraph_clone_inlined_nodes): Fix linebreaks.
5559 (cgraph_check_inline_limits): Restructure to ...
5560 (caller_growth_limits): ... this one; be more tolerant
5561 on growth in nested inline chains; add explanatory comment;
5562 fix stack accounting thinko introduced by previous patch.
5563 (cgraph_default_inline_p): Remove.
5564 (report_inline_failed_reason): New function.
5565 (can_inline_edge_p): New function.
5566 (can_early_inline_edge_p): New function.
5567 (leaf_node_p): Move upwards in file.
5568 (want_early_inline_function_p): New function.
5569 (want_inline_small_function_p): New function.
5570 (want_inline_self_recursive_call_p): New function.
5571 (cgraph_edge_badness): Rename to ...
5572 (edge_badness) ... this one; fix linebreaks.
5573 (update_edge_key): Update call of edge_baddness; add
5574 detailed dump about queue updates.
5575 (update_caller_keys): Use can_inline_edge_p and
5576 want_inline_small_function_p.
5577 (cgraph_decide_recursive_inlining): Rename to...
5578 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
5579 want_inline_self_recursive_call_p; simplify and remove no longer
5580 valid FIXME.
4c0f7679
JH
5581 (cgraph_set_inline_failed): Remove.
5582 (add_new_edges_to_heap): Use can_inline_edge_p and
5583 want_inline_small_function_p.
5584 (cgraph_decide_inlining_of_small_functions): Rename to ...
5585 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
5586 can/want predicates; cleanup debug ouput; work edges till fibheap
5587 is exhausted and do not stop once unit growth is reached; remove
5588 later loop processing remaining edges.
4c0f7679
JH
5589 (cgraph_flatten): Rename to ...
5590 (flatten_function): ... this one; use can_inline_edge_p
5591 and can_early_inline_edge_p predicates.
5592 (cgraph_decide_inlining): Rename to ...
5593 (ipa_inline): ... this one; remove unreachable nodes before
5594 inlining functions called once; simplify the pass.
5595 (cgraph_perform_always_inlining): Rename to ...
5596 (inline_always_inline_functions): ... this one; use
f60c2554 5597 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
5598 (cgraph_decide_inlining_incrementally): Rename to ...
5599 (early_inline_small_functions): ... this one; simplify
5600 using new predicates; cleanup; make dumps prettier.
5601 (cgraph_early_inlining): Rename to ...
5602 (early_inliner): newer inline regular functions into always-inlines;
5603 fix updating of call stmt summaries.
5604 (pass_early_inline): Update for new names.
5605 (inline_transform): Fix formating.
5606 (gate_cgraph_decide_inlining): Rename to ...
5607 (pass_ipa_inline): ... this one.
5608 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
5609 * ipa-inline-analysis.c (dump_inline_summary): Update.
5610 (compute_inline_parameters): Do not compute disregard_inline_limits;
5611 look for mismatching arguments.
5612 (estimate_growth): Fix handlig of non-trivial self recursion.
5613 (inline_read_summary): Do not read info->disregard_inline_limits.
5614 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
5615 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
5616 and move all checks into can_inline_edge_p predicate; re-enable code
5617 comparing optimization levels.
4c0f7679
JH
5618 (expand_call_inline): Do not test inline_forbidden_into_p.
5619 * Makefile.in (ipa-inline.o): Update arguments.
5620
54333b7c
RE
56212011-04-17 Revital Eres <revital.eres@linaro.org>
5622
5623 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
5624
42c2bf92
RE
56252011-04-17 Revital Eres <revital.eres@linaro.org>
5626
5627 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
5628
b183e9e0
MM
56292011-04-17 Michael Matz <matz@suse.de>
5630
5631 PR tree-optimization/48622
5632 PR lto/48645
5633 * ipa-inline-analysis.c (inline_read_summary): Read size/time
5634 in same order as they're written.
5635
b8a17fa2
JDA
56362011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5637
5638 * config/pa/predicates.md: Reorganize and simplify predicates.
5639 Eliminate duplicate code checks.
5640 (arith_operand): Rename to arith14_operand
5641 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
5642 * config/pa/pa.md: Use renamed operands.
5643 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
5644 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
5645 arith11_operand, adddi3_operand, indexed_memory_operand,
5646 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
5647 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
5648 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
5649 move_dest_operand, move_src_operand, prefetch_cc_operand,
5650 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
5651 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
5652 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
5653 div_operand, int5_operand, movb_comparison_operator,
5654 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
5655 arith_double_operand, ireg_operand, lhs_lshift_operand,
5656 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
5657 integer_store_memory_operand): Likewise.
5658 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
5659 (integer_store_memory_operand, read_only_operand,
5660 function_label_operand, borx_reg_operand,
5661 non_hard_reg_operand): Likewise.
5662 (eq_neq_comparison_operator): Delete unused operator.
5663 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
5664 function_label_operand.
5665 (emit_move_sequence): Likewise.
5666
8dfb9f16
UB
56672011-04-16 Uros Bizjak <ubizjak@gmail.com>
5668
5669 * config/i386/sse.md (sseunpackmode): New mode attribute.
5670 (ssepackmode): Ditto.
5671 (vec_pack_trunc_<mode>): Macroize expander from
5672 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
5673 (vec_unpacks_lo_<mode>): Macroize expander from
5674 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5675 (vec_unpacks_hi_<mode>): Macroize expander from
5676 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5677 (vec_unpacku_lo_<mode>): Macroize expander from
5678 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5679 (vec_unpacku_hi_<mode>): Macroize expander from
5680 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
5681 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
5682 ix86_expand_sse4_unpack.
5683 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
5684
e7f23018
JH
56852011-04-16 Jan Hubicka <jh@suse.cz>
5686
5687 * cgraphbuild.c: Include ipa-inline.h.
5688 (reset_inline_failed): Use initialize_inline_failed.
5689 * cgraph.c: Include ipa-inline.h.
5690 (cgraph_create_node_1): Do not initialize estimated_growth.
5691 (initialize_inline_failed): More to ipa-inline-analysis.c
5692 (dump_cgraph_node): Do not dump inline flags.
5693 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
5694 and disregard_inline_limits flags.
5695 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
5696 time, size, estimated_growth.
8dfb9f16
UB
5697 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
5698 Update.
e7f23018
JH
5699 * cgraphunit.c (cgraph_decide_is_function_needed): Use
5700 DECL_DISREGARD_INLINE_LIMITS.
5701 (cgraph_analyze_function): Do not initialize
5702 node->local.disregard_inline_limits.
5703 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
5704 inlinable, versionable and disregard_inline_limits.
5705 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
5706 cgraph_check_inline_limits, cgraph_default_inline_p,
5707 cgraph_edge_badness, update_caller_keys, update_callee_keys,
5708 add_new_edges_to_heap): Update.
5709 (cgraph_decide_inlining_of_small_function): Update; set
5710 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
5711 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
5712 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
5713 * ipa-inline.h (inline_summary): Add inlinable, versionable,
5714 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
5715 time, size and estimated_growth parameters.
e7f23018
JH
5716 (estimate_edge_growth): Update.
5717 (initialize_inline_failed): Declare.
5718 * ipa-split.c: Include ipa-inline.h
5719 (execute_split_functions): Update.
5720 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
5721 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
5722 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
5723 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
5724 estimated_growth to INT_MIN.
5725 (inline_node_duplication_hook): Likewise.
5726 (dump_inline_summary): Dump new fields.
5727 (compute_inline_parameters): Update.
5728 (estimate_edge_time, estimate_time_after_inlining,
5729 estimate_size_after_inlining, estimate_growth, inline_read_summary,
5730 inline_write_summary):
5731 (initialize_inline_failed): Move here from cgraph.c.
5732 * tree-sra.c: Include ipa-inline.h.
5733 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
5734 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
5735 ipa-inline.h.
e7f23018 5736
e81b8564
UB
57372011-04-16 Uros Bizjak <ubizjak@gmail.com>
5738
5739 * config/i386/sse.md (V16): New mode iterator.
5740 (VI1, VI8): Ditto.
5741 (AVXMODEQI, AVXMODEDI): Remove.
5742 (sse2, sse3): New mode attribute.
5743 (mov<mode>): Use V16 mode iterator.
5744 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
5745 (push<mode>1): Use V16 mode iterator.
5746 (movmisalign<mode>): Ditto.
5747 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5748 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
5749 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
5750 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
5751 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
5752 avx_movdqu<avxmodesuffix>.
5753 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
5754 *avx_movdqu<avxmodesuffix>.
5755 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
5756 avx_lddqu<avxmodesuffix>.
5757 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
5758 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
5759 avx_movnt<AVXMODEDI:mode>.
5760 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
5761 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
5762
4743d438
BS
57632011-04-16 Bernd Schmidt <bernds@codesourcery.com>
5764
5765 PR target/48629
5766 * haifa-sched.c (prune_ready_list, schedule_block): Use
5767 sched_pressure_p rather than flag_sched_pressure.
5768
748f7574 57692011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
5770
5771 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
5772 cgraph_get_node instead of cgraph_get_create_node.
5773
2ba172e0
JJ
57742011-04-15 Jakub Jelinek <jakub@redhat.com>
5775
5776 * cfgexpand.c (expand_debug_expr): Use
5777 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
5778
63d2a353
MM
57792011-04-15 Michael Matz <matz@suse.de>
5780
5781 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
5782 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
5783 * function.c (gimplify_parameters): Ditto.
5784 * gimplify.c (gimplify_vla_decl): Ditto.
5785
5786 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
5787 (gimple_call_set_alloca_for_var): New inline function.
5788 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
5789 * gimple.c (gimple_build_call_from_tree): Remember
5790 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
5791 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
5792
5793 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
5794 calls if they were for VLA objects.
5795
dee74c34
MJ
57962011-04-15 Martin Jambor <mjambor@suse.cz>
5797
5798 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
5799 of ADR_EXPRs.
5800
8e5837bc
MJ
58012011-04-15 Martin Jambor <mjambor@suse.cz>
5802
5803 PR middle-end/48601
5804 * tree-emutls.c (lower_emutls_function_body): Call
5805 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
5806 result is non-NULL.
5807
0dc33c3c
NP
58082011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
5809
5810 * c-decl.c (detect_field_duplicates): Call
5811 objc_detect_field_duplicates instead of objc_get_interface_ivars.
5812
edcdea5b
NF
58132011-04-15 Nathan Froyd <froydnj@codesourcery.com>
5814
5815 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
5816 * gimple.c (gimple_asm_clobbers_memory_p): Define.
5817 * ipa-pure-const.c (check_stmt): Call it.
5818 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
5819
8456558d
RG
58202011-04-15 Richard Guenther <rguenther@suse.de>
5821
5822 PR tree-optimization/48290
5823 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
5824 Properly decide inhibiting propagation based on the valueized
5825 operand. Do loop-closed SSA form preserving here ...
5826 (init_copy_prop): ... not here.
5827
266446be
L
58282011-04-15 H.J. Lu <hongjiu.lu@intel.com>
5829
5830 PR target/48612
5831 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
5832 (*ieee_smax<mode>3): Likewise.
5833
17465c6e
AK
58342011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5835
5836 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
5837 Replace match_operand with match_dup for the third operand in
5838 these expanders.
5839
bce204e5
MK
58402011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5841
5842 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
5843 to track processing of conditionals. Update all callers.
5844 (try_combine, simplify_if_then_else): Update.
5845
3162fdf4
MK
58462011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
5847
5848 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
5849 -fsched-pressure.
5850
79002a57 58512011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 5852
79002a57
GJL
5853 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
5854 instead of match_operand for operand 3.
5855
4fd3a105
RS
58562011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
5857
5858 * recog.h (insn_operand_data): Add an "allows_mem" field.
5859 * genoutput.c (output_operand_data): Initialize it.
5860 * optabs.c (maybe_legitimize_operand_same_code): New function.
5861 (maybe_legitimize_operand): Use it when matching the original
5862 op->value.
5863
ad19c4be
EB
58642011-04-15 Eric Botcazou <ebotcazou@adacore.com>
5865
5866 * gimplify.c: Fix issues in comments throughout.
5867 (voidify_wrapper_expr): Fix long line.
5868 (build_stack_save_restore): Likewise.
5869 (gimplify_loop_expr): Likewise.
5870 (gimplify_compound_lval): Likewise.
5871 (gimplify_init_ctor_eval): Likewise.
5872 (gimplify_modify_expr_rhs): Likewise.
5873 (omp_notice_threadprivate_variable): Likewise.
5874
b25aa0e8 58752011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 5876
b25aa0e8
EB
5877 * cfgexpand.c (expand_call_stmt): Convert the function type to the
5878 original one if this is not a builtin function.
e7925582 5879
09db7afe
JJ
58802011-04-14 Jakub Jelinek <jakub@redhat.com>
5881
5882 PR target/48605
5883 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
5884 offset it as needed based on top 2 bits in operands[3], change
5885 MEM mode to SFmode and mask those 2 bits away from operands[3].
5886
c59633d9
NP
58872011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
5888
5889 * c-parser.c (c_parser_objc_protocol_definition): Updated for
5890 change from objc_declare_protocols() to objc_declare_protocol().
5891
5e60198b
UB
58922011-04-14 Uros Bizjak <ubizjak@gmail.com>
5893
5894 * config/i386/sse.md (sse4_1): New mode attribute.
5895 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
5896 avx_blend<ssemodesuffix><avxmodesuffix> and
5897 sse4_1_blend<ssemodesuffix> using VF mode iterator.
5898 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
5899 avx_blendv<ssemodesuffix><avxmodesuffix> and
5900 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
5901 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
5902 avx_dp<ssemodesuffix><avxmodesuffix> and
5903 sse4_1_dp<ssemodesuffix> using VF mode iterator.
5904 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
5905 (sse4_1_packusdw): Merge with *avx_packusdw.
5906 (sse4_1_pblendvb): Merge with *avx_pblendvb.
5907 (sse4_1_pblendw): Merge with *avx_pblendw.
5908 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
5909 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
5910 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
5911 VF mode iterator.
5912 (sse4_1_round<ssescalarmodesuffix>): Merge with
5913 *avx_round<ssescalarmodesuffix>.
5914 (aesenc): Merge with *avx_aesenc.
5915 (aesenclast): Merge with *avx_aesenclast.
5916 (aesdec): Merge with *avx_aesdec.
5917 (aesdeclast): Merge with *avx_aesdeclast.
5918 (pclmulqdq): Merge with *pclmulqdq.
5919 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
5920 New predicate.
5921 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
5922
6f197850
L
59232011-04-14 H.J. Lu <hongjiu.lu@intel.com>
5924
5925 PR middle-end/48608
5926 * cfgexpand.c (get_decl_align_unit): Renamed to ...
5927 (align_local_variable): This. Update DECL_ALIGN.
5928 (add_stack_var): Updated.
5929 (expand_one_stack_var): Likewise.
5930
4a5ba3ed
RG
59312011-04-14 Richard Guenther <rguenther@suse.de>
5932
5933 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
5934 Remove.
5935 (dse_initialize_block_local_data, dse_leave_block,
5936 record_voperand_set, get_stmt_uid): Likewise.
5937 (dse_possible_dead_store_p): Allow any kind of killing stmt.
5938 (dse_optimize_stmt): Remove voperand set handling code.
5939 Simplify and improve to handle any kind of killing stmt.
5940 (dse_record_phi): Remove.
5941 (dse_enter_block): Simplify.
5942 (tree_ssa_dse): Likewise.
5943 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
5944
10a5dd5d
JH
59452011-04-14 Jan Hubicka <jh@suse.cz>
5946
5947 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
5948 * cgraph.h (struct inline_summary): Move to ipa-inline.h
5949 (cgraph_local_info): Remove inline_summary.
5950 * ipa-cp.c: Include ipa-inline.h.
5951 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
5952 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
5953 accesor.
5954 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
5955 (input_overwrite_node): Do not set inline summary.
5956 (input_node): Do not stream inline summary.
5957 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
5958 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
5959 growth; we do not have inline parameters computed for that anyway.
5960 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
5961 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
5962 (inline_summary_t): New type and VECtor.
5963 (debug_inline_summary, dump_inline_summaries): Declare.
5964 (inline_summary): Use VOCtor.
5965 (estimate_edge_growth): Kill hack computing call stmt size directly.
5966 * lto-section-in.c (lto_section_name): Add inline section.
5967 * ipa-inline-analysis.c: Include lto-streamer.h
5968 (node_removal_hook_holder, node_duplication_hook_holder): New holders
5969 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
5970 (inline_summary_vec): Define.
5971 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
5972 dump_inline_summaries): New functions.
5e60198b
UB
5973 (estimate_function_body_sizes): Properly compute size/time of outgoing
5974 calls.
5975 (compute_inline_parameters): Alloc inline_summary; do not compute
5976 size/time of incomming calls.
10a5dd5d
JH
5977 (estimate_edge_time): Avoid missing time summary hack.
5978 (inline_read_summary): Read inline summary info.
5979 (inline_write_summary): Write inline summary info.
5980 (inline_free_summary): Free all hooks and inline summary vector.
5981 * lto-streamer.h: Add LTO_section_inline_summary section.
5982 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
5983 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
5984
b602d918
RS
59852011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
5986
5987 * tree-vectorizer.h (vect_strided_store_supported): Add a
5988 HOST_WIDE_INT argument.
5989 (vect_strided_load_supported): Likewise.
5990 (vect_permute_store_chain): Return void.
5991 (vect_transform_strided_load): Likewise.
5992 (vect_permute_load_chain): Delete.
5993 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
5994 count argument. Check that the count is a power of two.
5995 (vect_strided_load_supported): Likewise.
5996 (vect_permute_store_chain): Return void. Update after above changes.
5997 Assert that the access is supported.
5998 (vect_permute_load_chain): Likewise.
5999 (vect_transform_strided_load): Return void.
6000 * tree-vect-stmts.c (vectorizable_store): Update calls after
6001 above interface changes.
6002 (vectorizable_load): Likewise.
6003 (vect_analyze_stmt): Don't check for strided powers of two here.
6004
ab4472fa
RG
60052011-04-14 Richard Guenther <rguenther@suse.de>
6006
6007 PR tree-optimization/48590
6008 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6009 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6010 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
6011 BUILT_IN_STACK_SAVE.
6012 * tree-ssa-dce.c (propagate_necessity): Handle
6013 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
6014
32dabdaf
NP
60152011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
6016
6017 * c-parser.c (c_parser_objc_class_declaration): Updated call to
6018 objc_declare_class.
6019
daade206
RG
60202011-04-14 Richard Guenther <rguenther@suse.de>
6021
6022 * tree.h (get_object_alignment_1): Declare.
6023 * builtins.c (get_object_alignment_1): Split out worker from ...
6024 (get_object_alignment): ... here.
6025 * fold-const.c (get_pointer_modulus_and_residue): Use
6026 get_object_alignment_1.
6027
920e8172
RS
60282011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6029
6030 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
6031 type parameter.
6032 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
6033 parameter. Generalise code to handle arrays as well as vectors.
6034 (vect_setup_realignment): Update accordingly.
6035 * tree-vect-stmts.c (vectorizable_store): Likewise.
6036 (vectorizable_load): Likewise.
6037
5ce1ee7f
RS
60382011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
6039
6040 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
6041 within the per-copy loop.
6042
6438fe33 60432011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
6044
6045 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
6046 in the dump file.
6047
6438fe33 60482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
6049
6050 * doc/options.texi (Negative): Explicitly mention that the
6051 Negative chain must be circular.
6052
61e46a7d
NF
60532011-04-14 Nathan Froyd <froydnj@codesourcery.com>
6054
6055 * function.h (block_chainon): Declare.
6056 * function.c (block_chainon): Define.
6057
43ea6502 60582011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 6059 Eric Weddington <eric.weddington@atmel.com>
748f7574 6060 Georg-Johann Lay <avr@gjlay.de>
5e60198b 6061
f60c2554 6062 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
6063 New Includes
6064 (avr_init_builtins, avr_expand_builtin,
6065 avr_expand_delay_cycles, avr_expand_unop_builtin,
6066 avr_expand_binop_builtin ): New functions.
6067 (avr_builtin_id): New enum
6068 (struct avr_builtin_description): New struct
6069 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
6070 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 6071
43ea6502 6072 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 6073 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
6074 UNSPECV_DELAY_CYCLES): new enumeration values
6075 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
6076 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
6077 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
6078 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
6079 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
6080 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
6081 "fmulsu"): New insns
5e60198b 6082
43ea6502
AS
6083 * config/avr/avr-c.c: fix line endings
6084 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
6085 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
6086 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
6087 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
6088 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 6089
43ea6502
AS
6090 * doc/extend.texi (AVR Built-in Functions): New node
6091 (Target Builtins): Add documentation of AVR
6092 built-in functions.
6093
8a9b55f3
GJL
60942011-04-14 Georg-Johann Lay <avr@gjlay.de>
6095
6096 PR target/44643
6097 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
6098 alone. Error if non-const data has attribute progmem.
6099
94bd1825
NF
61002011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6101
6102 * tree.h (struct tree_constructor): Include tree_typed instead of
6103 tree_common.
6104 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
6105 TS_TYPED instead of TS_COMMON.
6106
5e60198b 61072011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
6108
6109 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
6110 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
6111 (sse2_psadbw): Merge with *avx_psadbw.
6112 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
6113 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
6114 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
6115 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
6116 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
6117 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
6118 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
6119 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
6120 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
6121 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
6122 (ssse3_palignrti): Merge with *avx_palignrti.
6123
4b1a4694
NF
61242011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6125
6126 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
6127 * tree-ssanames.c (fini_ssanames): VEC_free it.
6128 (make_ssa_name_fn): Update for VECness of free_ssanames.
6129 (release_ssa_name, release_dead_ssa_names): Likewise.
6130 * tree.h (struct tree_ssa_name): Include tree_typed instead of
6131 tree_common.
6132 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
6133 TS_TYPED instead of TS_COMMON.
6134
4da3b811
NF
61352011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6136
6137 * postreload-gcse.c (gcse_after_reload_main): Add calls to
6138 statistics_counter_event.
6139 * tree-ssa-copyrename.c (stats): Define.
6140 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
6141 statistics_counter_event.
6142 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
6143 (bswap_stats, widen_mul_stats): Define.
6144 (insert_reciprocals): Increment rdivs_inserted.
6145 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
6146 rfuncs_inserted. Add calls to statistics_counter_event.
6147 (execute_cse_sincos_1): Increment inserted.
6148 (execute_cse_sincos): Zeroize sincos_stats. Add call to
6149 statistics_counter_event.
6150 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
6151 of bswap_stats. Add calls to statistics_counter_event.
6152 (convert_mult_to_widen): Increment widen_mults_inserted.
6153 (convert_plusminus_to_widen): Increment maccs_inserted.
6154 (convert_mult_to_fma): Increment fmas_inserted.
6155 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
6156 calls to statistics_counter_event.
6157
89fa552a
VM
61582011-04-13 Vladimir Makarov <vmakarov@redhat.com>
6159
6160 PR rtl-optimization/48455
6161 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
6162 `temp_costs->mem_cost'.
6163
03dfc36d
JH
61642011-04-13 Jan Hubicka <jh@suse.cz>
6165
6166 * ipa-inline.h: New file.
6167 * ipa-inline-analysis.c: New file. Broken out of ...
6168 * ipa-inline.c: ... this file; update toplevel comment;
6169 include ipa-inline.h
6170 (inline_summary): Move to ipa-inline.h
6171 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
6172 ipa-inline-analysis.c.
7d4f8d02
EB
6173 (cgraph_estimate_time_after_inlining): Rename to
6174 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
6175 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
6176 to estimate_edge_growth.
6177 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
6178 rename to estimate_size_after_inlining.
6179 (cgraph_mark_inline_edge): Update for new naming convention.
6180 (cgraph_check_inline_limits): Likewise.
6181 (cgraph_edge_badness): Likewise.
6182 (cgraph_decide_recursive_inlining): Likewise.
6183 (cgraph_decide_inlining_of_small_functions): Likewise.
6184 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
6185 (cgraph_estimate_growth): Rename to estimate_growth; move to
6186 ipa-inline-analysis.c.
03dfc36d
JH
6187 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
6188 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
6189 (compute_inline_parameters): Likewise.
6190 (compute_inline_parameters_for_current): Likewise.
6191 (pass_inline_parameters): Likewise.
6192 (inline_indirect_intraprocedural_analysis): Likewise.
6193 (analyze_function): Rename to inline_analyze_function; likewise.
6194 (add_new_function): Move to ipa-inline-analysis.c.
6195 (inline_generate_summary): Likewise.
6196 (inline_read_summary): Likewise.
6197 (inline_write_summary): Likewise.
6198 * Makefile.in (ipa-inline-analysis.c): New file.
6199
7673c962
RO
62002011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6201
6202 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
6203 * configure: Regenerate.
6204
9698252f
NF
62052011-04-13 Nathan Froyd <froydnj@codesourcery.com>
6206
6207 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
6208 instead of tree_common.
6209 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
6210 Likewise.
6211 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
6212 TS_TYPED rather than TS_COMMON.
6213 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
6214
3a7bfdd5
GJL
62152011-04-01 Georg-Johann Lay <avr@gjlay.de>
6216
6217 PR target/45263
86d83530
GJL
6218 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
6219 r20 around calls of __tablejump_elpm__
3a7bfdd5 6220
20790697
JJ
62212011-04-13 Jakub Jelinek <jakub@redhat.com>
6222
6223 PR middle-end/48591
6224 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
6225 NULL.
6226 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
6227
094d7661
BS
62282011-04-13 Bernd Schmidt <bernds@codesourcery.com>
6229
6230 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
6231 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
6232 (cfi_vec): New typedef.
6233 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
6234 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
6235 (cie_cfi_vec): New static variable.
6236 (cie_cfi_head): Delete.
6237 (add_cfi): Accept a cfi_vec * as first argument. All callers and
6238 declaration changed. Use vector rather than list operations.
6239 (new_cfi): Don't initialize the dw_cfi_next field.
6240 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
6241 rather than list operations.
6242 (lookup_cfa): Use vector rather than list operations.
6243 (output_cfis): New argument upto. Accept a cfi_vec rather than
6244 a dw_cfi_ref list head as argument. All callers changed.
6245 Iterate over the vector using upto as a maximum index.
6246 (output_all_cfis): New static function.
6247 (output_fde): Use vector rather than list operations. Use the
6248 new upto argument for output_cfis rather than manipulating a
6249 list.
6250 (dwarf2out_begin_prologue): Change initializations to match
6251 new struct members.
6252 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
6253 from the vector length rather than searching for the end of a list.
6254 Use output_all_cfis.
6255 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
6256
673a5740
NC
62572011-04-13 Nick Clifton <nickc@redhat.com>
6258
6259 * config/rx/rx.md (movmemsi): Do not use this pattern when
6260 volatile pointers are involved.
6261
1ee8b298
UB
62622011-04-13 Uros Bizjak <ubizjak@gmail.com>
6263
6264 * config/i386/sse.md (pinsrbits): Remove.
6265 (sse2_packsswb): Merge with *avx_packsswb.
6266 (sse2_packssdw): Merge with *avx_packssdw.
6267 (sse2_packuswb): Merge with *avx_packuswb.
6268 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
6269 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
6270 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
6271 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
6272 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
6273 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
6274 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
6275 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
6276 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
6277 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
6278 (sse2_loadld): Merge with *avx_loadld.
6279 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
6280 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
6281 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
6282 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
6283 (vec_concatv2di): Merge with *vec_concatv2di_avx.
6284
81f653d6
NF
62852011-04-12 Nathan Froyd <froydnj@codesourcery.com>
6286
6287 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
6288 calling TREE_CHAIN.
6289 * print-tree.c (print_node): Likewise.
6290 * tree-inline.c (copy_tree_r): Likewise.
6291 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
6292 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
6293 instead of TS_COMMON.
6294 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
6295 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
6296 (copy_node_stat): Zero TREE_CHAIN only if necessary.
6297 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
6298 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
6299 ...and these...
6300 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
6301 * tree.h: ...here.
6302 (TREE_CHAIN): Check for a TS_COMMON structure.
6303 (TREE_TYPE): Check for a TS_TYPED structure.
6304
748f7574 63052011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
6306
6307 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
6308 cgraph_get_create_node instead of cgraph_node.
6309
eb345401
NP
63102011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6311
6312 * c-parser.c (c_parser_initelt): Updated call to
6313 objc_build_message_expr.
6314 (c_parser_postfix_expression): Likewise.
6315
a6c46762
KT
63162011-04-12 Kai Tietz <ktietz@redhat.com>
6317
6318 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
6319 MASK_MS_BITFIELD_LAYOUT bit.
6320
b4ccfed9
JJ
63212011-04-12 Jakub Jelinek <jakub@redhat.com>
6322
6323 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
6324 assert it is always true.
6325 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
6326 moves.
6327
0d8a2528
NP
63282011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
6329
6330 * c-parser.c (c_lex_one_token): Rewritten conditional used when
6331 compiling Objective-C to be more efficient.
6332
06bd234a
AF
63332011-04-12 Axel Freyn <axel-freyn@gmx.de>
6334
6335 * opts-common.c (decode_cmdline_options_to_array): Remove variable
6336 argv_copied.
6337
28569ac3
RS
63382011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6339
6340 * recog.h, genoutput.c, optabs.c: Revert last patch.
6341
ae59e00d
RR
63422011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6343
81b1e7eb
UB
6344 PR target/48090
6345 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 6346
cff1b7e0
RS
63472011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6348
6349 * recog.h (insn_operand_data): Add an "allows_mem" field.
6350 * genoutput.c (output_operand_data): Initialize it.
6351 * optabs.c (maybe_legitimize_operand_same_code): New function.
6352 (maybe_legitimize_operand): Use it when matching the original
6353 op->value.
6354
77059241
RS
63552011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6356
6357 * genpreds.c (process_define_predicate): Move most processing
6358 to gensupport.c. Continue to validate the expression.
6359 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
6360 (process_define_predicate): Move processing to gensupport.c.
6361 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
6362 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
6363 (compute_predicate_codes): Moved from genrecog.c. Add lineno
6364 argument.
6365 (valid_predicate_name_p): New function, split out from old
6366 genpreds.c:process_define_predicate.
6367 (process_define_predicate): New function, combining code from
6368 old genpreds.c and genrecog.c functions.
6369 (process_rtx): Call it for DEFINE_PREDICATE and
6370 DEFINE_SPECIAL_PREDICATE.
6371
6308e208
RS
63722011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
6373
6374 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
6375 size of a '%A' memory reference.
6376 (T_DREG, T_QREG): New neon_builtin_type_bits.
6377 (arm_init_neon_builtins): Assert that the load and store operands
6378 are neon_struct_operands.
6379 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
6380 (NEON_ARG_MEMORY): New builtin_arg.
6381 (neon_dereference_pointer): New function.
6382 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
6383 Handle NEON_ARG_MEMORY.
6384 (arm_expand_neon_builtin): Update after above interface changes.
6385 Use NEON_ARG_MEMORY for loads and stores.
6386 * config/arm/predicates.md (neon_struct_operand): New predicate.
6387 * config/arm/iterators.md (V_two_elem): Tweak formatting.
6388 (V_three_elem): Use BLKmode for accesses that have no associated mode.
6389 (V_four_elem): Tweak formatting.
6390 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
6391 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
6392 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
6393 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
6394 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
6395 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
6396 (neon_vst4<mode>): Replace pointer operand with a memory operand.
6397 Use %A in the output template.
6398 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
6399 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
6400 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
6401 the width of the memory access. Remove post-increment.
6402 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
6403
e5db8f2f
NC
64042011-04-12 Nick Clifton <nickc@redhat.com>
6405
6406 * config/v850/v850.c (expand_prologue): Do not use the CALLT
6407 instruction for interrupt handlers if the target is the basic V850
6408 architecture.
6409 (expand_epilogue): Likewise.
6410
74f091d6
JJ
64112011-04-12 Jakub Jelinek <jakub@redhat.com>
6412
6413 PR rtl-optimization/48549
6414 * combine.c (propagate_for_debug): Also stop after BB_END of
6415 this_basic_block. Process LAST and just stop processing after it.
6416 (combine_instructions): If last_combined_insn has been deleted,
6417 set last_combined_insn to its PREV_INSN.
6418
f20ca725
RG
64192011-04-12 Richard Guenther <rguenther@suse.de>
6420
6421 PR tree-optimization/46076
6422 * gimple.h (struct gimple_statement_call): Add fntype field.
6423 (gimple_call_fntype): Adjust.
6424 (gimple_call_set_fntype): New function.
6425 * gimple.c (gimple_build_call_1): Set the call function type.
6426 * gimplify.c (gimplify_call_expr): Preserve the function
6427 type the frontend used for the call.
6428 (gimplify_modify_expr): Likewise.
6429 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
6430 function type.
6431 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
6432 function type.
6433 * tree-ssa.c (useless_type_conversion_p): Function pointer
6434 conversions are useless.
6435
a358e188
MJ
64362011-04-12 Martin Jambor <mjambor@suse.cz>
6437
6438 * cgraph.h (cgraph_node): Remove function declaration.
6439 (cgraph_create_node): Declare.
6440 (cgraph_get_create_node): Likewise.
6441 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
6442 Updated all callers.
6443 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
6444 the decl does not already exist. Call cgraph_get_create_node instead
6445 of cgraph_node.
6446 (cgraph_get_create_node): New function.
6447 (cgraph_same_body_alias): Update comment.
6448 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
6449 assert it does not return NULL.
6450 (cgraph_update_edges_for_call_stmt): Likewise.
6451 (cgraph_clone_edge): Likewise.
6452 (cgraph_create_virtual_clone): Likewise.
6453 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
6454 instead of cgraph_node.
6455 (cgraph_add_new_function): Call cgraph_create_node or
6456 cgraph_get_create_node instead of cgraph_node.
6457 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
6458 instead of cgraph_node.
6459 (record_eh_tables): Likewise.
6460 (mark_address): Likewise.
6461 (mark_load): Likewise.
6462 (build_cgraph_edges): Call cgraph_get_create_node instead
6463 of cgraph_node.
6464 (rebuild_cgraph_edges): Likewise.
6465 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
6466 instead of cgraph_node.
6467 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
6468 cgraph_node.
6469 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
6470 cgraph_create_node instead of cgraph_node.
6471 * c-decl.c (finish_function): Call cgraph_get_create_node instead
6472 of cgraph_node.
6473 * lto-cgraph.c (input_node): Likewise.
6474 * lto-streamer-in.c (input_function): Likewise.
6475 * varasm.c (mark_decl_referenced): Likewise.
6476 (assemble_alias): Likewise.
6477
fe660d7b
MJ
64782011-04-12 Martin Jambor <mjambor@suse.cz>
6479
6480 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
6481 instead of cgraph_node and assert it does not return NULL.
6482 * lto-streamer-in.c (lto_read_body): Likewise.
6483 * omp-low.c (new_omp_context): Likewise.
6484 (create_task_copyfn): Likewise.
6485 * tree-emutls.c (lower_emutls_function_body): Likewise.
6486 * matrix-reorg.c (transform_allocation_sites): Likewise.
6487
bae5cddf
JJ
64882011-04-12 Jakub Jelinek <jakub@redhat.com>
6489
6490 PR c/48552
6491 * c-typeck.c (build_asm_expr): Error out on attempts to use
6492 void type outputs or inputs for constraints that allow reg or
6493 don't allow memory.
6494
06eb52ca
CLT
64952011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
6496 Richard Earnshaw <rearnsha@arm.com>
6497
6498 PR target/48250
6499 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
6500 to use sign-magnitude offsets. Reject unsupported unaligned
6501 cases. Add detailed description in comments.
6502 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
6503 condition from TARGET_32BIT to TARGET_ARM.
6504
648a616b
NF
65052011-04-11 Nathan Froyd <froydnj@codesourcery.com>
6506
6507 * tree.h (struct typed_tree): New.
6508 (struct tree_common): Include it instead of tree_base.
6509 (TREE_TYPE): Update for new location of type field.
6510 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
6511 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
6512 (union tree_node): Add typed field.
6513 * treestruct.def (TS_TYPED): New.
6514 * lto-streamer.c (check_handled_ts_structures): Handle it.
6515 * tree.c (MARK_TS_TYPED): New macro.
6516 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
6517
1e6d1da0
EB
65182011-04-11 Eric Botcazou <ebotcazou@adacore.com>
6519
6520 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
6521 (force_nonfallthru): Do not alter the loop nest if no basic block
6522 was created.
6523
65242011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
6525
6526 * config/i386/sse.md (VI): New mode iterator.
6527 (SSEMODEI): Remove.
6528 (AVX256MODEI): Ditto.
6529 (AVXMODEF4P): Ditto.
6530 (avxvecpsmode): Ditto.
6531 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
6532 (sse2_andnot<mode>3): New expander.
6533 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
6534 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
6535 (<any_logic:code><mode>3): Use VI mode iterator.
6536 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
6537 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
6538 (*andnottf3): Handle AVX three-operand constraints.
6539 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
6540
b1372d5d 65412011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 6542 Robert Millan <rmh@gnu.org>
b1372d5d
JM
6543
6544 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
6545 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
6546 GNU_USER_DYNAMIC_LINKER64): Define.
6547 (REG_NAME): Don't undefine.
6548 (MD_UNWIND_SUPPORT): Undefine.
6549 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
6550 (REG_NAME): Don't undefine.
6551 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 6552 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 6553
761c0c6e
JM
65542011-04-11 Joseph Myers <joseph@codesourcery.com>
6555
6556 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
6557 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
6558
26e0228f
XDL
65592011-04-11 Xinliang David Li <davidxl@google.com>
6560
6561 * value-profile.c (check_ic_target): New function.
6562 (gimple_ic_transform): Sanity check indirect call target.
6563 * gimple-low.c (gimple_check_call_args): Interface change.
6564 (gimple_check_call_matching_types): New function.
6565 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
6566
65672011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
6568
6569 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
6570 tree-pretty-print.h & realmpfr.h.
6571
a58dfa49
VM
65722011-04-11 Vladimir Makarov <vmakarov@redhat.com>
6573
6574 PR middle-end/48464
6575 * ira.c (setup_pressure_classes): Fix typo in loop condition.
6576 (setup_allocno_and_important_classes): Ditto.
6577
107fd1c1
JM
65782011-04-11 Joseph Myers <joseph@codesourcery.com>
6579
6580 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
6581 GNU_USER_DYNAMIC_LINKER.
6582 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
6583 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6584 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
6585 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6586 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6587 GNU_USER_TARGET_OS_CPP_BUILTINS.
6588 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
6589 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6590 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6591 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6592 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
6593 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
6594 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6595 GNU_USER_TARGET_OS_CPP_BUILTINS.
6596 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6597 GNU_USER_DYNAMIC_LINKER.
6598 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6599 GNU_USER_TARGET_OS_CPP_BUILTINS.
6600 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
6601 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6602 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
6603 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6604 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
6605 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
6606 GNU_USER_DYNAMIC_LINKER64): Remove.
6607 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
6608 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6609 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6610 GNU_USER_DYNAMIC_LINKER.
6611 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6612 GNU_USER_TARGET_OS_CPP_BUILTINS.
6613 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6614 GNU_USER_TARGET_OS_CPP_BUILTINS.
6615 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
6616 to GNU_USER_TARGET_OS_CPP_BUILTINS.
6617 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
6618 GNU_USER_TARGET_OS_CPP_BUILTINS.
6619 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
6620 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
6621 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6622 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
6623 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6624 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6625 GNU_USER_DYNAMIC_LINKER.
6626 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
6627 GNU_USER_TARGET_OS_CPP_BUILTINS.
6628 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
6629 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6630 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6631 GNU_USER_DYNAMIC_LINKER.
6632 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6633 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6634 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
6635 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6636 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6637 GNU_USER_DYNAMIC_LINKER.
6638 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
6639 GNU_USER_DYNAMIC_LINKERN32.
6640 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
6641 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
6642 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
6643 GNU_USER_DYNAMIC_LINKER32.
6644 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
6645 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6646 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6647 GNU_USER_DYNAMIC_LINKER.
6648 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
6649 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6650 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
6651 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 6652 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
6653 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
6654 GNU_USER_DYNAMIC_LINKER32.
6655 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
6656 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
6657 GNU_USER_DYNAMIC_LINKER.
6658 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
6659 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6660 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6661 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
6662 GNU_USER_DYNAMIC_LINKER64.
6663 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
6664 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6665 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6666 GNU_USER_DYNAMIC_LINKER.
6667 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
6668 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6669 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
6670 GNU_USER_DYNAMIC_LINKER.
6671 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
6672 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6673 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
6674 GNU_USER_DYNAMIC_LINKER32.
6675 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6676 GNU_USER_DYNAMIC_LINKER64.
6677 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
6678 GNU_USER_DYNAMIC_LINKER64.
6679 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
6680 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
6681 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
6682 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 6683 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 6684
e24609cf
JM
66852011-04-11 Joseph Myers <joseph@codesourcery.com>
6686
6687 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
6688 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
6689 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
6690 GNU_USER_DYNAMIC_LINKER.
6691 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6692 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
6693 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
6694 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
6695 GNU_USER_DYNAMIC_LINKER64.
6696 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
6697 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
6698 GNU_USER_LINK_EMULATION.
6699 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
6700 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
6701 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
6702 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
6703 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
6704 CPP_SPEC, CC1_SPEC): Remove.
6705 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
6706 (GNU_USER_DYNAMIC_LINKER): Define.
6707 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
6708 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
6709 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
6710 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
6711 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
6712 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
6713 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6714 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
6715 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
6716 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
6717 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
6718 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
6719 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
6720 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
6721 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
6722 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
6723 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6724 GNU_USER_DYNAMIC_LINKER.
6725 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6726 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6727 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6728 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6729 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
6730 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
6731 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
6732 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
6733 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 6734 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 6735
b8ce4e94
KT
67362011-04-11 Kai Tietz <ktietz@redhat.com>
6737
6738 PR target/9601
6739 PR target/11772
6740 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
6741 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
6742 comment.
6743 (ix86_is_msabi_thiscall): Removed.
6744 (ix86_is_type_thiscall): Likewise.
6745 (ix86_get_callcvt): New function.
6746 (ix86_comp_type_attributes): Simplify check.
6747 (ix86_function_regparm): Use ix86_get_callcvt for calling
6748 convention attribute checks.
6749 (ix86_return_pops_args): Likewise.
6750 (ix86_static_chain): Likewise.
6751 (x86_this_parameter): Likewise.
6752 (x86_output_mi_thunk): Likewise.
6753 (ix86_function_type_abi): Optimize check for types without attributes.
6754 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
6755 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
6756 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
6757 by flag-values.
6758 (IX86_BASE_CALLCVT): Helper macro.
6759 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
6760 Use ix86_get_callcvt for calling convention attribute checks and avoid
6761 symbol-decoration for stdcall in TARGET_RTD case.
6762 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6763 Likewise.
6764 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
6765 for declaration.
6766
798dd0ba
UB
67672011-04-11 Uros Bizjak <ubizjak@gmail.com>
6768
6769 * config/i386/sse.md (VI_128): New mode iterator.
6770 (VI12_128): Rename from SSEMODE12.
6771 (VI14_128): Rename from SSEMODE14.
6772 (VI124_128): New mode iterator.
6773 (VI24_128): Rename from SSEMODE248.
6774 (VI248_128): Rename from SSEMODE248.
6775 (SSEMODE124C8): Remove.
6776 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
6777 (*sse2_<plusminus_insn><mode>3): Merge with
6778 *avx_<plusminus_insn><mode>3.
6779 (*mulv8hi3): Merge with *avx_mulv8hi3.
6780 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
6781 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
6782 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
6783 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
6784 (ashr<mode>3): Merge with *avx_ashr<mode>3.
6785 (lshr<mode>3): Merge with *avx_lshr<mode>3.
6786 (ashl<mode>3): Merge with *avx_ashl<mode>3.
6787 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
6788 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
6789 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
6790 (*<smaxmin:code>v8hi3): Ditto.
6791 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
6792 (*<smaxmin:code>v16qi3): Ditto.
6793 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
6794 (*sse2_eq<mode>3): Ditto.
6795 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
6796 (*sse2_gt<mode>3): Ditto.
6797 (vcondv2di): Split out of vcond<mode>.
6798 (vconduv2di): Split out of vcondu<mode>.
6799
956011be
RG
68002011-04-11 Richard Guenther <rguenther@suse.de>
6801
6802 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
6803 before calling tree_low_cst.
6804
e6313a78
RG
68052011-04-11 Richard Guenther <rguenther@suse.de>
6806
6807 * stor-layout.c (layout_type): Compute all array index size operations
6808 in the original type.
6809 (initialize_sizetypes): Add comment.
6810 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
6811
e69d7376
JM
68122011-04-11 Joseph Myers <joseph@codesourcery.com>
6813
6814 * common.opt (Tbss=, Tdata=, Ttext=): New options.
6815
9f9ebcdf
MJ
68162011-04-11 Martin Jambor <mjambor@suse.cz>
6817
6818 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
6819 of cgraph_node, handle NULL return value.
6820 (cgraph_global_info): Likewise.
6821 (cgraph_rtl_info): Likewise.
6822 * tree-inline.c (estimate_num_insns): Likewise.
6823 * gimplify.c (unshare_body): Likewise.
6824 (unvisit_body): Likewise.
6825 (gimplify_body): Likewise.
6826 * predict.c (optimize_function_for_size_p): Likewise.
6827 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
6828 (call_may_clobber_ref_p_1): Likewise.
6829 * varasm.c (function_section_1): Likewise.
6830 (assemble_start_function): Likewise.
6831
581985d7
MJ
68322011-04-11 Martin Jambor <mjambor@suse.cz>
6833
6834 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
6835 of cgraph_node.
6836 * final.c (rest_of_clean_state): Likewise.
6837 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
6838 * passes.c (pass_init_dump_file): Likewise.
6839 (execute_all_ipa_transforms): Likewise.
6840 (function_called_by_processed_nodes_p): Likewise.
6841 * predict.c (maybe_hot_frequency_p): Likewise.
6842 (probably_never_executed_bb_p): Likewise.
6843 (compute_function_frequency): Likewise.
6844 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
6845 (unnest_nesting_tree_1): Likewise.
6846 (lower_nested_functions): Likewise.
6847 * tree-optimize.c (execute_fixup_cfg): Likewise.
6848 (tree_rest_of_compilation): Likewise.
6849 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
6850 * tree-sra.c (ipa_early_sra): Likewise.
6851 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
6852 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
6853 * ipa.c (record_cdtor_fn): Likewise.
6854 * ipa-inline.c (cgraph_early_inlining): Likewise.
6855 (compute_inline_parameters_for_current): Likewise.
6856 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6857 * ipa-pure-const.c (local_pure_const): Likewise.
6858 * ipa-split.c (split_function): Likewise.
6859 (execute_split_functions): Likewise.
6860 * cgraphbuild.c (build_cgraph_edges): Likewise.
6861 (rebuild_cgraph_edges): Likewise.
6862 (cgraph_rebuild_references): Likewise.
6863 (remove_cgraph_callee_edges): Likewise.
6864 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
6865 (verify_cgraph_node): Likewise.
6866 (cgraph_analyze_functions): Likewise.
6867 (cgraph_preserve_function_body_p): Likewise.
6868 (save_inline_function_body): Likewise.
6869 (save_inline_function_body): Likewise.
6870 * tree-inline.c (copy_bb): Likewise.
6871 (optimize_inline_calls): Likewise.
6872
57dbdc5a
MJ
68732011-04-11 Martin Jambor <mjambor@suse.cz>
6874
6875 PR tree-optimization/48195
6876 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
6877 ipa_check_create_edge_args.
6878 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
6879 ipa_check_create_edge_args.
6880 * ipa-inline.c (inline_generate_summary): Do not call
6881 ipa_check_create_node_params and ipa_check_create_edge_args.
6882 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
6883 ipa_check_create_edge_args.
6884
d108e679
AS
68852011-04-09 Anatoly Sokolov <aesok@post.ru>
6886
6887 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
6888 instead of loop.
6889 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
6890 * function.c (record_hard_reg_sets): Likewise.
6891 * ira.c (compute_regs_asm_clobbered): Likewise.
6892 * sched-deps.c (sched_analyze_1): Likewise.
6893 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
6894
3411bc59
XDL
68952011-04-09 Xinliang David Li <davidxl@google.com>
6896
6897 PR tree-optimization/PR48484
6898 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
6899 has_valid_pred lazily
6900
b365495a
DS
69012011-04-09 Duncan Sands <baldrick@free.fr>
6902
6903 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
6904
68bc509a
EB
69052011-04-08 Eric Botcazou <ebotcazou@adacore.com>
6906
6907 * combine.c (combine_validate_cost): Adjust comments. Set registered
6908 cost of I0 to zero at the end, if any.
6909
041e059f
XDL
69102011-04-08 Xinliang David Li <davidxl@google.com>
6911
68bc509a
EB
6912 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
6913 to insane profile data.
041e059f 6914
444b3995
XDL
69152011-04-08 Xinliang David Li <davidxl@google.com>
6916
6917 * ipa-cp.c (ipcp_update_profiling): Correct
6918 negative scale factor due to insane profile data.
6919
6a801cf2
XDL
69202011-04-08 Xinliang David Li <davidxl@google.com>
6921
6922 * final.c (dump_basic_block_info): New function.
6923 (final): Dump basic block.
6924 (final_scan_insn): Remove old dump.
6925
d5f3624e
SK
69262011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
6927
68bc509a
EB
6928 PR target/47829
6929 * config.gcc (i386-*-freebsd): Disable unwind table generation for
6930 crtbegin/crtend.
d5f3624e 6931
42821aff
MM
69322011-04-08 Michael Matz <matz@suse.de>
6933
6934 PR middle-end/48389
6935 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
6936 functions.
6937 (rebuild_jump_labels): Call rebuild_jump_labels_1.
6938 * rtl.h (rebuild_jump_labels_chain): Declare.
6939 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
6940 insns inserted on edges.
6941
ad7be009
JM
69422011-04-08 Joseph Myers <joseph@codesourcery.com>
6943
6944 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
6945 * config/arm/arm-arches.def: New.
6946 * config/arm/arm-opts.h: New.
6947 * config/arm/genopt.sh: New.
6948 * config/arm/arm-tables.opt: New (generated).
6949 * config/arm/arm.c (arm_handle_option, arm_target_help,
6950 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
6951 (all_architectures): Get most table contents from arm-arches.def.
6952 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
6953 arm_selected_tune here.
6954 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
6955 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
6956 (march=, mcpu=, mtune=): Use Enum and Var.
6957 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
6958 (arm.o): Update dependencies.
ecbb6fb7 6959
42821aff 69602011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
6961
6962 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
6963 of header_file.
6964 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
6965 (write_typed_alloc_defns): Likewise.
6966 (main): Calls write_typed_alloc_defns with output_header.
6967
8d189b3f
VM
69682011-04-08 Vladimir Makarov <vmakarov@redhat.com>
6969
68bc509a 6970 PR inline-asm/48435
8d189b3f
VM
6971 * ira-color.c (setup_profitable_hard_regs): Add comments.
6972 Don't take prohibited hard regs into account.
6973 (setup_conflict_profitable_regs): Rename to
6974 get_conflict_profitable_regs.
6975 (check_hard_reg_p): Check prohibited hard regs.
6976
44f370bf
NF
69772011-04-08 Nathan Froyd <froydnj@codesourcery.com>
6978
6979 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
6980 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
6981 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
6982
483d7ad3
JDA
69832011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6984
6985 PR target/48366
6986 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 6987 move from floating point to shift amount register.
483d7ad3
JDA
6988 (emit_move_sequence): Remove secondary reload support for floating
6989 point to shift amount amount register copies.
6990 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
6991 amount register copies.
6992 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
6993 register, return false if mode isn't a scalar integer mode.
6994 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
6995
97e03fa1
RG
69962011-04-08 Richard Guenther <rguenther@suse.de>
6997
6998 * gimple.c (gimple_call_flags): Remove kludge.
6999
9d40778b
AM
70002011-04-08 Alexander Monakov <amonakov@ispras.ru>
7001
7002 * sel-sched.c (sel_region_init): Move call to
7003 sel_setup_region_sched_flags after setup_current_loop_nest.
7004
19ac7892
AB
70052011-04-08 Andrey Belevantsev <abel@ispras.ru>
7006
7007 PR rtl-optimization/48272
19ac7892
AB
7008 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
7009 init_insn_reg_pressure_info. Adjust a caller.
7010 * sched-int.h (init_insn_reg_pressure_info): Declare.
7011 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
7012 when sched-pressure is enabled.
7013
0f8c63cc
RG
70142011-04-08 Richard Guenther <rguenther@suse.de>
7015
7016 * gimple.c (gimple_set_modified): Do not queue calls to
7017 MODIFIED_NORETURN_CALLS here ...
7018 * tree-ssa-operands.c (update_stmt_operands): ... but here.
7019
5e5a425e
RG
70202011-04-08 Richard Guenther <rguenther@suse.de>
7021
7022 PR lto/48467
7023 * toplev.c (lang_dependent_init): Do not open asm_out_file
7024 in WPA mode, nor perform debug machinery initialization.
7025 (finalize): Do not unlink asm_out_file in WPA mode.
7026
9bfc434b
RG
70272011-04-08 Richard Guenther <rguenther@suse.de>
7028
7029 * gimple.h (gimple_call_fntype): New function.
7030 (gimple_call_return_type): Use it.
7031 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
7032 * gimple-low.c (gimple_check_call_args): Likewise.
7033 * gimple.c (gimple_call_flags): Likewise.
7034 (gimple_call_arg_flags): Likewise.
7035 (gimple_call_return_flags): Likewise.
7036 * tree-cfg.c (verify_gimple_call): Likewise.
7037 (do_warn_unused_result): Likewise.
7038 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7039 * value-prof.c (gimple_ic_transform): Fix fndecl check.
7040
7c1f0b40
DM
70412011-04-08 Dmitry Melnik <dm@ispras.ru>
7042
7043 PR rtl-optimization/48235
7044 * sel-sched.c (code_motion_process_successors): Recompute the last
7045 insn in basic block if control flow changed.
7046 (code_motion_path_driver): Ditto. Recompute the first insn as well.
7047 Update condition for ilist_remove.
7048
ea4d630f
AM
70492011-04-08 Alexander Monakov <amonakov@ispras.ru>
7050
7051 PR rtl-optimization/48302
7052 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
7053 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
7054 it to record added preheader blocks.
7055 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
7056 on to sel_add_loop_preheaders.
7057 (sel_region_init): Move call to setup_current_loop_nest after
7058 sel_init_bbs.
7059
07643d76
AM
70602011-04-08 Alexander Monakov <amonakov@ispras.ru>
7061
7062 PR target/48273
7063 * cfgloop.h (loop_has_exit_edges): New helper.
7064 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
7065 non-clonable.
7066 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
7067 that have no exit edges.
7068
1f3b2b4e
AM
70692011-04-08 Alexander Monakov <amonakov@ispras.ru>
7070
7071 PR rtl-optimization/48442
7072 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
7073 all callers. Adjust assert.
7074
554f1948
JJ
70752011-04-08 Jakub Jelinek <jakub@redhat.com>
7076
7077 PR tree-optimization/48377
7078 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
7079 is_packed to true even for types with smaller TYPE_ALIGN than
7080 TYPE_SIZE.
7081
ddf72388
RG
70822011-04-08 Richard Guenther <rguenther@suse.de>
7083
7084 PR bootstrap/48513
7085 * doc/tm.texi: Re-generate.
7086
0c27e2d8
WG
70872011-04-08 Wei Guozhi <carrot@google.com>
7088
7089 PR target/47855
7090 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
7091 * config/arm/arm.c (arm_attr_length_push_multi): New function.
7092 * config/arm/arm.md (*push_multi): Change the length computation to
7093 call a C function.
7094
07c5f94e
AS
70952011-04-08 Anatoly Sokolov <aesok@post.ru>
7096
7097 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
7098 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
7099 * doc/tm.texi: Regenerate.
7100 * system.h (ASM_OUTPUT_BSS): Poison.
7101 * varasm.c (asm_output_bss): Remove function.
7102 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 7103
07c5f94e
AS
7104 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
7105 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
7106 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
7107 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7108 Likewise.
7109 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7110 Likewise.
7111 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7112 Likewise.
7113 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
7114
5f2c36e1
JM
71152011-04-07 Joseph Myers <joseph@codesourcery.com>
7116
7117 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
7118 EnumValue lines.
7119
39e7722b
JM
71202011-04-07 Joseph Myers <joseph@codesourcery.com>
7121
7122 * config/m68k/m68k.c (m68k_handle_option): Don't handle
7123 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
7124 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
7125 OPT_mcpu32.
7126 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7127 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
7128 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
7129 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
7130 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
7131 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
7132 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
7133 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
7134 options. Don't map other m68k options manually. Don't handle
7135 old-style options as canonical.
7136 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 7137 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 7138
cf103ca4
EB
71392011-04-07 Eric Botcazou <ebotcazou@adacore.com>
7140
7141 * basic-block.h (force_nonfallthru): Move to...
7142 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
7143 (force_nonfallthru): ...here.
7144 * cfghooks.c (force_nonfallthru): New function.
7145 * cfgrtl.c (force_nonfallthru): Rename into...
7146 (rtl_force_nonfallthru): ...this.
7147 (commit_one_edge_insertion): Do not set AUX field.
7148 (commit_edge_insertions): Do not discover new basic blocks.
7149 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
7150 (cfg_layout_rtl_cfg_hooks): Likewise.
7151 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
7152 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
7153 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
7154
14431f58
AS
71552011-04-07 Anatoly Sokolov <aesok@post.ru>
7156
7157 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7158 Remove macros.
7159
3729983c
UB
71602011-04-07 Uros Bizjak <ubizjak@gmail.com>
7161
7162 * config/i386/sse.md: Update copyright year.
7163 (avxcvtvecmode): Remove.
7164 (sse_movhlps): Merge with *avx_movhlps.
7165 (sse_movlhps): Merge with *avx_movlhps.
7166 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
7167 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
7168 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
7169 (sse_loadhps): Merge with *avx_loadhps.
7170 (sse_storelps): Merge with *avx_storelps.
7171 (sse_loadlps): Merge with *avx_loadlps.
7172 (sse_movss): Merge with *avx_movss.
7173 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
7174 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
7175 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
7176 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
7177 (vec_set<mode>_0): Ditto.
7178 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
7179 (sse4_1_insertps): Merge with *avx_insertps.
7180 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
7181 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
7182 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
7183 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
7184 (sse2_storehpd): Merge with *avx_storehpd.
7185 (sse2_loadhpd): Merge with *avx_loadhpd.
7186 (sse2_loadlpd): Merge with *avx_loadlpd.
7187 (sse2_movsd): Merge with *avx_movsd.
7188 (*vec_concatv2df): Merge with *vec_concatv2df.
7189
4e626909
JJ
71902011-04-07 Jakub Jelinek <jakub@redhat.com>
7191
7192 PR debug/48343
7193 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 7194 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
7195 (try_combine): Add last_combined_insn parameter, pass it instead of
7196 i3 to propagate_for_debug.
7197
3729983c 71982011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
7199
7200 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
7201 to handle MDR <-> data register transfers.
7202 (movhi_internal): Likewise.
7203
20c03367
AM
72042011-04-07 Alan Modra <amodra@gmail.com>
7205
7206 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
7207 previous stack info.
7208
bf22920b
TV
72092011-04-07 Tom de Vries <tom@codesourcery.com>
7210
7211 PR target/43920
7212 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
7213 flow_find_cross_jump. Swap variables to implement backward replacement.
7214 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
7215
823918ae
TV
72162011-04-07 Tom de Vries <tom@codesourcery.com>
7217
7218 PR target/43920
7219 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
7220 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
7221 and bb2.
7222 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
7223 src1 or src2. Redirect edges to the last basic block. Update
7224 frequency and count on multiple basic blocks in case of fallthru.
823918ae 7225
472c95f5
TV
72262011-04-07 Tom de Vries <tom@codesourcery.com>
7227
7228 PR target/43920
7229 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
7230 function.
3729983c
UB
7231 (old_insns_match_p): Change return type. Replace return false/true
7232 with return dir_none/dir_both. Use can_replace_by.
7233 (flow_find_cross_jump): Add dir_p parameter. Init replacement
7234 direction from dir_p. Register replacement direction in dir, last_dir
7235 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
7236 merge_dir. Return replacement direction in dir_p.
7237 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
7238 return type of old_insns_match_p.
7239 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
7240 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
7241 flow_find_cross_jump.
7242 * basic-block.h (enum replace_direction): New type.
7243 (flow_find_cross_jump): Add parameter to declaration.
7244
a95d4000
UB
72452011-04-06 Uros Bizjak <ubizjak@gmail.com>
7246
7247 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
7248 (AVXMODEDCVTPS2DQ): Ditto.
7249 (VEC_FLOAT_MODE): Ditto.
7250 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
7251 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7252 (<any_logic:code><mode>3): Use VF mode iterator.
7253 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
7254 Use VF mode iterator.
7255 (copysign<mode>3): Use VF mode iterator.
7256 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
7257 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
7258 (*<any_logic:code><MODEF:mode>3): Merge with
7259 *avx_<any_logic:code><MODEF:mode>3.
7260 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
7261 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
7262 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
7263 (avx_cvtdq2ps<avxmodesuffix>): Remove.
7264 (sse2_cvtdq2ps): Use %v modifier.
7265 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
7266 (avx_cvtps2dq<avxmodesuffix>): Remove.
7267 (sse2_cvtps2dq): Use %v modifier.
7268 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
7269 (avx_cvttps2dq<avxmodesuffix>): Remove.
7270 (sse2_cvttps2dq): Use %v modifier.
7271 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
7272 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
7273 (sse2_cvtsd2siq): Fix insn template.
7274 (sse2_cvtsd2siq_2): Ditto.
7275 (sse2_cvttsd2siq): Ditto.
7276 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
7277 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
7278
ad01c437
JM
72792011-04-06 Joseph Myers <joseph@codesourcery.com>
7280
7281 * gcov-io.c: Use GCC Runtime Library Exception.
7282
fe846284
JJ
72832011-04-06 Jakub Jelinek <jakub@redhat.com>
7284
7285 PR debug/48466
7286 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
7287 as base_reg whatever register reg has been eliminated to, instead
7288 of hardcoding STACK_POINTER_REGNUM.
7289
acce4e77
JM
72902011-04-06 Joseph Myers <joseph@codesourcery.com>
7291
7292 * doc/tm.texi.in: Document C target hooks as separate from general
7293 target hooks.
7294 * doc/tm.texi: Regenerate.
7295 * genhooks.c (struct hook_desc): Add docname field.
7296 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
7297 docname field.
7298 (hook_array): Include c-target.def.
7299 (emit_documentation): Use docname field in output.
7300 (emit_init_macros): Take docname argument. Only emit definitions
7301 for hooks matching docname.
7302 (main): Expect additional arguments in all cases. Pass argument
7303 to emit_init_macros.
7304 * target.def: Move initial macro definitions and comments to
7305 target-hooks-macros.h.
7306 (gcc_targetcm): Move to c-family/c-target.def.
7307 * target.h (targetcm): Move declaration to c-family/c-target.h.
7308 * targhooks.c (default_handle_c_option): Move to
7309 c-family/c-opts.c.
7310 * targhooks.h (default_handle_c_option): Move declaration to
7311 c-family/c-common.h.
7312 * target-hooks-macros.h: New file.
7313 * config.gcc (target_has_targetcm): Define and use to add to
7314 c_target_objs and cxx_target_objs.
7315 * config/default-c.c: New file.
7316 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
7317 of target.h and target-def.h.
7318 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
7319 (darwin_objc_construct_string, darwin_cfstring_ref_p,
7320 darwin_check_cfstring_format_arg): Make static.
7321 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7322 TARGET_STRING_OBJECT_REF_TYPE_P,
7323 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
7324 * config/darwin-protos.h (darwin_objc_construct_string,
7325 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
7326 declare.
7327 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
7328 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 7329 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
7330 * config/t-darwin (darwin-c.o): Update dependencies.
7331 * system.h (TARGET_HAS_TARGETCM): Poison.
7332 * Makefile.in (TARGET_H): Update.
7333 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
7334 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
7335 (default-c.o): New target.
7336 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 7337 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
7338 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
7339 c-target.def.
7340 (build/genhooks.o): Update dependencies.
7341
275b4baa 73422011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 7343
275b4baa
RG
7344 * ipa-inline.c (enum inlining_mode): Remove.
7345 (cgraph_flatten): Use some other token.
7346 (cgraph_edge_early_inlinable_p): New function, split out from ...
7347 (cgraph_perform_always_inlining): New function, split out from ...
7348 (cgraph_decide_inlining_incrementally): ... here.
7349 (cgraph_mark_inline_edge): Adjust.
7350 (cgraph_early_inlining): Re-structure.
7351 (pass_early_inline): Require SSA form.
7352
f15b8bdf 73532011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
7354 Julian Brown <julian@codesourcery.com>
7355 Mark Shinwell <shinwell@codesourcery.com>
7356
7357 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
7358 LO_REGS only for Thumb-1.
7359 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
7360 be used in short instructions when optimising for size on Thumb-2.
7361
516426da
EB
73622011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7363
7364 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
7365 associated with user returns to be preserved.
7366
96621ebf
TG
73672011-04-06 Tristan Gingold <gingold@adacore.com>
7368
f15b8bdf
EB
7369 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
7370 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
7371 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
7372 if XCOFF_DEBUGGING_INFO.
7373
07c0852e
UB
73742011-04-06 Uros Bizjak <ubizjak@gmail.com>
7375
7376 * config/i386/i386.md (attribute isa): New.
7377 (attribute enabled): New.
7378 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
7379 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
7380 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
7381 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
7382 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
7383 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7384 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
7385 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
7386
7387 * config/i386/sse.md (VF): New mode iterator.
7388 (VF1): Ditto.
7389 (VF2): Ditto.
7390 (VF_128): Ditto.
7391 (SSEMODEF4): Remove.
7392 (attribute sse): Handle V8SF and V4DF modes.
7393 (<absneg:code><mode>2): Use VF mode iterator.
7394 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
7395 mode iterator.
7396 (<plusminus_insn><mode>3): Use VF mode iterator.
7397 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
7398 Use VF mode iterator.
7399 (<sse>_vm<plusminus_insn><mode>3): Merge with
7400 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
7401 (mul<mode>3): Use VF mode iterator.
7402 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
7403 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
7404 mode iterator.
7405 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
7406 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
7407 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
7408 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
7409 mode iterator.
7410 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
7411 Use VF1 mode iterator.
7412 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
7413 (sqrt<VF2:mode>2): New expander.
7414 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
7415 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
7416 and sqrtv2df2. Use VF mode iterator.
7417 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
7418 mode iterator.
7419 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
7420 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
7421 Use VF1 mode iterator.
7422 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
7423 (<smaxmin:code><mode>3): Use VF mode iterator.
7424 (*<smaxmin:code><mode>3_finite): Merge with
7425 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
7426 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
7427 (<sse>_vm<smaxmin:code><mode>2): Merge with
7428 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
7429 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
7430 mode iterator.
7431 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
7432 mode iterator.
7433 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
7434 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
7435 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
7436 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
7437 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
7438 VF mode iterator.
7439 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
7440 Use VF_128 mode iterator.
7441 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
7442 mode iterator.
7443 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
7444 VF_128 mode iterator.
7445 (vcond<mode>): Use VF mode iterator.
7446 * config/i386/predicates.md (sse_comparison_operator): Merge with
7447 avx_comparison_float_operator. Do not declare as special_predicate.
7448 * config/i386/i386.c (struct builtin_description): Update for renamed
7449 compare patterns.
7450 (ix86_expand_args_builtin): Ditto.
7451 (ix86_expand_sse_compare_mask): Ditto.
7452
ff5d142c
RG
74532011-04-06 Richard Guenther <rguenther@suse.de>
7454
7455 * tree-inline.c (estimate_num_insns): For calls simply account
7456 for all passed arguments and a used return value.
7457
d7d1d041 74582011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 7459
d7d1d041
RG
7460 PR tree-optimization/47663
7461 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
7462 call_stmt_time fields.
7463 (cgraph_edge_inlinable_p): Declare.
7464 (cgraph_edge_recursive_p): New inline function.
7465 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
7466 (cgraph_clone_edge): Copy it.
7467 * ipa-inline.c (cgraph_estimate_edge_time): New function.
7468 Account for call stmt time.
7469 (cgraph_estimate_time_after_inlining): Take edge argument.
7470 (cgraph_estimate_edge_growth): Account call stmt size.
7471 (cgraph_estimate_size_after_inlining): Take edge argument.
7472 (cgraph_mark_inline_edge): Adjust.
7473 (cgraph_check_inline_limits): Likewise.
7474 (cgraph_recursive_inlining_p): Remove.
7475 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
7476 (cgraph_decide_recursive_inlining): Take edge argument and
7477 adjust.
7478 (cgraph_decide_inlining_of_small_functions): Do not avoid
7479 diags for recursive inlining here.
7480 (cgraph_flatten): Adjust.
7481 (cgraph_decide_inlining_incrementally): Likewise.
7482 (estimate_function_body_sizes): Remove call cost handling.
7483 (compute_inline_parameters): Initialize caller edge call costs.
7484 (cgraph_estimate_edge_growth): New function.
7485 (cgraph_estimate_growth): Use it.
7486 (cgraph_edge_badness): Likewise.
7487 (cgraph_check_inline_limits): Take an edge argument.
7488 (cgraph_decide_inlining_of_small_functions): Adjust.
7489 (cgraph_decide_inlining): Likewise.
7490 * tree-inline.c (estimate_num_insns): Only account for call
7491 return value if it is used.
7492 (expand_call_inline): Avoid diagnostics on recursive inline
7493 functions here.
7494 * lto-cgraph.c (lto_output_edge): Output edge call costs.
7495 (input_edge): Input edge call costs.
7496
2feb95f7
RO
74972011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7498
7499 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
7500
26fbd9c2
JW
75012011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
7502
7503 * doc/invoke.texi (Spec Files): Fix typo.
7504
694dc0ca
EB
75052011-04-06 Eric Botcazou <ebotcazou@adacore.com>
7506
7507 * profile.c (branch_prob): Move declaration of local variable. Remove
7508 obsolete ??? comment. Expand the location explicitly instead of using
7509 the LOCATION_FILE and LOCATION_LINE macros.
7510
4925d0d5
WG
75112011-04-06 Wei Guozhi <carrot@google.com>
7512
7513 PR target/47855
7514 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
7515 (arm_cond_branch): Likewise.
7516 (arm_cond_branch_reversed): Likewise.
7517 (arm_jump): Likewise.
7518 (push_multi): Likewise.
7519 * config/arm/constraints.md (Py): New constraint.
7520
f55dfa2f
NF
75212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7522
7523 PR bootstrap/48471
7524 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
7525 Move these...
7526 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
7527 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
7528 #ifdef DBX_DEBUGGING_INFO.
7529
fca96842
BS
75302011-04-05 Bernd Schmidt <bernds@codesourcery.com>
7531
7532 PR bootstrap/48403
7533 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
7534 if old and new states differ.
7535
30b83e38
JM
75362011-04-05 Joseph Myers <joseph@codesourcery.com>
7537
7538 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
7539 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
7540 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
7541 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
7542 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
7543 mcfv4e): Use Alias.
7544 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
7545 ColdFire options to -mcpu= options.
7546
277a9aa5
JL
75472011-04-05 Jeff Law <law@redhat.com>
7548
7549 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
7550 check if BB is a successor of LOOP->header and return
7551 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
7552
c1e2610e
SB
75532011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7554
7555 * cprop.c (struct reg_use): Remove.
7556 (reg_use_table): Make an array of RTX.
7557 (find_used_regs, constprop_register, local_cprop_pass,
7558 bypass_block): Simplify users of reg_use_table.
7559 (cprop_insn): Likewise. Iterate if copy propagation succeeded
7560 on one of the uses found by find_used_regs.
7561
e532f586
NF
75622011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7563
7564 PR bootstrap/48469
7565 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
7566 declaration.
7567
3fb7c055
NF
75682011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7569
7570 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
7571 as an rtx.
7572 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
7573
b71b43d9
SB
75742011-04-05 Steven Bosscher <steven@gcc.gnu.org>
7575
7576 PR middle-end/48441
7577 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
7578
b405b274
NF
75792011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7580
7581 * combine.c: Include obstack.h.
7582 (struct insn_link): Define.
7583 (uid_log_links): Adjust type.
7584 (FOR_EACH_LOG_LINK): New macro.
7585 (insn_link_obstack): Declare.
7586 (alloc_insn_link): Define.
7587 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
7588 type of link variables.
7589 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
7590 (try_combine, record_promoted_values, distribute_notes): Likewise.
7591 (distribute_links): Likewise. Tweak prototype.
7592 (clear_log_links): Delete.
7593 (adjust_for_new_dest): Call alloc_insn_link.
7594 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
7595
6409abe3
NF
75962011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7597
7598 * gcse.c (modify_mem_list): Convert to an array of VECs.
7599 (canon_modify_mem_list, compute_transp): Tweak formatting.
7600 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
7601 (load_killed_in_block_p): Likewise.
7602 (record_last_mem_set_info): Likewise.
7603 (clear_modify_mem_tables): Likewise.
7604
170d8157
TV
76052011-04-05 Tom de Vries <tom@codesourcery.com>
7606
7607 PR middle-end/48461
7608 * function.c (emit_use_return_register_into_block): Only define if
7609 HAVE_return.
7610
c5911a55
EB
76112011-04-05 Eric Botcazou <ebotcazou@adacore.com>
7612
7613 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
7614
abd016e6
JM
76152011-04-05 Joseph Myers <joseph@codesourcery.com>
7616
7617 * config/rx/rx-opts.h: New.
7618 * config/rx/rx.c (rx_cpu_type): Remove.
7619 (rx_handle_option): Don't assert that global structures are in
7620 use. Access variables via opts pointer. Defer most handling of
7621 OPT_mint_register_. Use error_at.
7622 (rx_option_override): Handle deferred OPT_mint_register_ here.
7623 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
7624 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
7625 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
7626 (rx_cpu_types): New Enum and EnumValue entries.
7627 (mint-register=): Use Defer and use Var accordingly.
7628
1ed13f83
NF
76292011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7630
7631 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
7632 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
7633 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
7634 Move these...
7635 (debug_free_queue, debug_nesting, symbol_queue_index):
7636 ...and these...
7637 * dbxout.c: ...to here. Make static.
7638
6ce1edcf
NF
76392011-04-05 Nathan Froyd <froydnj@codesourcery.com>
7640
7641 * gcse.c (modify_pair): Define. Define a VEC of it.
7642 (canon_modify_mem_list): Convert to an array of VECs.
7643 (free_insn_expr_list_list): Delete.
7644 (clear_modify_mem_tables): Call VEC_free instead.
7645 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
7646 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
7647 (canon_list_insert, compute_transp): Likewise.
7648
c201ac94
TV
76492011-04-05 Tom de Vries <tom@codesourcery.com>
7650
7651 PR target/43920
7652 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
7653 for size.
7654
4c029f40
TV
76552011-04-05 Tom de Vries <tom@codesourcery.com>
7656
7657 PR target/43920
7658 * function.c (emit_use_return_register_into_block): New function.
7659 (thread_prologue_and_epilogue_insns): Use
7660 emit_use_return_register_into_block.
7661
2a562b0a
TV
76622011-04-05 Tom de Vries <tom@codesourcery.com>
7663
7664 PR target/43920
7665 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
7666 insn.
7667
0248bceb
TV
76682011-04-05 Tom de Vries <tom@codesourcery.com>
7669
7670 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
7671
ffa94123
YZ
76722011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
7673
798dd0ba
UB
7674 * config/arm/arm.md (define_constants for unspec): Replace with
7675 define_c_enum.
7676 (define_constants for unspecv): Replace with define_c_enum.
7677 * config/arm/neon.md (define_constants for unspec): Replace with
7678 define_c_enum.
ffa94123 7679
3b8f9b46
RH
76802011-04-04 Richard Henderson <rth@redhat.com>
7681
720cf80f 7682 PR bootstrap/48400
3b8f9b46
RH
7683 * dwarf2out.c (output_line_info): Always emit line info from
7684 at least one section.
7685 (dwarf2out_init): Create text_section_line_info here ...
7686 (set_cur_line_info_table): ... not here.
7687
720cf80f 76882011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
7689
7690 PR target/48380
7691 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 7692 not called.
e5b0e1ca 7693
720cf80f 7694 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 7695
196565d4
SB
76962011-04-04 Steven Bosscher <steven@gcc.gnu.org>
7697
b77f9eab
SB
7698 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
7699 (expr_equiv_p): Remove.
7700 (insert_set_in_table): Look at <dest, src> pair instead of expr.
7701 (hash_scan_set): Update call to insert_set_in_table.
7702 (dump_hash_table): Dump <dest, src> pair.
7703 (lookup_set): Simplify. Lookup <dest, src> pair.
7704 (compute_transp): Remove, fold heavily simplified code into...
7705 (compute_local_properties): ...here. Expect COMP and TRANSP
7706 unconditionally.
7707 (find_avail_set): Take set directly from struct expr.
7708 (find_bypass-set): Likewise.
7709 (bypass_block): Likewise.
7710 (cprop_insn): Likewise. Remove redundant INSN_P test.
7711
384d7a55
SB
7712 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
7713 checks on form of COND from find_implicit_sets to here.
7714 (find_implicit_sets): Cleanup control flow. Split critical edges
7715 if it exposes implicit sets. Allocate/resize implicit_sets as
7716 necessary.
7717 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
7718 changed something. Run df_analyze after find_implicit_sets if any
7719 edges were split. Do not allocate implicit_sets here.
7720
3084ce69
SB
7721 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
7722 (gcse_obstack): Renamed to cprop_obstack.
7723 (GNEW, GNEWVEC, GNEWVAR): Remove.
7724 (gmalloc): Remove.
7725 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
7726 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
7727 (gcse_alloc): Likewise, and rename to cprop_alloc.
7728 (alloc_gcse_men, free_gcse_mem): Remove.
7729 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
7730 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
7731 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
7732
196565d4
SB
7733 * cprop.c (oprs_not_set_p): Remove.
7734 (mark_set, mark_clobber): Remove.
7735 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
7736 (reg_not_set_p): New function.
7737 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
7738 (cprop_insn): Likewise.
7739 (cprop_jump): Use FOR_EACH_EDGE.
7740
9b69cf83
BS
77412011-04-04 Bernd Schmidt <bernds@codesourcery.com>
7742
7743 PR bootstrap/48403
7744 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
7745 (rank_for_schedule): Use scheduled_insns vector instead of
7746 last_scheduled_insn.
7747 (ok_for_early_queue_removal): Likewise.
7748 (queue_to_ready): Search forward in nonscheduled_insns_begin if
7749 we have a dbg_cnt.
7750 (choose_ready): Likewise.
7751 (commit_schedule): Use VEC_iterate.
7752 (schedule_block): Initialize nonscheduled_insns_begin. If we have
7753 a dbg_cnt, use it and ensure the first insn is in the ready list.
7754 (haifa_sched_init): Allocate scheduled_insns.
7755 (sched_extend_ready_list): Don't allocate it; reserve space.
7756 (haifa_sched_finish): Free it.
7757
24f48c2f
JM
77582011-04-04 Joseph Myers <joseph@codesourcery.com>
7759
7760 * optc-gen.awk: Always remove type from Variable entry before
7761 recording in var_seen.
7762
8effe856
EB
77632011-04-04 Eric Botcazou <ebotcazou@adacore.com>
7764
7765 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
7766 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
7767 call to tidy_fallthru_edges.
7768
413519ae
JM
77692011-04-04 Joseph Myers <joseph@codesourcery.com>
7770
7771 * doc/options.texi (ToLower): Document.
3729983c 7772 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
7773 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
7774 * opts.h (cl_option): Add cl_tolower field.
7775 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
7776 arguments with lowercase strings.
7777 * config/rx/rx.opt (mcpu=): Add ToLower.
7778 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
7779 argument.
7780
7d34a1b0
RS
77812011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7782
7783 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
7784
c30e7434
RS
77852011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
7786
7787 * config/vax/vax.c: Include reload.h.
7788
112a861d
AS
77892011-04-04 Anatoly Sokolov <aesok@post.ru>
7790
7791 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
7792 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7793 (sparc_preferred_reload_class): New function.
7794
e8c6bb74
JJ
77952011-04-04 Jakub Jelinek <jakub@redhat.com>
7796
2aeaa366 7797 PR debug/48401
e8c6bb74
JJ
7798 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
7799 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
7800
2c081caf
NF
78012011-04-03 Nathan Froyd <froydnj@codesourcery.com>
7802
7803 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
7804 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
7805
53802f27
AS
78062011-04-03 Anatoly Sokolov <aesok@post.ru>
7807
7808 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
7809 (ASM_OUTPUT_ALIGNED_BSS): Define.
7810
e89964e3
MM
78112011-04-03 Michael Matz <matz@suse.de>
7812
7813 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
7814 and next_slot members.
7815 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
7816 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
7817 (lto_streamer_cache_append): Declare.
7818 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
7819 unsigned index, remove offset parameter, ensure that we append
7820 or update existing entries.
7821 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
7822 parameter, update next_slot for append.
7823 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
7824 parameter.
7825 (lto_streamer_cache_insert_at): Likewise.
7826 (lto_streamer_cache_append): New function.
7827 (lto_streamer_cache_lookup): Use unsigned index.
7828 (lto_streamer_cache_get): Likewise.
7829 (lto_record_common_node): Don't test tree_node_can_be_shared.
7830 (preload_common_node): Adjust call to lto_streamer_cache_insert.
7831 (lto_streamer_cache_delete): Don't free offsets member.
7832 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
7833 (lto_output_string_with_length): Use lto_output_data_stream.
7834 (lto_output_tree_header): Remove ix parameter, don't write it.
7835 (lto_output_builtin_tree): Likewise.
7836 (lto_write_tree): Adjust callers to above, don't track and write
7837 offset, write unsigned index.
7838 (output_unreferenced_globals): Don't emit all global vars.
7839 (write_global_references): Use unsigned indices.
7840 (lto_output_decl_state_refs): Likewise.
7841 (write_symbol): Likewise.
7842 * lto-streamer-in.c (lto_input_chain): Move earlier.
7843 (input_function): Use unsigned index.
7844 (input_alias_pairs): Don't read and then ignore all global vars.
7845 (lto_materialize_tree): Remove ix_p parameter, don't read index,
7846 don't pass it back, use lto_streamer_cache_append.
7847 (lto_register_var_decl_in_symtab): Use unsigned index.
7848 (lto_register_function_decl_in_symtab): Likewise.
7849 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
7850 index.
7851 (lto_get_builtin_tree): Don't read index, use
7852 lto_streamer_cache_append.
7853 (lto_read_tree): Adjust call to lto_materialize_tree.
7854
7855 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
7856 don't use function calls in arguments to MIN.
7857
7858 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
7859 twice.
7860
7861 * gimple.c (gimple_type_leader_entry): Mark deletable.
7862
b9a5b5b2
AM
78632011-04-03 Alan Modra <amodra@gmail.com>
7864
7865 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
7866
ac6a641b
MM
78672011-04-03 Michael Matz <matz@suse.de>
7868
7869 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
7870 an integer.
7871 * tree.h (tree_decl_non_common.vindex): Adjust comment.
7872
0038d4e0
MM
78732011-04-03 Michael Matz <matz@suse.de>
7874
e9c18386 7875 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
7876 * gimple-fold.c (canonicalize_constructor_val): Accept being called
7877 without function context.
7878 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
7879 current_function_decl and cfun.
7880
91f2fae8
MM
78812011-04-03 Michael Matz <matz@suse.de>
7882
7883 * tree.c (decl_init_priority_insert): Don't create entry for
7884 default priority.
7885 (decl_fini_priority_insert): Ditto.
7886 (fields_compatible_p, find_compatible_field): Remove.
7887 * tree.h (fields_compatible_p, find_compatible_field): Remove.
7888 * gimple.c (gimple_compare_field_offset): Adjust block comment.
7889
da29e070
EB
78902011-04-03 Eric Botcazou <ebotcazou@adacore.com>
7891
7892 * combine.c (try_combine): Remove useless local variable.
7893
4979c28b 78942011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 7895 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
7896
7897 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
7898 non-variable offsets and compare the remaining bases of the two
7899 accesses instead of looking for exact same data-ref.
7900
b4ddcaee
KT
79012011-04-02 Kai Tietz <ktietz@redhat.com>
7902
f90298e1
KT
7903 PR target/48416
7904 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
7905
b4ddcaee
KT
7906 * i386.c (ix86_is_msabi_thiscall): New helper function.
7907 (ix86_is_type_thiscall): New helper function.
7908 (ix86_comp_type_attributes): Handle thiscall for method-functions
7909 special.
7910 (init_cumulative_args): Likewise.
7911 (find_drap_reg): Likewise.
7912 (ix86_static_chain): Likewise.
7913 (x86_this_parameter): Likewise.
7914 (x86_output_mi_thunk): Likewise.
7915
2a9d769a 79162011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
7917 Nicolas Setton <setton@adacore.com>
7918 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
7919
7920 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
7921 (add_gnat_descriptive_type_attribute): New function.
7922 (gen_array_type_die): Call it.
7923 (gen_enumeration_type_die): Likewise.
7924 (gen_struct_or_union_type_die): Likewise.
7925 (modified_type_die): Likewise.
7926 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
7927 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
7928 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
7929
15a03a11
JJ
79302011-04-01 Jakub Jelinek <jakub@redhat.com>
7931
7932 PR bootstrap/48148
7933 * dwarf2out.c (resolve_addr): Don't call force_decl_die
7934 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
7935
7936 Revert:
7937 2011-03-17 Richard Guenther <rguenther@suse.de>
7938
7939 PR bootstrap/48148
7940 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7941 origin for decls in other ltrans units.
7942 (input_varpool_node): Likewise.
7943
19228b93
JJ
79442011-04-01 Jakub Jelinek <jakub@redhat.com>
7945
7946 PR middle-end/48335
7947 * expr.c (expand_assignment): Handle all possibilities
7948 if TO_RTX is CONCAT.
e9c18386 7949 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
7950 (store_split_bit_field): If SUBREG_REG (op0) or
7951 op0 itself has smaller mode than word, return it
7952 for offset 0 and const0_rtx for out-of-bounds stores.
7953 If word is const0_rtx, skip it.
7954
88cb339e
N
79552011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
7956
7957 * config/h8300/h8300.c (print_operand_address): Rename to...
7958 (h8300_print_operand_address): ...this. Make static. Adjust comments.
7959 Call h8300_print_operand and h8300_print_operand_address instead of
7960 print_operand and print_operand_address. Declare.
7961 (print_operand): Renake to...
7962 (h8300_print_operand): ...this. Make static. Adjust comments.
7963 Call h8300_print_operand instead of print_operand. Declare.
7964 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
7965 (h8300_register_move_cost): Likewise.
7966 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
7967 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
7968 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
7969 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
7970 * config/h8300/h8300-protos.h (print_operand): Delete.
7971 (print_operand_address): Delete.
7972
756d6ee9
RH
79732011-04-01 Richard Henderson <rth@redhat.com>
7974
7975 PR 48400
7976 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
7977 in strict mode before dwarf4. Re-order tests to early out
7978 before switching sections.
7979
ceaaaeab
NF
79802011-04-01 Nathan Froyd <froydnj@codesourcery.com>
7981
7982 * config/h8300/constraints.md: New file.
7983 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
7984 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
7985 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
7986 * config/h8300/predicates.md (bit_operand): Likewise.
7987 (incdec_operand): Use satisfies_constraint_M and
7988 satisfies_constraint_O. Don't use C code block.
7989 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
7990 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
7991 (compute_mov_length): Use satisfies_constraint_G.
7992 (fix_bit_operand): Use satisfies_constraint_U.
7993 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
7994 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
7995 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
7996 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
7997 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
7998 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
7999 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8000 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
8001 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
8002 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
8003 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
8004 (EXTRA_MEMORY_CONSTRAINT): Delete.
8005
08ae38e0
AP
80062011-04-01 Andrew Pinski <pinskia@gmail.com>
8007 Michael Meissner <meissner@linux.vnet.ibm.com>
8008
8009 PR target/48262
8010 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
8011 operands, as per the specifications.
8012
8013 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
8014 (vec_extract_evenv4sf): Ditto.
8015 (vec_extract_evenv8hi): Ditto.
8016 (vec_extract_evenv16qi): Ditto.
8017 (vec_extract_oddv4si): Ditto.
8018
bdb0b0f6
MW
80192011-03-31 Mark Wielaard <mjw@redhat.com>
8020
8021 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
8022 high_pc attribute if the CU has no associated code. Only output
8023 DW_AT_entry_pc for CU if not generating strict dwarf and
8024 dwarf_version < 4.
8025
722279e4
BS
80262011-04-01 Bernd Schmidt <bernds@codesourcery.com>
8027
8028 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
8029 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
8030 out of ...
8031 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
8032 * final.c (final_start_function): Call the new function rather
8033 than using a NULL argument for dwarf2out_frame_debug.
8034
c5dd277d
BS
8035 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
8036 that contains the prologue.
8037
ec4efea9
BS
8038 * haifa-sched.c (queue_insn): New arg REASON. All callers
8039 changed. Print it in debugging output.
8040
2a6a0d80
BS
8041 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
8042
86014d07
BS
8043 * sched-ebb.c (begin_schedule_ready): Remove second argument.
8044 Split most of the code into...
8045 (begin_move_insn): ... here. New function.
8046 (ebb_sched_info): Add a pointer to it.
8047 * haifa-sched.c (scheduled_insns): New static variable.
8048 (sched_extend_ready_list): Allocate it.
8049 (schedule_block): Use it to record the order of scheduled insns.
8050 Perform RTL changes to move insns only after all scheduling
8051 decisions have been made.
8052 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
8053 begin_move_insn field.
8054 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
8055 * sched-int.h (struct haifa_sched_info): Remove second argument
8056 from begin_schedule_ready hook. Add new member begin_move_insn.
8057 * sched-rgn.c (begin_schedule_ready): Remove second argument.
8058 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
8059
9d701248
BS
8060 * haifa-sched.c (prune_ready_list): New function, broken out of
8061 schedule_block.
8062 (schedule_block): Use it.
8063
1ca1dad5
UW
80642011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8065
8066 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
8067
49568e45
KT
80682011-04-01 Kai Tietz <ktietz@redhat.com>
8069
8070 * config.gcc (*-*-mingw*): Allow as option the
8071 posix threading model.
07c0852e 8072 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
8073 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
8074 definition.
8075 (CPP_SPEC): Add pthread/no-pthread handling.
8076 (LIB_SPEC): Likewise.
8077 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
8078 (LIB_SPEC): Likewise.
8079 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
8080 flag to pass -pthread option for shared libgcc build.
8081 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
8082 for shared libgcc build.
8083 * config/i386/t-mingw-pthread: New file.
8084 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
8085 New define to enable use of library pthread by default.
8086 * config/i386/mingw.opt (pthread): New driver option.
8087 (no-pthread): New driver option.
e9c18386 8088 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
8089 * config/i386/mingw-w64.opt: Likewise.
8090
748f7574 80912011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
8092
8093 * c-decl.c (grokdeclarator): Fix formatting.
8094
f04713ee
RS
80952011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8096
8097 * expr.c (emit_block_move_via_movmem): Use n_generator_args
8098 instead of n_operands.
8099 (set_storage_via_setmem): Likewise.
8100 * optabs.c (maybe_gen_insn): Likewise.
8101 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
8102 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
8103 (mips_expand_builtin_direct): Likewise.
8104 * config/spu/spu.c (expand_builtin_args): Likewise.
8105
b29387ee
RS
81062011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8107
8108 * recog.h (insn_data_d): Add n_generator_args.
8109 * genoutput.c (data): Likewise.
8110 (output_insn_data): Print it.
8111 (max_opno, num_dups): Delete.
8112 (scan_operands): Just fill in "d->operand[...]".
8113 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
8114
e792559a
RS
81152011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
8116
8117 * gensupport.h (pattern_stats): New structure.
8118 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
8119 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
8120 (max_operand_1, max_operand_vec): Delete.
8121 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
8122
e8110d6f
NF
81232011-03-31 Nathan Froyd <froydnj@codesourcery.com>
8124
8125 * emit-rtl.c (emit_pattern_after_setloc): New function.
8126 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
8127 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
8128 (emit_pattern_after): New function.
8129 (emit_insn_after, emit_jump_insn_after): Call it.
8130 (emit_call_insn_after, emit_debug_insn_after): Likewise.
8131 (emit_pattern_before_setloc): New function.
8132 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
8133 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
8134 Likewise.
8135 (emit_pattern_before): New function.
8136 (emit_insn_before, emit_jump_insn_before): Call it.
8137 (emit_call_insn_before, emit_debug_insn_before): Likewise.
8138
576f85f1
RH
81392011-03-31 Richard Henderson <rth@redhat.com>
8140
8141 * dwarf2out.c (dw_separate_line_info_ref): Remove.
8142 (dw_separate_line_info_entry): Remove.
8143 (enum dw_line_info_opcode): New.
8144 (dw_line_info_entry): Use it.
8145 (dw_line_info_table, dw_line_info_table_p): New.
8146 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
8147 (line_info_table, line_info_label_num): Remove.
8148 (line_info_table_in_use): Remove.
8149 (separate_line_info_table): Remove.
8150 (separate_line_info_table_allocated): Remove.
8151 (separate_line_info_table_in_use): Remove.
8152 (LINE_INFO_TABLE_INCREMENT): Remove.
8153 (line_info_label_num): New.
8154 (cur_line_info_table): New.
8155 (text_section_line_info, cold_text_section_line_info): New.
8156 (separate_line_info): New.
8157 (SEPARATE_LINE_CODE_LABEL): Remove.
8158 (print_dwarf_line_table): Remove.
8159 (debug_dwarf): Don't dump it.
8160 (output_one_line_info_table): New.
8161 (output_line_info): Use it.
8162 (new_line_info_table): New.
8163 (set_cur_line_info_table): New.
8164 (dwarf2out_switch_text_section): Use it.
8165 (dwarf2out_begin_function): Likewise.
8166 (push_dw_line_info_entry): New.
8167 (dwarf2out_source_line): Rewrite for new line info tables.
8168 (dwarf2out_init): Remove dead initailizations.
8169
300d83d9
JM
81702011-03-31 Joseph Myers <joseph@codesourcery.com>
8171
8172 * opts.h (cl_option): Add comments to fields. Add bit-fields for
8173 various flags.
8174 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
8175 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
8176 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
8177 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
8178 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
8179 * opt-functions.awk (flag_init, switch_bit_fields): New.
8180 (switch_flags): Don't handle flags moved to bit-fields. Don't
8181 generate CL_MISSING_OK or CL_SAVE.
8182 * optc-gen.awk: Update to generate bit-field output as well as
8183 flags field.
8184 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
8185 bit-field instead of CL_REJECT_DRIVER flag.
8186 * opts-common.c (generate_canonical_option,
8187 decode_cmdline_option): Use bit-fields instead of CL_* flags.
8188 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
8189 instead of CL_REJECT_NEGATIVE flag.
8190 * toplev.c (print_switch_values): Use cl_report bit-field instead
8191 of CL_REPORT flag.
8192
d4d73ce2
EB
81932011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8194
8195 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
8196 a zero minimum index only if it is redundant.
8197
b8faca75
VM
81982011-03-31 Vladimir Makarov <vmakarov@redhat.com>
8199
8200 PR rtl-optimization/48381
8201 * ira-color.c (assign_hard_reg): Use hard reg set intersection
8202 instead of ira_class_hard_reg_index for calculating conflicting
8203 hard registers.
8204
7d11cebe
SB
82052011-03-31 Steven Bosscher <steven@gcc.gnu.org>
8206
8207 * cprop.c: Clean up hash table building.
8208 (reg_avail_info): Remove.
8209 (oprs_available_p): Remove.
8210 (record_last_reg_set_info): Remove.
8211 (record_last_set_info): Remove.
8212 (reg_available_p): New function.
8213 (gcse_constant_p): Do not treat unfolded conditions as constants.
8214 (make_set_regs_unavailable): New function.
8215 (hash_scan_set): Simplify with new reg_available_p.
8216 (compute_hash_table_work): Traverse insns stream only once.
8217 Do not compute reg_avail_info. Traverse insns in reverse order.
8218 Record implicit sets after recording explicit sets from the block.
8219
98faf84f
MM
82202011-03-31 Michael Matz <matz@suse.de>
8221
e9c18386 8222 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 8223
f52d97da
AS
82242011-03-31 Anatoly Sokolov <aesok@post.ru>
8225
8226 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
8227 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
8228 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8229 (h8300_mode_dependent_address_p): New function.
8230 (h8300_get_index): Make static.
8231
e16b6fd0
JL
82322011-03-31 Jeff Law <law@redhat.com>
8233
10c51983
JL
8234 * reload1.c (elimination_effects): Fix typo in recent change.
8235
e9c18386 8236 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
8237 typo potentially leading to null pointer dereference.
8238
8239 * caller-save.c (new_saved_hard_reg): Eliminate return value.
8240 (setup_save_areas): Corresponding changes to avoid useless
8241 assignments.
8242
8243 * jump.c (reversed_comparison_code_parts): Avoid successive return
8244 statements when REVERSE_CONDITION is defined.
8245
8246 * expr.c (expand_assignment): Avoid useless assignments.
8247 (expand_expr_real_1): Likewise.
8248 (expand_expr_real_2): Avoid useless statements.
8249
8250 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
8251
8252 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
8253
8254 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
8255 statements.
8256
8257 * stmt.c (expand_expr_stmt): Avoid useless assignment.
8258
eb1eb914
JM
82592011-03-31 Joseph Myers <joseph@codesourcery.com>
8260
8261 PR target/47109
8262 * doc/tm.texi.in (TARGET_VERSION): Remove.
8263 * doc/tm.texi: Regenerate.
8264 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
8265 * collect2.c (main): Don't use TARGET_VERSION.
8266 * mips-tdump.c (main): Don't use TARGET_VERSION.
8267 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 8268 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
8269 * config/rs6000/vxworksae.h: Remove.
8270 * config/alpha/alpha.h (TARGET_VERSION): Remove.
8271 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
8272 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
8273 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
8274 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8275 * config/arm/arm.h (TARGET_VERSION): Remove.
8276 * config/arm/coff.h (TARGET_VERSION): Remove.
8277 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
8278 * config/arm/elf.h (TARGET_VERSION): Remove.
8279 * config/arm/freebsd.h (TARGET_VERSION): Remove.
8280 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
8281 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
8282 * config/arm/pe.h (TARGET_VERSION): Remove.
8283 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
8284 * config/arm/semi.h (TARGET_VERSION): Remove.
8285 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
8286 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
8287 * config/arm/vxworks.h (TARGET_VERSION): Remove.
8288 * config/avr/avr.h (TARGET_VERSION): Remove.
8289 * config/bfin/bfin.h (TARGET_VERSION): Remove.
8290 * config/fr30/fr30.h (TARGET_VERSION): Remove.
8291 * config/frv/frv.h (TARGET_VERSION): Remove.
8292 * config/h8300/h8300.h (TARGET_VERSION): Remove.
8293 * config/i386/cygwin.h (TARGET_VERSION): Remove.
8294 * config/i386/darwin.h (TARGET_VERSION): Remove.
8295 * config/i386/darwin64.h (TARGET_VERSION): Remove.
8296 * config/i386/djgpp.h (TARGET_VERSION): Remove.
8297 * config/i386/freebsd.h (TARGET_VERSION): Remove.
8298 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
8299 * config/i386/gnu.h (TARGET_VERSION): Remove.
8300 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
8301 * config/i386/i386elf.h (TARGET_VERSION): Remove.
8302 * config/i386/linux.h (TARGET_VERSION): Remove.
8303 * config/i386/linux64.h (TARGET_VERSION): Remove.
8304 * config/i386/lynx.h (TARGET_VERSION): Remove.
8305 * config/i386/mingw32.h (TARGET_VERSION): Remove.
8306 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
8307 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
8308 * config/i386/netware.h (TARGET_VERSION): Remove.
8309 * config/i386/nto.h (TARGET_VERSION): Remove.
8310 * config/i386/openbsd.h (TARGET_VERSION): Remove.
8311 * config/i386/vxworks.h (TARGET_VERSION): Remove.
8312 * config/ia64/elf.h (TARGET_VERSION): Remove.
8313 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
8314 * config/ia64/hpux.h (TARGET_VERSION): Remove.
8315 * config/ia64/linux.h (TARGET_VERSION): Remove.
8316 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
8317 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
8318 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8319 * config/lm32/lm32.h (TARGET_VERSION): Remove.
8320 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
8321 * config/m32c/m32c.h (TARGET_VERSION): Remove.
8322 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
8323 * config/m32r/m32r.h (TARGET_VERSION): Remove.
8324 * config/m68k/linux.h (TARGET_VERSION): Remove.
8325 * config/m68k/m68k.h (TARGET_VERSION): Remove.
8326 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
8327 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
8328 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
8329 * config/mep/mep.h (TARGET_VERSION): Remove.
8330 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
8331 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
8332 * config/mips/iris6.h (MACHINE_TYPE): Remove.
8333 * config/mips/linux.h (TARGET_VERSION): Remove.
8334 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
8335 * config/mips/vxworks.h (TARGET_VERSION): Remove.
8336 * config/mmix/mmix.h (TARGET_VERSION): Remove.
8337 * config/mn10300/linux.h (TARGET_VERSION): Remove.
8338 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
8339 * config/pa/pa.h (TARGET_VERSION): Remove.
8340 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
8341 * config/picochip/picochip.h (TARGET_VERSION): Remove.
8342 * config/rs6000/aix.h (TARGET_VERSION): Remove.
8343 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
8344 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
8345 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
8346 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
8347 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
8348 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
8349 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
8350 * config/rs6000/linux.h (TARGET_VERSION): Remove.
8351 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
8352 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
8353 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
8354 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
8355 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
8356 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
8357 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
8358 * config/s390/linux.h (TARGET_VERSION): Remove.
8359 * config/s390/s390.h (TARGET_VERSION): Remove.
8360 * config/s390/tpf.h (TARGET_VERSION): Remove.
8361 * config/score/score.h (TARGET_VERSION): Remove.
8362 * config/sh/linux.h (TARGET_VERSION): Remove.
8363 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
8364 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
8365 * config/sh/sh.h (TARGET_VERSION): Remove.
8366 * config/sh/sh64.h (TARGET_VERSION): Remove.
8367 * config/sh/superh.h (TARGET_VERSION): Remove.
8368 * config/sh/vxworks.h (TARGET_VERSION): Remove.
8369 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
8370 * config/sparc/linux.h (TARGET_VERSION): Remove.
8371 * config/sparc/linux64.h (TARGET_VERSION): Remove.
8372 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
8373 TARGET_NAME32, TARGET_NAME): Remove.
8374 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
8375 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
8376 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
8377 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
8378 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
8379 * config/spu/spu.h (TARGET_VERSION): Remove.
8380 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
8381 * config/v850/v850.h (TARGET_VERSION): Remove.
8382 * config/vax/linux.h (TARGET_VERSION): Remove.
8383 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
8384 * config/xtensa/elf.h (TARGET_VERSION): Remove.
8385 * config/xtensa/linux.h (TARGET_VERSION): Remove.
8386
ace31bca
EB
83872011-03-31 Eric Botcazou <ebotcazou@adacore.com>
8388
8389 PR target/48142
8390 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
8391 frame-related from frame-unrelated adjustments to the stack pointer.
8392
76f9db36
JJ
83932011-03-31 Jakub Jelinek <jakub@redhat.com>
8394
8395 * common.opt (fdebug-types-section): Move earlier.
8396 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
8397
b7826465
AT
83982011-03-31 Andreas Tobler <andreast@fgznet.ch>
8399
8400 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
8401 var.
8402
1290e54c
NF
84032011-03-30 Nathan Froyd <froydnj@codesourcery.com>
8404
8405 * tree.h (CASE_CHAIN): Define.
8406 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
8407 (gimple_redirect_edge_and_branch): Likewise.
8408
bddc98e1
VM
84092011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8410
8411 PR middle-end/48367
8412 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
8413 calculation.
8414
c865e437
JL
84152011-03-30 Jeff Law <law@redhat.com>
8416
b3750213 8417 * PR bootstrap/48371
c865e437
JL
8418 * reload1.c (reload): Fix botch in last change.
8419
8420 * reload.h (struct reload): Fix typo introduced in last change.
8421
2cdf9574
JM
84222011-03-30 Joseph Myers <joseph@codesourcery.com>
8423
8424 * config/arm/arm.opt (mhard-float, msoft-float): Mark
8425 Undocumented. Remove help text.
8426 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
8427 -mhard-float.
8428
666a21a2
JM
84292011-03-30 Joseph Myers <joseph@codesourcery.com>
8430
8431 * doc/options.texi (NegativeAlias): Document.
8432 (Alias): Mention NegativeAlias.
8433 * opt-functions.awk: Handle NegativeAlias.
e9c18386 8434 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
8435 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
8436 * opts.h (CL_NEGATIVE_ALIAS): Define.
8437 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
8438 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
8439 OPT_mspe_.
8440 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
8441 Alias entries.
8442 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8443 mno-spe and mno-isel instead of mspe=no and -misel=no.
8444
0fa4e351
MW
84452011-03-29 Mark Wielaard <mjw@redhat.com>
8446
8447 * common.opt (fdebug-types-section): New flag.
8448 * doc/invoke.texi: Document new -fno-debug-types-section flag.
8449 * dwarf2out.c (use_debug_types): New define.
8450 (struct die_struct): Mark die_id with GTY desc use_debug_types.
8451 (print_die): Guard output of type unit signatures using
8452 use_debug_types.
8453 (build_abbrev_table): Replace assert of dwarf_version >= 4
8454 with assert on use_debug_types.
8455 (size_of_die): Likewise.
8456 (unmark_dies): Likewise.
8457 (value_format): Decide AT_ref_external form on use_debug_types.
8458 (output_die): Replace dwarf_version version check guard with
8459 use_debug_types where appropriate.
8460 (modified_type_die): Likewise.
8461 (gen_reference_type_die): Likewise.
8462 (dwarf2out_start_source_file): Likewise.
8463 (dwarf2out_end_source_file): Likewise.
8464 (prune_unused_types_walk_attribs): Likewise.
8465 (dwarf2out_finish): Likewise.
8466
4648deb4
VM
84672011-03-30 Vladimir Makarov <vmakarov@redhat.com>
8468
8469 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
8470
4f431835
RS
84712011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8472
8473 PR rtl-optimization/48332
8474 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
8475 mode of input operand N and modeN to its actual mode.
8476
f2034d06
JL
84772011-03-30 Jeff Law <law@redhat.com>
8478
8479 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
8480 define accessor macro.
8481 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
8482 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
8483 (reg_equiv_init): Likewise.
8484 (reg_equivs_size): New variable.
8485 (reg_equiv_init_size): Remove.
8486 (allocate_initial_values): Move prototype to here from....
8487 * integrate.h (allocate_initial_values): Remove prototype.
8488 * integrate.c: Include reload.h.
8489 (allocate_initial_values): Corresponding changes.
8490 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
8491 (fix_reg_equiv_init, no_equiv): Corresponding changes.
8492 (update_equiv_regs): Corresponding changes.
8493 (ira): Corresponding changes.
8494 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
8495 (push_secondary_reload): Corresponding changes.
8496 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
8497 (make_memloc, find_reloads_address): Corresponding changes.
8498 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
8499 (find_reloads_address_1): Corresponding changes.
8500 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
8501 (refers_to_regno_for_reload_p): Corresponding changes.
8502 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
8503 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
8504 * reload1.c: Include ggc.h.
8505 (grow_reg_equivs): New function.
8506 (replace_pseudos_in, reload): Corresponding changes.
8507 (calculate_needs_all_insns, alter_regs): Corresponding changes.
8508 (eliminate_regs_1, elimination_effects): Corresponding changes.
8509 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
8510 (delete_output_reload): Likewise.
8511 * caller-save.c (mark_referenced_regs): Corresponding changes.
8512 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
8513 * frv/predicates.md (frv_load_operand): Corresponding changes.
8514 * microblaze/microblaze.c (double_memory_operand): Corresponding
8515 changes.
8516 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
8517 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 8518 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
8519 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
8520 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
8521 changes.
8522 * pa/pa.c (emit_move_sequence): Corresponding changes.
8523 * vax/vax.c (nonindexed_address_p): Corresponding changes.
8524
159b81b0
RS
85252011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8526
8527 PR target/47551
8528 * config/arm/arm.c (coproc_secondary_reload_class): Handle
8529 structure modes. Don't check neon_vector_mem_operand for
8530 vector or structure modes.
8531
a6217191
RS
85322011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
8533 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8534
8535 PR target/43590
8536 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
8537 operand 1 and reshuffle the operands to match.
8538 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
8539
bd837408
CS
85402011-03-30 Christian Schüler <cschueler@gmx.de>
8541
6955d771 8542 PR driver/48208
bd837408 8543 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 8544
6955d771 8545 PR driver/48260
bd837408
CS
8546 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
8547 handler function.
8548 * config/darwin.opt: Added '-arch' option.
8549
e9c0470a
NC
85502011-03-30 Nick Clifton <nickc@redhat.com>
8551
8552 * config/rx/rx.md: Add peepholes and patterns to combine
8553 extending loads and simple arithmetic instructions.
8554 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
8555 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
8556 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 8557 modes to use pre-decrement and post-increment addressing.
e9c18386 8558 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 8559 addresses.
e9c18386
UB
8560 (rx_print_operand): Add support for %Q. Fix handling of %Q.
8561 (rx_memory_move_cost): Adjust cost of stores.
8562 (rx_adjust_insn_length): New function.
e9c0470a 8563
8a87e7ab
JJ
85642011-03-30 Jakub Jelinek <jakub@redhat.com>
8565
8566 PR c/48305
8567 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8568 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
8569 matching arg00/arg01 types.
8570
12486e03
EB
85712011-03-30 Eric Botcazou <ebotcazou@adacore.com>
8572
8573 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
8574 last_location to UNKNOWN_LOCATION.
8575
0b99eef6
L
85762011-03-30 H.J. Lu <hongjiu.lu@intel.com>
8577
8578 PR target/48349
8579 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
8580 FLOAT_SSE_REGS.
8581
023592aa
JM
85822011-03-30 Joseph Myers <joseph@codesourcery.com>
8583 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8584
8585 PR bootstrap/48337
8586 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
8587 Init(PROCESSOR_V7).
8588 (sparc_cpu): Likewise.
8589 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
8590 PROCESSOR_V7.
8591
ad3b266b
VM
85922011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8593
8594 PR target/48336
8595 PR middle-end/48342
8596 PR rtl-optimization/48345
8597 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
8598 hard regs for given mode from profitable regs when doing secondary
8599 allocation.
8600
633c9126
JL
86012011-03-29 Jeff Law <law@redhat.com>
8602
8603 PR bootstrap/48327
8604 * tree-ssa-threadupdate.c (struct redirection_data): Remove
8605 do_not_duplicate field.
8606 (lookup_redirection_data): Corresponding changes.
8607 (create_duplicates): Always create a template block.
8608 (redirect_edges): Remove code which reused the original block
8609 when it was going to become unreachable code.
8610 (thread_block): Don't set do_not_duplicate field.
8611
eb50f63a
JM
86122011-03-29 Joseph Myers <joseph@codesourcery.com>
8613
8614 * lto-opts.c (register_user_option_p, lto_register_user_option):
8615 Make type argument unsigned.
8616 * lto-streamer.h (lto_register_user_option): Make type argument
8617 unsigned.
8618 * opth-gen.awk: Make CL_* macros unsigned.
8619 * opts-common.c (find_opt): Make lang_mask argument unsigned.
8620 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
8621 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
8622 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
8623 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
8624 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
8625 (find_opt): Make lang_mask argument unsigned.
8626
76763a6d
VM
86272011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8628
8629 PR rtl-optimization/48331
8630 PR rtl-optimization/48334
8631 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
8632 for any used algorithm.
8633
5c82436e
VM
86342011-03-29 Vladimir Makarov <vmakarov@redhat.com>
8635
8636 * ira-conflicts.c (build_object_conflicts): Add unused attribute
8637 to parent_max.
8638
7a81008b
UB
86392011-03-29 Uros Bizjak <ubizjak@gmail.com>
8640
8641 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
8642 (alpha_option_override): Don't set alpha_sr_alias_set.
8643 (emit_frame_store_1): Use gen_frame_mem rather than calling
8644 set_mem_alias_set.
8645 (alpha_expand_epilogue): Ditto.
8646
86c8d1f6
IR
86472011-03-29 Ira Rosen <ira.rosen@linaro.org>
8648
8649 PR tree-optimization/48290
8650 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
8651 vectorization, check that relevant phis in the basic block after
8652 the inner loop are really inner loop's exit phis.
8653
0d12220f
RS
86542011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
8655
e8cf17e7 8656 PR debug/48190
0d12220f
RS
8657 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
8658 (cached_dw_loc_list_def): New structure.
8659 (cached_dw_loc_list): New typedef.
8660 (cached_dw_loc_list_table): New variable.
8661 (cached_dw_loc_list_table_hash): New function.
8662 (cached_dw_loc_list_table_eq): Likewise.
8663 (add_location_or_const_value_attribute): Take a bool cache_p.
8664 Cache the list when the parameter is true.
8665 (gen_formal_parameter_die): Update caller.
8666 (gen_variable_die): Likewise.
8667 (dwarf2out_finish): Likewise.
8668 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
8669 while generating debug info for the decl.
8670 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
8671 (dwarf2out_init): Initialize cached_dw_loc_list_table.
8672 (resolve_addr): Cache the result of resolving a chain of
8673 location lists.
8674
1756cb66
VM
86752011-03-28 Vladimir Makarov <vmakarov@redhat.com>
8676
8677 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
8678 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 8679
1756cb66
VM
8680 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
8681 after regstat_init_n_sets_and_refs.
8682
8683 * ira.c: Add more comments at the top.
8684 (setup_stack_reg_pressure_class, setup_pressure_classes):
8685 Add comments how we compute the register pressure classes.
8686 (setup_allocno_and_important_classes): Add more comments.
8687 (setup_class_translate_array, reorder_important_classes)
8688 (setup_reg_class_relations): Add comments.
8689
8690 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
8691 start of the file.
8692
8693 * ira-color.c: Add 2011 to the Copyright line.
8694 (assign_hard_reg): Add more comments.
8695 (improve_allocation): Ditto.
8696
8697 * ira-costs.c: Add 2011 to the Copyright line.
8698 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
8699 comments.
8700 (setup_regno_cost_classes_by_mode): Ditto.
8701
8702 Initial patches from ira-improv branch:
8703
8704 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8705
f60c2554 8706 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
8707 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
8708 (ira_create_allocno): Remove initialization of
8709 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
8710 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
8711 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8712 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
8713 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
8714 Initialize ALLOCNO_ADD_DATA.
8715 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
8716 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
8717 ALLOCNO_REG.
8718 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
8719 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
8720
8721 * ira.c (ira_reallocate): Remove.
8722 (setup_pressure_classes): Call
8723 ira_init_register_move_cost_if_necessary. Use
8724 ira_register_move_cost instead of ira_get_register_move_cost.
8725 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
8726 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
8727
8728 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
8729 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
8730 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
8731 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
8732 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
8733 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
8734 Fix formatting.
7a81008b 8735 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
8736 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
8737 (struct allocno_color_data): New.
8738 (allocno_color_data_t): New typedef.
8739 (allocno_color_data): New definition.
8740 (ALLOCNO_COLOR_DATA): New macro.
8741 (struct object_color_data): New.
8742 (object_color_data_t): New typedef.
8743 (object_color_data): New definition.
8744 (OBJECT_COLOR_DATA): New macro.
8745 (update_copy_costs, calculate_allocno_spill_cost): Call
8746 ira_init_register_move_cost_if_necessary. Use
8747 ira_register_move_cost instead of ira_get_register_move_cost.
8748 (move_spill_restore, update_curr_costs): Ditto.
8749 (allocno_spill_priority): Make it inline.
7a81008b 8750 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
8751 (struct coalesce_data, coalesce_data_t): New.
8752 (allocno_coalesce_data): New definition.
8753 (ALLOCNO_COALESCE_DATA): New macro.
8754 (merge_allocnos, coalesced_allocno_conflict_p): Use
8755 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
8756 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
8757 (coalesce_allocnos): Ditto.
8758 (setup_coalesced_allocno_costs_and_nums): Ditto.
8759 (collect_spilled_coalesced_allocnos): Ditto.
8760 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
8761 (setup_slot_coalesced_allocno_live_ranges): Ditto.
8762 (coalesce_spill_slots): Ditto.
8763 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
8764 free allocno_coalesce_data.
8765
8766 * ira-conflicts.c: Fix formatting.
8767 (process_regs_for_copy): Call
8768 ira_init_register_move_cost_if_necessary. Use
8769 ira_register_move_cost instead of ira_get_register_move_cost.
8770 (build_object_conflicts): Optimize.
8771
8772 * ira-costs.c (record_reg_classes): Optimize. Call
8773 ira_init_register_move_cost_if_necessary. Use
8774 ira_register_move_cost, ira_may_move_in_cost, and
8775 ira_may_move_out_cost instead of ira_get_register_move_cost and
8776 ira_get_may_move_cost.
8777 (record_address_regs): Ditto.
8778 (scan_one_insn): Optimize.
8779 (find_costs_and_classes): Optimize.
8780 (process_bb_node_for_hard_reg_moves): Call
8781 ira_init_register_move_cost_if_necessary. Use
8782 ira_register_move_cost instead of ira_get_register_move_cost.
8783
8784 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
8785 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
8786 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
8787 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
8788 definitions.
8789 (ira_initiate_emit_data, ira_finish_emit_data)
8790 (create_new_allocno): New functions.
7a81008b 8791 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
8792 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
8793 Use ira_register_move_cost instead of ira_get_register_move_cost.
8794
8795 * ira-int.h: Fix some comments.
7a81008b
UB
8796 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
8797 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
8798 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
8799 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
8800 add_data.
8801 (struct ira_allocno): Make mode and aclass a bitfield. Move other
8802 bitfield after mode. Make hard_regno a short int. Make
8803 hard_regno short. Remove first_coalesced_allocno and
8804 next_coalesced_allocno. Move mem_optimized_dest_p,
8805 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
8806 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
8807 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
8808 temp, colorable_p. Add new member add_data.
8809 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
8810 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
8811 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
8812 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
8813 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
8814 (ALLOCNO_ADD_DATA): New macro.
8815 (ira_emit_data_t): New typedef.
8816 (struct ira_emit_data): New. Move mem_optimized_dest_p,
8817 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
8818 from struct ira_allocno.
8819 (ALLOCNO_EMIT_DATA): New macro.
8820 (ira_allocno_emit_data, allocno_emit_reg): New.
8821 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 8822 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
8823 (OBJECT_ADD_DATA): New macro.
8824 (ira_reallocate): Remove.
8825 (ira_initiate_emit_data, ira_finish_emit_data): New.
8826 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
8827 (ira_init_register_move_cost_if_necessary): New.
8828 (ira_object_conflict_iter_next): Merge into
8829 ira_object_conflict_iter_cond.
7a81008b 8830 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 8831
f60c2554 8832 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
8833 ira_init_register_move_cost_if_necessary. Use
8834 ira_register_move_cost instead of ira_get_register_move_cost.
8835
8836 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
8837
8838 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
8839
8840 * ira-costs.c: Fix formatting.
8841 (cost_classes, cost_classes_num): Remove.
8842 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
8843 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
8844 (cost_classes_del, cost_classes_htab): New.
8845 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
8846 (initiate_regno_cost_classes, setup_cost_classes): New.
8847 (setup_regno_cost_classes_by_aclass): New.
7a81008b 8848 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
8849 (record_reg_classes): Use regno_cost_classes instead of
8850 cost_classes. Move checking opposite operand up.
8851 (record_address_regs): Use regno_cost_classes
8852 instead of cost_classes.
8853 (scan_one_insn): Ditto. Use always general register.
8854 (print_allocno_costs): Use regno_cost_classes instead of
8855 cost_classes.
8856 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
8857 (find_costs_and_classes): Set up cost classes for each registers.
8858 Use also their mode for this. Use regno_cost_classes instead of
8859 cost_classes.
8860 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
8861 cost_classes.
8862 (free_ira_costs, ira_init_costs): Don't use cost_classes.
8863 (ira_costs, ira_set_pseudo_classes): Call
8864 initiate_regno_cost_classes and finish_regno_cost_classes.
8865
8866 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
8867
8868 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
8869
8870 * target.def (ira_cover_classes): Remove.
8871
7a81008b 8872 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
8873
8874 * doc/tm.texi.in: Ditto.
8875
8876 * ira-conflicts.c: Remove mentioning cover classes from the file.
8877 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 8878 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
8879
8880 * targhooks.c (default_ira_cover_classes): Remove.
8881
8882 * targhooks.h (default_ira_cover_classes): Ditto.
8883
8884 * haifa-sched.c: Remove mentioning cover classes from the file.
8885 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
8886 ira_pressure_classes and ira_pressure_classes_num instead of
8887 ira_reg_class_cover_size and ira_reg_class_cover. Use
8888 sched_regno_pressure_class instead of sched_regno_cover_class.
8889 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
8890 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
8891
8892 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
8893 classes from the file.
8894 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
8895 (struct object_hard_regs, struct object_hard_regs_node): New.
8896 (struct ira_object): New members profitable_hard_regs,
8897 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
8898 (struct ira_allocno): Rename cover_class to aclass. Rename
8899 cover_class_cost and updated_cover_class_cost to class_cost and
8900 updated_class_cost. Remove splay_removed_p and
8901 left_conflict_size. Add new members colorable_p.
8902 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
8903 (ALLOCNO_COLORABLE_P): New macro.
8904 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
8905 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
8906 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
8907 (OBJECT_...): Rename parameter C to O.
8908 (OBJECT_PROFITABLE_HARD_REGS): New macro.
8909 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
8910 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
8911 (struct target_ira_int): New members x_ira_max_memory_move_cost,
8912 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
8913 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
8914 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
8915 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
8916 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
8917 x_ira_reg_class_subunion.
8918 (ira_max_memory_move_cost, ira_max_register_move_cost)
8919 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
8920 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
8921 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 8922 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
8923 (ira_reg_class_union): Rename to ira_reg_class_subunion.
8924 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
8925 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
8926 (ira_tune_allocno_costs_and_cover_classes): Rename to
8927 ira_tune_allocno_costs.
8928 (ira_debug_hard_regs_forest): New.
8929 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
8930 (ira_object_conflict_iter_next): Fix comments.
7a81008b 8931 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
8932 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
8933 cover_class to aclass.
8934 (ira_allocate_and_accumulate_costs): Ditto.
8935 (ira_allocate_and_set_or_copy_costs): Ditto.
8936
8937 * opts.c (decode_options): Remove ira_cover_class check.
8938
8939 * ira-color.c: Remove mentioning cover classes from the file. Use
8940 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
8941 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
8942 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
8943 (splay-tree.h): Remove include.
8944 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
8945 before copy_freq_compare_func.
8946 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
8947 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
8948 New definitions.
8949 (hard_regs_roots, hard_regs_node_vec): Ditto.
8950 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
8951 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
8952 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
8953 (create_new_object_hard_regs_node): Ditto.
8954 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 8955 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
8956 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
8957 Ditto.
8958 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
8959 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
8960 (remove_unused_object_hard_regs_nodes): Ditto.
8961 (enumerate_object_hard_regs_nodes): Ditto.
8962 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
8963 (object_hard_regs_subnode_t): Ditto.
8964 (struct object_hard_regs_subnode): Ditto.
8965 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
8966 (setup_object_hard_regs_subnode_index): Ditto.
8967 (get_object_hard_regs_subnodes_num): Ditto.
8968 (form_object_hard_regs_nodes_forest): Ditto.
8969 (finish_object_hard_regs_nodes_tree): Ditto.
8970 (finish_object_hard_regs_nodes_forest): Ditto.
8971 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 8972 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
8973 (pseudos_have_intersected_live_ranges_p): Rename to
8974 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
8975 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
8976 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
8977 (update_copy_costs): Remove assert. Skip cost update if the hard
8978 reg does not belong the class.
8979 (assign_hard_reg): Process only profitable hard regs.
8980 (uncolorable_allocnos_num): Make it scalar.
8981 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
8982 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
8983 and ira_reg_class_max_nregs.
8984 (bucket_allocno_compare_func): Check frequency first.
8985 (sort_bucket): Add compare function as a parameter.
8986 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
8987 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
8988 (push_allocno_to_stack): Rewrite for checking new allocno
8989 colorability.
7a81008b 8990 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
8991 (push_only_colorable): Pass new parameter to sort_bucket.
8992 (push_allocno_to_spill): Remove.
8993 (allocno_spill_priority_compare): Make it inline and rewrite.
8994 (splay_tree_allocate, splay_tree_free): Remove.
8995 (allocno_spill_sort_compare): New function.
8996 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
8997 build and use splay tree. Choose first allocno in uncolorable
8998 allocno bucket to spill. Remove setting spill cost.
8999 (all_conflicting_hard_regs): Remove.
9000 (setup_allocno_available_regs_num): Check only profitable hard
9001 regs. Print info about hard regs nodes.
9002 (setup_allocno_left_conflicts_size): Remove.
9003 (put_allocno_into_bucket): Don't call
7a81008b 9004 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
9005 (improve_allocation): New.
9006 (color_allocnos): Call setup_profitable_hard_regs,
9007 form_object_hard_regs_nodes_forest, improve_allocation,
9008 finish_object_hard_regs_nodes_forest. Setup spill cost.
9009 (print_loop_title): Use pressure classes.
9010 (color_allocnso): Ditto.
9011 (do_coloring): Remove allocation and freeing splay_tree_node_pool
9012 and allocnos_for_spilling.
9013 (ira_sort_regnos_for_alter_reg): Don't setup members
9014 {first,next}_coalesced_allocno.
9015 (color): Remove allocating and freeing removed_splay_allocno_vec.
9016 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
9017 prohibited_class_mode_regs.
9018
9019 * ira-lives.c: Remove mentioning cover classes from the file. Fix
9020 formatting.
9021 (update_allocno_pressure_excess_length): Use pressure classes.
9022 (inc_register_pressure, dec_register_pressure): Check for pressure
9023 class.
9024 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
9025 pressure class. Use ira_reg_class_nregs instead of
9026 ira_reg_class_max_nregs.
9027 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
9028 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
9029 (single_reg_class): Use ira_reg_class_nregs instead of
9030 ira_reg_class_max_nregs.
9031 (process_bb_node_lives): Use pressure classes.
9032
9033 * ira-emit.c: Remove mentioning cover classes from the file. Use
9034 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
9035 (change_loop): Use pressure classes.
9036 (modify_move_list): Call ira_set_allocno_class instead of
9037 ira_set_allocno_cover_class.
9038
9039 * ira-build.c: Remove mentioning cover classes from the file. Use
9040 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
9041 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
9042 ALLOCNO_UPDATED_CLASS_COST instead of
9043 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
9044 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
9045 (ira_create_allocno): Remove initialization of
9046 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
9047 ALLOCNO_COLORABLE_P.
9048 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
9049 Update conflict regs for the objects.
9050 (create_cap_allocno): Remove assert. Don't propagate
9051 ALLOCNO_AVAILABLE_REGS_NUM.
9052 (ira_free_allocno_costs): New function.
9053 (finish_allocno): Change a part of code into call of
9054 ira_free_allocno_costs.
9055 (low_pressure_loop_node_p): Use pressure classes.
9056 (object_range_compare_func): Don't compare classes.
9057 (setup_min_max_conflict_allocno_ids): Ditto.
9058
9059 * loop-invariant.c: Remove mentioning cover classes from the file.
9060 Use ira_pressure_classes and ira_pressure_classes_num instead of
9061 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
9062 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
9063 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9064 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
9065 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
9066 STACK_REG_COVER_CLASS.
9067 (get_regno_cover_class): Rename to get_regno_pressure_class.
9068 (move_loop_invariants): Initialize and finalize regstat.
9069
9070 * ira.c: Remove mentioning cover classes from the file. Add
9071 comments about coloring without cover classes. Use ALLOCNO_CLASS
9072 instead of ALLOCNO_COVER_CLASS. Fix formatting.
9073 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
9074 setup_class_subset_and_memory_move_costs.
9075 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
9076 (setup_cover_and_important_classes): Rename to
9077 setup_allocno_and_important_classes.
9078 (setup_class_translate_array): New.
9079 (setup_class_translate): Call it for allocno and pressure classes.
9080 (cover_class_order): Rename to allocno_class_order.
9081 (comp_reg_classes_func): Use ira_allocno_class_translate instead
9082 of ira_class_translate.
9083 (reorder_important_classes): Set up ira_important_class_nums.
9084 (setup_reg_class_relations): Set up ira_reg_class_superunion.
9085 (print_class_cover): Rename to print_classes. Add parameter.
9086 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
9087 Print pressure classes too.
9088 (find_reg_class_closure): Rename to find_reg_classes. Don't call
9089 setup_reg_subclasses.
7a81008b 9090 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
9091 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9092 (setup_prohibited_class_mode_regs): Use
7a81008b 9093 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
9094 (clarify_prohibited_class_mode_regs): New function.
9095 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
9096 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
9097 (ira_init_once): Initialize them.
9098 (free_register_move_costs): Process them.
9099 (ira_init): Move calls of find_reg_classes and
9100 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
9101 Call clarify_prohibited_class_mode_regs.
9102 (ira_no_alloc_reg): Remove.
9103 (too_high_register_pressure_p): Use pressure classes.
9104
9105 * sched-deps.c: Remove mentioning cover classes from the file.
9106 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
9107 ira_pressure_classes and ira_pressure_classes_num instead of
9108 ira_reg_class_cover_size and ira_reg_class_cover.
9109 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
9110 sched_regno_pressure_class instead of sched_regno_cover_class.
9111 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
9112 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
9113
9114 * ira.h: Add 2010 to Copyright.
9115 (ira_no_alloc_reg): Remove external.
9116 (struct target_ira): Rename x_ira_hard_regno_cover_class,
9117 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
9118 x_ira_class_translate to x_ira_hard_regno_allocno_class,
9119 x_ira_allocno_classes_num, x_ira_allocno_classes, and
9120 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
9121 x_ira_pressure_classes, x_ira_pressure_class_translate, and
9122 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
9123 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
9124 x_ira_no_alloc_regs.
7a81008b 9125 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
9126 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
9127 ira_allocno_classes_num and ira_allocno_classes.
9128 (ira_class_translate): Rename to ira_allocno_class_translate.
9129 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
9130 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
9131 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
9132 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
9133 (ira_no_alloc_regs): New.
9134
9135 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
9136 classes from the file. Use ALLOCNO_CLASS instead of
9137 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
9138 ALLOCNO_COVER_CLASS_COST.
9139 (regno_cover_class): Rename to regno_aclass.
9140 (record_reg_classes): Use ira_reg_class_subunion instead of
9141 ira_reg_class_union.
9142 (record_address_regs): Check overflow.
9143 (scan_one_insn): Ditto.
7a81008b 9144 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
9145 (print_pseudo_costs): Use REG_N_REFS.
9146 (find_costs_and_classes): Use classes intersected with them on the
9147 1st pass. Check overflow. Use ira_reg_class_subunion instead of
9148 ira_reg_class_union. Use ira_allocno_class_translate and
9149 regno_aclass instead of ira_class_translate and regno_cover_class.
9150 Modify code for finding regno_aclass. Setup preferred classes for
9151 the next pass.
9152 (setup_allocno_cover_class_and_costs): Rename to
9153 setup_allocno_class_and_costs. Use regno_aclass instead of
9154 regno_cover_class. Use ira_set_allocno_class instead of
9155 ira_set_allocno_cover_class.
9156 (init_costs, finish_costs): Use regno_aclass instead of
9157 regno_cover_class.
9158 (ira_costs): Use setup_allocno_class_and_costs instead of
9159 setup_allocno_cover_class_and_costs.
9160 (ira_tune_allocno_costs_and_cover_classes): Rename to
9161 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
9162 by processing objects. Use ira_reg_class_max_nregs instead of
9163 ira_reg_class_nregs.
9164
9165 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
9166
9167 * sched-int.h: Remove mentioning cover classes from the file.
9168 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
9169
9170 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
9171 classes from the file.
9172 (struct reg_pref): Rename coverclass into allocnoclass.
9173 (reg_cover_class): Rename to reg_allocno_class.
9174
7a81008b 9175 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
9176
9177 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
9178
9179 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
9180
9181 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
9182
9183 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
9184
9185 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
9186
9187 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
9188
9189 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
9190
9191 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
9192
9193 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
9194
9195 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
9196 (i386_ira_cover_classes): Ditto.
9197
9198 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
9199
9200 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
9201
9202 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
9203
9204 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
9205
9206 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
9207
9208 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
9209
9210 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
9211 (mips_ira_cover_classes): Ditto.
9212
9213 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
9214
9215 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
9216
9217 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
9218
9219 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
9220
9221 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
9222
9223 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
9224 (IRA_COVER_CLASSES_VSX): Ditto.
9225
9226 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
9227 (rs6000_ira_cover_classes): Ditto.
9228
9229 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
9230
9231 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
9232
9233 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
9234
9235 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
9236
9237 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
9238
9239 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
9240
9241 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
9242
9243 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
9244
9245 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
9246
9247 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
9248
2b80199f
JJ
92492011-03-29 Jakub Jelinek <jakub@redhat.com>
9250
71dae1fe
JJ
9251 PR debug/48253
9252 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
9253 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
9254 dw_fde_unlikely_section_end_label, cold_in_std_section,
9255 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
9256 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
9257 fields.
9258 (output_fde): Use dw_fde_second_{begin,end} if second is
9259 true, otherwise dw_fde_{begin,end}.
9260 (output_call_frame_info): Test dw_fde_second_begin != NULL
9261 instead of dw_fde_switched_sections.
9262 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
9263 fields, initialize new fields. Initialize in_std_section
9264 unconditionally from the first partition.
9265 (dwarf2out_end_epilogue): Don't override dw_fde_end when
9266 dw_fde_second_begin is non-NULL.
9267 (dwarf2out_switch_text_section): Stop initializing removed
9268 dw_fde_struct fields, initialize new fields, initialize
9269 also dw_fde_end here. Set dw_fde_switch_cfi even when
9270 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
9271 (struct var_loc_list_def): Add last_before_switch field.
9272 (arange_table, arange_table_allocated, arange_table_in_use,
9273 ARANGE_TABLE_INCREMENT, add_arange): Removed.
9274 (size_of_aranges): Count !in_std_section and !second_in_std_section
9275 hunks in fdes, instead of looking at arange_table_in_use.
9276 (output_aranges): Add aranges_length argument, don't call
9277 size_of_aranges here. Instead of using aranges_table*
9278 emit ranges for fdes when !in_std_section resp.
9279 !second_in_std_section.
9280 (dw_loc_list): Break ranges crossing section switch.
9281 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 9282 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
9283 (gen_subprogram_die): Don't call add_arange. Use
9284 dw_fde_{begin,end} for first partition and if switched
9285 section dw_fde_second_{begin,end} for the second.
9286 (var_location_switch_text_section_1,
9287 var_location_switch_text_section): New functions.
9288 (dwarf2out_begin_function): Initialize cold_text_section even
9289 when function_section () isn't text_section.
9290 (prune_unused_types): Don't walk arange_table.
9291 (dwarf2out_finish): Don't needlessly test
9292 flag_reorder_blocks_and_partition when testing cold_text_section_used.
9293 If info_section_emitted, call size_of_aranges and if it indicates
9294 non-empty .debug_aranges, call output_aranges with the computed
9295 size. Stop using removed dw_fde_struct fields, use
9296 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
9297 for second.
9298
2b80199f
JJ
9299 PR debug/48203
9300 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
9301 create ENTRY_VALUE if incoming or address of incoming's MEM
9302 is a hard REG.
9303 * dwarf2out.c (mem_loc_descriptor): Don't emit
9304 DW_OP_GNU_entry_value of DW_OP_fbreg.
9305 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
9306 on ENTRY_VALUE is able to find the canonical parameter VALUE.
9307 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
9308 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
9309 ENTRY_VALUE_EXPs.
9310 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
9311 is a REG_P or MEM_P with REG_P address, compute hash directly
9312 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
9313 (preserve_only_constants): Don't clear VALUES forwaring
9314 ENTRY_VALUE to some other VALUE.
9315
8a445129
RS
93162011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
9317
9318 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
9319 instead of GEN_INT.
9320
c82fee88
EB
93212011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9322
9323 * cfgexpand.c (expand_gimple_cond): Always set the source location and
9324 block before expanding the statement.
9325 (expand_gimple_stmt_1): Likewise. Set them here...
9326 (expand_gimple_stmt): ...and not here. Tidy.
9327 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
9328 unknown.
9329
e45425ec
SB
93302011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9331
9332 * Makefile.in: New rule for cprop.o.
9333 * gcse.c: Move constant/copy propagation to cprop.c.
9334 (compute_local_properties): Only handle expression tables.
9335 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
9336 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
9337 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
9338 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 9339 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
9340 compute_cprop_data, find_used_regs, try_replace_reg,
9341 find_avail_set, cprop_jump, constprop_register, cprop_insn,
9342 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
9343 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
9344 find_bypass_set, reg_killed_on_edge, bypass_block,
9345 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
9346 execute_rtl_cprop, pass_rtl_cprop): Move to...
9347 * cprop.c: ...here. New file, constant/copy propagation for RTL
9348 moved from gcse.c to here with minor cleanups in duplicated code.
9349
c09d5426
L
93502011-03-28 H.J. Lu <hongjiu.lu@intel.com>
9351
9352 * config/i386/i386.c (flag_opts): Fix a typo in
9353 -mavx256-split-unaligned-store.
9354
9eaa7740
AS
93552011-03-28 Anatoly Sokolov <aesok@post.ru>
9356
9357 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
9358 LIBCALL_VALUE): Remove macros.
9359 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9360 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9361 (h8300_function_value, h8300_libcall_value,
9362 h8300_function_value_regno_p): New functions.
9363
dcec2be2
AS
93642011-03-28 Anatoly Sokolov <aesok@post.ru>
9365
9366 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
9367
520af9ec
JL
93682011-03-28 Jeff Law <law@redhat.com>
9369
9370 * tree-ssa-threadupdate.c (redirect_edges): Call
9371 create_edge_and_update_destination_phis as needed.
9372 (create_edge_and_update_destination_phis): Accept new BB argument.
9373 All callers updated.
9374 (thread_block): Do not update the profile when threading around
9375 intermediate blocks.
9376 (thread_single_edge): Likewise.
9377 (determine_bb_domination_status): If BB is not a successor of the
9378 loop header, return NONDOMINATING.
9379 (register_jump_thread): Note when we register a jump thread around
9380 an intermediate block.
9381 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
9382 (thread_across_edge): Use it.
9383
7450b54f
TG
93842011-03-28 Tristan Gingold <gingold@adacore.com>
9385
9386 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
9387 when for_return is 2.
9388
649beb33
JL
93892011-03-28 Jeff Law <law@redhat.com>
9390
9391 * var-tracking.c (canonicalize_values_mark): Delete unused
9392 lhs assignment.
9393 (canonicalize_values_star, set_variable_part): Likewise.
9394 (clobber_variable_part, delete_variable_part): Likewise.
9395
d5b8da97
SB
93962011-03-28 Steven Bosscher <steven@gcc.gnu.org>
9397
9398 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
9399
322dd859
MJ
94002011-03-28 Martin Jambor <mjambor@suse.cz>
9401
9402 * tree-inline.c (expand_call_inline): Do not check that destination
9403 node is analyzed.
9404 (optimize_inline_calls): Assert that destination node is analyzed.
9405 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
9406 not call tree_lowering_passes.
9407 * cgraph.h (cgraph_analyze_function): Declare.
9408 * cgraphunit.c (cgraph_analyze_function): Make public.
9409
aa53e58b
JM
94102011-03-28 Joseph Myers <joseph@codesourcery.com>
9411
9412 * config/sparc/sparc-opts.h: New.
9413 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
9414 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
9415 (sparc_option_override): Store processor_type enumeration rather
9416 than string in cpu_default. Remove name and enumeration from
9417 cpu_table. Directly default -mcpu then default -mtune from -mcpu
9418 without using sparc_select. Use target_flags_explicit instead of
9419 fpu_option_set.
9420 * config/sparc/sparc.h (enum processor_type): Move to
9421 sparc-opts.h.
9422 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
9423 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
9424 HeaderInclude entry.
9425 (mcpu=, mtune=): Use Var and Enum.
9426 (sparc_processor_type): New Enum and EnumValue entries.
9427
dd350eba
RO
94282011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9429 Iain Sandoe <iains@gcc.gnu.org>
9430
9431 PR target/48245
9432 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
9433
1b29f05e
EB
94342011-03-28 Eric Botcazou <ebotcazou@adacore.com>
9435
9436 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
9437 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
9438 Insert new statements at it in lieu of STMT.
9439 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
9440 * tree-vect-stmts.c (vectorizable_store): Likewise.
9441 (vectorizable_load): Likewise.
9442
506e6808
UB
94432011-03-28 Uros Bizjak <ubizjak@gmail.com>
9444
9445 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
9446 (divtf3): Ditto.
9447 (multf3): Ditto.
9448 (subtf3): Ditto.
9449
2e939ee9
L
94502011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9451
9452 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
9453 unaligned 256bit load/store.
9454 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
9455 (*avx_movdqu<avxmodesuffix>): Likewise.
9456
5e85ab88
JDA
94572011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9458
9459 PR target/48288
9460 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
9461 * config/pa/pa.md (iordi3): Use new predicate in expander.
9462 (iorsi3): Likewise.
9463
47be3d6d
AS
94642011-03-27 Anatoly Sokolov <aesok@post.ru>
9465
506e6808 9466 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 9467 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
9468 * config/mips/mips-protos.h (mips_function_value): Remove.
9469 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
9470 (mips_function_value_1): ... this. Make static. Handle receiving
9471 the function type in 'fn_decl_or_type' argument.
9472 (mips_function_value, mips_libcall_value,
9473 mips_function_value_regno_p): New function.
9474 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9475 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9476
d253656a
L
94772011-03-27 H.J. Lu <hongjiu.lu@intel.com>
9478
9479 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
9480 and -mavx256-split-unaligned-store.
9481 (ix86_option_override_internal): Split 32-byte AVX unaligned
9482 load/store by default.
9483 (ix86_avx256_split_vector_move_misalign): New.
9484 (ix86_expand_vector_move_misalign): Use it.
9485
9486 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
9487 -mavx256-split-unaligned-store.
9488
9489 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
9490 256bit load/store. Generate unaligned store on misaligned memory
9491 operand.
9492 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
9493 256bit load/store.
9494 (*avx_movdqu<avxmodesuffix>): Likewise.
9495
9496 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
9497 -mavx256-split-unaligned-store.
9498
1ea9206a
RS
94992011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9500
9501 PR target/38598
9502 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
9503 Update commentary.
9504
b99ce2a8
RS
95052011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
9506
9507 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
9508 opno arguments with an expand_operand. Use create_input_operand.
9509 (mips_prepare_builtin_target): Delete.
9510 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
9511 functions.
9512 (mips_expand_builtin_direct): Use create_output_operand and
9513 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
9514 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
9515 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
9516
69d52339
IR
95172011-03-27 Ira Rosen <ira.rosen@linaro.org>
9518
9519 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
9520 function.
9521 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9522
ba5e9aca
EB
95232011-03-26 Eric Botcazou <ebotcazou@adacore.com>
9524
9525 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
9526 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
9527 basic blocks and call commit_edge_insertions directly.
9528 (fixup_abnormal_edges): Move from here to...
9529 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
9530 on the edges and return whether some have actually been inserted.
9531 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
9532 compensation code.
9533
5d369d58
AB
95342011-03-26 Andrey Belevantsev <abel@ispras.ru>
9535
9536 PR rtl-optimization/48144
9537 * sel-sched-ir.c (merge_history_vect): Factor out from ...
9538 (merge_expr_data): ... here.
9539 (av_set_intersect): Rename to av_set_code_motion_filter.
9540 Update all callers. Call merge_history_vect when an expression
9541 is found in both sets.
9542 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
9543
f082c000
AM
95442011-03-26 Alan Modra <amodra@gmail.com>
9545
9546 * config/rs6000/predicates.md (word_offset_memref_op): Handle
9547 cmodel medium addresses.
9548 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
9549 64-bit gpr loads and stores.
9550 (rs6000_secondary_reload_ppc64): New function.
9551 * config/rs6000/rs6000-protos.h: Declare it.
9552 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
9553
8ac5e12e
AM
95542011-03-26 Alan Modra <amodra@gmail.com>
9555
9556 PR target/47487
9557 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
9558 GNU Go in traceback table.
9559
c2654ded
RH
95602011-03-25 Richard Henderson <rth@redhat.com>
9561
9562 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
9563 if there are exactly 6 operands.
9564 (set_storage_via_setmem): Similarly.
9565
ba78087b
KT
95662011-03-25 Kai Tietz <ktietz@redhat.com>
9567
9568 * collect2.c (write_c_file_stat): Handle backslash
9569 as right-hand directory separator.
9570 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
9571 checking just for slash.
9572 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
9573 instead of checking for trailing slash.
9574 * gcc.c (record_temp_file): Use filename_cmp instead
9575 of strcmp.
9576 (do_spec_1): Likewise.
9577 (replace_outfile_spec_function): Likewise.
9578 (is_directory): Use filename_ncmp instead of strncmp.
9579 (print_multilib_info): Likewise.
9580 * gcov.c (find_source): Use filename_cmp instead
9581 instead of strcmp.
9582 (make_gcov_file_name): Fix order of slash/backslash
9583 checks.
9584 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
9585 (add_standard_paths): Likewise.
9586 * mips-tfile.c (saber_stop): Handle backslash.
9587 * prefix.c (update_path): Use filename_ncmp instead of
9588 strncmp.
9589 * profile.c (output_location): Use filename_cmp instead
9590 of strcmp.
9591 * read-md.c (handle_toplevel_file): Handle backslash.
9592 * tlink.c (frob_extension): Likewise.
9593 * tree-cfg.c (same_line_p): Use filename_cmp instead of
9594 strcmp.
9595 * tree-dump.c (dequeue_and_dump): Handle backslash.
9596 * tree.c (get_file_function_name): Likewise.
9597 * gengtype.c (read_input_list): Likewise.
9598 (get_file_realbasename): Likewise.
9599 (get_output_file_with_visibility): Use filename_cmp
9600 instead of strcmp.
9601
75f6ec9a
RS
96022011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
9603
9604 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
9605 case to VFPv1.
9606
6c4e2997
NF
96072011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9608
9609 * fold-const.c (expr_location_or): New function.
9610 (fold_truth_not_expr): Call it.
9611
0edf1bb2
JL
96122011-03-25 Jeff Law <law@redhat.com>
9613
9614 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
9615 va_end.
9616 * c-family/c-common.c (def_fn_type): Likewise.
9617 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
9618 * emit-rtl.c (gen_rtvec): Likewise.
9619 * lto/lto-lang.c (def_fn_type): Likewise.
9620
fdc2de95
RG
96212011-03-25 Richard Guenther <rguenther@suse.de>
9622
9623 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
9624 also generate copies.
9625 (fini_copy_prop): Handle constant values properly.
9626
21385db0
JJ
96272011-03-25 Jakub Jelinek <jakub@redhat.com>
9628
9629 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
9630 mode size instead of bitsize with DWARF2_ADDR_SIZE.
9631 (hash_loc_operands, compare_loc_operands): Handle
9632 DW_OP_GNU_entry_value.
9633
6510e8bb
KT
96342011-03-25 Kai Tietz <ktietz@redhat.com>
9635
9636 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
9637 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
9638 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
9639 comment and use macro TARGET_64BIT_MS_ABI instead.
9640 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
9641 and change default behavior for 32-bit MS_ABI.
9642 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
9643 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
9644 32-bit, too.
9645 (ix86_cfun_abi): Likewise.
9646 (ix86_maybe_switch_abi): Adjust comment.
9647 (init_cumulative_args): Check for bit-ness in MS_ABI case.
9648 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
9649 instead of checking for SYSV_ABI.
9650 (ix86_nsaved_sseregs): Likewise.
9651 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
9652 to 16 bytes.
9653 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
9654 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
9655 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
9656 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
9657 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
9658
34019e28
RG
96592011-03-25 Richard Guenther <rguenther@suse.de>
9660
9661 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
9662 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9663 (verify_gimple): Remove.
9664 * tree-cfg.c (verify_gimple_call): Merge verification
9665 from verify_stmts.
9666 (verify_gimple_phi): Merge verification from verify_stmts.
9667 (verify_gimple_label): New function.
9668 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
9669 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
9670 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
9671 (verify_stmts): Rename to verify_gimple_in_cfg.
9672 (verify_gimple_in_cfg): New function.
9673 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
9674 * tree-ssa.c (verify_ssa): Likewise.
9675 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
9676
605896f5
RG
96772011-03-25 Richard Guenther <rguenther@suse.de>
9678
9679 * passes.c (init_optimization_passes): Add FRE pass after
9680 early SRA.
9681
7baa7c13
BS
96822011-03-25 Bernd Schmidt <bernds@codesourcery.com>
9683 Andrew Stubbs <ams@codesourcery.com>
9684
9685 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
9686 for Cortex-A8.
9687 (arm_movdi_vfp_cortexa8): New pattern.
9688 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
9689 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
9690 instructions when tuning for Cortex-A8. Set attribute "arch".
9691 * config/arm/arm.md: Move include arm-tune.md up a bit.
9692 (define_attr "arch"): Add "onlya8" and "nota8" values.
9693 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
9694
45dbce1b
NF
96952011-03-25 Nathan Froyd <froydnj@codesourcery.com>
9696
4ff08abf 9697 PR bootstrap/48282
45dbce1b
NF
9698 Revert:
9699 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9700
9701 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9702 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9703 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9704 * passes.c (init_optimization_passes): Move
9705 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9706
ac9a30ae
KT
97072011-03-25 Kai Tietz <ktietz@redhat.com>
9708
9709 * c-typeck.c (comptypes_internal): Replace target
9710 hook call of comp_type_attributes by version in tree.c file.
9711 * gimple.c (gimple_types_compatible_p_1): Likewise.
9712 * tree-ssa.c (useless_type_conversion_p): Likewise.
9713 * tree.c (build_type_attribute_qual_variant): Likewise.
9714 (attribute_value_equal): New static helper function.
9715 (comp_type_attributes): New function.
9716 (merge_attributes): Use attribute_value_equal for comparison.
9717 (attribute_list_contained): Likewise.
9718 * tree.h (comp_type_attributes): New prototype.
9719
afdac116
RG
97202011-03-25 Richard Guenther <rguenther@suse.de>
9721
9722 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
9723 of complex types at -O0.
9724 (verify_gimple_assign_binary): Likewise.
9725 (verify_gimple_assign_ternary): Likewise.
9726
ec6165f8
MW
97272011-03-24 Mark Wielaard <mjw@redhat.com>
9728
9729 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
9730 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
9731
2a5ac39a
MW
97322011-03-24 Mark Wielaard <mjw@redhat.com>
9733
9734 PR debug/48041
9735 * dwarf2out.c (output_abbrev_section): Only write table when
9736 abbrev_die_table_in_use > 1.
9737
e533b2a4
RH
97382011-02-24 Richard Henderson <rth@redhat.com>
9739
9740 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
9741 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
9742 (alpha_expand_unaligned_load_words): Use extql.
9743 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
9744 (emit_insxl): Handle all modes for consistency.
9745
0b2a7367
RH
97462011-02-24 Richard Henderson <rth@redhat.com>
9747
9748 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
9749 (alpha_expand_unaligned_load): Likewise.
9750 (alpha_expand_unaligned_store): Likewise.
9751 (alpha_expand_unaligned_load_words): Likewise.
9752 (alpha_expand_unaligned_store_words): Likewise.
9753 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
9754 (alpha_split_lock_test_and_set_12): Likewise.
9755 (print_operand, alpha_fold_builtin_extxx): Likewise.
9756 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
9757 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
9758 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
9759 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
9760 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
9761 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
9762 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
9763 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
9764 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
9765 (extwl, extll, extql): Similarly.
9766 (inswh, inslh, insqh): Similarly.
9767 (mskbl, mskwl, mskll, mskql): Similarly.
9768 (mskwh, msklh, mskqh): Similarly.
9769
315b2bef
RH
97702011-02-24 Richard Henderson <rth@redhat.com>
9771
9772 * config/alpha/alpha.md (attribute isa): Add er, ner.
9773 (attribute enabled): Handle them.
9774 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
9775
67102517
RH
97762011-02-24 Richard Henderson <rth@redhat.com>
9777
9778 * config/alpha/alpha.md (attribute isa): Add vms.
9779 (attribute enabled): Handle it.
9780 (*movsf): Merge *movsf_{nofix,fix,nofp}.
9781 (*movdf): Merge *movdf_{nofix,fix,nofp}.
9782 (*movtf): Rename from *movtf_internal for consistency.
9783 (*movsi): Merge with *movsi_nt_vms.
9784 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
9785 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
9786 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
9787 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
9788
6aba5cb4
RH
97892011-02-24 Richard Henderson <rth@redhat.com>
9790
9791 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
9792 (extendqisi2, extendhisi2): Likewise.
9793 (extendqidi2): Simplify BWX/non-BWX expansions.
9794 (extendhidi2): Similarly.
9795
bdfb351b
RH
97962011-02-24 Richard Henderson <rth@redhat.com>
9797
9798 * config/alpha/alpha.md (attribute isa): New.
9799 (attribute enabled): New.
9800 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
9801 (zero_extendqisi2, zero_extendqidi2): Similarly.
9802 (zero_extendhisi2, zero_extendhidi2): Similarly.
9803 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
9804
6abe71eb
RH
98052011-02-24 Richard Henderson <rth@redhat.com>
9806
9807 * config/alpha/predicates.md (input_operand): Revert last change;
9808 update comment to mention 32-bit VMS rather than Windows.
9809
7114321e
NF
98102011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9811
9812 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
9813 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
9814 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
9815 * passes.c (init_optimization_passes): Move
9816 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
9817
c8679567
EB
98182011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9819
9820 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
9821
27173058
UB
98222011-03-24 Uros Bizjak <ubizjak@gmail.com>
9823
9824 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
9825 correctly.
9826
6f0c9f06
JJ
98272011-03-24 Jakub Jelinek <jakub@redhat.com>
9828
9829 PR debug/48204
9830 * simplify-rtx.c (simplify_const_unary_operation): Call
9831 real_convert when changing mode class with FLOAT_EXTEND.
9832
662666e5
NC
98332011-03-24 Nick Clifton <nickc@redhat.com>
9834
9835 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
9836 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
9837 * config/rx/rx.c (rx_option_override): Set align_jumps,
9838 align_loops and align_labels if not set by the user.
9839 (rx_align_for_label): New function.
9840 (rx_max_skip_for_label): New function.
9841 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
9842 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
9843 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
9844 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
9845 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
9846
2b99b2b8
RS
98472011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9848
9849 PR rtl-optimization/48263
9850 * optabs.c (expand_binop_directly): Reinstate convert_modes code
9851 and original commutative_p handling. Use maybe_gen_insn.
9852
ccecd6ea
AK
98532011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9854
9855 * reload.c (find_reloads_subreg_address): Add address_reloaded
9856 parameter and return true there if the full address has been
9857 reloaded.
9858 (find_reloads_toplev): Pass address_reloaded flag.
9859 (find_reloads_address_1): Don't use address_reloaded parameter.
9860
67295642
JL
98612011-03-24 Jeff Law <law@redhat.com>
9862
9863 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
9864 unused variable "ann".
9865 (remove_unused_locals): Likewise.
9866
9867 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
9868 statement.
9869
9870 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
9871 after it is freed.
9872
212aa74f
AK
98732011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9874
9875 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
9876 for invalid symbolic addresses.
9877 (s390_secondary_reload): Don't use s390_check_symref_alignment for
9878 larl operands.
9879
fe784e0d
EB
98802011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9881
9882 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
9883 the argument in calls to fold_truth_not_expr.
9884
63ee8641
NF
98852011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9886
9887 * tree.c (record_node_allocation_statistics): New function.
9888 (make_node_stat, copy_node_stat, build_string): Call it.
9889 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
9890 (build1_stat, build_omp_clause): Likewise.
9891
61be2a1c
RS
98922011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
9893
9894 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
9895 last commit.
9896
a881aaa7
RG
98972011-03-24 Richard Guenther <rguenther@suse.de>
9898
9899 PR tree-optimization/48271
9900 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
9901 blocks that still exist.
9902
dbaa912c
RG
99032011-03-24 Richard Guenther <rguenther@suse.de>
9904
9905 PR tree-optimization/48270
9906 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
9907 not free datarefs before ddrs.
9908
1d60cc55
EB
99092011-03-24 Eric Botcazou <ebotcazou@adacore.com>
9910
9911 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
9912 from the address built for a reference with variable offset.
9913
c78dd519
UB
99142011-03-24 Uros Bizjak <ubizjak@gmail.com>
9915
9916 PR target/48237
9917 * config/i386/i386.md (*movdf_internal_rex64): Do not split
9918 alternatives that can be handled with movq or movabsq insn.
9919 (*movdf_internal): Disable for !TARGET_64BIT.
9920 (*movdf_internal_nointeger): Ditto.
9921 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
9922
b25b9e8f
NF
99232011-03-24 Nathan Froyd <froydnj@codesourcery.com>
9924
9925 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
9926 (FUNCTION_ARG_ADVANCE): Likewise.
9927 * tm.texi.in: Change references to them to hook references.
9928 * tm.texi: Regenerate.
c78dd519 9929 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
9930 (default_function_incoming_arg): Likewise.
9931 (default_function_arg_advance): Likewise.
c78dd519 9932 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
9933 (function_arg_advance): Likewise.
9934 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
9935
190b2187
RG
99362011-03-24 Richard Guenther <rguenther@suse.de>
9937
9938 PR middle-end/48269
9939 * tree-object-size.c (addr_object_size): Do not double-account
9940 for MEM_REF offsets.
9941
a183b5c7
DN
99422011-03-24 Diego Novillo <dnovillo@google.com>
9943
9944 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 9945 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
9946 (lto_input_data_block): Move from lto-opts.c. Make extern.
9947 Update all users.
9948 (lto_input_string): Rename from input_string. Make extern.
9949 Update all users.
9950 * lto-streamer-out.c (lto_output_string_with_length): Rename from
9951 output_string_with_length.
9952 Output 0 to indicate a non-NULL string. Update all callers to
9953 not emit 0.
9954 (lto_output_string): Rename from output_string. Make extern.
9955 Update all users.
9956 (lto_output_decl_state_streams): Make extern.
9957 (lto_output_decl_state_refs): Make extern.
9958 * lto-streamer.h (lto_input_string): Declare.
9959 (lto_input_data_block): Declare.
9960 (lto_output_string): Declare.
9961 (lto_output_string_with_length): Declare.
9962 (lto_output_decl_state_streams): Declare.
9963 (lto_output_decl_state_refs): Declare.
9964
cfef45c8
RG
99652011-03-24 Richard Guenther <rguenther@suse.de>
9966
9967 PR tree-optimization/46562
9968 * tree.c (build_invariant_address): New function.
9969 * tree.h (build_invariant_address): Declare.
9970 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
9971 a renamed function moved ...
9972 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
9973 Take valueization callback parameter.
9974 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
9975 * gimple-fold.h: New file.
9976 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
9977 (ccp_fold, fold_const_aggregate_ref,
9978 fold_ctor_reference, fold_nonarray_ctor_reference,
9979 fold_array_ctor_reference, fold_string_cst_ctor_reference,
9980 get_base_constructor): Move ...
9981 * gimple-fold.c: ... here.
9982 (gimple_fold_stmt_to_constant_1): New function
9983 split out from ccp_fold. Take a valueization callback parameter.
9984 Valueize all operands.
9985 (gimple_fold_stmt_to_constant): New wrapper function.
9986 (fold_const_aggregate_ref_1): New function split out from
9987 fold_const_aggregate_ref. Take a valueization callback parameter.
9988 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
9989 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
9990 invariant POINTER_PLUS_EXPRs to invariant form.
9991 (vn_valueize): New function.
9992 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
9993 * tree-vrp.c (vrp_valueize): New function.
9994 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
9995 to fold statements to constants.
9996 * tree-ssa-pre.c (eliminate): Properly guard propagation of
9997 function declarations.
9998 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
9999 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
10000
5e0a7e40
RS
100012011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
10002
10003 * config/h8300/predicates.md (jump_address_operand): Fix register
10004 mode check.
10005
bfe068c3
IR
100062011-03-24 Ira Rosen <ira.rosen@linaro.org>
10007
10008 * doc/invoke.texi (max-stores-to-sink): Document.
10009 * params.h (MAX_STORES_TO_SINK): Define.
10010 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
10011 if either vectorization or if-conversion is disabled.
10012 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
10013 tree-vect-data-refs.c vect_equal_offsets.
10014 (dr_equal_offsets_p): New function.
10015 (find_data_references_in_bb): Remove static.
10016 * tree-data-ref.h (find_data_references_in_bb): Declare.
10017 (dr_equal_offsets_p): Likewise.
10018 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
10019 (vect_drs_dependent_in_basic_block): Update calls to
10020 vect_equal_offsets.
10021 (vect_check_interleaving): Likewise.
10022 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
10023 (cond_if_else_store_replacement): Rename to...
10024 (cond_if_else_store_replacement_1): ... this. Change arguments and
10025 documentation.
10026 (cond_if_else_store_replacement): New function.
10027 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
10028 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
10029
4908b0bf
CLT
100302011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
10031
10032 PR target/46934
10033 * config/arm/arm.md (casesi): Use the gen_int_mode() function
10034 to subtract lower bound instead of GEN_INT().
10035
2be478a2
JW
100362011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
10037
10038 PR other/48179
10039 PR other/48221
10040 PR other/48234
10041 * doc/extend.texi (Alignment): Move section to match order in TOC.
10042 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
10043 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
10044
0c617be4
JL
100452011-03-23 Jeff Law <law@redhat.com>
10046
10047 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
10048 before removing the edge.
10049
10050 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
10051 it may have been freed by redirect_branch_edge or
10052 redirect_edge_succ_nodup.
10053
58da96fe
RG
100542011-03-23 Richard Guenther <rguenther@suse.de>
10055
c78dd519 10056 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
10057 (check_va_list_escapes): Likewise.
10058 (check_all_va_list_escapes): Likewise.
10059
b8beb4d1
RG
100602011-03-23 Richard Guenther <rguenther@suse.de>
10061
10062 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
10063 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
10064 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
10065 (alias.o): Likewise.
10066 (ipa-type-escape.o): Remove.
10067 (ipa-struct-reorg.o): Likewise.
10068 (GTFILES): Remove ipa-struct-reorg.c.
10069 * alias.c: Do not include ipa-type-escape.h.
10070 * tree-ssa-alias.c: Likewise.
10071 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
10072 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
10073 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
10074 and ipa-type-escape passes.
10075 * tree-pass.h (pass_ipa_type_escape): Remove.
10076 (pass_ipa_struct_reorg): Likewise.
10077 * ipa-struct-reorg.h: Remove.
10078 * ipa-struct-reorg.c: Likewise.
10079 * ipa-type-escape.h: Likewise.
10080 * ipa-type-escape.c: Likewise.
10081 * doc/invoke.texi (-fipa-struct-reorg): Remove.
10082 (--param struct-reorg-cold-struct-ratio): Likewise.
10083 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10084 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
10085 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
10086
f137aa63
AK
100872011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10088
10089 * config/s390/2084.md: Enable all insn reservations also for z9_ec
10090 cpu attribute value.
10091 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
10092 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
10093 * config/s390/s390.c (processor_flags_table): New constant array.
10094 (s390_handle_arch_option): Remove.
10095 (s390_handle_option): Remove s390_handle_arch_option invocations
10096 and OPT_mwarn_framesize_ handling.
10097 (s390_option_override): Remove s390_handle_arch_option invocation.
10098 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
10099 warnings.
10100 * config/s390/s390.md (cpu attribute): Add z9_ec value.
10101 * config/s390/s390.opt (s390_tune, s390_arch)
10102 (march=): Replace s390_arch_option enum and values with
10103 processor_type. Set variable name to s390_arch. Set
10104 initialization value.
10105 (mtune=): Replace s390_arch_option with processor_type. Set
10106 variable name to s390_tune. Set initialization value.
10107
bf90208f
JB
101082011-03-23 Julian Brown <julian@codesourcery.com>
10109
10110 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
10111 accesses which are not naturally aligned.
10112
3460fdf3
RS
101132011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10114
10115 PR target/47553
10116 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
10117
a5c7d693
RS
101182011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
10119
10120 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
10121 parameter from "int" to "enum insn_code".
10122 (expand_operand_type): New enum.
10123 (expand_operand): New structure.
10124 (create_expand_operand): New function.
10125 (create_fixed_operand, create_output_operand): Likewise
10126 (create_input_operand, create_convert_operand_to): Likewise.
10127 (create_convert_operand_from, create_address_operand): Likewise.
10128 (create_integer_operand): Likewise.
10129 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
10130 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10131 (expand_insn, expand_jump_insn): Likewise.
10132 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
10133 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
10134 (expand_movstr, expand_builtin___clear_cache): Likewise.
10135 (expand_builtin_lock_release): Likewise.
10136 * explow.c (allocate_dynamic_stack_space): Likewise.
10137 (probe_stack_range): Likewise. Allow check_stack to FAIL,
10138 and use the default handling in that case.
10139 * expmed.c (check_predicate_volatile_ok): Delete.
10140 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
10141 (emit_cstore): Likewise.
10142 * expr.c (emit_block_move_via_movmem): Likewise.
10143 (set_storage_via_setmem, expand_assignment): Likewise.
10144 (emit_storent_insn, try_casesi): Likewise.
10145 (emit_single_push_insn): Likewise. Allow the expansion to fail.
10146 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
10147 (expand_vec_shift_expr, expand_binop_directly): Likewise.
10148 (expand_twoval_unop, expand_twoval_binop): Likewise.
10149 (expand_unop_direct, emit_indirect_jump): Likewise.
10150 (emit_conditional_move, vector_compare_rtx): Likewise.
10151 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
10152 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
10153 (expand_sync_lock_test_and_set): Likewise.
10154 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
10155 (emit_unop_insn): Likewise.
10156 (expand_copysign_absneg): Change icode to an insn_code.
10157 (create_convert_operand_from_type): New function.
10158 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
10159 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
10160 (expand_insn, expand_jump_insn): Likewise.
10161 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
10162 than const_int_operand for operand 2.
10163
78fadbab
AK
101642011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10165
10166 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
10167 if possible.
10168
5f02387d
NF
101692011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10170
10171 * emit-rtl.c (emit_pattern_before_noloc): New function.
10172 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
10173 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
10174 (emit_pattern_after_noloc): New function.
10175 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
10176 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
10177
fdf3e18a
NF
101782011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10179
10180 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
10181 (__ffsDI2): Likewise.
10182
42d085c1
RH
101832011-03-22 Richard Henderson <rth@redhat.com>
10184
10185 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
10186 of !TARGET_ABI_OPEN_VMS.
10187 (alpha_trampoline_init, alpha_start_function): Likewise.
10188 (alpha_expand_epilogue, alpha_file_start): Likewise.
10189 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
10190 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
10191 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
10192 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
10193 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
10194
cabbe12a
JM
101952011-03-22 Joseph Myers <joseph@codesourcery.com>
10196
10197 * config/s390/s390-opts.h: New.
10198 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
10199 s390_arch_flags, s390_warn_framesize, s390_stack_size,
10200 s390_stack_guard): Remove.
10201 (s390_handle_arch_option): Return void. Take enum
10202 s390_arch_option value instead of string and searching array.
10203 (s390_handle_option): Don't assert that global structures are in
10204 use. Access variables via opts pointer. Use error_at. Don't use
10205 sscanf for -mstack-guard= or -mstack-size=. Update call to
10206 s390_handle_arch_option.
10207 (s390_option_override): Update call to s390_handle_arch_option.
10208 (s390_emit_prologue): Use %d format for s390_stack_size in
10209 diagnostic. Use %wd for HOST_WIDE_INT.
10210 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
10211 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
10212 * config/s390/s390.opt (config/s390/s390-opts.h): New
10213 HeaderInclude entry.
10214 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
10215 s390_arch_flags, s390_warn_framesize): New Variable entries.
10216 (s390_arch_option): New Enum and EnumValue entries.
10217 (march=): Use Enum instead of Var.
10218 (mstack-guard=, mstack-size=): Use UInteger and Var.
10219 (mtune=): Use Enum.
10220
05b12036
JM
102212011-03-22 Joseph Myers <joseph@codesourcery.com>
10222
10223 * config/score/score.c (score_handle_option): Don't assert that
10224 global structures are in use. Access target_flags via opts
10225 pointer. Use value of -march= option to determine target_flags
10226 settings.
10227 * config/score/score.opt (march=): Use Enum.
10228 (score_arch): New Enum and EnumValue entries.
10229
dd51e35a
JM
102302011-03-22 Joseph Myers <joseph@codesourcery.com>
10231
10232 * config/mep/mep.c (option_mtiny_specified): Remove.
10233 (mep_option_override): Move register handling for -mivc2 from
10234 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
10235 instead of option_mtiny_specified.
10236 (mep_handle_option): Access target_flags via opts pointer. Don't
10237 assert that global structures are in use. Defer part of -mivc2
10238 handling and move it to mep_option_override.
10239 * config/mep/mep.opt (IVC2): New Mask entry.
10240 (mivc2): Use Var and Defer instead of Mask.
10241
4a8d3d91
JM
102422011-03-22 Joseph Myers <joseph@codesourcery.com>
10243
10244 * config/v850/v850-opts.h: New.
10245 * config/v850/v850.c (small_memory): Replace with
10246 small_memory_physical_max array. Make that array static const.
10247 (v850_handle_memory_option): Take integer value of argument. Take
10248 gcc_options pointer, option text and location. Return void.
10249 Update for changes to small memory structures.
10250 (v850_handle_option): Access target_flags via opts pointer. Don't
10251 assert that global structures are in use. Update calls to
10252 v850_handle_memory_option.
c78dd519
UB
10253 (v850_encode_data_area): Update references to small memory settings.
10254 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
10255 (enum small_memory_type): Move to v850-opts.h.
10256 * config/v850/v850.opt (config/v850/v850-opts.h): New
10257 HeaderInclude entry.
10258 (small_memory_max): New Variable entry.
10259 (msda): Replace by pair of options msda= and msda-. Use UInteger.
10260 (mtda, mzda): Likewise.
10261
117fdbfa
JM
102622011-03-22 Joseph Myers <joseph@codesourcery.com>
10263
10264 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
10265 pointer. Don't assert that global structures are in use.
10266
d715091c
JM
102672011-03-22 Joseph Myers <joseph@codesourcery.com>
10268
10269 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
10270 via opts pointer. Don't assert that global structures are in use.
10271
1bb721dc
JM
102722011-03-22 Joseph Myers <joseph@codesourcery.com>
10273
10274 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
10275 (munix=93): Use Var.
10276 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
10277 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
10278 * config/pa/pa-opts.h: New.
10279 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
10280 (pa_handle_option): Don't assert that global structures are in
10281 use. Access target_flags via opts pointer. Don't handle
10282 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
10283 OPT_munix_98 here.
10284 (pa_option_override): Handle deferred OPT_mfixed_range_.
10285
cd8d8754
JM
102862011-03-22 Joseph Myers <joseph@codesourcery.com>
10287
10288 * config/mn10300/mn10300-opts.h: New.
10289 * config/mn10300/mn10300.c (mn10300_processor,
10290 mn10300_tune_string): Remove.
10291 (mn10300_handle_option): Don't assert that global structures are
10292 in use. Access mn10300_processor via opts pointer. Don't handle
10293 OPT_mtune_ here.
10294 * config/mn10300/mn10300.h (enum processor_type): Move to
10295 mn10300-opts.h.
10296 (mn10300_processor): Remove.
10297 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
10298 HeaderInclude entry.
10299 (mn10300_processor): New Variable entry.
10300 (mtune=): Use Var.
10301
24e6e6b1
JM
103022011-03-22 Joseph Myers <joseph@codesourcery.com>
10303
10304 * config/microblaze/microblaze.c: Don't include opts.h.
10305 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
10306 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
10307 (mno-clearbss): Use Var and Warn.
10308
8a784afb
JM
103092011-03-22 Joseph Myers <joseph@codesourcery.com>
10310
10311 * config/m32r/m32r-opts.h: New.
10312 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
10313 (m32r_handle_option): Don't assert that global structures are in
10314 use. Access target_flags and m32r_cache_flush_func via opts
10315 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
10316 OPT_mno_flush_trap here.
10317 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
10318 include of m32r-opts.h.
10319 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
10320 HeaderInclude entry.
10321 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
10322 (mmodel=): Use Enum and Var.
10323 (m32r_model): New Enum and EnumValue entries.
10324 (mno-flush-trap): Use Var.
10325 (msdata=): Use Enum and Var.
10326 (m32r_sdata): New Enum and EnumValue entries.
10327
bbfc9a8c
JM
103282011-03-22 Joseph Myers <joseph@codesourcery.com>
10329
10330 * config/m32c/m32c.c: Don't include opts.h.
10331 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
10332 m32c_handle_option): Remove.
10333 (m32c_option_override): Check global_options_set.x_target_memregs
10334 instead of target_memregs_set.
10335 * config/m32c/m32c.h (target_memregs): Remove.
10336 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
10337 variable.
10338
e24b8335
JM
103392011-03-22 Joseph Myers <joseph@codesourcery.com>
10340
10341 * config/iq2000/iq2000-opts.h: New.
10342 * config/iq2000/iq2000.c: Don't include opts.h.
10343 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 10344 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
10345 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
10346 HeaderInclude entry.
10347 (iq2000_tune): New Variable entry.
10348 (march=): Add comment. Use Enum.
10349 (iq2000_arch): New Enum and EnumValue entries.
10350 (mcpu=): Use Enum and Var.
10351 (iq2000_tune): New Enum and EnumValue entries.
10352
e6cc0c98
JM
103532011-03-22 Joseph Myers <joseph@codesourcery.com>
10354
10355 * config/ia64/ia64-opts.h: New.
10356 * config/ia64/ia64.c (ia64_tune): Remove.
10357 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
10358 here. Use error_at.
10359 (ia64_option_override): Handle deferred OPT_mfixed_range_.
10360 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
10361 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
10362 HeaderInclude entry.
10363 (ia64_tune): New Variable entry.
10364 (mfixed-range=): Use Defer and Var.
10365 (mtune=): Use Enum and Var.
10366 (ia64_tune): New Enum and EnumValue entries.
10367
db25893c
JM
103682011-03-22 Joseph Myers <joseph@codesourcery.com>
10369
10370 * config/frv/frv-opts.h: New.
10371 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
10372 frv-opts.h.
10373 (frv_cpu_type): Remove.
10374 * config/frv/frv.c: Don't include opts.h.
10375 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 10376 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
10377 (frv_cpu_type): New Variable entry.
10378 (frv_cpu): New Enum and EnumValue entries.
10379
6c223f5d
JM
103802011-03-22 Joseph Myers <joseph@codesourcery.com>
10381
10382 * config/cris/cris.c (cris_handle_option): Access target_flags via
10383 opts pointer. Don't assert that global structures are in use.
10384 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
10385 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
10386
bbd399cf
JM
103872011-03-22 Joseph Myers <joseph@codesourcery.com>
10388
10389 * config/bfin/bfin-opts.h: New.
10390 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
10391 bfin_si_revision, bfin_workarounds): Remove.
10392 (bfin_cpus): Make static const.
10393 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
10394 not bfin_lib_id_given.
10395 (bfin_handle_option): Don't set bfin_lib_id_given. Access
10396 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 10397 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
10398 * config/bfin/bfin.h: Include bfin-opts.h.
10399 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
10400 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
10401 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
10402 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
10403 entries.
10404
5e1b4d5a
JM
104052011-03-22 Joseph Myers <joseph@codesourcery.com>
10406
10407 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
10408 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
10409 or -msoft-float here.
10410 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
10411 -msoft-float and -mhard-float.
c78dd519 10412 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
10413 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10414 msoft-float.
10415 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
10416 -msoft-float.
10417 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
10418 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
10419 not mhard-float.
10420 (LIBGCC_SPEC): Don't handle -msoft-float.
10421 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
10422 -mhard-float.
10423 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
10424 msoft-float.
10425 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
10426 -mfloat-abi=*, not -msoft-float and -mhard-float.
10427 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
10428 -msoft-float.
10429 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
10430 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
10431 mhard-float and msoft-float.
10432 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
10433 mfloat-abi=soft in comments, not mhard-float and msoft-float.
10434 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
10435 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
10436 mhard-float.
10437 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
10438 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
10439 msoft-float.
10440 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
10441 not mhard-float.
10442 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
10443 not msoft-float.
10444
800d1de1
RH
104452011-03-22 Richard Henderson <rth@redhat.com>
10446
10447 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
10448 TARGET_ABI_WINDOWS_NT.
10449 (alpha_output_function_end_prologue): Likewise.
10450 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
10451 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10452 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
10453 (trap, *movsi_nt_vms): Likewise.
10454 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
10455 (*tablejump_osf_nt_internal): Remove.
10456 * config/alpha/predicates.md (input_operand): Only test Pmode.
10457
c59ddd2b
JM
104582011-03-22 Joseph Myers <joseph@codesourcery.com>
10459
10460 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
10461 via opts pointer. Use error_at. Don't assert that global
10462 structures are in use.
10463
1333f97f
JM
104642011-03-22 Joseph Myers <joseph@codesourcery.com>
10465
10466 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
10467 (ix86_handle_option): Access ix86_isa_flags and
10468 ix86_isa_flags_explicit via opts pointer. Don't assert that
10469 global structures are in use.
10470 (ix86_function_specific_save, ix86_function_specific_restore):
10471 Update ix86_isa_flags_explicit field name.
c78dd519 10472 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
10473 (ix86_isa_flags_explicit): Rename TargetSave entry to
10474 x_ix86_isa_flags_explicit.
10475
75db85d8
RH
104762011-03-22 Richard Henderson <rth@redhat.com>
10477
10478 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
10479 (alpha_option_override, direct_return): Likewise.
10480 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
10481 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
10482 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
10483 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
10484 (alpha_expand_epilogue, alpha_end_function): Likewise.
10485 (alpha_init_libfuncs): Likewise.
10486 (struct machine_function): Remove unicosmk members.
10487 (print_operand) ['t']: Remove.
10488 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
10489 unicosmk_output_module_name, unicosmk_output_common,
10490 current_section_align, unicosmk_output_text_section_asm_op,
10491 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
10492 unicosmk_section_type_flags, unicosmk_unique_section,
10493 unicosmk_asm_named_section, unicosmk_insert_attributes,
10494 unicosmk_output_align, unicosmk_defer_case_vector,
10495 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
10496 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
10497 unicosmk_output_ssib, unicosmk_add_call_info_word,
10498 unicosmk_extern_head, unicosmk_output_default_externs,
10499 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
10500 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
10501 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
10502 * config/alpha/alpha-protos.h: Update.
10503 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
10504 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
10505 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
10506 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
10507 (*mulsi_se, mulvsi3): Likewise.
10508 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
10509 (*divmodsi_internal, call, call_value, realign): Likewise.
10510 (moddi3, umoddi3): Likewise; remove duplicate expander.
10511 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
10512 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
10513 (*movdi_nofix): Remove r/U alternative.
10514 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
10515 * config/alpha/constraints.md ("U"): Remove.
10516 * config/alpha/predicates.md (call_operand"): Don't test
10517 TARGET_ABI_UNICOSMK.
10518
96e45421
JM
105192011-03-22 Joseph Myers <joseph@codesourcery.com>
10520
10521 * target.def (handle_option): Take gcc_options and
10522 cl_decoded_option pointers and location_t.
10523 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
10524 * doc/tm.texi: Regenerate.
10525 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
10526 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
10527 * lto-opts.c (lto_reissue_options): Generate option structure for
10528 targetm.handle_option call.
10529 * opts.c (target_handle_option): Update call to
10530 targetm.handle_option. Remove assertions about values now passed
10531 down to hook.
10532 * targhooks.c (default_target_handle_option): New.
10533 * targhooks.h (default_target_handle_option): Declare.
10534 * config/alpha/alpha.c: Include opts.h.
10535 (alpha_handle_option): Update to new hook interface.
10536 * config/arm/arm.c: Include opts.h.
10537 (arm_handle_option): Update to new hook interface.
10538 * config/arm/t-arm (arm.o): Update dependencies.
10539 * config/bfin/bfin.c: Include opts.h.
10540 (bfin_handle_option): Update to new hook interface.
10541 * config/cris/cris.c: Include opts.h.
10542 (cris_handle_option): Update to new hook interface.
10543 * config/frv/frv.c: Include opts.h.
10544 (frv_handle_option): Update to new hook interface.
10545 * config/i386/i386.c: Include opts.h.
10546 (ix86_handle_option): Update to new hook interface.
10547 (ix86_valid_target_attribute_inner_p): Generate option structure
10548 for call to ix86_handle_option.
10549 * config/i386/t-i386 (i386.o): Update dependencies.
10550 * config/ia64/ia64.c: Include opts.h.
10551 (ia64_handle_option): Update to new hook interface.
10552 * config/ia64/t-ia64 (ia64.o): Update dependencies.
10553 * config/iq2000/iq2000.c: Include opts.h.
10554 (iq2000_handle_option): Update to new hook interface.
10555 * config/m32c/m32c.c: Include opts.h.
10556 (m32c_handle_option): Update to new hook interface.
10557 * config/m32r/m32r.c: Include opts.h.
10558 (m32r_handle_option): Update to new hook interface.
10559 * config/m68k/m68k.c: Include opts.h.
10560 (m68k_handle_option): Update to new hook interface.
10561 * config/mep/mep.c: Include opts.h.
10562 (mep_handle_option): Update to new hook interface.
10563 * config/microblaze/microblaze.c: Include opts.h.
10564 (microblaze_handle_option): Update to new hook interface.
10565 * config/mips/mips.c: Include opts.h.
10566 (mips_handle_option): Update to new hook interface.
10567 * config/mn10300/mn10300.c: Include opts.h.
10568 (mn10300_handle_option): Update to new hook interface.
10569 * config/pa/pa.c: Include opts.h.
10570 (pa_handle_option): Update to new hook interface.
10571 * config/pdp11/pdp11.c: Include opts.h.
10572 (pdp11_handle_option): Update to new hook interface.
10573 * config/rs6000/rs6000.c: Include opts.h.
10574 (rs6000_handle_option): Update to new hook interface.
10575 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10576 * config/rx/rx.c: Include opts.h.
10577 (rx_handle_option): Update to new hook interface.
10578 * config/s390/s390.c: Include opts.h.
10579 (s390_handle_option): Update to new hook interface.
10580 * config/score/score.c: Include opts.h.
10581 (score_handle_option): Update to new hook interface.
10582 * config/sh/sh.c: Include opts.h.
10583 (sh_handle_option): Update to new hook interface.
10584 * config/sparc/sparc.c: Include opts.h.
10585 (sparc_handle_option): Update to new hook interface.
10586 * config/v850/v850.c: Include opts.h.
10587 (v850_handle_option): Update to new hook interface.
10588
66017846
JM
105892011-03-22 Joseph Myers <joseph@codesourcery.com>
10590
10591 * gcc.c (driver_unknown_option_callback): Only permit and save
10592 unknown -Wno- options.
10593 (driver_wrong_lang_callback): Save options directly instead of via
10594 driver_unknown_option_callback.
10595
e8b97ccd
EB
105962011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10597
10598 * combine.c (simplify_set): Try harder to find the best CC mode when
10599 simplifying a nested COMPARE on the RHS.
10600
ebb9f8b0
JM
106012011-03-22 Joseph Myers <joseph@codesourcery.com>
10602
10603 * config/alpha/gnu.h: Remove.
10604 * config/arc: Remove directory.
10605 * config/arm/netbsd.h: Remove.
10606 * config/arm/t-pe: Remove.
10607 * config/crx: Remove directory.
10608 * config/i386/netbsd.h: Remove.
10609 * config/m68hc11: Remove directory.
10610 * config/m68k/uclinux-oldabi.h: Remove.
10611 * config/mcore/mcore-pe.h: Remove.
10612 * config/mcore/t-mcore-pe: Remove.
10613 * config/netbsd-aout.h: Remove.
10614 * config/rs6000/gnu.h: Remove.
10615 * config/sh/sh-symbian.h: Remove.
10616 * config/sh/symbian-base.c: Remove.
10617 * config/sh/symbian-c.c: Remove.
10618 * config/sh/symbian-cxx.c: Remove.
10619 * config/sh/symbian-post.h: Remove.
10620 * config/sh/symbian-pre.h: Remove.
10621 * config/sh/t-symbian: Remove.
10622 * config/svr3.h: Remove.
10623 * config/vax/netbsd.h: Remove.
10624 * config.build: Don't handle i[34567]86-*-pe.
10625 * config.gcc: Remove handling of deprecations for most deprecated
10626 targets.
10627 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
10628 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
10629 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
10630 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
10631 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
10632 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
10633 Remove cases.
10634 * config.host: Don't handle i[34567]86-*-pe.
10635 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
10636 (ASM_SPEC32): Don't handle -mcall-gnu.
10637 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
10638 -mcall-gnu.
10639 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
10640 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
10641 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
10642 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
10643 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
10644 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
10645 conditional on SYMBIAN.
10646 * configure.ac: Don't handle powerpc*-*-gnu*.
10647 * configure: Regenerate.
10648 * doc/extend.texi (interrupt attribute): Don't mention CRX.
10649 * doc/install-old.texi (m6811, m6812): Don't mention.
10650 * doc/install.texi (arc-*-elf*): Don't document multilib option.
10651 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
10652 (m68k-uclinuxoldabi): Don't mention.
10653 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
10654 Remove.
10655 (-mcall-gnu): Remove.
10656 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
10657 families): Remove constraint documentation.
10658
999a7d80
MS
106592011-03-22 Marius Strobl <marius@FreeBSD.org>
10660
10661 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
10662 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
10663 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
10664
45540bcf
MM
106652011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10666
10667 PR target/48226
10668 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
10669 vector when peeking at the next token for vector, don't expand the
10670 keywords.
10671
980a0ff4
GJL
106722011-03-21 Georg-Johann Lay <avr@gjlay.de>
10673
10674 * config/avr/avr-protos.h (expand_epilogue): Change prototype
10675 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
10676 * config/avr/avr.c (init_cumulative_args)
10677 (avr_function_arg_advance): Use it.
10678 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
10679 sibcall epilogues.
10680 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
10681 (avr_function_ok_for_sibcall): ...this new function.
10682 (avr_lookup_function_attribute1): New static Function.
10683 (avr_naked_function_p, interrupt_function_p)
10684 (signal_function_p, avr_OS_task_function_p)
10685 (avr_OS_main_function_p): Use it.
10686 * config/avr/avr.md ("sibcall", "sibcall_value")
10687 ("sibcall_epilogue"): New expander.
10688 ("*call_insn", "*call_value_insn"): New insn.
10689 ("call_insn", "call_value_insn"): Remove
10690 ("call", "call_value", "epilogue"): Change expander to handle
10691 sibling calls.
10692
49168734
NC
106932011-03-21 Nick Clifton <nickc@redhat.com>
10694
10695 * doc/invoke.texi (Overall Options): Move closing brace to end of
10696 options list.
10697 (Optimization Options): Add missing @gol.
10698 (Directory Options): Likewise.
10699 (i386 and x86-64 Options): Likewise.
10700 (RS6000 and PowerPC Options): Likewise.
10701 (i386 and x86-64 Windows Options): Likewise.
10702 (V850 Options): Add text missing from descriptions.
10703
bdfe906f
RH
107042011-03-22 Richard Henderson <rth@redhat.com>
10705
10706 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
10707 (avr_incoming_return_addr_rtx): New.
10708 (emit_push_byte): New.
10709 (expand_prologue): Use it. Remove incorrect dwarf annotation for
10710 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
10711 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
10712 (emit_pop_byte): New.
10713 (expand_epilogue): Use it. Pop frame pointer by bytes.
10714 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
10715 (INCOMING_RETURN_ADDR_RTX): New.
10716 (INCOMING_FRAME_SP_OFFSET): New.
10717 (ARG_POINTER_CFA_OFFSET): New.
10718 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
10719 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
10720 (pophi): Remove.
10721
d090a5aa
RH
10722 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
10723
fdf3e18a
NF
107242011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10725
10726 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
10727 (FUNCTION_ARG_ADVANCE): Likewise.
10728 * tm.texi.in: Change references to them to hook references.
10729 * tm.texi: Regenerate.
10730 * targhooks.c (default_function_arg): Eliminate check for target
10731 macro.
10732 (default_function_incoming_arg): Likewise.
10733 (default_function_arg_advance): Likewise.
c78dd519 10734 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
10735 (function_arg_advance): Likewise.
10736 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
10737
009d3fcf
NF
107382011-03-22 Nathan Froyd <froydnj@codesourcery.com>
10739
10740 * tree.c (build_call_1): New function.
10741 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
10742
7bec30e1
RG
107432011-03-22 Richard Guenther <rguenther@suse.de>
10744
10745 PR tree-optimization/48228
10746 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
10747 for single-arg PHIs.
10748
0b7e851b
AB
107492011-03-22 Andrey Belevantsev <abel@ispras.ru>
10750
10751 PR rtl-optimization/48143
10752 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
10753 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
10754 sse2_cvtps2pd): Likewise.
10755
d89afca5
AK
107562011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10757
10758 * recog.c (canonicalize_change_group): Use validate_unshare_change.
10759
f471fe72
RG
107602011-03-22 Richard Guenther <rguenther@suse.de>
10761
10762 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
10763 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
10764 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
10765 and REALIGN_LOAD_EXPR.
10766 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
10767 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
10768 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
10769 DOT_PROD_EXPR case ...
10770 (expand_expr_real_2): ... here.
10771 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
10772 and REALIGN_LOAD_EXPR.
10773 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
10774 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
10775 (vect_create_epilog_for_reduction): Likewise.
10776 (vectorizable_reduction): Likewise.
10777 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
10778 * tree-vect-stmts.c (vectorizable_load): Likewise.
10779
f2f81d57
EB
107802011-03-22 Eric Botcazou <ebotcazou@adacore.com>
10781
10782 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
10783
ab081dd6
AK
107842011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10785
10786 * config/s390/s390.c (s390_delegitimize_address): Fix offset
10787 handling for PLTOFF/GOTOFF.
10788
6fd5332b
NC
107892011-03-22 Nick Clifton <nickc@redhat.com>
10790
10791 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
10792 trailing backslash from the end of the macro definition.
10793
01841ac0
AK
107942011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10795
10796 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
10797 and PLT unspecs.
10798
2ef6ce06
RS
107992011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
10800
10801 * expr.h (prepare_operand): Move to...
10802 * optabs.h (prepare_operand): ...here and change the insn code
10803 parameter from "int" to "enum insn_code".
10804 (insn_operand_matches): Declare.
10805 * expr.c (init_expr_target): Use insn_operand_matches.
10806 (compress_float_constant): Likewise.
10807 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
10808 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
10809 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
10810 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
10811 Likewise.
2ef6ce06
RS
10812 (gen_cond_trap): Likewise.
10813 (prepare_operand): Likewise. Change icode to an insn_code.
10814 (insn_operand_matches): New function.
10815 * reload.c (find_reloads_address_1): Use insn_operand_matches.
10816 * reload1.c (gen_reload): Likewise.
10817 * targhooks.c (default_secondary_reload): Likewise.
10818
9e43ad68
UB
108192011-03-21 Uros Bizjak <ubizjak@gmail.com>
10820
9a96da32
UB
10821 * config/alpha/alpha.md (unspec): New define_c_enum.
10822 (unspecv): Ditto.
10823
108242011-03-21 Uros Bizjak <ubizjak@gmail.com>
10825
10826 PR debug/48214
9e43ad68
UB
10827 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
10828 between a call and its CALL_ARG_LOCATION note.
10829
31408f60
EB
108302011-03-21 Eric Botcazou <ebotcazou@adacore.com>
10831
10832 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
10833
108342011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
10835
10836 PR c/42544
10837 PR c/48197
10838 * c-common.c (shorten_compare): If primopN is first sign-extended
10839 to opN and then zero-extended to result type, set primopN to opN.
10840
9dfd55f5
DJ
108412011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
10842
10843 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
10844 for barrier handlers.
10845
f3c33d9d
MM
108462011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10847
10848 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
10849 UNSPEC constants to be in the unspec enumeration, and redefine
10850 all UNSPECV constants to be in the unspecv enumeration, so that
10851 dumps print which unspec/unspec_volatile this is.
10852 * config/rs6000/vector.md (UNSPEC_*): Ditto.
10853 * config/rs6000/paired.md (UNSPEC_*): Ditto.
10854 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
10855 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
10856 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
10857
10858 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
10859 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
10860 UNSPECV_LWSYNC, since these are used as unspec_volatile.
10861 * config/rs6000/sync.md (isync, lwsync): Ditto.
10862
ac43f774
RG
108632011-03-21 Richard Guenther <rguenther@suse.de>
10864
10865 * params.def (lto-min-partition): Fix typo.
10866
411cdbd8
RG
108672011-03-21 Richard Guenther <rguenther@suse.de>
10868
10869 PR c/47939
10870 * c-decl.c (grokdeclarator): Drop to the main variant only
10871 for array types. Drop flag_gen_aux_info check.
10872
1cd9e416
RG
108732011-03-21 Richard Guenther <rguenther@suse.de>
10874
10875 PR translation/47911
10876 * params.def (lto-partitions): Fix typo.
10877 (lto-min-partition): Fix wording.
10878
ada5ad67
AT
108792011-03-21 Andreas Tobler <andreast@fgznet.ch>
10880
10881 * config/rs6000/t-freebsd: Remove duplication from file.
10882
f9613c9a
RG
108832011-03-21 Richard Guenther <rguenther@suse.de>
10884
10885 PR middle-end/47661
10886 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
10887
9bfbc1eb
RG
108882011-03-21 Richard Guenther <rguenther@suse.de>
10889
10890 PR lto/48210
10891 * params.def (lto-partitions): Require at least 1 partition.
10892
a2268084
RO
108932011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10894
10895 * gthr-solaris.h: Remove.
10896 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
10897 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
10898 (LIB_SPEC): Likewise.
10899 * config/sol2.opt (threads): Remove.
9e43ad68 10900 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
10901 (sparc*-*-solaris2*): Likewise.
10902 * configure.ac (enable_threads): Enable solaris support.
10903 * configure: Regenerate.
9e43ad68 10904 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
10905 * doc/install.texi (Configuration, --enable-threads=lib): Remove
10906 solaris.
10907
c43d9a1b
RO
109082011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10909
10910 * config.gcc: Obsolete *-*-solaris2.8*.
10911 * doc/install.texi (Specific, *-*-solaris2*): Document it.
10912
084239f4
RO
109132011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10914
10915 PR bootstrap/48135
10916 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
10917 reference. Solaris 8 perl works.
10918
64cadbe7
RO
109192011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10920
10921 PR bootstrap/48135
10922 * doc/install.texi (Prerequisites): Move jar etc. up.
10923 Explain support library version requirements.
10924
eb975109
RO
109252011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10926
10927 PR bootstrap/48135
10928 * doc/install.texi (Prerequisites): Move Perl to build
10929 requirements. Always necessary on Solaris 2 with Sun ld.
10930
8a509ffd
RO
109312011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10932
10933 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
10934 binutils 2.21.
10935 (Specific, i?86-*-solaris2.[89]): Likewise.
10936 (Specific, i?86-*-solaris2.10): Likewise.
10937 (Specific, mips-sgi-irix6): Likewise.
10938 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
10939 Update for binutils 2.21.
10940
8fbc58a1
RO
109412011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10942
10943 * configure.ac (gcc_cv_lto_plugin): Fix typo.
10944 Allow -fuse-linker-plugin for non-default plugin linker.
10945 * configure: Regenerate.
10946
7e84ad0b
NP
109472011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
10948
10949 PR bootstrap/48167
10950 * gengtype.c (files_rules): Added rule for cp/parser.h.
10951
2f36e14b
JJ
109522011-03-21 Jakub Jelinek <jakub@redhat.com>
10953
10954 PR target/48213
10955 * config/s390/s390.c (s390_delegitimize_address): Don't call
10956 lowpart_subreg if orig_x has BLKmode.
10957
62d784f7
KT
109582011-03-21 Kai Tietz <ktietz@redhat.com>
10959
10960 PR target/12171
9e43ad68
UB
10961 * doc/plugins.texi: Adjust documentation for plugin register_callback.
10962 * tree.h (attribute_spec): Add new member affects_type_identity.
10963 * attribs.c (empty_attribute_table): Adjust attribute_spec
10964 initializers.
62d784f7
KT
10965 * config/alpha/alpha.c: Likewise.
10966 * config/arc/arc.c: Likewise.
10967 * config/arm/arm.c: Likewise.
10968 * config/avr/avr.c: Likewise.
10969 * config/bfin/bfin.c: Likewise.
10970 * config/crx/crx.c: Likewise.
10971 * config/darwin.h: Likewise.
10972 * config/h8300/h8300.c: Likewise.
10973 * config/i386/cygming.h: Likewise.
10974 * config/i386/i386.c: Likewise.
10975 * config/ia64/ia64.c: Likewise.
10976 * config/m32c/m32c.c: Likewise.
10977 * config/m32r/m32r.c: Likewise.
10978 * config/m68hc11/m68hc11.c: Likewise.
10979 * config/m68k/m68k.c: Likewise.
10980 * config/mcore/mcore.c: Likewise.
10981 * config/mep/mep.c: Likewise.
10982 * config/microblaze/microblaze.c: Likewise.
10983 * config/mips/mips.c: Likewise.
10984 * config/rs6000/rs6000.c: Likewise.
10985 * config/rx/rx.c: Likewise.
10986 * config/sh/sh.c: Likewise.
10987 * config/sol2.h: Likewise.
10988 * config/sparc/sparc.c: Likewise.
10989 * config/spu/spu.c: Likewise.
10990 * config/stormy16/stormy16.c: Likewise.
10991 * config/v850/v850.c: Likewise.
10992
54833ec0
CLT
109932011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
10994
10995 * simplify-rtx.c (simplify_binary_operation_1): Handle
10996 (xor (and A B) C) case when B and C are both constants.
10997
14a41392
MX
109982011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
10999
11000 * tree-dfa.c (add_referenced_var): Fix typo in comment.
11001
806c3492
EB
110022011-03-20 Eric Botcazou <ebotcazou@adacore.com>
11003
11004 PR bootstrap/48168
11005 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
11006
65e0a0f3
JJ
110072011-03-20 Jakub Jelinek <jakub@redhat.com>
11008
11009 PR rtl-optimization/48156
11010 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
11011 assume df and df_lr are not NULL.
11012
b6a75dda
RR
110132011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11014
11015 PR debug/48023
11016 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
11017 between a call and its CALL_ARG_LOCATION note.
11018
5969b52d
KK
110192011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
11020
11021 PR debug/48178
11022 * config/sh/sh.c (find_barrier): Don't emit a constant pool
11023 between a call and its corresponding CALL_ARG_LOCATION note.
11024
f773c2bd
AS
110252011-03-19 Anatoly Sokolov <aesok@post.ru>
11026
11027 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
11028 instead of loop. Use HARD_REGISTER_NUM_P predicate.
11029 * haifa-sched.c (setup_ref_regs): Ditto.
11030 * caller-save.c (add_used_regs_1): Ditto.
11031 * dse.c (look_for_hardregs): Ditto.
11032 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
11033 * sched-rgn.c (check_live_1): Ditto.
11034
8bf872f9
JM
110352011-03-18 Joseph Myers <joseph@codesourcery.com>
11036
11037 * c-decl.c (diagnose_mismatched_decls): Give an error for
11038 redefining a typedef with variably modified type.
11039
ff8e2159
JM
110402011-03-18 Joseph Myers <joseph@codesourcery.com>
11041
11042 * c-decl.c (grokfield): Don't allow typedefs for structures or
11043 unions with no tag by default.
11044 * doc/extend.texi (Unnamed Fields): Update.
11045
16cc4440
UB
110462011-03-18 Uros Bizjak <ubizjak@gmail.com>
11047
11048 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11049 Rewrite using indirect functions.
11050 (lwp_slwpcb): Ditto.
11051 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
11052 (avx_vinsertf128<mode>): Ditto.
11053
e101e12e
AK
110542011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11055
11056 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
11057 unspecs.
11058
4627c7fb
AK
110592011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11060
11061 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 11062 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 11063
2d36b47f
MK
110642011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
11065
11066 PR rtl-optimization/48170
11067 * gcse.c (hoist_code): Remove bogus asserts.
11068
2a3d7659
JL
110692011-03-18 Georg-Johann Lay <avr@gjlay.de>
11070
11071 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
11072 computation for prologue/epilogue.
11073
34c3ef05
RO
110742011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11075
11076 * Makefile.in (check-consistency): Remove.
11077
81f2b976
JJ
110782011-03-18 Jakub Jelinek <jakub@redhat.com>
11079
11080 PR debug/48176
11081 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
11082 arange_table_in_use is 0, but either text_section_used or
11083 cold_text_section_used is true. Don't call it if
11084 !info_section_emitted.
11085
68fd7765
AS
110862011-03-18 Anatoly Sokolov <aesok@post.ru>
11087
11088 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
11089 FUNCTION_VALUE_REGNO_P): Remove.
11090 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
11091 Remove.
11092 * config/avr/avr.c (avr_ret_register): Make static inline.
11093 (avr_function_value_regno_p): New function.
11094 (avr_libcall_value): Make static. Add 'func' argument.
11095 (avr_function_value): Make static. Rename 'func' argument to
11096 'fn_decl_or_type', forward it to avr_libcall_value. Call
11097 avr_ret_register function instead of RET_REGISTER macro.
11098 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11099
b4ef8aac
JM
111002011-03-18 Jason Merrill <jason@redhat.com>
11101
11102 PR c++/23372
11103 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
11104
09a52fc3
RG
111052011-03-18 Richard Guenther <rguenther@suse.de>
11106
11107 * doc/install.texi (--enable-gold): Remove.
11108 (--with-plugin-ld): Document.
11109 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
11110
2a3d7659 111112011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
11112
11113 PR middle-end/47790
11114 * expr.c (optimize_bitfield_assignment_op): Revamp to work
11115 again after expansion changes.
11116
2abbb0fe
CLT
111172011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
11118
11119 * combine.c (try_combine): Do simplification only call of
11120 subst() on i2 even when i1 is present. Update comments.
11121
2efd0aa6
KK
111222011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
11123
11124 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
11125 and UNSPEC_PCREL_SYMOFF.
11126
30a49b23
AK
111272011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11128
11129 * config/s390/s390.md: Use define_c_enum for the unspec constant
11130 definitions.
11131
419e1853
JJ
111322011-03-18 Richard Henderson <rth@redhat.com>
11133 Jakub Jelinek <jakub@redhat.com>
11134
11135 PR bootstrap/48161
11136 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
11137 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
11138
37875856
L
111392011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11140
11141 PR middle-end/47725
11142 * combine.c (cant_combine_insn_p): Don't check zero/sign
11143 extended hard registers.
11144
76069764
L
111452011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11146
11147 PR middle-end/47725
11148 * combine.c (cant_combine_insn_p): Check zero/sign extended
11149 hard registers.
11150
24da2019
AS
111512011-03-17 Anatoly Sokolov <aesok@post.ru>
11152
11153 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11154 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
11155 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
11156 Change return type to bool.
11157 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11158
a82ff31f
JJ
111592011-03-17 Jakub Jelinek <jakub@redhat.com>
11160
8b29c87a
JJ
11161 PR debug/48163
11162 * var-tracking.c (prepare_call_arguments): If CALL target
11163 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
11164 pc instead of looking it up using cselib_lookup and use
11165 Pmode for it if x has VOIDmode.
11166 * dwarf2out.c (gen_subprogram_die): If also both first and
11167 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
11168
a82ff31f
JJ
11169 PR debug/48163
11170 * function.c (assign_parms): For data.passed_pointer parms
11171 use MEM of data.entry_parm instead of data.entry_parm itself
11172 as DECL_INCOMING_RTL.
11173 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
11174 also when passed and declared mode is the same, DECL_RTL
11175 is a MEM with pseudo as address and DECL_INCOMING_RTL is
11176 a MEM too.
11177
82ce305c
JL
111782011-03-16 Jeff Law <law@redhat.com>
11179
11180 PR rtl-optimization/37273
11181 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11182 handle them like argument loads from stack slots. Do not double
11183 count memory for memory constants and argument loads from stack slots.
11184
fe58e02b
L
111852011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11186
11187 PR debug/48160
11188 * var-tracking.c (prepare_call_arguments): Check SUBREG.
11189
6fc4dbc7
L
111902011-03-17 H.J. Lu <hongjiu.lu@intel.com>
11191
11192 PR target/48171
11193 * config/i386/i386.opt: Add Save to -mavx and -mfma.
11194
db3ed0b3
JJ
111952011-03-17 Jakub Jelinek <jakub@redhat.com>
11196
8054a389
JJ
11197 PR bootstrap/48153
11198 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
11199 if dwarf_strict.
11200 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
11201 Clear call_arg_locations and call_arg_loc_last always.
11202
db3ed0b3
JJ
11203 PR middle-end/48152
11204 * var-tracking.c (prepare_call_arguments): If argument needs to be
11205 passed by reference, adjust argtype and mode.
11206
1bce4ff3
RG
112072011-03-17 Richard Guenther <rguenther@suse.de>
11208
11209 PR middle-end/48134
11210 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
11211 a value make sure to fold the statement.
11212
7c71147d
CLT
112132011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
11214
11215 PR target/43872
11216 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
11217 return condition with !cfun->calls_alloca.
11218
0e1ee172
RG
112192011-03-17 Richard Guenther <rguenther@suse.de>
11220
11221 PR bootstrap/48148
11222 * lto-cgraph.c (input_overwrite_node): Clear the abstract
11223 origin for decls in other ltrans units.
11224 (input_varpool_node): Likewise.
11225
f8bce518
RG
112262011-03-17 Richard Guenther <rguenther@suse.de>
11227
11228 PR middle-end/48165
11229 * tree-object-size.c (compute_object_offset): Properly return
11230 the offset operand of MEM_REFs as sizetype.
11231
1b6fa860
JJ
112322011-03-17 Jakub Jelinek <jakub@redhat.com>
11233
dabd47e7
JJ
11234 PR rtl-optimization/48141
11235 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
11236 * dse.c: Include params.h.
11237 (active_local_stores_len): New variable.
11238 (add_wild_read, dse_step1): Clear it when setting active_local_stores
11239 to NULL.
11240 (record_store, check_mem_read_rtx): Decrease it when removing
11241 from the chain.
11242 (scan_insn): Likewise. Increase it when adding to chain, if it
11243 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
11244 set active_local_stores to NULL before the addition.
11245 * Makefile.in (dse.o): Depend on $(PARAMS_H).
11246
1b6fa860
JJ
11247 PR rtl-optimization/48141
11248 * dse.c (record_store): If no positions are needed in an insn
11249 that cannot be deleted, at least unchain it from active_local_stores.
11250
7b5cb7d6
DS
112512011-03-16 Dodji Seketeli <dodji@redhat.com>
11252
11253 PR debug/47510
11254 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
11255 (lookup_type_die_strip_naming_typedef): ... here.
11256 (get_context_die): Use it.
11257 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
11258 the anonymous struct named by the naming typedef.
11259
585e9d9d
L
112602011-03-16 H.J. Lu <hongjiu.lu@intel.com>
11261
11262 PR target/48154
11263 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
11264 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11265
6261ab0e
JL
112662011-03-16 Jeff Law <law@redhat.com>
11267
11268 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 11269 check for operands of conditional. Allow type to be a pointer.
6261ab0e 11270
0b0081ec
RG
112712011-03-16 Richard Guenther <rguenther@suse.de>
11272
11273 PR tree-optimization/48149
11274 * fold-const.c (fold_binary_loc): Fold
11275 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
11276
64a3d647
RG
112772011-03-16 Richard Guenther <rguenther@suse.de>
11278
11279 PR tree-optimization/26134
11280 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
11281 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
11282 (non_rewritable_mem_ref_base): Handle complex type component
11283 accesses, constrain offsets for vector and complex extracts
11284 more properly.
11285
ef13324e
RG
112862011-03-16 Richard Guenther <rguenther@suse.de>
11287
11288 PR tree-optimization/48146
11289 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
11290 operands avoiding the need for renaming.
11291
f0eddb90
RG
112922011-03-16 Richard Guenther <rguenther@suse.de>
11293
11294 * gimple-fold.c (maybe_fold_reference): Open-code relevant
11295 constant folding. Move MEM_REF canonicalization first.
11296 Rely on fold_const_aggregate_ref for initializer folding.
11297 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
11298
e42348b8
JJ
112992011-03-16 Jakub Jelinek <jakub@redhat.com>
11300
29f10e71
JJ
11301 PR middle-end/48136
11302 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
11303 arg0/arg1 or their arguments are always fold converted to matching
11304 types.
11305
e42348b8
JJ
11306 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
11307 to nargs.
11308
55b46574
RO
113092011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11310
11311 PR lto/46944
11312 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
11313 Handle in-tree gold.
11314 (ld_vers): Extract binutils version for gold.
11315 (gcc_cv_ld_hidden): Handle gold here.
11316 (gcc_cv_lto_plugin): Determine level of linker plugin support.
11317 * configure: Regenerate.
11318 * config.in: Regenerate.
11319 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
11320 -fuse-linker-plugin otherwise.
11321 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
11322 (LINK_COMMAND_SPEC): Use it.
11323 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
11324
2b1c5433
JJ
113252011-03-16 Jakub Jelinek <jakub@redhat.com>
11326
c2969d8e
JJ
11327 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
11328 * calls.c: Remove debug.h include.
11329 (emit_call_1): Don't call virtual_call_token debug hook.
11330 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
11331 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
11332 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
11333 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
11334 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
11335 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
11336 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
11337 dwarf2out_virtual_call): Remove.
11338 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
11339 copy_call_info and virtual_call hooks.
11340 (dwarf2out_init): Don't initialize vcall_insn_table,
11341 debug_dcall_section and debug_vcall_section.
11342 (prune_unused_types): Don't mark nodes from dcall_table.
11343 (dwarf2out_finish): Don't output dcall or vcall tables.
11344 * final.c (final_scan_insn): Don't call direct_call or
11345 virtual_call debug hooks.
11346 * debug.h (struct gcc_debug_hooks): Remove direct_call,
11347 virtual_call_token, copy_call_info and virtual_call hooks.
11348 (debug_nothing_uid): Remove prototype.
11349 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
11350 copy_call_info and virtual_call hooks.
11351 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11352 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
11353 * debug.c (do_nothing_debug_hooks): Likewise.
11354 (debug_nothing_uid): Remove.
11355 * doc/invoke.texi (-fenable-icf-debug): Remove.
11356 * common.opt (-fenable-icf-debug): Likewise.
11357
325f5379
JJ
11358 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
11359 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
11360 call's MEM. Handle functions returning aggregate through a hidden
11361 first pointer. For virtual calls add clobbered pc to call arguments
11362 chain.
11363 * dwarf2out.c (gen_subprogram_die): Emit
11364 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
11365 can't be emitted.
11366
a58a8e4b
JJ
11367 PR debug/45882
11368 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
11369 * rtl.h (ENTRY_VALUE_EXP): Define.
11370 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
11371 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
11372 * print-rtl.c (print_rtx): Likewise.
11373 * gengtype.c (adjust_field_rtx_def): Likewise.
11374 * var-tracking.c (vt_add_function_parameter): Adjust
11375 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
11376 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
11377 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
11378 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
11379 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
11380
2b1c5433
JJ
11381 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
11382 Call var_location debug hook even on CALL_INSNs.
11383 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
11384 * rtl.def (ENTRY_VALUE): New.
11385 * dwarf2out.c: Include cfglayout.h.
11386 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11387 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
11388 (struct call_arg_loc_node): New type.
11389 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
11390 tail_call_site_count): New variables.
11391 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
11392 DW_TAG_GNU_call_site_parameter.
11393 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
11394 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
11395 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
11396 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
11397 and DW_AT_GNU_all_source_call_sites.
11398 (mem_loc_descriptor): Handle ENTRY_VALUE.
11399 (add_src_coords_attributes): Don't add enything if
11400 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
11401 (dwarf2out_abstract_function): Save and clear call_arg_location,
11402 call_site_count and tail_call_site_count around dwarf2out_decl call.
11403 (gen_call_site_die): New function.
11404 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
11405 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
11406 (dwarf2out_function_decl): Clear call_arg_locations,
11407 call_arg_loc_last, set call_site_count and tail_call_site_count
11408 to -1 and free block_map.
11409 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
11410 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
11411 followed by any real instructions.
11412 (dwarf2out_begin_function): Set call_site_count and
11413 tail_call_site_count to 0.
11414 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
11415 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
11416 attempt to force a DIE for it and worst case remove the attribute.
11417 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
11418 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
11419 the decl itself.
11420 * var-tracking.c: Include tm_p.h.
11421 (vt_stack_adjustments): For calls call note_register_arguments.
11422 (argument_reg_set): New variable.
11423 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
11424 ensure the VALUE is resolved.
11425 (call_arguments): New variable.
11426 (prepare_call_arguments): New function.
11427 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
11428 (struct expand_loc_callback_data): Add ignore_cur_loc field.
11429 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
11430 always use the best expression.
11431 (vt_expand_loc): Add ignore_cur_loc argument.
11432 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
11433 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
11434 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
11435 note for all calls.
11436 (vt_add_function_parameter): Use cselib_lookup_from_insn.
11437 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
11438 argument. Don't call cselib_preserve_only_values and
11439 cselib_reset_table.
11440 (note_register_arguments): New function.
11441 (vt_initialize): Compute argument_reg_set. Call
11442 vt_add_function_parameters before processing basic blocks instead of
11443 afterwards. For calls call prepare_call_arguments before calling
11444 cselib_process_insn.
11445 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
11446 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
11447 (var-tracking.o): Depend on $(TM_P_H).
11448 * cfglayout.h (insn_scope): New prototype.
11449 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
11450 * cfglayout.c (insn_scope): No longer static.
11451 * insn-notes.def (CALL_ARG_LOCATION): New.
11452 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
11453 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
11454 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
11455 nothing for DECL_EXTERNAL BLOCK_VARS.
11456
9ef13bd0
AM
114572011-03-16 Alan Modra <amodra@gmail.com>
11458
11459 PR target/45844
11460 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
11461 create invalid offset address for vsx splat insn.
11462 * config/rs6000/predicates.md (splat_input_operand): New.
11463 * config/rs6000/vsx.md (vsx_splat_*): Use it.
11464
56b67510
XDL
114652011-03-15 Xinliang David Li <davidxl@google.com>
11466
11467 PR c/47837
11468 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
11469 (normalize_preds): New function.
11470 (is_use_properly_guarded): Normalize def predicates.
11471
80fffdef
RR
114722011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11473
732f37c6 11474 PR target/46788
80fffdef
RR
11475 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
11476 in the output template.
11477
930672ad
RG
114782011-03-15 Richard Guenther <rguenther@suse.de>
11479
11480 PR middle-end/47650
11481 * tree-pretty-print.c (dump_function_declaration): Properly
11482 dump unprototyped and varargs function types.
11483
c7ee7b45
RG
114842011-03-15 Richard Guenther <rguenther@suse.de>
11485
11486 PR tree-optimization/13954
11487 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
11488 and friends.
11489
b2ad5e37
RG
114902011-03-15 Richard Guenther <rguenther@suse.de>
11491
11492 PR tree-optimization/48037
11493 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
11494 selects into BIT_FIELD_REFs.
11495 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
11496 vector select.
11497
7ee93d4e
JJ
114982011-03-15 Jakub Jelinek <jakub@redhat.com>
11499
11500 PR tree-optimization/48129
11501 * builtins.c (fold_builtin_snprintf): Convert to type of
11502 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
11503 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
11504
e106efc7
RG
115052011-03-15 Richard Guenther <rguenther@suse.de>
11506
11507 PR tree-optimization/41490
11508 * tree-ssa-dce.c (propagate_necessity): Handle returns without
11509 value but with VUSE.
11510 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
11511 return statements.
11512 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
11513 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
11514 * tree-tailcall.c (find_tail_calls): Ignore returns.
11515
17dea42f
RG
115162011-03-15 Richard Guenther <rguenther@suse.de>
11517
11518 PR middle-end/48031
11519 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
11520 or variable-indexed array accesses when in gimple form.
11521
01c77a60
RG
115222011-03-15 Richard Guenther <rguenther@suse.de>
11523
16cc4440 11524 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 11525
77b0791e
AM
115262011-03-15 Alan Modra <amodra@gmail.com>
11527
11528 PR target/48032
11529 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
11530 presume symbol_refs without a symbol_ref_decl are suitably
11531 aligned, nor other trees we may see here. Handle anchor symbols.
11532 (legitimate_constant_pool_address_p): Comment. Add mode param.
11533 Check cmodel=medium addresses. Adjust all calls.
11534 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
11535 creating cmodel=medium optimized access to locals.
11536 * config/rs6000/constraints.md (R): Pass QImode to
11537 legitimate_constant_pool_address_p.
11538 * config/rs6000/predicates.md (input_operand): Pass mode to
11539 legitimate_constant_pool_address_p.
11540 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
11541 Update prototype.
11542
35f61ba4
MM
115432011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11544
11545 PR target/48053
11546 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
11547 64-bit constants being loaded into registers other than GPRs such
11548 as loading 0 into a VSX register.
11549
07332e6d
RO
115502011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11551
16cc4440 11552 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 11553
de888d90
JJ
115542011-03-14 Jakub Jelinek <jakub@redhat.com>
11555
ba3ceb2d
JJ
11556 PR middle-end/47917
11557 * builtins.c (fold_builtin_snprintf): New function.
11558 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
11559 (fold_builtin_4): Likewise.
11560
2e64f8b8
JJ
11561 PR middle-end/38878
11562 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
11563 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
11564 and C - X == X also strip nops from +/-/p+ operand.
11565 When optimizing -X == C, fold C to arg0's type.
11566
de888d90
JJ
11567 PR debug/47946
11568 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
11569 emit it as add_AT_int instead of add_AT_unsigned.
11570
115712011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
11572
11573 * unwind-dw2.c: Include sys/sdt.h if it exists.
11574 (_Unwind_DebugHook): Use STAP_PROBE2.
11575 * config.in, configure: Rebuild.
11576 * configure.ac: Check for sys/sdt.h.
11577
d34abfd2
UB
115782011-03-14 Uros Bizjak <ubizjak@gmail.com>
11579
11580 * config/i386/i386.md (ROUND_FLOOR): New constant.
11581 (ROUND_CEIL): Ditto.
11582 (ROUND_TRUNC): Ditto.
11583 (ROUND_MXCSR): Ditto.
11584 (ROUND_NO_EXC): Ditto.
11585 (rint<mode>2): Use new defines instead of numerical constants.
11586 (floor<mode>2): Ditto.
11587 (ceil<mode>2): Ditto.
11588 (btrunc<mode>2): Ditto.
11589 * config/i386/i386-builtin-types.def: Define ROUND function type
11590 aliases.
11591 * config/i386/i386.c (enum ix86_builtins): Add
11592 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
11593 (struct builtin_description): Add
11594 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
11595 (ix86_expand_sse_round): New static function.
11596 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
11597 function types.
11598 (ix86_builtin_vectorized_function): Handle
11599 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
11600
87f9e23d
TT
116012011-03-14 Tom Tromey <tromey@redhat.com>
11602
11603 * c-parser.c (c_parser_asm_string_literal): Clear
11604 warn_overlength_strings.
11605
b3ab9ea2
TT
116062011-03-14 Tom Tromey <tromey@redhat.com>
11607
11608 * c-parser.c (disable_extension_diagnostics): Save
11609 warn_overlength_strings.
11610 (restore_extension_diagnostics): Restore warn_overlength_strings.
11611
6bd73dd8
JJ
116122011-03-14 Jakub Jelinek <jakub@redhat.com>
11613
11614 * BASE-VER: Change to 4.7.0.
11615
7f4d6e1b
RG
116162011-03-14 Richard Guenther <rguenther@suse.de>
11617
11618 PR middle-end/48098
11619 * tree.c (build_vector_from_val): Adjust assert to requirements
11620 and reality.
11621
c6104ef1
JJ
116222011-03-14 Jakub Jelinek <jakub@redhat.com>
11623
11624 PR bootstrap/48102
d34abfd2 11625 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 11626
dfa95e19
AT
116272011-03-14 Andreas Tobler <andreast@fgznet.ch>
11628
f60c2554 11629 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
11630 terms of target_flags_explicit. Adjust copyright year.
11631
11632 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
11633 * config/rs6000/t-freebsd: New file. Add override for
11634 LIB2FUNCS_EXTRA.
11635
bb322018
CD
116362011-03-13 Chris Demetriou <cgd@google.com>
11637
11638 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
11639 (-fno-diagnostics-show-option): this, to reflect current default.
11640 (-Werror=): Update text about -fno-diagnostics-show-option.
11641
12b1c80b
PB
116422011-03-12 Peter Bergner <bergner@vnet.ibm.com>
11643
11644 PR target/48053
11645 * config/rs6000/predicates.md (easy_vector_constant_add_self,
11646 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
11647 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
11648 mode is not V2DImode or V2DFmode.
11649 (vspltis_constant): Do not handle V2DImode and V2DFmode.
11650 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
11651 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
11652 registers to 0.
11653 (movdi_internal64): Likewise.
11654
57d598f7
SP
116552011-03-12 Sebastian Pop <sebastian.pop@amd.com>
11656
11657 PR tree-optimization/47127
11658 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
11659 parameter.
11660 (set_cloog_options): Same.
11661 (scop_to_clast): Same.
11662 (print_clast_stmt): Do not call cloog_state_malloc and
11663 cloog_state_free.
11664 (print_generated_program): Same.
11665 (gloog): Same.
11666 * graphite-clast-to-gimple.h (cloog_state): Declared.
11667 (scop_to_clast): Adjust declaration.
11668 * graphite.c (cloog_state): Defined here.
11669 (graphite_initialize): Call cloog_state_malloc.
11670 (graphite_finalize): Call cloog_state_free.
11671
f231b5ff
JM
116722011-03-11 Jason Merrill <jason@redhat.com>
11673
11674 * attribs.c (lookup_attribute_spec): Take const_tree.
11675 * tree.h: Adjust.
11676
6a4e2bd5
JM
116772011-03-11 Joseph Myers <joseph@codesourcery.com>
11678
11679 * config/sparc/sparc.c (sparc_option_override): Use
11680 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
11681
a758fd67
RG
116822011-03-11 Richard Guenther <rguenther@suse.de>
11683
11684 PR tree-optimization/48067
11685 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
11686 multiplication result will be only used once on the target
11687 stmt.
11688
03dfda54
RG
116892011-03-11 Richard Guenther <rguenther@suse.de>
11690
11691 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
11692
5f11a50a
RG
116932011-03-11 Richard Guenther <rguenther@suse.de>
11694
11695 PR lto/48073
11696 * tree.c (find_decls_types_r): Do not walk types only reachable
11697 from IDENTIFIER_NODEs.
11698
4074f163
JJ
116992011-03-11 Jakub Jelinek <jakub@redhat.com>
11700
11701 PR middle-end/48044
11702 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
11703 all vnode->force_output nodes as needed.
11704
30f7cdcd
JM
117052011-03-11 Jason Merrill <jason@redhat.com>
11706
11707 PR c++/48069
11708 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
11709 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
11710
62ecfeb8
MJ
117112011-03-11 Martin Jambor <mjambor@suse.cz>
11712
11713 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
11714 cgraph_node.
11715
e89e03ab
JJ
117162011-03-11 Jakub Jelinek <jakub@redhat.com>
11717
11718 PR tree-optimization/48063
11719 * ipa-inline.c (cgraph_decide_inlining): Don't try to
11720 inline functions called once if !tree_can_inline_p (node->callers).
11721
efbe978b 117222011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 11723
efbe978b
EB
11724 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
11725 extra_objs.
9d6193a7
CL
11726 * config/score/score3.c: Delete.
11727 * config/score/score3.h: Delete.
11728 * config/score/mul-div.S: Delete.
11729 * config/score/sfp-machine.h: Add new file.
11730 * config/score/constraints.md: Add new file.
11731 * config/score/t-score-softfp: Add new file.
efbe978b 11732 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
11733 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
11734 (score7_extra_constraint): Delete.
efbe978b 11735 (score7_option_override): Remove unused code.
9d6193a7
CL
11736 * config/score/score.c: Remove score3 and score5 define and code.
11737 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 11738 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
11739 * config/score/score.opt: Remove score3 and score5 options.
11740
5de27cca
JDA
117412011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11742
11743 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
11744 when _HPUX_SOURCE is defined.
11745 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
11746
18d92053
JM
117472011-03-10 Jason Merrill <jason@redhat.com>
11748
11749 PR c++/48029
11750 * stor-layout.c (layout_type): Don't set structural equality
11751 on arrays of incomplete type.
11752 * tree.c (type_hash_eq): Handle comparing them properly.
11753
67a2f76d
JJ
117542011-03-10 Jakub Jelinek <jakub@redhat.com>
11755
11756 PR debug/48043
18d92053 11757 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
11758 result mode matches original rtl mode.
11759
d845b2f9
NC
117602011-03-10 Nick Clifton <nickc@redhat.com>
11761
11762 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 11763 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 11764
db7ec035
JJ
117652011-03-09 Jakub Jelinek <jakub@redhat.com>
11766
11767 PR rtl-optimization/47866
11768 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
11769 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
11770 if target wasn't scalar.
11771 * function.c (assign_stack_temp_for_type): Assert that neither
11772 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
11773 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
11774 macro.
11775 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
11776
5d304e47
AK
117772011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11778
11779 * config/s390/s390-protos.h (s390_label_align): New prototype.
11780 * config/s390/s390.c (s390_label_align): New function.
11781 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
11782
93b826f0
MM
117832011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
11784
11785 PR target/47755
11786 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
11787 V2DI/V2DF constants. Only all 0's or all 1's are easy.
11788 (output_vec_const_move): Ditto.
11789
ef78aed6
AS
117902011-03-08 Anatoly Sokolov <aesok@post.ru>
11791
11792 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
11793 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
11794 * config/mips/mips.c (mips_preferred_reload_class): Make static.
11795 Change 'rclass' argument and result type to reg_class_t.
11796 (TARGET_PREFERRED_RELOAD_CLASS): Define.
11797
5f892aa0
GJL
117982011-03-08 Georg-Johann Lay <avr@gjlay.de>
11799
9e43ad68
UB
11800 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11801 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
11802 (TARGET_MEMORY_MOVE_COST): Define.
11803 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 11804
32bd2409
JJ
118052011-03-08 Jakub Jelinek <jakub@redhat.com>
11806
530a4800
JJ
11807 PR debug/47881
11808 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
11809 removed anything.
11810
32bd2409
JJ
11811 PR tree-optimization/48022
11812 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
11813 for EQ/NE_EXPR.
11814
c7148991
JJ
118152011-03-07 Jakub Jelinek <jakub@redhat.com>
11816
11817 PR debug/47991
11818 * var-tracking.c (find_use_val): Return NULL for
11819 cui->sets && cui->store_p BLKmode MEMs.
11820
43070a6e
AS
118212011-03-07 Anatoly Sokolov <aesok@post.ru>
11822
11823 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
11824 Remove.
11825 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
11826 xstormy16_print_operand_address): Remove.
11827 * config/stormy16/stormy16.c (xstormy16_print_operand,
11828 xstormy16_print_operand_address): Make static.
11829 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11830
efbe978b 118312011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
11832
11833 PR target/47862
11834 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11835 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
11836 before definition.
11837
cec8ac0b
ZD
118382011-03-07 Zdenek Dvorak <ook@ucw.cz>
11839
11840 PR bootstrap/48000
11841 * cfgloopmanip.c (fix_bb_placements): Return immediately
11842 if FROM is BASE_LOOP's header.
11843
59527282
PW
118442011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
11845
11846 * gimplify.c (gimplify_function_tree): Fix building calls
11847 to __builtin_return_address.
11848
617718f7
AM
118492011-03-07 Alan Modra <amodra@gmail.com>
11850
11851 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
11852 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
11853 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
11854 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
11855 return_mode args.
11856 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
11857 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
11858 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
11859 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
11860 * config/rs6000/rs6000.c
11861 (rs6000_elf_end_indicate_exec_stack): Rename to..
11862 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
11863 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
11864 (rs6000_file_start): ..here.
11865 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
11866 file scope variables.
11867 (call_ABI_of_interest): New function.
11868 (init_cumulative_args): Set above vars when function return value
11869 is a float, vector, or small struct.
11870 (rs6000_function_arg_advance_1): Likewise for function args.
11871 (rs6000_va_start): Set rs6000_passes_float if variable arg function
11872 references float args.
11873
38528d50
MX
118742011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
11875
11876 * doc/cfg.texi: Remove "See" before @ref.
11877 * doc/invoke.texi: Likewise.
11878
f42cf4f4
JM
118792011-03-05 Jason Merrill <jason@redhat.com>
11880
11881 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
11882
804a304d
AG
118832011-03-05 Anthony Green <green@moxielogic.com>
11884
11885 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
11886
634ee309
ZD
118872011-03-05 Zdenek Dvorak <ook@ucw.cz>
11888
11889 PR rtl-optimization/47899
11890 * cfgloopmanip.c (fix_bb_placements): Fix first argument
11891 to flow_loop_nested_p when moving the loop upward.
11892
6fe471c8
RE
118932011-03-05 Richard Earnshaw <rearnsha@arm.com>
11894
11895 PR target/47719
11896 * arm.md (movhi_insn_arch4): Accept any immediate constant.
11897
cc58ceee
JJ
118982011-03-05 Jakub Jelinek <jakub@redhat.com>
11899
11900 PR tree-optimization/47967
11901 * ipa-cp.c (build_const_val): Return NULL instead of creating
11902 VIEW_CONVERT_EXPR for mismatching sizes.
11903 (ipcp_create_replace_map): Return NULL if build_const_val failed.
11904 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
11905 give up on versioning.
11906
ea868305
AM
119072011-03-05 Alan Modra <amodra@gmail.com>
11908
11909 PR target/47986
11910 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11911 full cmodel medium/large lo_sum + high addresses.
11912
bc6ce334
AK
119132011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11914
11915 * config/s390/s390.c (s390_decompose_address): Reject non-literal
11916 pool references in UNSPEC_LTREL_OFFSET.
11917
87e7b310
JH
119182011-03-04 Jan Hubicka <jh@suse.cz>
11919
11920 PR lto/47497
11921 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
11922 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
11923 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
11924 Add node pointers.
87e7b310
JH
11925 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
11926 cgraph_add_thunk): Add node pointers.
11927 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
11928 associated to right node.
11929 (input_node): Update use of cgraph_same_body_alias
11930 and cgraph_add_thunk.
11931
d9c64246
CF
119322011-03-04 Changpeng Fang <changpeng.fang@amd.com>
11933
11934 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
11935 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
11936 modes when the flag -mprefer-avx128 is on.
d9c64246 11937
08707076
RS
119382011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
11939
11940 * dwarf2out.c (compare_loc_operands): Fix address handling.
11941
52517c81
AM
119422011-03-04 Alan Modra <amodra@gmail.com>
11943
11944 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
11945
b147c5b9
RG
119462011-03-04 Richard Guenther <rguenther@suse.de>
11947
11948 PR middle-end/47968
11949 * expmed.c (extract_bit_field_1): Prefer vector modes that
11950 vec_extract patterns can handle.
11951
8750672f
RG
119522011-03-04 Richard Guenther <rguenther@suse.de>
11953
11954 PR middle-end/47975
11955 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
11956
9eac0f2a
RH
119572011-03-04 Richard Henderson <rth@redhat.com>
11958
11959 * explow.c (emit_stack_save): Remove 'after' parameter.
11960 (emit_stack_restore): Likewise.
11961 * expr.h: Update to match.
11962 * builtins.c, calls.c, stmt.c: Likewise.
11963 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
11964 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
11965 * function.c (expand_function_end): Insert the emit_stack_save
11966 sequence before parm_birth_insn instead of after.
11967
dfee1406
UB
119682011-03-03 Uros Bizjak <ubizjak@gmail.com>
11969
11970 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
11971 (ssse3_pmaddubsw128): Ditto.
11972 (ssse3_pmaddubsw): Ditto.
11973
f1d4c3de
SE
119742011-03-03 Steve Ellcey <sje@cup.hp.com>
11975
11976 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
11977
71f3a3f5
JJ
119782011-03-03 Jakub Jelinek <jakub@redhat.com>
11979
423ed416
JJ
11980 PR c/47963
11981 * gimplify.c (omp_add_variable): Only call omp_notice_variable
11982 on TYPE_SIZE_UNIT if it is a DECL.
11983
71f3a3f5
JJ
11984 PR debug/47283
11985 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
11986 first operand is not is_gimple_mem_ref_addr, try to fold it.
11987 If the operand still isn't is_gimple_mem_ref_addr, clear
11988 MEM_EXPR on op0.
11989
4b1a5c0d
RG
119902011-03-03 Richard Guenther <rguenther@suse.de>
11991
11992 PR middle-end/47283
11993 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
11994 match comment.
11995 (refs_may_alias_p_1): For release branches return true if
11996 we are confused by our input.
11997
b46616fd
AK
119982011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11999
12000 * config/s390/s390.c (s390_function_value): Rename to ...
12001 (s390_function_and_libcall_value): ... this.
12002 (s390_function_value): New function.
12003 (s390_libcall_value): New function.
dfee1406 12004 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
12005 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
12006 target macro definitions.
12007 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
12008
46d8fabb
JM
120092011-03-02 Joseph Myers <joseph@codesourcery.com>
12010
12011 * config/i386/freebsd64.h (CC1_SPEC): Define.
12012 * config/i386/linux64.h (CC1_SPEC): Define.
12013 * config/i386/x86-64.h (CC1_SPEC): Don't define.
12014
6b1ce545
AS
120152011-03-02 Anatoly Sokolov <aesok@post.ru>
12016
12017 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12018 Remove.
12019 * config/stormy16/stormy16.c: Include reload.h.
12020 (xstormy16_memory_move_cost): New function.
12021 (TARGET_MEMORY_MOVE_COST): Define.
12022
34161e98
RS
120232011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
12024
12025 PR rtl-optimization/47925
12026 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
12027 with side effects. Remove the more-specific check for volatile asms.
12028
f60a97cf
AM
120292011-03-02 Alan Modra <amodra@gmail.com>
12030
12031 PR target/47935
12032 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
12033 toc relative addresses for valid offsets.
12034
f2ca11ca
RG
120352011-03-01 Richard Guenther <rguenther@suse.de>
12036
12037 PR tree-optimization/47890
12038 * tree-vect-loop.c (get_initial_def_for_induction): Set
12039 related stmt properly.
12040
7a00d9ea
RG
120412011-03-01 Richard Guenther <rguenther@suse.de>
12042
12043 PR lto/47924
12044 * lto-streamer.c (lto_record_common_node): Also register
12045 the canonical type.
12046
06c7edcc
RG
120472011-03-01 Richard Guenther <rguenther@suse.de>
12048
12049 PR lto/46911
12050 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12051 Do not stream DECL_ABSTRACT_ORIGIN.
12052 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12053 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12054 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12055 Do not stream DECL_ABSTRACT_ORIGIN.
12056 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
12057 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
12058
998871e9
AS
120592011-02-28 Anatoly Sokolov <aesok@post.ru>
12060
12061 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
12062 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 12063 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
12064 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
12065 Add 'outgoing' argument.
12066 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
12067 function.
12068 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12069 TARGET_FUNCTION_VALUE_REGNO_P): Define.
12070
94369251
KT
120712011-02-28 Kai Tietz <kai.tietz@onevision.com>
12072
12073 PR debug/28047
12074 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
12075 (lookup_filename): Likewise.
b2e2ea67 12076 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 12077
80a832cd
JJ
120782011-02-28 Bernd Schmidt <bernds@codesourcery.com>
12079 Jakub Jelinek <jakub@redhat.com>
12080
12081 PR middle-end/47893
12082 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
12083 (assign_stack_local_1): Change last argument type to int.
12084 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
12085 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 12086 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
12087 (assign_stack_local): Adjust caller.
12088 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
12089 of assign_stack_local, pass 0 as last argument.
12090 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
12091 callers.
12092
1b500976
JJ
120932011-02-28 Jakub Jelinek <jakub@redhat.com>
12094
f61c6f34
JJ
12095 PR debug/47283
12096 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
12097 Use target address_mode and pointer_mode hooks instead of hardcoded
12098 Pmode and ptr_mode. Handle some simple cases of extending if
12099 POINTERS_EXTEND_UNSIGNED < 0.
12100 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
12101 Call convert_debug_memory_address.
12102 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
12103 convert_debug_memory_address.
12104
1b500976
JJ
12105 PR middle-end/46790
12106 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
12107 * configure: Regenerated.
12108 * config.in: Regenerated.
12109 * varasm.c (default_function_section): Return NULL
b2e2ea67 12110 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 12111
2f2935b6
MJ
121122011-02-28 Martin Jambor <mjambor@suse.cz>
12113
12114 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
12115 the description to match the printed values.
12116
474086eb
RG
121172011-02-28 Richard Guenther <rguenther@suse.de>
12118
12119 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
12120 of the copied scope tree.
12121
15bf6f3a
RW
121222011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12123
12124 * doc/extend.texi (Function Attributes): Avoid deeply (and
12125 wrongly) nested tables.
12126
f6b439c9
JJ
121272011-02-27 Jakub Jelinek <jakub@redhat.com>
12128
12129 PR middle-end/47903
12130 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
12131 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
12132 r isn't op0 nor op1.
12133
1d8ca2c7
GJL
121342011-02-23 Georg-Johann Lay <avr@gjlay.de>
12135
12136 * config/avr/avr.md: Remove magic comment for emacs.
12137
593fca4b
GJL
121382011-02-23 Georg-Johann Lay <avr@gjlay.de>
12139
12140 PR target/45261
12141 * config/avr/avr.c (avr_option_override): Use error on bad options.
12142 (avr_help): New function.
12143 (TARGET_HELP): Define.
12144
6609216e
GJL
121452011-02-22 Georg-Johann Lay <avr@gjlay.de>
12146
12147 PR target/42240
12148 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
12149 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
12150
03d458af
GP
121512011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
12152
12153 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
12154 (ARM Options): Ditto.
12155 (i386 and x86-64 Options): Ditto.
12156 (RX Options): Ditto.
12157 (SPARC Options): Ditto.
12158
1c379b78
TC
121592011-02-26 Tijl Coosemans <tijl@coosemans.org>
12160
12161 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
12162 FreeBSD 6 and later. Generally use cpu generic.
12163
d5ed058c 121642011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 12165
d5ed058c
GP
12166 * doc/cpp.texi: Update copyright years.
12167
509d65dd 121682011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 12169
509d65dd 12170 PR target/46898
308d39cd
SB
12171 * config/lm32/lm32.md (ashrsi3): Added needed variable.
12172
509d65dd 121732011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 12174
509d65dd 12175 PR target/46898
308d39cd
SB
12176 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
12177 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
12178 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
12179 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 12180 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
12181 (gen_int_relational): Move declarations to start of function.
12182
822ba6d7
EB
121832011-02-25 Eric Botcazou <ebotcazou@adacore.com>
12184
12185 PR tree-optimization/45470
12186 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12187 can throw internally only.
12188 * tree-vect-stmts.c (vectorizable_call): Likewise.
12189
ef795fc2
AS
121902011-02-24 Anatoly Sokolov <aesok@post.ru>
12191
12192 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
12193 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12194 * config/stormy16/stormy16-protos.h
12195 (xstormy16_preferred_reload_class): Remove.
12196 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
12197 static. Change 'rclass' argument and return type to reg_class_t.
12198 (TARGET_PREFERRED_RELOAD_CLASS,
12199 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12200
1c3277ee
RG
122012011-02-24 Richard Guenther <rguenther@suse.de>
12202
12203 * lto-streamer-in.c (input_bb): Do not find referenced vars
12204 in debug statements.
12205
67e18edb
JM
122062011-02-23 Jason Merrill <jason@redhat.com>
12207
12208 * common.opt (fabi-version): Document v5 and v6.
12209
b14fad9d
RG
122102011-02-23 Richard Guenther <rguenther@suse.de>
12211
12212 PR tree-optimization/47849
12213 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
12214
7fcf46f5
JZ
122152011-02-23 Jie Zhang <jie@codesourcery.com>
12216
12217 * opts-common.c (decode_cmdline_option): Print empty string
12218 argument as "" in decoded->orig_option_with_args_text.
12219 * gcc.c (execute): Print empty string argument as ""
12220 in the verbose output.
12221 (do_spec_1): Keep empty string argument.
12222
f85b70fd
NF
122232011-02-23 Nathan Froyd <froydnj@codesourcery.com>
12224
12225 * config.gcc: Declare score-* and crx-* obsolete.
12226
b152a615
JZ
122272011-02-23 Jie Zhang <jie@codesourcery.com>
12228
12229 PR rtl-optimization/47763
12230 * web.c (web_main): Ignore naked clobber when replacing register.
12231
bb6e77bc
AS
122322011-02-22 Anatoly Sokolov <aesok@post.ru>
12233
12234 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12235 Remove.
12236
68bf6491
SP
122372011-02-22 Sebastian Pop <sebastian.pop@amd.com>
12238
12239 PR doc/47848
12240 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
12241
88ee1fc7
MS
122422011-02-22 Mike Stump <mikestump@comcast.net>
12243
12244 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
12245 assembler.
12246 * configure: Regenerate.
12247
6042d1dd
CLT
122482011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
12249
12250 PR rtl-optimization/46002
12251 * ira-color.c (update_copy_costs): Change class intersection
12252 test to reg_class_contents[] test of 'hard_regno'.
12253
7de97f9e
JM
122542011-02-21 Joseph Myers <joseph@codesourcery.com>
12255
12256 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
12257 than Driver option.
12258 * config/hpux11.opt (mt): Likewise.
12259 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
12260 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
12261 * config/vax/elf.opt (mno-asm-pic): Likewise.
12262 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
12263
d1d46f9f
MS
122642011-02-21 Mike Stump <mikestump@comcast.net>
12265
12266 PR target/47822
12267 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
12268 tree so we can get save the type.
12269 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
12270 for CFString instead of trying to use past the end of the builtins.
12271 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
12272 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
12273 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
12274 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
12275 Rename to darwin_builtin_cfstring.
12276 (darwin_init_cfstring_builtins): Return the built type.
12277
23e0d930
UB
122782011-02-21 Uros Bizjak <ubizjak@gmail.com>
12279
12280 PR target/47840
12281 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
12282 (_mm256_insert_epi64): Use _mm_insert_epi64.
12283
192997cf
AS
122842011-02-21 Anatoly Sokolov <aesok@post.ru>
12285
12286 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12287 * config/stormy16/stormy16-protos.h
12288 (xstormy16_mode_dependent_address_p): Remove.
12289 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
12290 Make static. Change return type to bool. Change argument type to
12291 const_rtx. Remove dead code.
12292 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12293
e292d003
RG
122942011-02-21 Richard Guenther <rguenther@suse.de>
12295
12296 PR lto/47820
12297 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12298 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12299 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
12300 TUs context.
23e0d930 12301 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
12302 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
12303
77f846e9
RG
123042011-02-20 Richard Guenther <rguenther@suse.de>
12305
12306 PR lto/47822
12307 * tree.c (free_lang_data_in_decl): Clean builtins from
12308 the TU decl BLOCK_VARS.
23e0d930 12309
b2cddfc8
AO
123102011-02-19 Alexandre Oliva <aoliva@redhat.com>
12311
12312 PR debug/47620
12313 PR debug/47630
12314 * haifa-sched.c (fix_tick_ready): Skip tick computation
12315 for debug insns.
12316
becf4c11
RG
123172011-02-19 Richard Guenther <rguenther@suse.de>
12318
12319 PR lto/47647
12320 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
12321 Remove lazy BLOCK_VARS streaming.
12322 (lto_input_ts_block_tree_pointers): Likewise.
12323 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
12324
27f98305
JM
123252011-02-19 Joseph Myers <joseph@codesourcery.com>
12326
12327 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
12328
064bf3f4
JM
123292011-02-19 Joseph Myers <joseph@codesourcery.com>
12330
12331 * config/i386/biarch32.h, config/i386/mach.h,
12332 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
12333
9215ddc3
JJ
123342011-02-19 Jakub Jelinek <jakub@redhat.com>
12335
12336 PR target/47800
12337 * config/i386/i386.md (peephole2 for shift and plus): Use
12338 operands[1] original mode in the first insn.
12339
8b021004
MS
123402011-02-18 Mike Stump <mikestump@comcast.net>
12341
65ded153 12342 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 12343
f84ae14c
JH
123442011-02-18 Jan Hubicka <jh@suse.cz>
12345
12346 PR middle-end/47788
65ded153
EB
12347 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
12348 to zero when the function is not inlinable at all.
f84ae14c 12349
eddabc80
JDA
123502011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12351
12352 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
12353 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12354 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
12355 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
12356 * config/pa/t-pa64: Likewise.
12357 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
12358
ca3da783
JJ
123592011-02-18 Jakub Jelinek <jakub@redhat.com>
12360
12361 PR driver/47787
12362 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
12363
430aa868
JDA
123642011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12365
12366 PR target/47792
12367 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
12368
4bf7ff7e
AS
123692011-02-18 Anatoly Sokolov <aesok@post.ru>
12370
12371 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12372 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
12373 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
12374 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12375 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
12376 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
12377 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
12378 m32r_load_postinc_p, m32r_store_preinc_predec_p,
12379 m32r_legitimate_address_p): New functions.
12380 * config/m32r/constraints.md (constraint "S"): Don't use
12381 STORE_PREINC_PREDEC_P.
12382 (constraint "U"): Don't use LOAD_POSTINC_P.
12383
7efcf910
CLT
123842011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
12385
12386 PR rtl-optimization/46178
12387 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
12388 compute ira_hard_regno_cover_class[].
12389
237d6259
RG
123902011-02-18 Richard Guenther <rguenther@suse.de>
12391
12392 PR lto/47798
12393 * lto-streamer.h (lto_global_var_decls): Declare.
12394 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
12395 statics for global var processing.
12396
12d80acc
RG
123972011-02-18 Richard Guenther <rguenther@suse.de>
12398
12399 PR tree-optimization/47737
12400 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
12401 edge dominance check.
12402
abfea58d
JJ
124032011-02-18 Jakub Jelinek <jakub@redhat.com>
12404
12405 PR debug/47780
12406 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
12407 avoid invalid rtx sharing.
12408
f73c8882
GP
124092011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
12410
12411 * doc/cpp.texi (Obsolete Features): Add background on the
12412 origin of assertions.
12413
d764a8e6
IS
124142011-02-17 Iain Sandoe <iains@gcc.gnu.org>
12415
12416 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 12417 objc_abi == 2.
d764a8e6
IS
12418 * config/darwin.c (output_objc_section_asm_op): Added support for
12419 ABI v1 and v2.
12420 (is_objc_metadata): New.
12421 (darwin_objc2_section): New.
12422 (darwin_objc1_section): New.
12423 (machopic_select_section): Added support for ABI v1 and v2.
12424 (darwin_emit_objc_zeroed): New.
12425 (darwin_output_aligned_bss): Detect objc metadata and treat it
12426 appropriately.
12427 (darwin_asm_output_aligned_decl_common): Same.
12428 (darwin_asm_output_aligned_decl_local): Same.
12429 * config/darwin-sections.def: Updated for ABI v1 and v2.
12430 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
12431 compiling Objective-C code for the NeXT runtime, default to using
12432 ABI version 0 for 32-bit, and version 2 for 64-bit.
12433
0a8134ca
JM
124342011-02-17 Joseph Myers <joseph@codesourcery.com>
12435
12436 * common.opt (optimize_fast): New Variable.
12437 * opts.c (default_options_optimization): Use opts->x_optimize_fast
12438 instead of local variable ofast.
12439
0a256240
NP
124402011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
12441
12442 * doc/invoke.texi (fobjc-abi-version): Documented.
12443 (fobjc-nilcheck): Documented.
12444 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
12445 version.
12446
fa381cb2
JM
124472011-02-17 Joseph Myers <joseph@codesourcery.com>
12448
12449 PR driver/47390
12450 * common.opt (export-dynamic): New Driver option.
12451 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
12452
5437eaa6
JM
124532011-02-17 Joseph Myers <joseph@codesourcery.com>
12454
12455 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
12456
bb7e6d55
AO
124572011-02-17 Alexandre Oliva <aoliva@redhat.com>
12458 Jan Hubicka <jh@suse.cz>
12459
12460 PR debug/47106
12461 PR debug/47402
12462 * cfgexpand.c (account_used_vars_for_block): Remove.
12463 (estimated_stack_frame_size): Use referenced vars.
12464 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
12465 that were referenced in the original function. Test src_fn
12466 rather than cfun. Drop redundant get_var_ann.
12467 (setup_one_parameter): Drop redundant get_var_ann.
12468 (declare_return_variable): Likewise.
12469 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
12470 (copy_arguments_for_versioning): Drop redundant get_var_ann.
12471 * ipa-inline.c (compute_inline_parameters): Do not compute
12472 disregard_inline_limits here.
bb7e6d55
AO
12473 (compute_inlinable_for_current, pass_inlinable): New.
12474 (pass_inline_parameters): Require PROP_referenced_vars.
12475 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 12476 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
12477 (cgraph_analyze_function): Set .disregard_inline_limits.
12478 * tree-sra.c (convert_callers): Compute inliner parameters
12479 only for functions already in SSA form.
12480
f181a8a7
JM
124812011-02-17 Joseph Myers <joseph@codesourcery.com>
12482
12483 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
12484 -mlittle-endian-data.
12485
c6869789
JM
124862011-02-17 Joseph Myers <joseph@codesourcery.com>
12487
12488 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
12489 -mno-fpu, not -fpu and -no-fpu.
12490 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
12491 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
12492
fbf4bfd3
UB
124932011-02-17 Uros Bizjak <ubizjak@gmail.com>
12494
12495 PR target/43653
12496 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
12497 input reload with PLUS RTX.
12498
70be5dc7
JM
124992011-02-16 Joseph Myers <joseph@codesourcery.com>
12500
12501 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
12502 of InverseVar(MDMX).
12503
30b1646e
JM
125042011-02-16 Joseph Myers <joseph@codesourcery.com>
12505
12506 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
12507 --m4-340.
12508
ab7b71e9
JM
125092011-02-16 Joseph Myers <joseph@codesourcery.com>
12510
12511 * config/mn10300/mn10300.opt (mno-crt0): New.
12512
466f3f08
JM
125132011-02-16 Joseph Myers <joseph@codesourcery.com>
12514
12515 * config/m68k/uclinux.opt (static-libc): New Driver option.
12516
8226cd7b
JM
125172011-02-16 Joseph Myers <joseph@codesourcery.com>
12518
12519 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
12520
45cab1d7
JM
125212011-02-16 Joseph Myers <joseph@codesourcery.com>
12522
12523 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
12524 %{muser-extend-enabled}.
12525
65aab64f
RG
125262011-02-16 Richard Guenther <rguenther@suse.de>
12527
12528 PR tree-optimization/47738
12529 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
12530 the TODO from tree_predictive_commoning.
12531
fc2fa4fb
JL
125322011-02-15 Jeff Law <law@redhat.com>
12533
12534 Revert
12535 2011-01-25 Jeff Law <law@redhat.com>
12536
12537 PR rtl-optimization/37273
12538 * ira-costs.c (scan_one_insn): Detect constants living in memory and
12539 handle them like argument loads from stack slots. Do not double
12540 count memory for memory constants and argument loads from stack slots.
12541
4e380b8e
L
125422011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12543
12544 PR middle-end/47725
12545 * combine.c (cant_combine_insn_p): Revert the last change.
12546
e3a69bb4
MM
125472011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
12548
12549 PR target/47755
12550 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
12551 mode for vector constants. Remove code that checks for TImode.
12552
de650422
AO
125532011-02-15 Alexandre Oliva <aoliva@redhat.com>
12554
12555 PR debug/47106
12556 PR debug/47402
12557 * cgraph.h (compute_inline_parameters): Return void.
12558 * ipa-inline.c (compute_inline_parameters): Adjust.
12559
30925d94
AO
125602011-02-15 Alexandre Oliva <aoliva@redhat.com>
12561
12562 PR debug/47106
12563 PR debug/47402
12564 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
12565 rather than decl.
12566 * cfgexpand.c (estimated_stack_frame_size): Likewise.
12567 * ipa-inline.c (compute_inline_parameters): Adjust.
12568
1b9a784a
AO
125692011-02-15 Alexandre Oliva <aoliva@redhat.com>
12570
12571 PR debug/47106
12572 PR debug/47402
12573 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
12574 Adjust all users. Pass FN to...
12575 * tree-flow-inline.h (first_referenced_var): ... this. Add
12576 fn argument.
12577 * ipa-struct-reorg.c: Adjust.
12578 * tree-dfa.c: Adjust.
12579 * tree-into-ssa.c: Adjust.
12580 * tree-sra.c: Adjust.
12581 * tree-ssa-alias.c: Adjust.
12582 * tree-ssa-live.c: Adjust.
12583 * tree-ssa.c: Adjust.
12584 * tree-ssanames.c: Adjust.
12585 * tree-tailcall.c: Adjust.
12586
27c6b086
AO
125872011-02-15 Alexandre Oliva <aoliva@redhat.com>
12588
12589 PR debug/47106
12590 PR debug/47402
12591 * tree-flow.h (referenced_var_lookup): Add fn parameter.
12592 Adjust all callers.
12593 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
12594 * tree-flow-inline.h: Adjust.
12595 * gimple-pretty-print.c: Adjust.
12596 * tree-into-ssa.c: Adjust.
12597 * tree-ssa.c: Adjust.
12598 * cfgexpand.c: Adjust.
12599
679e8183
NF
126002011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12601
fbf4bfd3
UB
12602 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
12603 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12604 (EXTRA_CONSTRAINT): Delete.
12605 * config/iq2000/constraints.md: New file.
12606 * config/iq2000/iq2000.md: Include it.
679e8183
NF
12607 (define_insn ""): Delete.
12608 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
12609 unsupported constraint letters from patterns.
12610 (call_value, call_value_internal1): Likewise.
12611 (call_value_multiple_internal1): Likewise.
12612
a45d420a
NC
126132011-02-15 Nick Clifton <nickc@redhat.com>
12614
12615 * config/mn10300/mn10300.c: Include tm-constrs.h.
12616 (struct liw_data): New data structure describing an LIW candidate
12617 instruction.
12618 (extract_bundle): Use struct liw_data. Allow small integer
12619 operands for some instructions.
12620 (check_liw_constraints): Use struct liw_data. Remove swapped
12621 parameter. Add comments describing the checks. Fix bug when
12622 assigning the source of liw1 to the source of liw2.
12623 (liw_candidate): Delete. Code moved into extract_bundle.
12624 (mn10300_bundle_liw): Use struct liw_data. Check constraints
12625 before swapping.
12626 * config/mn10300/predicates.md (liw_operand): New predicate.
12627 Allows registers and small integer constants.
12628 * config/mn10300/constraints.md (O): New constraint. Accetps
12629 integers in the range -8 to +7 inclusive.
12630 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
12631 for moving a small integer into a register. Give this alternative
12632 LIW attributes.
12633 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
12634 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
12635 using the J,K,L and M constraints,
12636 (liw): Remove SI mode on second operands to allow for HI and QI
12637 mode values.
12638 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
12639 instruction.
12640
8a73faf1
L
126412011-02-15 H.J. Lu <hongjiu.lu@intel.com>
12642
12643 PR middle-end/47725
12644 * combine.c (cant_combine_insn_p): Check zero/sign extended
12645 hard registers.
12646
48feba28
RG
126472011-02-15 Richard Guenther <rguenther@suse.de>
12648
12649 PR tree-optimization/47743
12650 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
12651 for a non-type-compatible VN lookup bail out.
12652
ad1c1eeb
NF
126532011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12654
12655 * config/fr30/constraints.md: New file.
12656 * config/fr30/fr30.md: Include it.
12657 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
12658 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12659 (EXTRA_CONSTRAINT): Delete.
12660
49ac143d
NF
126612011-02-15 Nathan Froyd <froydnj@codesourcery.com>
12662
12663 * config/frv/constraints.md: New file.
12664 * config/frv/predicates.md: Include it.
12665 * config/frv/frv.c (reg_class_from_letter): Delete.
12666 (frv_option_override): Don't initialize it.
12667 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
12668 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
12669 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
12670 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12671 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
12672 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12673 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
12674 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
12675 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
12676 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
12677 (REG_CLASS_FROM_CONSTRAINT): Delete.
12678
c95f9494
JJ
126792011-02-15 Jakub Jelinek <jakub@redhat.com>
12680
12681 PR middle-end/47581
12682 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
12683 if frame size is 0 in a leaf function.
12684
13aed611
RO
126852011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12686
12687 PR pch/14940
12688 * config/alpha/host-osf.c: New file.
12689 * config/alpha/x-osf: New file.
12690 * config.host (alpha*-dec-osf*): Use it.
12691
b09c3081
AS
126922011-02-14 Anatoly Sokolov <aesok@post.ru>
12693
12694 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12695 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
12696 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
12697 (rx_mode_dependent_address_p): ...this. Make static. Change argument
12698 type to const_rtx.
12699 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12700
d634083b
NF
127012011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12702
12703 * config/stormy16/constraints.md: New file.
12704 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
12705 Use satisfies_constraint_Q and satisfies_constraint_R.
12706 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
12707 Delete.
12708 (xstormy16_legitiamte_address_p): Declare.
12709 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
12710 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12711 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 12712 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
12713 Un-staticize.
12714 (xstormy16_extra_constraint_p): Delete.
12715
c7dd803e
EB
127162011-02-14 Eric Botcazou <ebotcazou@adacore.com>
12717
12718 PR tree-optimization/46494
12719 * loop-unroll.c (split_edge_and_insert): Adjust comment.
12720 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
12721 (pass_rtl_loop_done): Add TODO_verify_flow.
12722 * fwprop.c (pass_rtl_fwprop): Likewise.
12723 * modulo-sched.c (pass_sms): Likewise.
12724 * tree-ssa-dom.c (pass_dominator): Likewise.
12725 * tree-ssa-loop-ch.c (pass_ch): Likewise.
12726 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
12727 (pass_tree_loop_done): Likewise.
12728 * tree-ssa-pre.c (execute_pre): Likewise.
12729 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
12730 * tree-ssa-sink.c (pass_sink_code): Likewise.
12731 * tree-vrp.c (pass_vrp): Likewise.
12732
c6150df6
NF
127332011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12734
c7dd803e
EB
12735 * config/v850/constraints.md: New file.
12736 * config/v850/v850.md: Include it.
12737 * config/v850/predicates.md (reg_or_0_operand): Use
12738 satisfies_constraint_G.
12739 (special_symbolref_operand): Use satisfies_constraint_K.
12740 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
12741 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
12742 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
12743 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
12744 (EXTRA_CONSTRAINT): Delete.
12745 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
12746 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
12747 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 12748
30dd1ea3
AS
127492011-02-14 Anatoly Sokolov <aesok@post.ru>
12750
12751 PR target/47696
12752 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
12753 description.
12754
944f4bb3
NF
127552011-02-14 Nathan Froyd <froydnj@codesourcery.com>
12756
12757 * config/mcore/constraints.md: New file.
12758 * config/mcore/mcore.md: Include it.
12759 * config/mcore/mcore.c (reg_class_from_letter): Delete.
12760 * config/mcore/mcore.h (reg_class_from_letter): Delete.
12761 (REG_CLASS_FROM_LETTER): Delete.
12762 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
12763 insn_const_int_ok_for_constraint.
12764 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
12765 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
12766 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12767 (EXTRA_CONSTRAINT): Delete.
12768
ad56a54c
RO
127692011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12770
12771 PR ada/41929
12772 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
12773 (IS_SIGHANDLER): Define.
12774 (sparc64_is_sighandler): New function, split off from
12775 sparc64_fallback_frame_state.
12776 (sparc_is_sighandler): New function, split off from
12777 sparc_fallback_frame_state.
12778 (sparc64_fallback_frame_state): Merge with ...
12779 (sparc_fallback_frame_state): ... this into ...
12780 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
12781 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
12782 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
12783 stack instead of hardcoded offsets.
ad56a54c 12784
fbf4bfd3 127852011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
12786
12787 PR target/45808
12788 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
12789
029c8f3e
RW
127902011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12791
12792 * configure: Regenerate.
12793
a016dc83
JM
127942011-02-12 Joseph Myers <joseph@codesourcery.com>
12795
12796 PR driver/45731
12797 * gcc.c (asm_options): Correct spec matching --target-help.
12798
8957a0ec
MJ
127992011-02-12 Martin Jambor <mjambor@suse.cz>
12800
12801 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
12802 to gimple call error.
12803
6ef828bc
MS
128042011-02-12 Mike Stump <mikestump@comcast.net>
12805
12806 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
12807 comments in backslash regions.
12808
a4015be5
MS
128092011-02-12 Mike Stump <mikestump@comcast.net>
12810 Jakub Jelinek <jakub@redhat.com>
12811 Iain Sandoe <iains@gcc.gnu.org>
12812
12813 PR target/47324
12814 * dwarf2out.c (output_cfa_loc): When required, apply the
12815 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
12816 (output_loc_sequence): Likewise.
12817 (output_loc_operands_raw): Likewise.
12818 (output_loc_sequence_raw): Likewise.
12819 (output_cfa_loc): Likewise.
12820 (output_loc_list): Suppress register number adjustment when
12821 calling output_loc_sequence()
12822 (output_die): Likewise.
12823
5378dda2
AS
128242011-02-12 Anatoly Sokolov <aesok@post.ru>
12825
12826 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12827 Remove macros.
12828 * config/xtensa/xtensa.c (xtensa_register_move_cost,
12829 xtensa_memory_move_cost): New functions.
12830 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
12831
f3d533d3
AO
128322011-02-12 Alexandre Oliva <aoliva@redhat.com>
12833
12834 PR lto/47225
12835 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
12836 in the current directory.
12837 * configure: Rebuilt.
12838
9d53403c
IS
128392011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12840
12841 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 12842 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
12843 correct indents of the preceding block.
12844
a350a6c8
IS
128452011-02-12 Iain Sandoe <iains@gcc.gnu.org>
12846
12847 * gcc.c (driver_handle_option): Concatenate the argument to -F with
12848 the switch.
12849
bab79a40
JM
128502011-02-11 Joseph Myers <joseph@codesourcery.com>
12851
12852 * common.opt (nostartfiles): New Driver option.
12853
1bbc6693
XDL
128542011-02-11 Xinliang David Li <davidxl@google.com>
12855
12856 PR tree-optimization/47707
12857 * tree-chrec.c (convert_affine_scev): Keep type precision.
12858
1da7d8c0
EB
128592011-02-11 Eric Botcazou <ebotcazou@adacore.com>
12860
12861 PR tree-optimization/47420
12862 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
12863
128642011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
12865
12866 PR rtl-optimization/47614
12867 * rtl.h (check_for_inc_dec): Declare.
12868 * dse.c (check_for_inc_dec): Externalize...
12869 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
12870 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
12871
4df47bca
JM
128722011-02-11 Joseph Myers <joseph@codesourcery.com>
12873
12874 PR driver/47678
12875 * gcc.c (main): Do not compile inputs if there were errors in
12876 option handling.
12877 * opts-common.c (read_cmdline_option): Check for wrong language
12878 after other error checks.
12879
61502ca8
NF
128802011-02-11 Nathan Froyd <froydnj@codesourcery.com>
12881
12882 * cgraph.c: Fix comment typos.
12883 * cgraph.h: Likewise.
12884 * cgraphunit.c: Likewise.
12885 * ipa-cp.c: Likewise.
12886 * ipa-inline.c: Likewise.
12887 * ipa-prop.c: Likewise.
12888 * ipa-pure-const.c: Likewise.
12889 * ipa-ref.c: Likewise.
12890 * ipa-reference.c: Likewise.
12891
b63f974e
JJ
128922011-02-11 Jakub Jelinek <jakub@redhat.com>
12893
d50c5e0c
JJ
12894 PR debug/47684
12895 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 12896
6dd2a13c
RO
128972011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12898
12899 PR testsuite/47400
12900 * doc/sourcebuild.texi (Require Support): Document
12901 dg-require-ascii-locale.
12902
4a087ccf
MX
129032011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
12904
12905 * doc/lto.texi (Write summary): Fix missing parentheses.
12906
a4403164
DD
129072011-02-10 DJ Delorie <dj@redhat.com>
12908
12909 * config/m32c/m32c.c (m32c_option_override): Disable
12910 -fcombine-stack-adjustments until flag value tracking and compare
12911 optimization can be rewritten.
12912
4fac45bd
PB
129132011-02-10 Peter Bergner <bergner@vnet.ibm.com>
12914
12915 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
12916 PROCESSOR_POWER7.
12917 (PROCESSOR_DEFAULT64): Likewise.
12918
72602cd1
RH
129192011-02-10 Richard Henderson <rth@redhat.com>
12920
12921 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
12922 change from 2011-02-03.
12923 * config/rx/rx.c (flags_from_code): Likewise.
12924 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
12925 is valid, n/pz otherwise.
12926 (rx_select_cc_mode): Return CCmode if Y is not zero.
12927
ea57f573
RG
129282011-02-10 Richard Guenther <rguenther@suse.de>
12929
ea4c3e65 12930 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 12931
92b1d23b
RG
129322011-02-10 Richard Guenther <rguenther@suse.de>
12933
12934 PR tree-optimization/47677
12935 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
12936
525a2d06
JJ
129372011-02-10 Jakub Jelinek <jakub@redhat.com>
12938
12939 PR target/47665
12940 * combine.c (make_compound_operation): Only change shifts into
12941 multiplication for SCALAR_INT_MODE_P.
12942
06c969bd
JZ
129432011-02-10 Jie Zhang <jie@codesourcery.com>
12944
12945 PR testsuite/47622
12946 Revert
12947 2011-02-05 Jie Zhang <jie@codesourcery.com>
12948 PR debug/42631
12949 * web.c (entry_register): Don't clobber the number of the
12950 first uninitialized reference in used[].
12951
282ec48e
RG
129522011-02-09 Richard Guenther <rguenther@suse.de>
12953
12954 PR tree-optimization/47664
12955 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
12956 all edges again.
12957
df98c3e8
DE
129582011-02-09 David Edelsohn <dje.gcc@gmail.com>
12959
d0f21cd6
DE
12960 PR target/46481
12961 PR target/47032
df98c3e8
DE
12962 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
12963 PROCESSOR_POWER7.
12964 (PROCESSOR_DEFAULT64): Same.
12965 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
12966
67b6839f
RO
129672011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12968
12969 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
12970
4fd73214
MJ
129712011-02-09 Martin Jambor <mjambor@suse.cz>
12972
12973 PR middle-end/45505
12974 * tree-sra.c (struct access): New flags grp_scalar_read and
12975 grp_scalar_write. Changed description of assignment read and write
12976 flags.
12977 (dump_access): Dump new flags, reorder all of them.
12978 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
12979 to detect multiple scalar reads.
12980 (analyze_access_subtree): Use the new scalar read write flags instead
12981 of the old flags. Adjusted comments.
12982
91140cd3
DD
129832011-02-08 DJ Delorie <dj@redhat.com>
12984
12985 PR target/47548
12986 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
12987 patterns.
12988
4254bbfe
JM
129892011-02-08 Joseph Myers <joseph@codesourcery.com>
12990
12991 * config/m68k/uclinux.opt: New.
12992 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
12993
f1fda84e
JM
129942011-02-08 Joseph Myers <joseph@codesourcery.com>
12995
12996 * config/cris/elf.opt (sim): New Driver option.
12997
4933ae74
JM
129982011-02-08 Joseph Myers <joseph@codesourcery.com>
12999
13000 * config/xtensa/elf.opt: New.
13001 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
13002
4ad70280
JM
130032011-02-08 Joseph Myers <joseph@codesourcery.com>
13004
13005 * config/vax/elf.opt: New.
13006 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
13007
20893707
JM
130082011-02-08 Joseph Myers <joseph@codesourcery.com>
13009
13010 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
13011
b8e7038e
JM
130122011-02-08 Joseph Myers <joseph@codesourcery.com>
13013
13014 * config/gnu-user.opt: New.
13015 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
13016 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
13017 *-*-uclinux*): Use gnu-user.opt.
13018
e1c5225a
TS
130192011-02-08 Thomas Schwinge <thomas@schwinge.name>
13020
13021 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
13022 * config/i386/gnu.h (CPP_SPEC): Likewise.
13023
5e46b0c6
ILT
130242011-02-08 Ian Lance Taylor <iant@google.com>
13025
13026 * common.opt (fcx-limited-range): Add SetByCombined flag.
13027 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
13028 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
13029 (fassociative-math, freciprocal-math): Likewise.
13030 (funsafe-math-optimizations): Likewise.
13031 * opth-gen.awk: Handle SetByCombined.
13032 * optc-gen.awk: Likewise.
ea4c3e65 13033 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
13034 (set_unsafe_math_optimizations_flags): Likewise.
13035 * doc/options.texi (Option properties): Document SetByCombined.
13036
32243d46
JM
130372011-02-08 Joseph Myers <joseph@codesourcery.com>
13038
13039 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
13040 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
13041 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
13042 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
13043 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
13044
479c1fb3
SP
130452011-02-08 Sebastian Pop <sebastian.pop@amd.com>
13046
13047 PR tree-optimization/46834
13048 PR tree-optimization/46994
13049 PR tree-optimization/46995
13050 * graphite-sese-to-poly.c (used_outside_reduction): New.
13051 (detect_commutative_reduction): Call used_outside_reduction.
13052 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
13053 translate_scalar_reduction_to_array only when at least one
13054 loop-phi/close-phi tuple has been detected.
13055
3865a06f
RG
130562011-02-08 Richard Guenther <rguenther@suse.de>
13057
13058 PR middle-end/47639
13059 * tree-vect-generic.c (expand_vector_operations_1): Update
13060 stmts here ...
13061 (expand_vector_operations): ... not here. Cleanup EH info
13062 and the CFG if required.
13063
62902f3f
RG
130642011-02-08 Richard Guenther <rguenther@suse.de>
13065
13066 PR tree-optimization/47641
13067 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
13068 require type compatibility.
13069
0efb9d64
AK
130702011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13071
13072 * gimple-low.c (lower_function_body): Don't remove the location of
13073 the return statement here.
13074 (lower_gimple_return): Do it here instead but only if the return
13075 statement is actually used twice.
13076
034b8ae4
RG
130772011-02-08 Richard Guenther <rguenther@suse.de>
13078
13079 PR tree-optimization/47632
13080 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
13081 unused up_to_stmt parameter, return whether cfg-cleanup is
13082 necessary, remove EH info properly.
13083 (forward_propagate_into_gimple_cond): Adjust caller.
13084 (forward_propagate_into_cond): Likewise.
13085 (forward_propagate_comparison): Likewise.
13086 (tree_ssa_forward_propagate_single_use_vars): Make
13087 forward_propagate_comparison case similar to the two others.
13088
298362c8
NC
130892011-02-08 Nick Clifton <nickc@redhat.com>
13090
13091 * config/mn10300/mn10300.opt (mliw): New command line option.
13092 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
13093 (liw_bundling): New automaton.
13094 (liw): New attribute.
13095 (liw_op): New attribute.
13096 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
13097 (movsi_internal): Add LIW attributes.
13098 (andsi3): Likewise.
13099 (iorsi3): Likewise.
13100 (xorsi3): Likewise.
13101 (addsi3): Separate register and immediate alternatives.
13102 Add LIW attributes.
13103 (subsi3): Likewise.
13104 (cmpsi): Likewise.
13105 (aslsi3): Likewise.
13106 (lshrsi3): Likewise.
13107 (ashrsi3): Likewise.
13108 (liw): New pattern.
13109 * config/mn10300/mn10300.c (liw_op_names): New
13110 (mn10300_print_operand): Handle 'W' operand descriptor.
13111 (extract_bundle): New function.
13112 (check_liw_constraints): New function.
13113 (liw_candidate): New function.
13114 (mn10300_bundle_liw): New function.
13115 (mn10300_reorg): New function.
13116 (TARGET_MACHINE_DEPENDENT_REORG): Define.
13117 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
13118 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
13119 __LIW__ or __NO_LIW__.
13120 * doc/invoke.texi: Describe the -mliw command line option.
13121
90488014
JDA
131222011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13123
13124 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
13125 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
13126 pthread_mutex_unlock): Remove.
13127 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
13128 * config/pa/t-pa64: Likewise.
13129 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
13130 shared libc if not linking against libpthread.
13131 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
13132
689ff841
IS
131332011-02-07 Iain Sandoe <iains@gcc.gnu.org>
13134
13135 PR target/47558
13136 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
13137 on 10.6 and later to ensure that we always use the unwinder from
13138 the system. Only add -no_compact_unwind when tarteting darwin
13139 10.6 or later.
13140
821014aa
SE
131412011-02-07 Steve Ellcey <sje@cup.hp.com>
13142
13143 PR target/46997
13144 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
13145 (vec_interleave_lowv2sf): Ditto.
13146 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
13147 (vec_extract_oddv2sf): Ditto.
13148
41cf94fb
MS
131492011-02-07 Mike Stump <mikestump@comcast.net>
13150
62dea57d 13151 PR target/42333
41cf94fb
MS
13152 Add __ieee_divdc3 entry point.
13153 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
13154 entry point.
13155 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
13156 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
13157 * config/darwin.c (darwin_rename_builtins): Add.
13158 * config/darwin-protos.h (darwin_rename_builtins): Add.
13159
ee09a3dd
MM
131602011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
13161
13162 PR target/47636
13163 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
13164 for the condition.
13165
83296cd0
MS
131662011-02-07 Mike Stump <mikestump@comcast.net>
13167
ea4c3e65 13168 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 13169
0f4e946f
DC
131702011-02-07 Denis Chertykov <chertykov@gmail.com>
13171
13172 PR target/47534
13173 * config/avr/libgcc.S (exit): Move .endfunc
13174
1ec87690
RG
131752011-02-07 Richard Guenther <rguenther@suse.de>
13176
13177 PR tree-optimization/47615
13178 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
13179 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
13180 (run_scc_vn): Initialize it.
13181 (visit_reference_op_load): Use it.
13182 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
13183
b46ae6da
UW
131842011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13185
13186 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
13187 DImode trapping arithmetic libfuncs.
13188
c0aae19c
RG
131892011-02-07 Richard Guenther <rguenther@suse.de>
13190
13191 PR tree-optimization/47621
13192 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
13193 two duplicates ...
13194 (execute_update_addresses_taken): ... here. Make it more
13195 conservative in what we accept.
13196
295d926b
JM
131972011-02-06 Joseph Myers <joseph@codesourcery.com>
13198
13199 * config/sparc/freebsd.h (ASM_SPEC): Define.
13200 * config/sparc/vxworks.h (ASM_SPEC): Define.
13201
bdeb2471
JM
132022011-02-06 Joseph Myers <joseph@codesourcery.com>
13203
13204 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13205
d5d3781a
SB
132062011-02-06 Steven Bosscher <steven@gcc.gnu.org>
13207
13208 * doc/invoke.texi: Remove reference to compiler internals from
13209 user documentation.
13210
13211 * reg-notes.def: Remove REG_VALUE_PROFILE.
13212 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
13213
c42c09fc
JJ
132142011-02-05 Jakub Jelinek <jakub@redhat.com>
13215
13216 PR middle-end/47610
13217 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 13218 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 13219
beea2755
JZ
132202011-02-05 Jie Zhang <jie@codesourcery.com>
13221
13222 PR debug/42631
13223 * web.c (entry_register): Don't clobber the number of the
13224 first uninitialized reference in used[].
13225
a130584a
SP
132262011-02-04 Sebastian Pop <sebastian.pop@amd.com>
13227
13228 PR tree-optimization/46194
13229 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
13230 (build_classic_dist_vector_1): Do not represent classic distance
13231 vectors when the access functions are variating in different loops.
13232
962101ac
JM
132332011-02-04 Joseph Myers <joseph@codesourcery.com>
13234
13235 * config/mips/iris6.opt: New.
13236 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
13237
55eaaa5b
RH
132382011-02-04 Richard Henderson <rth@redhat.com>
13239 Steve Ellcey <sje@cup.hp.com>
13240
13241 PR target/46997
13242 * config/ia64/predicates.md (mux1_brcst_element): New.
13243 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
13244 * config/ia64/ia64.c (ia64_unpack_assemble): New.
13245 (ia64_unpack_sign): New.
13246 (ia64_expand_unpack): Rewrite using new routines.
13247 (ia64_expand_widen_sum): Ditto.
13248 (ia64_expand_dot_prod_v8qi): Ditto.
13249 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
13250 routines, add endian check.
13251 (pmpy2_even): Rename from pmpy2_r, add endian check.
13252 (pmpy2_odd): Rename from pmpy2_l, add endian check.
13253 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
13254 (vec_widen_smult_hi_v4hi): Ditto.
13255 (vec_widen_umult_lo_v4hi): Ditto.
13256 (vec_widen_umult_hi_v4hi): Ditto.
13257 (mulv2si3): Change endian checks.
13258 (sdot_prodv4hi): Rewrite with new calls.
13259 (udot_prodv4hi): New.
13260 (vec_pack_ssat_v4hi): Add endian check.
13261 (vec_pack_usat_v4hi): Ditto.
13262 (vec_pack_ssat_v2si): Ditto.
13263 (max1_even): Rename from max1_r, add endian check.
13264 (max1_odd): Rename from max1_l, add endian check.
13265 (*mux1_rev): Format change.
13266 (*mux1_mix): Ditto.
13267 (*mux1_shuf): Ditto.
13268 (*mux1_alt): Ditto.
13269 (*mux1_brcst_v8qi): Use new predicate.
13270 (vec_extract_evenv8qi): Remove endian check.
13271 (vec_extract_oddv8qi): Ditto.
13272 (vec_interleave_lowv4hi): Format change.
13273 (vec_interleave_highv4hi): Ditto.
13274 (mix2_even): Rename from mix2_r, add endian check.
13275 (mix2_odd): Rename from mux2_l, add endian check.
13276 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
13277 (vec_extract_evenodd_helper): Format change.
13278 (vec_extract_evenv4hi): Remove endian check.
13279 (vec_extract_oddv4hi): Remove endian check.
13280 (vec_interleave_lowv2si): Format change.
13281 (vec_interleave_highv2si): Format change.
13282 (vec_initv2si): Remove endian check.
13283 (vecinit_v2si): Add endian check.
13284 (reduc_splus_v2sf): Add endian check.
13285 (reduc_smax_v2sf): Ditto.
13286 (reduc_smin_v2sf): Ditto.
13287 (vec_initv2sf): Remove endian check.
13288 (fpack): Add endian check.
13289 (fswap): Add endian check.
13290 (vec_interleave_highv2sf): Add endian check.
13291 (vec_interleave_lowv2sf): Add endian check.
13292 (fmix_lr): Add endian check.
13293 (vec_setv2sf): Format change.
13294 (*vec_extractv2sf_0_be): Use shift to extract operand.
13295 (*vec_extractv2sf_1_be): New.
13296 (vec_pack_trunc_v4hi): Add endian check.
13297 (vec_pack_trunc_v2si): Format change.
13298
dcde5957
JJ
132992011-02-04 Jakub Jelinek <jakub@redhat.com>
13300
13301 PR inline-asm/23200
13302 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 13303 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
13304 (stmt_is_replaceable_p): New function.
13305 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
13306 callers.
13307 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
13308 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
13309 SSA_NAME_DEF_STMT.
13310 * tree-flow.h (stmt_is_replaceable_p): New prototype.
13311
a64a8e5a
JM
133122011-02-04 Joseph Myers <joseph@codesourcery.com>
13313
13314 * config/rs6000/xilinx.opt: New.
13315 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
13316
4da2ed2f
JM
133172011-02-04 Joseph Myers <joseph@codesourcery.com>
13318
13319 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
13320
a6e508f9
AS
133212011-02-03 Anatoly Sokolov <aesok@post.ru>
13322
13323 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
13324 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
13325 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
13326 secondary_reload_info, xtensa_secondary_reload): Remove.
13327 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
13328 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
13329 (xtensa_preferred_reload_class): Make static. Change return and
13330 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
13331 Use CONST_DOUBLE_P predicate.
13332 (xtensa_preferred_output_reload_class): New function.
13333 (xtensa_secondary_reload): Make static.
13334
82dc0de3
JM
133352011-02-03 Joseph Myers <joseph@codesourcery.com>
13336
13337 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
13338 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
13339 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
13340
7fece979
JJ
133412011-02-03 Jakub Jelinek <jakub@redhat.com>
13342
13343 PR middle-end/31490
13344 * output.h (SECTION_RELRO): Define.
13345 (SECTION_MACH_DEP): Adjust.
13346 (get_variable_section): New prototype.
13347 * varpool.c (varpool_finalize_named_section_flags): New function.
13348 (varpool_assemble_pending_decls): Call it.
13349 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
13350 * cgraphunit.c (cgraph_output_in_order): Call
13351 varpool_finalize_named_section_flags.
13352 * varasm.c (get_section): Allow section flags conflicts between
13353 relro and read-only sections if the section hasn't been declared yet.
13354 Set SECTION_OVERRIDE after diagnosing section type conflict.
13355 (get_variable_section): No longer static.
13356 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
13357 readonly sections that need relocations.
13358 (decl_readonly_section_1): New function.
13359 (decl_readonly_section): Use it.
13360
13361 Revert:
509d65dd 13362 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
13363 Steve Ellcey <sje@cup.hp.com>
13364
13365 PR middle-end/31490
13366 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
13367 if section attribute used.
13368
d18d5478
JJ
133692011-02-03 Jakub Jelinek <jakub@redhat.com>
13370
13371 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
13372 * config/darwin.c (SECTION_NO_ANCHOR): Define.
13373 (darwin_init_sections): Remove assertion.
13374
6479ed4b
NC
133752011-02-03 Nick Clifton <nickc@redhat.com>
13376
13377 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
13378 lt and ge.
38be4072 13379 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
13380 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
13381 instead of "n" and "pz".
13382 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
13383 CC_FLAG_S.
13384
89843f5d
JJ
133852011-02-03 Jakub Jelinek <jakub@redhat.com>
13386
65450d64
JJ
13387 PR target/47312
13388 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
13389 fma, expand FMA_EXPR as fma{,f,l} call.
13390
7d58701c
JJ
13391 PR lto/47274
13392 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
13393 copy them into a unsigned char variable and pass address of it to
13394 lto_output_data_stream.
13395
89843f5d
JJ
13396 PR target/47564
13397 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
13398 around backend_init_target and lang_dependent_init_target calls.
13399 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
13400 (verify_cgraph_node): Don't call set_cfun here. Use
13401 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
13402 Set error_found for incorrectly represented calls to thunks.
13403
4deef538
AO
134042011-02-03 Alexandre Oliva <aoliva@redhat.com>
13405
13406 PR debug/43092
13407 PR rtl-optimization/43494
13408 * rtl.h (for_each_inc_dec_fn): New type.
13409 (for_each_inc_dec): Declare.
13410 * rtlanal.c (struct for_each_inc_dec_ops): New type.
13411 (for_each_inc_dec_find_inc_dec): New fn.
13412 (for_each_inc_dec_find_mem): New fn.
13413 (for_each_inc_dec): New fn.
13414 * dse.c (struct insn_size): Remove.
13415 (replace_inc_dec, replace_inc_dec_mem): Remove.
13416 (emit_inc_dec_insn_before): New fn.
13417 (check_for_inc_dec): Use it, along with for_each_inc_dec.
13418 (canon_address): Pass mem modes to cselib_lookup.
13419 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
13420 (cselib_lookup_from_insn): Likewise.
13421 (cselib_subst_to_values): Likewise.
13422 * cselib.c (find_slot_memmode): New var.
13423 (cselib_find_slot): New fn. Use it instead of
13424 htab_find_slot_with_hash everywhere.
13425 (entry_and_rtx_equal_p): Use find_slot_memmode.
13426 (autoinc_split): New fn.
13427 (rtx_equal_for_cselib_p): Rename and implement in terms of...
13428 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
13429 Deal with autoinc. Special-case recursion into MEMs.
13430 (cselib_hash_rtx): Likewise.
13431 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
13432 address and MEM modes.
13433 (cselib_subst_to_values): Add memmode, pass it on.
13434 Deal with autoinc.
13435 (cselib_lookup): Add memmode argument, pass it on.
13436 (cselib_lookup_from_insn): Add memmode.
13437 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
13438 (struct cselib_record_autoinc_data): New.
13439 (cselib_record_autoinc_cb): New fn.
13440 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
13441 mode to cselib_lookup. Reset autoinced REGs here instead of...
13442 (cselib_process_insn): ... here.
13443 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
13444 to cselib_lookup.
13445 (add_uses): Likewise, also to cselib_subst_to_values.
13446 (add_stores): Likewise.
13447 * sched-deps.c (add_insn_mem_dependence): Pass mode to
13448 cselib_subst_to_values.
13449 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
13450 * gcse.c (do_local_cprop): Adjusted.
13451 * postreload.c (reload_cse_simplify_set): Adjusted.
13452 (reload_cse_simplify_operands): Adjusted.
13453 * sel-sched-dump (debug_mem_addr_value): Pass mode.
13454
1551d44a
AO
134552011-02-03 Alexandre Oliva <aoliva@redhat.com>
13456
13457 PR tree-optimization/45122
13458 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
13459 unsafe assumptions when there's more than one loop exit.
13460
c9485473
MM
134612011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
13462
13463 PR target/47272
13464 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13465 Document using vector double with the load/store builtins, and
13466 that the load/store builtins always use Altivec instructions.
13467
13468 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
13469 to use altivec memory instructions, even on VSX.
13470 (vector_altivec_store_<mode>): Ditto.
13471
13472 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
13473 function.
13474
13475 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13476 V2DF, V2DI support to load/store overloaded builtins.
13477
13478 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
13479 altivec load/store builtins for V2DF/V2DI types.
13480
13481 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13482 set avoid indexed addresses on power6 if -maltivec.
13483 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
13484 vector_altivec_load/vector_altivec_store builtins.
13485 (altivec_expand_st_builtin): Ditto.
13486 (altivec_expand_builtin): Add VSX memory builtins.
13487 (rs6000_init_builtins): Add V2DI types to internal types.
13488 (altivec_init_builtins): Add support for V2DF/V2DI altivec
13489 load/store builtins.
13490 (rs6000_address_for_altivec): Insure memory address is appropriate
13491 for Altivec.
13492
13493 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
13494 vec_vsx_ld and vec_vsx_st.
13495 (vsx_store_<mode>): Ditto.
13496
13497 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
13498 variables to hold long long types for VSX vector memory builtins.
13499 (RS6000_BTI_unsigned_long_long): Ditto.
13500 (long_long_integer_type_internal_node): Ditti.
13501 (long_long_unsigned_type_internal_node): Ditti.
13502
13503 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
13504 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
13505 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
13506
13507 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
13508 short cuts.
13509 (vec_vsx_st): Ditto.
13510
b24d1acf
JM
135112011-02-02 Joseph Myers <joseph@codesourcery.com>
13512
13513 * config/pa/pa-hpux10.opt: New.
13514 * config/hpux11.opt (pthread): New Driver option.
13515 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
13516 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
13517
aa18dd0f
JM
135182011-02-02 Joseph Myers <joseph@codesourcery.com>
13519
13520 * config/ia64/vms.opt: New.
13521 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
13522
28fc3eee
MM
135232011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
13524
13525 PR target/47580
13526 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
13527 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
13528 generator functions.
13529 (vsx_floatuns<VSi><mode>2): Ditto.
13530 (vsx_fix_trunc<mode><VSi>2): Ditto.
13531 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
13532
b5838b1f
JM
135332011-02-02 Joseph Myers <joseph@codesourcery.com>
13534
13535 * config/i386/djgpp.opt (posix): New Driver option.
13536
0db8fa89
GP
135372011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
13538
13539 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
13540 Move to the unsupported targets list.
13541
9cd4f22a
PB
135422011-02-02 Peter Bergner <bergner@vnet.ibm.com>
13543
13544 PR rtl-optimization/47525
13545 * df-scan.c: Update copyright years.
13546 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
13547 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
13548
9ed8059c
RO
135492011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13550
13551 * config/i386/sysv4.h (TARGET_VERSION): Remove.
13552 (SUBTARGET_RETURN_IN_MEMORY): Remove.
13553 (ASM_OUTPUT_ASCII): Remove.
13554 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
13555
2a737389
JL
135562011-02-02 Jeff Law <law@redhat.com>
13557
13558 PR middle-end/47543
13559 * reload.c (find_reloads_address): Handle reg+d address where both
13560 components are invalid by reloading the entire address.
13561
9dac82c4
SP
135622011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13563 Richard Guenther <rguenther@suse.de>
13564
13565 PR tree-optimization/40979
13566 PR bootstrap/47044
13567 * passes.c (init_optimization_passes): After LIM call copy_prop
13568 and DCE to clean up.
13569 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
13570
14dd9aab
SP
135712011-02-02 Sebastian Pop <sebastian.pop@amd.com>
13572
13573 PR tree-optimization/47576
13574 PR tree-optimization/47555
13575 * doc/invoke.texi (scev-max-expr-complexity): Documented.
13576 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13577 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
13578 * tree-scalar-evolution.c (follow_ssa_edge): Use
13579 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
13580
5cbf5c20
RG
135812011-02-02 Richard Guenther <rguenther@suse.de>
13582
13583 PR tree-optimization/47566
13584 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
13585
83d70792
AO
135862011-02-02 Alexandre Oliva <aoliva@redhat.com>
13587
e829c321
AO
13588 PR debug/47106
13589 PR debug/47402
13590 * tree-inline.c (declare_return_variable): Remove unused caller
13591 variable.
13592
83d70792
AO
13593 PR debug/47106
13594 PR debug/47402
13595 * tree-flow-inline.h (clear_is_used, is_used_p): New.
13596 * cfgexpand.c (account_used_vars_for_block): Use them.
13597 * tree-nrv.c (tree_nrv): Likewise.
13598 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
13599 (dump_scope_block): Likewise.
13600 (remove_unused_locals): Likewise.
13601
aaa2ac93
AO
13602 PR debug/47106
13603 PR debug/47402
13604 * tree-inline.c (declare_return_variable): Add result decl to
13605 local decls only once.
13606 * gimple-low.c (record_vars_into): Mark newly-created variables
13607 as referenced.
13608
a59d15cf
AO
136092011-02-02 Alexandre Oliva <aoliva@redhat.com>
13610
13611 PR debug/47498
13612 PR debug/47501
13613 PR debug/45136
13614 PR debug/45130
13615 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13616 debug insns.
13617 (no_real_insns_p, schedule_block, set_priorities): Drop special
13618 treatment of boundary debug insns.
38be4072 13619 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
13620 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
13621 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13622 (BOUNDARY_DEBUG_INSN_P): Likewise.
13623 (SCHEDULE_DEBUG_INSN_P): Likewise.
13624 * sched-rgn.c (init_ready_list): Drop special treatment of
13625 boundary debug insns.
13626 * final.c (rest_of_clean_state): Clear notes' BB.
13627
6fc2f091
JM
136282011-02-01 Joseph Myers <joseph@codesourcery.com>
13629
13630 * config/openbsd.opt (assert=): New Driver option.
13631
fc523387
JM
136322011-02-01 Joseph Myers <joseph@codesourcery.com>
13633
13634 * config/i386/nto.opt: New.
13635 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
13636
6d9821e5
JM
136372011-02-01 Joseph Myers <joseph@codesourcery.com>
13638
13639 * config/i386/netware.opt: New.
13640 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
13641
cef932d4
JM
136422011-02-01 Joseph Myers <joseph@codesourcery.com>
13643
13644 * config/interix.opt (posix): New Driver option.
13645
22843acd
DD
136462011-02-01 DJ Delorie <dj@redhat.com>
13647
56490b74
DD
13648 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
13649
22843acd
DD
13650 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
13651 class for A0/A1.
13652
199c8f2f
SP
136532011-02-01 Sebastian Pop <sebastian.pop@amd.com>
13654
13655 PR tree-optimization/47561
13656 * toplev.c (process_options): Print the Graphite flags. Add
13657 flag_loop_flatten to the list of options requiring Graphite.
13658
926bcf22
JM
136592011-02-01 Joseph Myers <joseph@codesourcery.com>
13660
13661 * config/i386/cygming.opt (posix): New Driver option.
13662
59793c51
JM
136632011-02-01 Joseph Myers <joseph@codesourcery.com>
13664
13665 * config/arm/vxworks.opt: New.
13666 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
13667
183c38a4
JM
136682011-02-01 Joseph Myers <joseph@codesourcery.com>
13669
13670 * config/alpha/elf.opt: New.
13671 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
13672 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
13673
9939e416
RG
136742011-02-01 Richard Guenther <rguenther@suse.de>
13675
13676 PR tree-optimization/47559
13677 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
13678 store-motion on references that can throw.
13679
4a3c9687
BS
136802011-02-01 Bernd Schmidt <bernds@codesourcery.com>
13681
13682 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
13683 * tree-pass.h (TDF_CSELIB): New macro.
13684 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
13685 cselib_lookup): Check for it rather than for TDF_DETAILS.
13686
dd3b31fb
L
136872011-02-01 H.J. Lu <hongjiu.lu@intel.com>
13688
13689 PR driver/47547
13690 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
13691 is HOST_BIT_BUCKET.
13692
13693 * opts.c (finish_options): Don't add x_aux_base_name if it is
13694 HOST_BIT_BUCKET.
13695
34c1de79
RG
136962011-02-01 Richard Guenther <rguenther@suse.de>
13697
13698 PR tree-optimization/47555
13699 Revert
13700 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
13701
13702 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13703
dd2804d2
SB
137042011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
13705
13706 PR gcc/46692
13707 * config/lm32/t-lm32: Add multilib for all CPU options.
13708
3fd3b156
RG
137092011-02-01 Richard Guenther <rguenther@suse.de>
13710
13711 PR tree-optimization/47541
13712 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13713 sure to have a field at offset zero.
13714
f16072b6
JM
137152011-01-31 Joseph Myers <joseph@codesourcery.com>
13716
13717 * config/arc/arc.opt (EB, EL): New Driver options.
13718
6456cf2e
JM
137192011-01-31 Joseph Myers <joseph@codesourcery.com>
13720
13721 * config/alpha/osf5.opt: New.
13722 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
13723
cdde6ab4
JM
137242011-01-31 Joseph Myers <joseph@codesourcery.com>
13725
13726 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
13727
7633415c
SP
137282011-01-31 Sebastian Pop <sebastian.pop@amd.com>
13729
13730 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
13731 -floop-interchange.
13732 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
13733 is an alias of -floop-interchange and that it requires the
13734 Graphite infrastructure.
13735 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
13736 flag_loop_interchange based on the value of flag_tree_loop_linear.
13737
0425d6f5
JJ
137382011-01-31 Jakub Jelinek <jakub@redhat.com>
13739 Richard Guenther <rguenther@suse.de>
13740
13741 PR tree-optimization/47538
13742 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
13743 type instead of r1type, except for comparisons. For right
13744 shifts and comparisons punt if there are mismatches in
13745 sizetype vs. non-sizetype types.
13746
500b16c3
RO
137472011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13748
13749 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13750 avx_runtime.
13751
e279edb0
RO
137522011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13753
13754 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
13755 version number.
13756 * configure: Regenerate.
13757
c6092243
RO
137582011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13759
13760 * configure.ac (gcc_cv_ld_static_option): Define.
13761 (gcc_cv_ld_dynamic_option): Define.
13762 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
13763 instead.
13764 (HAVE_LD_STATIC_DYNAMIC): Update message.
13765 (LD_STATIC_OPTION): Define.
13766 (LD_DYNAMIC_OPTION): Define.
13767 * configure: Regenerate.
13768 * config.in: Regenerate.
13769 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
13770 HAVE_LD_STATIC_DYNAMIC]: Use them.
13771
d7862be3
NC
137722011-01-31 Nick Clifton <nickc@redhat.com>
13773
13774 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
13775 registers inside interrupt handlers if the handler is not a leaf
13776 function.
13777
ba4ec0e0
NC
137782011-01-31 Nick Clifton <nickc@redhat.com>
13779
13780 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
13781 reg_renumber returning an INVALID_REGNUM.
13782
29a63921
AO
137832011-01-31 Alexandre Oliva <aoliva@redhat.com>
13784
13785 PR libgcj/44341
13786 * doc/install.texi: Document host options discarded when cross
13787 configuring target libraries.
13788
ef591d3f
AO
137892011-01-31 Alexandre Oliva <aoliva@redhat.com>
13790
13791 Reverted:
13792 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
13793 PR debug/45136
13794 PR debug/45130
13795 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
13796 debug insns.
13797 (no_real_insns_p, schedule_block, set_priorities): Drop special
13798 treatment of boundary debug insns.
38be4072 13799 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
13800 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
13801 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
13802 (BOUNDARY_DEBUG_INSN_P): Likewise.
13803 (SCHEDULE_DEBUG_INSN_P): Likewise.
13804 * sched-rgn.c (init_ready_list): Drop special treatment of
13805 boundary debug insns.
13806 * final.c (rest_of_clean-state): Clear notes' BB.
13807
61052244
AM
138082011-01-31 Alan Modra <amodra@gmail.com>
13809
13810 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
13811 toc relative expressions as we do in print_operand_address.
13812
c4c8962b
KH
138132011-01-30 Kazu Hirata <kazu@codesourcery.com>
13814
13815 * doc/extend.texi: Follow spelling conventions.
13816 * doc/invoke.texi: Fix a typo.
13817
e543b94c
JM
138182011-01-30 Joseph Myers <joseph@codesourcery.com>
13819
13820 * config/hpux11.opt: New.
13821 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
13822 ia64*-*-hpux*): Use hpux11.opt.
13823
509d65dd 138242011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
13825
13826 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
13827 to tmake_file.
13828
7be03a0e
GP
138292011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13830
13831 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
13832 support sites.
13833
419d1d37
GP
138342011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
13835
b596ed64
GP
13836 * doc/install.texi (Binaries): Remove outdated reference for
13837 Motorola 68HC11/68HC12 downloads.
13838
138392011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 13840
419d1d37
GP
13841 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
13842 Drepper's paper.
13843
4406d0e9
JW
138442011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
13845
13846 PR bootstrap/47147
13847 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
13848 used by NetBSD.
13849
38be4072 138502011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
13851
13852 * value-prof.c (check_counter): Corrected error message.
13853
0cd98787
JZ
138542011-01-29 Jie Zhang <jie@codesourcery.com>
13855
13856 * config/arm/arm.c (arm_legitimize_reload_address): New.
13857 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
13858 arm_legitimize_reload_address.
38be4072 13859 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 13860
9b798ac5
ILT
138612011-01-28 Ian Lance Taylor <iant@google.com>
13862
13863 * godump.c (go_define): Ignore macros whose definitions include
13864 two adjacent operands.
13865
591e29d9
JJ
138662011-01-28 Jakub Jelinek <jakub@redhat.com>
13867
13868 PR target/42894
13869 * varasm.c (force_const_mem): Store copy of x in desc->constant
13870 instead of x itself.
13871 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
13872 itself into REG_EQUAL note.
13873
62dcc44a
JM
138742011-01-28 Joseph Myers <joseph@codesourcery.com>
13875
13876 * config/freebsd.opt (posix, rdynamic): New Driver options.
13877
c9f58b9a
RO
138782011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13879
13880 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
13881 -Bstatic/-Bdynamic.
13882 * configure: Regenerate.
13883
5f02b9db
JM
138842011-01-27 Joseph Myers <joseph@codesourcery.com>
13885
13886 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
13887 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
13888
5df97412
AS
138892011-01-27 Anatoly Sokolov <aesok@post.ru>
13890
13891 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
13892 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
13893 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13894 (s390_preferred_reload_class): Make static. Change return and
13895 'rclass' argument type to reg_class_t.
13896
779d4b91
JH
138972011-01-27 Jan Hubicka <jh@suse.cz>
13898
13899 PR middle-end/46949
13900 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
13901 (process_function_and_variable_attributes): Check defined weakrefs.
13902
e80b21ed
MJ
139032011-01-27 Martin Jambor <mjambor@suse.cz>
13904
13905 PR tree-optimization/47228
13906 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
13907 build_ref_for_offset.
13908
6dcc4f31
UW
139092011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13910
13911 * config/spu/spu-elf.h (ASM_SPEC): Remove.
13912
509d65dd 139132011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
13914
13915 PR rtl-optimization/46856
13916 * postreload.c (reload_combine_recognize_const_pattern): Do not
13917 separate cc0 setter and user on cc0 targets.
13918
04af8788
NP
139192011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
13920
13921 PR c/43082
13922 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
13923 passed a VOID_TYPE expression, immediately emit an error and
13924 return error_mark_node.
13925
f7a60085
JL
139262011-01-26 Jeff Law <law@redhat.com>
13927
13928 PR rtl-optimization/47464
13929 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
13930 rather than may_trap_p as needed.
13931
5c2917ec
DD
139322011-01-26 DJ Delorie <dj@redhat.com>
13933
13934 PR rtl-optimization/46878
13935 * combine.c (insn_a_feeds_b): Check for the implicit cc0
13936 setter/user dependency as well.
13937
bef16e87
EB
139382011-01-26 Eric Botcazou <ebotcazou@adacore.com>
13939
13940 PR rtl-optimization/44469
13941 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
13942 after removing trivially dead basic blocks.
13943
c75d884b
JM
139442011-01-26 Joseph Myers <joseph@codesourcery.com>
13945
13946 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
13947 * config/frv/frv.h (LINK_SPEC): Likewise.
13948 * config/i386/netware.h (LINK_SPEC): Likewise.
13949 * config/m68k/linux.h (ASM_SPEC): Likewise.
13950 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13951 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13952 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13953 * config/sparc/linux.h (ASM_SPEC): Likewise.
13954 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13955 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13956
d3153553
JM
139572011-01-26 Joseph Myers <joseph@codesourcery.com>
13958
13959 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
13960 * config/frv/frv.h (ASM_SPEC): Likewise.
13961 * config/m68k/linux.h (ASM_SPEC): Likewise.
13962 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13963 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
13964 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13965 * config/sparc/linux.h (ASM_SPEC): Likewise.
13966 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13967 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13968
b89b1e9d
JM
139692011-01-26 Joseph Myers <joseph@codesourcery.com>
13970
13971 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
13972 * config/frv/frv.h (LINK_SPEC): Likewise.
13973 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
13974
12eb1a9c
JM
139752011-01-26 Joseph Myers <joseph@codesourcery.com>
13976
13977 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
13978 * config/frv/frv.h (ASM_SPEC): Likewise.
13979 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
13980 * config/m68k/linux.h (ASM_SPEC): Likewise.
13981 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
13982 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13983 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13984 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
13985 * config/sparc/linux.h (ASM_SPEC): Likewise.
13986 * config/sparc/linux64.h (ASM_SPEC): Likewise.
13987 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13988 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
13989
e435f098
SE
139902011-01-26 Steve Ellcey <sje@cup.hp.com>
13991
13992 PR target/46997
13993 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
13994 (*mux2): Ditto.
13995 (vec_extract_evenodd_help): Ditto.
13996 (vec_extract_evenv4hi): Ditto.
13997 (vec_extract_oddv4hi): Ditto.
13998 (vec_interleave_lowv2si): Ditto.
13999 (vec_interleave_highv2si): Ditto.
14000 (vec_extract_evenv2si): Ditto.
14001 (vec_extract_oddv2si: Ditto.
14002 (vec_pack_trunc_v2si): Ditto.
14003
34f0eee0
JH
140042011-01-22 Jan Hubicka <jh@suse.cz>
14005
14006 PR target/47237
14007 * cgraph.h (cgraph_local_info): New field can_change_signature.
14008 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
14009 signature can change.
14010 (ipcp_estimate_growth): Call sequence simplify only if calle signature
14011 can change.
14012 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
14013 (cgraph_function_versioning): We can not change signature of functions
14014 that don't allow that.
14015 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
14016 (lto_input_node): Likewise.
38be4072
UB
14017 * ipa-inline.c (compute_inline_parameters): Compute
14018 local.can_change_signature.
34f0eee0 14019 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
14020 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
14021 functions that can not change signature.
34f0eee0 14022 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
14023 init_cumulative_args): Do not use local calling conventions
14024 for functions that can not change signature.
34f0eee0 14025
980ca891
JH
140262011-01-22 Jan Hubicka <jh@suse.cz>
14027
14028 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
14029
768e3c60
RG
140302011-01-26 Richard Guenther <rguenther@suse.de>
14031
14032 PR tree-optimization/47190
61052244
AM
14033 * cgraphunit.c (process_common_attributes): New function.
14034 (process_function_and_variable_attributes): Use it.
768e3c60 14035
21d6a1c7
RG
140362011-01-26 Richard Guenther <rguenther@suse.de>
14037
14038 PR lto/47423
14039 * cgraphbuild.c (record_eh_tables): Record reference to personality
14040 function.
14041
48bb58b1
AO
140422011-01-26 Alexandre Oliva <aoliva@redhat.com>
14043
14044 PR debug/45454
14045 * sel-sched.c (moveup_expr): Don't let debug insns prevent
14046 non-debug insns from moving up.
14047
58c741a6
DK
140482011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14049
14050 PR target/40125
14051 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
14052 t-dlldir{,-x} fragment for build and add it to tmake_file.
14053 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14054 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
14055 * config/i386/t-dlldir: New file.
14056 (SHLIB_DLLDIR): Define.
14057 * config/i386/t-dlldir-x: New file.
14058 (SHLIB_DLLDIR): Define.
14059 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
14060 (SHLIB_INSTALL): Use it.
14061
bff99262
CLT
140622011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
14063
14064 PR target/47246
14065 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
14066 lower bound of the allowed Thumb-2 coprocessor load/store
14067 index range to -256. Add explaining comment.
14068
82c03907
ILT
140692011-01-25 Ian Lance Taylor <iant@google.com>
14070
14071 * godump.c (go_define): Improve lexing of macro expansion to only
14072 accept expressions which match Go spec.
14073
47ea1edf
DK
140742011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
14075
d4dba752 14076 PR c++/43601
47ea1edf
DK
14077 * tree.c (handle_dll_attribute): Handle it.
14078 * doc/extend.texi (@item dllexport): Mention it.
14079 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
14080
744f0946
ILT
140812011-01-25 Ian Lance Taylor <iant@google.com>
14082
14083 PR tree-optimization/26854
14084 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
14085 (decl_jump_unsafe): Move higher in file, with no other change.
14086 (bind): Set has_jump_unsafe_decl if appropriate.
14087 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14088 (check_earlier_gotos): Likewise.
14089 (c_check_switch_jump_warnings): Likewise.
14090
5734f2b3
JW
140912011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
14092
14093 * doc/invoke.texi (Warning Options): Add missing hyphen.
14094 (-fprofile-dir): Minor grammatical fixes.
14095 (-fbranch-probabilities): Likewise.
14096
9bdbdcef
AO
140972011-01-25 Alexandre Oliva <aoliva@redhat.com>
14098
14099 PR debug/45136
14100 PR debug/45130
14101 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
14102 debug insns.
14103 (no_real_insns_p, schedule_block, set_priorities): Drop special
14104 treatment of boundary debug insns.
38be4072 14105 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
14106 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
14107 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
14108 (BOUNDARY_DEBUG_INSN_P): Likewise.
14109 (SCHEDULE_DEBUG_INSN_P): Likewise.
14110 * sched-rgn.c (init_ready_list): Drop special treatment of
14111 boundary debug insns.
14112 * final.c (rest_of_clean-state): Clear notes' BB.
14113
b305e3da
SP
141142011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14115
14116 * Makefile.in (LAMBDA_H): Removed.
14117 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
14118 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
14119 lambda-trans.o, and tree-loop-linear.o.
14120 (lto-symtab.o): Remove dependence on LAMBDA_H.
14121 (tree-loop-linear.o): Remove rule.
14122 (lambda-mat.o): Same.
14123 (lambda-trans.o): Same.
14124 (lambda-code.o): Same.
14125 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
14126 (tree-vect-slp.o): Same.
14127 * hwint.h (gcd): Moved here.
14128 (least_common_multiple): Same.
14129 * lambda-code.c: Removed.
14130 * lambda-mat.c: Removed.
14131 * lambda-trans.c: Removed.
14132 * lambda.h: Removed.
14133 * tree-loop-linear.c: Removed.
14134 * lto-symtab.c: Do not include lambda.h.
14135 * omega.c (gcd): Removed.
14136 * passes.c (init_optimization_passes): Remove pass_linear_transform.
14137 * tree-data-ref.c (print_lambda_vector): Moved here.
14138 (lambda_vector_copy): Same.
14139 (lambda_matrix_copy): Same.
14140 (lambda_matrix_id): Same.
14141 (lambda_vector_first_nz): Same.
14142 (lambda_matrix_row_add): Same.
14143 (lambda_matrix_row_exchange): Same.
14144 (lambda_vector_mult_const): Same.
14145 (lambda_vector_negate): Same.
14146 (lambda_matrix_row_negate): Same.
14147 (lambda_vector_equal): Same.
14148 (lambda_matrix_right_hermite): Same.
14149 * tree-data-ref.h: Do not include lambda.h.
14150 (lambda_vector): Moved here.
14151 (lambda_matrix): Same.
14152 (dependence_level): Same.
14153 (lambda_transform_legal_p): Removed declaration.
14154 (lambda_collect_parameters): Same.
14155 (lambda_compute_access_matrices): Same.
14156 (lambda_vector_gcd): Same.
14157 (lambda_vector_new): Same.
14158 (lambda_vector_clear): Same.
14159 (lambda_vector_lexico_pos): Same.
14160 (lambda_vector_zerop): Same.
14161 (lambda_matrix_new): Same.
14162 * tree-flow.h (least_common_multiple): Removed declaration.
14163 * tree-parloops.c (lambda_trans_matrix): Moved here.
14164 (LTM_MATRIX): Same.
14165 (LTM_ROWSIZE): Same.
14166 (LTM_COLSIZE): Same.
14167 (LTM_DENOMINATOR): Same.
14168 (lambda_trans_matrix_new): Same.
14169 (lambda_matrix_vector_mult): Same.
14170 (lambda_transform_legal_p): Same.
14171 * tree-pass.h (pass_linear_transform): Removed declaration.
14172 * tree-ssa-loop.c (tree_linear_transform): Removed.
14173 (gate_tree_linear_transform): Removed.
14174 (pass_linear_transform): Removed.
14175 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
14176 flag_loop_interchange.
14177
6bdfdb96
JJ
141782011-01-25 Jakub Jelinek <jakub@redhat.com>
14179
14180 PR tree-optimization/47265
14181 PR tree-optimization/47443
14182 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
14183 if name still has some uses.
14184
e4cba915
MJ
141852011-01-25 Martin Jambor <mjambor@suse.cz>
14186
14187 PR tree-optimization/47382
14188 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
14189 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
14190
509d65dd 141912011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
14192
14193 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
14194 sjlj_except_unwind_info.
14195
194313e2
RG
141962011-01-25 Richard Guenther <rguenther@suse.de>
14197
14198 PR tree-optimization/47426
14199 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
14200 visible functions results escape.
14201
147a0bcf
JJ
142022011-01-25 Jakub Jelinek <jakub@redhat.com>
14203
14204 PR target/45701
14205 * config/arm/arm.c (any_sibcall_uses_r3): New function.
14206 (arm_get_frame_offsets): Use it.
14207
db963b52
SP
142082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14209 Jakub Jelinek <jakub@redhat.com>
14210
14211 PR tree-optimization/47271
14212 * tree-if-conv.c (bb_postdominates_preds): New.
14213 (if_convertible_bb_p): Call bb_postdominates_preds.
14214 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
14215 (predicate_scalar_phi): Call bb_postdominates_preds.
14216
bcddd3b9
NC
142172011-01-25 Nick Clifton <nickc@redhat.com>
14218
14219 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
14220 * config/rx/rx.c (rx_function_value): Likewise.
14221 (rx_promote_function_mode): Likewise.
14222 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
14223 in order to make it legitimate.
38be4072
UB
14224 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
14225 make sure that the first operand is the same as the result register.
bcddd3b9
NC
14226 (addsi3_unspec): Delete.
14227 (subdi3): Do not accept immediate operands.
14228 (subdi3_internal): Likewise.
14229
7e6cb022
JL
142302011-01-25 Jeff Law <law@redhat.com>
14231
14232 PR rtl-optimization/37273
14233 * ira-costs.c (scan_one_insn): Detect constants living in memory and
14234 handle them like argument loads from stack slots. Do not double
14235 count memory for memory constants and argument loads from stack slots.
14236
9ffa621e
JJ
142372011-01-25 Jakub Jelinek <jakub@redhat.com>
14238
14239 PR tree-optimization/47427
14240 PR tree-optimization/47428
14241 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14242 coalesce if the new root var would be TREE_READONLY.
14243
5bd6e652
RG
142442011-01-25 Richard Guenther <rguenther@suse.de>
14245
14246 PR middle-end/47414
14247 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
14248 correct type for TBAA.
14249
7c48ea69
SP
142502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14251
14252 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
14253 (close_phi_written_to_memory): Call for_each_index with
14254 dr_indices_valid_in_loop.
14255
38013f25
SP
142562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14257
14258 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
14259 when it is initialized.
14260
5c640e29
SP
142612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14262
14263 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
14264 call to graphite_find_data_references_in_stmt.
14265 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
14266 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
14267 call to graphite_find_data_references_in_stmt.
14268 (analyze_drs_in_stmts): Same.
14269 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
14270 in which the scalar analysis of indices is performed.
14271 (create_data_ref): Same. Update call to dr_analyze_indices.
14272 (find_data_references_in_stmt): Update call to create_data_ref.
14273 (graphite_find_data_references_in_stmt): Same.
14274 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
14275 declaration.
14276 (create_data_ref): Same.
14277 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
14278 call to create_data_ref.
14279
ac53c069
SP
142802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14281
14282 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 14283 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 14284
3d17df15
SP
142852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14286
14287 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
14288 VAR_DECL, PARM_DECL, and RESULT_DECL.
14289
c513da01
SP
142902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14291
14292 * graphite-dependences.c (reduction_dr_1): Allow several reductions
14293 in a reduction PBB.
14294 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
14295 that have already been marked as PBB_IS_REDUCTION.
14296
3a292d59
SP
142972011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14298
14299 * graphite-scop-detection.c (same_close_phi_node): New.
14300 (remove_duplicate_close_phi): New.
14301 (make_close_phi_nodes_unique): New.
14302 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
14303
ba858447
SP
143042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14305
14306 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
14307 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
14308 of both data references to be the same.
14309
8d865c56
SP
143102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14311
38be4072
UB
14312 * graphite-dependences.c (build_lexicographical_constraint): Remove
14313 the gdim parameter.
14314 (build_lexicographical_constraint): Adjust call to
14315 ppl_powerset_is_empty.
8d865c56
SP
14316 (dependence_polyhedron): Same.
14317 (graphite_legal_transform_dr): Same.
14318 (graphite_carried_dependence_level_k): Same.
38be4072
UB
14319 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
14320 parameter.
8d865c56
SP
14321 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
14322
50034a36
SP
143232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14324
14325 * graphite-sese-to-poly.c
14326 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
14327 (close_phi_written_to_memory): New.
14328 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
14329 and unshare_expr.
14330
0deada9e
SP
143312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14332
14333 * doc/install.texi: Update the expected version number of PPL to 0.11.
14334 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
14335 #if PPL_VERSION_MINOR < 11.
14336
d7d3d6af
SP
143372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14338
14339 * graphite-dependences.c: Include graphite-cloog-util.h.
14340 (new_poly_ddr): Inlined into dependence_polyhedron.
14341 (free_poly_ddr): Moved close by new_poly_ddr.
14342 (dependence_polyhedron_1): Renamed dependence_polyhedron.
14343 Early return NULL when ppl_powerset_is_empty returns true.
14344 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
14345 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
14346 (graphite_legal_transform_dr): Call new_poly_ddr.
14347 (graphite_carried_dependence_level_k): Same.
14348 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
14349 (dot_transformed_deps_stmt_1): Removed.
14350 (dot_deps_stmt_1): Call dot_deps_stmt_2.
14351 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
14352 (dot_deps_1): Call dot_deps_2.
14353 * Makefile.in (graphite-dependences.o): Add missing dependence on
14354 graphite-cloog-util.h.
14355
28c5db57
SP
143562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14357
14358 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
14359 (build_lexicographical_constraint): Same.
14360 (dependence_polyhedron_1): Same.
14361 (graphite_legal_transform_dr): Same.
14362 (graphite_carried_dependence_level_k): Same.
14363 * graphite-ppl.c (ppl_powerset_is_empty): New.
14364 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
14365 * tree-data-ref.c (dump_data_reference): Print the basic block index.
14366
5168d98f
SP
143672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14368
14369 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
14370 the "a followed by b" relation and document it.
14371
4a40293a
SP
143722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14373
14374 * graphite-dependences.c (build_lexicographical_constraint): Stop the
14375 iteration when the bag of constraints is empty.
14376
271fb6fa
SP
143772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14378
14379 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
14380
92d23680
SP
143812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14382
14383 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
14384 nest and two loop depths as parameters.
14385 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
14386 lst_perfect_nestify.
14387
2f51deff
SP
143882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14389
14390 * graphite-dependences.c (print_pddr): Call
14391 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
14392
07f3593c
SP
143932011-01-25 Sebastian Pop <sebastian.pop@amd.com>
14394
14395 * graphite-ppl.c (debug_gmp_value): New.
14396 * graphite-ppl.h (debug_gmp_value): Declared.
14397
3fae6099
TG
143982011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
14399
14400 * doc/install.texi: Document availability of cloog-0.16.
14401
1c3ba85b
SP
144022011-01-25 Vladimir Kargov <kargov@gmail.com>
14403
14404 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
14405 invalid postdominance info.
14406
e8ba94fc
JH
144072011-01-24 Jan Hubicka <jh@suse.cz>
14408
14409 PR c/21659
14410 * doc/extend.texi (weak pragma): Drop claim that it must
14411 appear before definition.
14412 * varasm.c (merge_weak, declare_weak): Only sanity check
14413 that DECL is not output at a time it is declared weak.
14414
2b6e2d13
KZ
144152011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
14416
14417 * machmode.def: Fixed comments.
1c3ba85b 14418
9841210f
KT
144192011-01-24 Kai Tietz <kai.tietz@onevision.com>
14420
14421 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
14422
144232011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
14424
14425 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 14426 WORDS_BIG_ENDIAN.
e046112d 14427
a6c5070a
L
144282011-01-24 H.J. Lu <hongjiu.lu@intel.com>
14429
14430 PR target/46519
14431 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
14432 (block_info): Add scanned and prev.
14433 (move_or_delete_vzeroupper_2): Return if the basic block
14434 has been scanned and the upper 128bit state is unchanged
14435 from the last scan.
14436 (move_or_delete_vzeroupper_1): Return true if the exit
14437 state is changed.
14438 (move_or_delete_vzeroupper): Visit basic blocks using the
14439 work-list based algorithm based on vt_find_locations in
14440 var-tracking.c.
14441
14442 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
14443
a40d79d7
NC
144442011-01-24 Nick Clifton <nickc@redhat.com>
14445
14446 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
14447 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
14448 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
14449 then define __v850e1__.
14450 * doc/invoke.texi: Document -mv850es.
14451
440eb8de
RH
144522011-01-24 Richard Henderson <rth@redhat.com>
14453
14454 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
14455 compound unordered comparisons.
14456 * config/rx/rx.c (rx_split_fp_compare): Remove.
14457 * config/rx/rx-protos.h: Update.
14458 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
14459 (cbranchsf4): Don't call rx_split_fp_compare.
14460 (*cbranchsf4): Use rx_split_cbranch.
14461 (*cmpsf): Don't accept "i" constraint.
14462 (*conditional_branch): Only valid after reload.
14463 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
14464
3ff79f99
MM
144652011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
14466
14467 PR target/47385
14468 * config/rs6000/altivec.md (vector constant splitters): Add
14469 support for creating vector single precision constants if -mvsx is
14470 used and we would create the constant using Altivec primitives.
14471
ff3d9d08
BS
144722011-01-23 Bernd Schmidt <bernds@codesourcery.com>
14473 Richard Sandiford <rdsandiford@googlemail.com>
14474
14475 PR rtl-optimization/47166
14476 * reload1.c (emit_reload_insns): Disable the spill_reg_store
14477 mechanism for PRE_MODIFY and POST_MODIFY.
14478 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
14479 reloadreg.
14480
7fcaf152
AS
144812011-01-23 Andreas Schwab <schwab@linux-m68k.org>
14482
8788adb6 14483 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 14484
d09b58c4
JH
144852011-01-22 Jan Hubicka <jh@suse.cz>
14486
14487 PR lto/47333
14488 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
14489
e8ff8c5a
JH
144902011-01-22 Jan Hubicka <jh@suse.cz>
14491
14492 PR tree-optimization/43884
14493 PR lto/44334
8788adb6 14494 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
14495 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
14496
ccaed3ba
AS
144972011-01-22 Anatoly Sokolov <aesok@post.ru>
14498
14499 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14500 * config/s390/s390.c (s390_register_move_cost,
14501 s390_memory_move_cost): New.
14502 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14503
0cecee06
UW
145042011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14505
14506 PR middle-end/47401
14507 * except.c (sjlj_assign_call_site_values): Move setting the
14508 crtl->uses_eh_lsda flag to ...
14509 (sjlj_mark_call_sites): ... here.
14510 (sjlj_emit_function_enter): Support NULL dispatch label.
14511 (sjlj_build_landing_pads): In a function with no landing pads
14512 that still has must-not-throw regions, generate code to register
14513 a personality function with empty LSDA.
14514
e692f276
RH
145152011-01-21 Richard Henderson <rth@redhat.com>
14516
1b7ae0b7
RH
14517 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
14518
3843787f
RH
14519 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
14520
e692f276
RH
14521 * compare-elim.c: New file.
14522 * Makefile.in (OBJS-common): Add it.
14523 (compare-elim.o): New.
14524 * common.opt (fcompare-elim): New.
14525 * opts.c (default_options_table): Add OPT_fcompare_elim.
14526 * tree-pass.h (pass_compare_elim_after_reload): New.
14527 * passes.c (init_optimization_passes): Add it.
14528 * recog.h: Protect against re-inclusion.
14529 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
14530 * doc/invoke.texi (-fcompare-elim): Document it.
14531 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
14532 * doc/tm.texi: Rebuild.
14533
9a7c2050
NC
145342011-01-22 Nick Clifton <nickc@redhat.com>
14535
14536 * config/rx/rx.md (cstoresf4): Pass comparison operator to
14537 rx_split_fp_compare.
14538
15ba5696
NC
145392011-01-22 Nick Clifton <nickc@redhat.com>
14540
14541 * config/rx/rx.md (UNSPEC_CONST): New.
14542 (deallocate_and_return): Wrap the amount popped off the stack in
14543 an UNSPEC_CONST in order to stop it being rejected by
14544 -mmax-constant-size.
14545 (pop_and_return): Add a "(return)" rtx.
14546 (call): Drop the immediate operand.
14547 (call_internal): Likewise.
14548 (call_value): Likewise.
14549 (call_value_internal): Likewise.
14550 (sibcall_internal): Likewise.
14551 (sibcall_value_internal): Likewise.
14552 (sibcall): Likewise. Generate an explicit call using
14553 sibcall_internal.
14554 (sibcall_value): Likewise.
14555 (mov<>): FAIL if a constant operand is not legitimate.
14556 (addsi3_unpsec): New pattern.
9a7c2050 14557
38be4072 14558 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
14559 (ok_for_max_constant): New function.
14560 (gen_safe_add): New function.
14561 (rx_expand_prologue): Use gen_safe_add.
14562 (rx_expand_epilogue): Likewise.
14563 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
14564 UNSPEC CONSTs.
14565
caaf13d3
JL
145662011-01-21 Jeff Law <law@redhat.com>
14567
14568 PR tree-optimization/47053
14569 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
14570 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
14571 statements are deleted.
14572 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
14573 is nonempty, then purge dead edges and cleanup the CFG.
14574
12c30f2f
AO
145752011-01-21 Alexandre Oliva <aoliva@redhat.com>
14576
14577 PR debug/47402
14578 Temporarily revert:
14579 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
14580 PR debug/47106
14581 * tree-dfa.c (create_var_ann): Mark variable as used.
14582
7360d2ac
JJ
145832011-01-21 Jakub Jelinek <jakub@redhat.com>
14584
aaa52a96
JJ
14585 PR middle-end/45566
14586 * except.c (convert_to_eh_region_ranges): Emit queued no-region
14587 notes from other section in hot/cold partitioning even if
14588 last_action is -3. Increment call_site_base.
14589
7360d2ac
JJ
14590 PR rtl-optimization/47366
14591 * fwprop.c (forward_propagate_into): Return bool. If
14592 any changes are made, -fnon-call-exceptions is used and
14593 REG_EH_REGION note is present, call purge_dead_edges
14594 and return true if it purged anything.
14595 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
14596 any EH edges were purged.
14597
e90b336f
JL
145982011-01-21 Jeff Law <law@redhat.com>
14599
14600 PR rtl-optimization/41619
14601 * caller-save.c (setup_save_areas): Break out code to determine
14602 which hard regs are live across calls by examining the reload chains
14603 so that it is always used.
14604 Eliminate code which checked REG_N_CALLS_CROSSED.
14605
3ffe07e1
JJ
146062011-01-21 Jakub Jelinek <jakub@redhat.com>
14607
14608 PR tree-optimization/47355
14609 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
14610 NOP has non-debug uses beyond PHIs in new_bb.
14611
1c7d0b34
AO
146122011-01-21 Alexandre Oliva <aoliva@redhat.com>
14613
14614 PR debug/47106
14615 * cfgexpand.c (account_used_vars_for_block): Only account vars
14616 that are annotated as used.
14617 (estimated_stack_frame_size): Don't set TREE_USED.
14618 * tree-dfa.c (create_var_ann): Mark variable as used.
14619
f99cc488
RG
146202011-01-21 Richard Guenther <rguenther@suse.de>
14621
14622 PR middle-end/47395
14623 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
14624
3bc27de7
RG
146252011-01-21 Richard Guenther <rguenther@suse.de>
14626
14627 PR tree-optimization/47365
14628 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
14629 (vn_reference_lookup_pieces): Adjust.
14630 (vn_reference_lookup): Likewise.
14631 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
14632 (vn_reference_lookup_3): Only look through kills if in
14633 VN_WALKREWRITE mode.
14634 (vn_reference_lookup_pieces): Adjust.
14635 (vn_reference_lookup): Likewise.
14636 (visit_reference_op_load): Likewise.
14637 (visit_reference_op_store): Likewise.
14638 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
14639 (compute_avail): Likewise.
14640 (eliminate): Likewise.
14641
d8debb1d
JJ
146422011-01-21 Jakub Jelinek <jakub@redhat.com>
14643
14644 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
14645 DECL_IGNORED_P non-reg vars if they are used.
14646
3a2df831
JJ
14647 PR tree-optimization/47391
14648 * varpool.c (const_value_known_p): Return false if
14649 decl is volatile.
14650
1dd584a2
KT
146512011-01-21 Kai Tietz <kai.tietz@onevision.com>
14652
14653 PR bootstrap/47215
14654 * config/i386/i386.c (ix86_local_alignment): Handle
14655 case for va_list_type_node is nil.
14656 (ix86_canonical_va_list_type): Likewise.
14657
7f9f095e
AM
146582011-01-21 Alan Modra <amodra@gmail.com>
14659
14660 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
14661 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
14662
837b01f6
RR
146632011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14664
14665 * config/arm/arm.md (define_attr type): Rename f_load
14666 and f_store to f_fpa_load and f_fpa_store. Update.
14667 (write_conflict): Deal with rename fallout.
14668 (*push_fp_multi): Likewise.
14669 * config/arm/fpa.md (f_load): Use f_fpa_load.
14670 (f_store): Use f_fpa_store.
14671 (*movsf_fpa): Likewise.
14672 (*movdf_fpa): Likewise.
14673 (*movxf_fpa): Likewise.
14674 (*thumb2_movsf_fpa): Likewise.
14675 (*thumb2_movdf_fpa): Likewise.
14676 (*thumb2_movxf_fpa): Likewise.
14677 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
14678 f_loadd and f_stored.
14679 (*thumb2_movdi_vfp): Likewise.
14680 (*thumb2_movsf_vfp): Fix attribute to f_loads.
14681 (*thumb2_movsi_vfp): Likewise.
14682 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
14683 Use f_loads instead of f_load.
14684 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
14685
a1a79768
AS
146862011-01-20 Anatoly Sokolov <aesok@post.ru>
14687
14688 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14689 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
14690 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14691 (xtensa_mode_dependent_address_p): New function.
14692 (constantpool_address_p): Make static. Change return type to bool.
14693 Change argument type to const_rtx. Use CONST_INT_P predicate.
14694
427f6cec
AO
146952011-01-20 Alexandre Oliva <aoliva@redhat.com>
14696
14697 PR debug/46583
14698 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
14699
583ac69c
JJ
147002011-01-20 Jakub Jelinek <jakub@redhat.com>
14701
14702 PR debug/47283
14703 * cfgexpand.c (expand_debug_expr): Instead of generating
14704 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
14705 etc. handling.
14706
93e452ed
RG
147072011-01-20 Richard Guenther <rguenther@suse.de>
14708
14709 PR middle-end/47370
14710 * tree-inline.c (remap_gimple_op_r): Recurse manually for
14711 the pointer operand of MEM_REFs.
14712
28fc44f3
JJ
147132011-01-20 Jakub Jelinek <jakub@redhat.com>
14714
14715 PR tree-optimization/46130
14716 * ipa-split.c (consider_split): If return_bb contains non-virtual
14717 PHIs other than for retval or if split_function would not adjust it,
14718 refuse to split.
14719
ddd268f2
RG
147202011-01-20 Richard Guenther <rguenther@suse.de>
14721
14722 PR tree-optimization/47167
14723 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
14724 Revert previous change, only avoid enumeral type changes.
14725
882020aa
MS
147262011-01-19 Mike Stump <mikestump@comcast.net>
14727
14728 * doc/tm.texi.in (BRANCH_COST): Englishify.
14729 * doc/tm.texi (BRANCH_COST): Likewise.
14730
7edb6247
DS
147312011-01-19 Dodji Seketeli <dodji@redhat.com>
14732
14733 PR c++/47291
14734 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
14735 (gen_scheduled_generic_parms_dies): New functions.
14736 (gen_struct_or_union_type_die): Schedule template parameters DIEs
14737 generation for the end of CU compilation.
14738 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 14739
23d5ed5d
AO
147402011-01-19 Alexandre Oliva <aoliva@redhat.com>
14741
14742 PR debug/46240
14743 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
14744 debug bind stmt on merge edges.
14745
37d6a488
AO
147462011-01-19 Alexandre Oliva <aoliva@redhat.com>
14747
14748 PR debug/47079
14749 PR debug/46724
14750 * function.c (instantiate_expr): Instantiate incoming rtl of
14751 implicit arguments, and recurse on VALUE_EXPRs.
14752 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
14753 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
14754
689f2c82
AO
147552011-01-19 Alexandre Oliva <aoliva@redhat.com>
14756
14757 * c-parser.c (c_parser_for_statement): Initialize
14758 collection_expression.
14759
03029de4
JM
147602011-01-19 Joseph Myers <joseph@codesourcery.com>
14761
14762 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
14763
3e03217e
JM
147642011-01-19 Joseph Myers <joseph@codesourcery.com>
14765
14766 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
14767 (LINK_SHLIB_SPEC): Don't use %(link_path).
14768 (SUBTARGET_EXTRA_SPECS): Remove link_path.
14769
5bbe9b3f
JM
147702011-01-19 Joseph Myers <joseph@codesourcery.com>
14771
14772 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
14773 (NO_SHARED_LIB_SUPPORT): Remove.
14774 (LINK_SHLIB_SPEC): Remove one conditional definition.
14775
368e0b39
JM
147762011-01-19 Joseph Myers <joseph@codesourcery.com>
14777
14778 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
14779 %{call_shared}.
14780 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
14781 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
14782 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
14783 %{call_shared} and conditionals on these options not being passed.
14784 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
14785 %{call_shared}.
14786
ed7656f6
JJ
147872011-01-19 Jakub Jelinek <jakub@redhat.com>
14788
68457901
JJ
14789 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
14790 simplify.
14791
ed7656f6
JJ
14792 * ipa-split.c: Spelling fixes.
14793
e0d1958f
RH
147942011-01-19 Richard Henderson <rth@redhat.com>
14795
14796 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
14797 (*mulsi3): Likewise.
14798
27098b6b
RH
14799 * longlong.h [__mn10300__] (count_leading_zeros): New.
14800 [__mn10300__] (umul_ppmm, smul_ppmm): New.
14801 [__mn10300__] (add_ssaaaa, subddmmss): New.
14802 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
14803 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
14804
d6be7c36
UW
148052011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14806
14807 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
14808
b1efde2a
RH
148092011-01-19 Richard Henderson <rth@redhat.com>
14810
44217823
RH
14811 * config/mn10300/mn10300.md (addsi3_flags): New.
14812 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
14813 (subsi3_flags, subc_internal, subdi3): New.
14814 (subdi3_internal, *subdi3_degenerate): New.
14815 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
14816
37a185d7
RH
14817 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
14818 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
14819 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
14820 * config/mn10300/mn10300-protos.h: Update.
14821 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
14822 (return_ret): Likewise. Rename from return_internal_regs.
14823 (return_internal): Remove.
14824
040c5757
RH
14825 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
14826 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
14827 (mn10300_legitimate_constant_p): Likewise.
14828 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
14829 (mn10300_frame_size): New.
14830 (mn10300_expand_prologue): Use it.
14831 (mn10300_expand_epilogue): Likewise.
14832 (mn10300_initial_offset): Likewise.
14833 * config/mn10300/mn10300-protos.h: Update.
14834 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
14835 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
14836 (prologue, epilogue, return_internal): Tidy output code.
14837 (mn10300_store_multiple_operation, return): Likewise.
14838 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
14839 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
14840 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
14841 (load_pic, am33_load_pic): New.
14842 (mn10300_load_pic0, mn10300_load_pic1): New.
14843
bad41521
RH
14844 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
14845 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
14846 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
14847 (cc_flags_for_mode, cc_flags_for_code): New.
14848 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
14849 overflow flag is not valid. Validate that the flags we need
14850 for the comparison are valid.
14851 (mn10300_output_cmp): Remove.
14852 (mn10300_output_add): New.
14853 (mn10300_select_cc_mode): Use cc_flags_for_code.
14854 (mn10300_split_cbranch): New.
14855 (mn10300_match_ccmode): New.
14856 (mn10300_split_and_operand_count): New.
14857 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
14858 to the function.
14859 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
14860 (addsi3): ... here. Use mn10300_output_add.
14861 (*addsi3_flags): New.
14862 (*am33_subsi3, *mn10300_subsi3): Merge...
14863 (subsi3): ... here. Use attribute isa.
14864 (*subsi3_flags): New.
14865 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
14866 when possible.
14867 (*am33_andsi3, *mn10300_andsi3): Merge...
14868 (andsi3): ... here.
14869 (*andsi3_flags): New.
14870 (andsi3 splitters): New.
14871 (*am33_iorsi3, *mn10300_iorsi3): Merge...
14872 (iorsi3): ... here.
14873 (*iorsi3_flags): New.
14874 (*am33_xorsi3, *mn10300_xorsi3): Merge...
14875 (xorsi3): ... here.
14876 (*xorsi3_flags): New.
14877 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
14878 (one_cmplsi2): ... here.
14879 (*one_cmplsi2_flags): New.
14880 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
14881 instead of "dax" in constraints. Use mn10300_split_cbranch.
14882 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
14883 use matching constraints to eliminate a self-comparison.
14884 (*integer_conditional_branch): Rename from integer_conditional_branch.
14885 Use int_mode_flags to match CC_REG.
14886 (*cbranchsi4_btst, *btstsi): New.
14887 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
14888 mn10300_split_cbranch.
14889 (*am33_cmpsf): Rename from am33_cmpsf.
14890 (*float_conditional_branch): Rename from float_conditional_branch.
14891 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
14892 (zero_extendqisi2): ... here.
14893 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
14894 (zero_extendhisi2): ... here.
14895 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
14896 (extendqisi2): ... here.
14897 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
14898 (extendhisi2): ... here.
14899 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
14900 (ashlsi3): ... here.
14901 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
14902 (lshrsi3): ... here.
14903 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
14904 (ashrsi3): ... here.
14905 (consecutive add peephole): Remove.
14906 * config/mn10300/predicates.md (label_ref_operand): New.
14907 (int_mode_flags): New.
14908 (CCZN_comparison_operator): New.
14909
9efb4993
RH
14910 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
14911 (throughput_42_latency_43): New reservation.
14912 (mulsidi3, umulsidi3): New expanders.
14913 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
14914 the MDR register to allocation; separately allocate the low and
14915 high parts of the DImode result.
14916 (umulsidi3_internal): Similarly.
14917 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
14918 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
14919 (udivsi3, umodsi3): Remove.
14920 (udivmodsi4, divmodsi4): New expanders.
14921 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
14922 (*divmodsi4): Simiarly.
14923 (ext_internal): New.
14924
c25a21f5
RH
14925 * config/mn10300/constraints.md ("z"): New constraint.
14926 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
14927 (FIXED_REGISTERS): Don't fix MDR.
14928 (CALL_USED_REGSITERS): Reformat nicely.
14929 (REG_ALLOC_ORDER): Add MDR.
14930 (enum regclass): Add MDR_REGS.
14931 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
14932 (IRA_COVER_CLASSES): Add MDR_REGS.
14933 (REGNO_REG_CLASS): Handle MDR_REG.
14934 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
14935 (mn10300_register_move_cost): Likewise.
14936 * config/mn10300/mn10300.md (MDR_REG): New.
14937 (*movsi_internal): Handle moves to/from MDR_REGS.
14938
36846b26
RH
14939 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
14940 POST_MODIFY.
14941 (mn10300_secondary_reload): Tidy combination reload classes.
14942 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
14943 addresses for AM33. Allow symbolic offsets for reg+imm.
14944 (mn10300_regno_in_class_p): New.
14945 (mn10300_legitimize_reload_address): New.
14946 * config/mn10300/mn10300.h (enum reg_class): Remove
14947 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
14948 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
14949 SP_OR_GENERAL_REGS.
14950 (REG_CLASS_NAMES): Update to match.
14951 (REG_CLASS_CONTENTS): Likewise.
14952 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
14953 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
14954 (REGNO_IN_RANGE_P): Remove.
14955 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
14956 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
14957 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
14958 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
14959 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
14960 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
14961 (REGNO_GENERAL_P): New.
14962 (HAVE_POST_MODIFY_DISP): New.
14963 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
14964 (LEGITIMIZE_RELOAD_ADDRESS): New.
14965 * config/mn10300/mn10300-protos.h: Update.
14966
8b119bb6
RH
14967 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
14968 DATA_REGS for AM33 stack-pointer destination.
14969 (mn10300_preferred_output_reload_class): Likewise.
14970 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
14971 into a form appropriate for ...
14972 (TARGET_SECONDARY_RELOAD): New.
14973 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
14974 * config/mn10300/mn10300-protos.h: Update.
14975 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
14976 reload_insi; use the "A" constraint for the scratch; handle AM33
14977 moves of sp to non-address registers.
14978
b1efde2a
RH
14979 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
14980 (*movqi_internal): ... here.
14981 (*am33_movhi, *mn10300_movhi): Merge into...
14982 (*movhi_internal): ... here.
14983 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
14984 as the source/destination of moves from/to SP.
14985 (movsf): Only allow for AM33-2.
1c3ba85b 14986 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
14987 any integer constant constraint. Only allow for AM33-2. Tidy
14988 all of the alternative outputs.
14989 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
14990 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
14991 for MN103.
14992 (udivsi3, umodsi3): New patterns for MN103 only.
14993
b899fd78
JR
149942011-01-19 Joern Rennecke <amylaar@spamcop.net>
14995
14996 * doc/tm.texi.in: Spell out that a lack of register class unions
14997 can lead to ICEs.
14998 * doc/tm.texi: Regenerate.
14999
afaaa67d
JJ
150002011-01-19 Jakub Jelinek <jakub@redhat.com>
15001
2e0642cd
JJ
15002 PR rtl-optimization/47337
15003 * dce.c (check_argument_store): New function.
15004 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
15005
afaaa67d
JJ
15006 PR tree-optimization/47290
15007 * tree-eh.c (infinite_empty_loop_p): New function.
15008 (cleanup_empty_eh): Use it.
15009
d2cd871f
SE
150102011-01-18 Steve Ellcey <sje@cup.hp.com>
15011
15012 PR target/46997
15013 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
15014 (a64_expand_widen_sum): Ditto.
15015 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
15016 (vec_extract_evenodd_help): Ditto.
15017 (vec_extract_evenv4hi): Ditto.
15018 (vec_extract_oddv4hi): Ditto.
15019 (vec_extract_evenv2si): Ditto.
15020 (vec_extract_oddv2si): Ditto.
15021 (vec_extract_evenv2sf): Ditto.
15022 (vec_extract_oddv2sf): Ditto.
15023 (vec_pack_trunc_v4hi: Ditto.
15024 (vec_pack_trunc_v2si): Ditto.
15025 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
15026 (vec_interleave_highv8qi): Ditto.
15027 (mix1_r): Ditto.
15028 (vec_extract_oddv8qi): Ditto.
15029 (vec_interleave_lowv4hi): Ditto.
15030 (vec_interleave_highv4hi): Ditto.
15031 (vec_interleave_lowv2si): Ditto.
15032 (vec_interleave_highv2si): Ditto.
15033
41a1208a
JDA
150342011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15035
15036 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
15037 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
15038 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
15039 (pa_c_mode_for_suffix): New.
15040 (TARGET_EXPAND_BUILTIN): Define.
15041 (TARGET_C_MODE_FOR_SUFFIX): Define.
15042 (pa_builtins): Define.
15043 (pa_init_builtins): Register __float128 type and init new support
15044 builtins.
15045 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
15046 * config/pa/quadlib.c (_U_Qfcopysign): New.
15047
1ecad98e
EB
150482011-01-18 Eric Botcazou <ebotcazou@adacore.com>
15049
15050 PR middle-end/46894
15051 * explow.c (allocate_dynamic_stack_space): Do not assume more than
15052 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
15053 are defined.
15054
d4f2460a
UW
150552011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15056
15057 PR tree-optimization/47179
15058 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
15059 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
15060
4994da65
RG
150612011-01-18 Richard Guenther <rguenther@suse.de>
15062
15063 PR rtl-optimization/47216
15064 * emit-rtl.c: Include tree-flow.h.
15065 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
15066 of replicating it with different semantics.
15067 * Makefile.in (emit-rtl.o): Adjust.
15068
1eb458d1
RR
150692011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15070
38be4072 15071 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 15072 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 15073
e7ef91dc
JJ
150742011-01-18 Jakub Jelinek <jakub@redhat.com>
15075
15076 PR rtl-optimization/47299
15077 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 15078 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
15079 * expmed.c (expand_widening_mult): Don't try to optimize constant
15080 multiplication if op0 has VOIDmode. Convert op1 constant to mode
15081 before using it.
15082
535b7874
RW
150832011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15084
15085 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
15086 spacing after 'e.g.', typos, comma, hyphenation.
15087
27bf36f3
RH
150882011-01-17 Richard Henderson <rth@redhat.com>
15089
8a5b5449
RH
15090 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
15091 (rx_restricted_mem_operand): New.
15092 (rx_shift_operand): Use register_operand.
15093 (rx_source_operand, rx_compare_operand): Likewise.
15094 * config/rx/rx.md (addsi3_flags): New expander.
15095 (adddi3): Rewrite as expander.
15096 (adc_internal, *adc_flags, adddi3_internal): New patterns.
15097 (subsi3_flags): New expander.
15098 (subdi3): Rewrite as expander.
15099 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
15100
784f69be
RH
15101 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
15102 (rx_init_builtins): Remove sat builtin.
15103 (rx_expand_builtin): Likewise.
15104 * config/rx/rx.md (ssaddsi3): New.
15105 (*sat): Rename from sat. Represent the CC_REG input.
15106
f033541c
RH
15107 * config/rx/predicates.md (rshift_operator): New.
15108 * config/rx/rx.c (rx_expand_insv): Remove.
15109 * config/rx/rx-protos.h: Update.
15110 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
15111 operand to the canonical position.
15112 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
15113 (*bitclr, *bitclr_in_memory): Similarly.
15114 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
15115 (insv): Retain the zero_extract in the expansion.
15116
34fee389
RH
15117 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
15118 (bswaphi2, bitinvert, revw): Likewise.
15119
265c835f
RH
15120 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
15121 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
15122 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
15123 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
15124 (bitset, bitset_in_memory): Likewise.
15125 (bitinvert, bitinvert_in_memory): Likewise.
15126 (bitclr, bitclr_in_memory): Likewise.
15127 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
15128 (rx_strend, rx_cmpstrn): Likewise.
15129 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
15130 (bitop peep2 patterns): Remove.
15131
b4d83be3
RH
15132 * config/rx/rx.c (rx_match_ccmode): New.
15133 * config/rx/rx-protos.h: Update.
15134 * config/rx/rx.md (abssi2): Clobber, don't set flags.
15135 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
15136 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
15137 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
15138 (fix_truncsfsi2, floatsisf2): Likewise.
15139 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
15140 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
15141 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
15142 (*subsi3_flags, *xorsi3_flags): New.
15143
d0acb939
RH
15144 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
15145
c06fc3d9
RH
15146 * config/rx/rx.c (rx_print_operand): Remove workaround for
15147 unsplit comparison operations.
15148
2882702b
RH
15149 * config/rx/rx.md (movsicc): Split after reload.
15150 (*movsicc): Merge *movsieq and *movsine via match_operator.
15151 (*stcc): New pattern.
15152
6f7310f2
RH
15153 * config/rx/rx.c (rx_float_compare_mode): Remove.
15154 * config/rx/rx.h (rx_float_compare_mode): Remove.
15155 * config/rx/rx.md (cstoresi4): Split after reload.
15156 (*sccc): New pattern.
15157
e963cb1a
RH
15158 * config/rx/predicates.md (label_ref_operand): New.
15159 (rx_z_comparison_operator): New.
15160 (rx_zs_comparison_operator): New.
15161 (rx_fp_comparison_operator): New.
15162 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
15163 Validate that the flags are set properly for the comparison.
15164 (rx_gen_cond_branch_template): Remove.
15165 (rx_cc_modes_compatible): Remove.
15166 (mode_from_flags): New.
15167 (flags_from_code): Rename from flags_needed_for_conditional.
15168 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
15169 (rx_select_cc_mode): Likewise.
15170 (rx_split_fp_compare): New.
15171 (rx_split_cbranch): New.
15172 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
15173 (*cbranchsi4): Use match_operator and rx_split_cbranch.
15174 (*cbranchsf4): Similarly.
15175 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
15176 match_operator and rx_split_cbranch.
15177 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
15178 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
15179 (*cmpsi): Rename from cmpsi.
15180 (*tstsi): Rename from tstsi.
15181 (*cmpsf): Rename from cmpsf; use CC_Fmode.
15182 (*conditional_branch): Rename from conditional_branch.
15183 (*reveresed_conditional_branch): Remove.
15184 (b<code>): Remove expander.
15185 * config/rx/rx-protos.h: Update.
15186
af530bb4
RH
15187 * config/rx/rx.c (rx_compare_redundant): Remove.
15188 * config/rx/rx.md (cmpsi): Don't use it.
15189 * config/rx/rx-protos.h: Update.
15190
27bf36f3
RH
15191 * config/rx/rx-modes.def (CC_F): New mode.
15192 * config/rx/rx.c (rx_select_cc_mode): New.
15193 * config/rx/rx.h (SELECT_CC_MODE): Use it.
15194 * config/rx/rx-protos.h: Update.
15195
d7fde127
RH
151962011-01-17 Richard Henderson <rth@redhat.com>
15197
15198 * except.c (dump_eh_tree): Fix stray ; after for statement.
15199
6ff38230
RG
152002011-01-17 Richard Guenther <rguenther@suse.de>
15201
15202 PR tree-optimization/47313
15203 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
15204 handling before copying the body. Properly deal with
15205 by-reference result in SSA form.
15206
114ce554
ILT
152072011-01-17 Ian Lance Taylor <iant@google.com>
15208
bf5cd92b 15209 PR target/47219
114ce554
ILT
15210 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
15211 (struct_value_alias_set): Don't define.
15212 (sparc_option_override): Don't set sparc_sr_alias_set and
15213 struct_value_alias_set.
15214 (save_or_restore_regs): Use gen_frame_mem rather than calling
15215 set_mem_alias_set.
15216 (sparc_struct_value_rtx): Likewise.
15217
98c6d93c
L
152182011-01-17 H.J. Lu <hongjiu.lu@intel.com>
15219
15220 PR target/47318
7a81008b 15221 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
15222 (_mm_maskstore_pd): Likewise.
15223 (_mm_maskload_ps): Likewise.
15224 (_mm_maskstore_ps): Likewise.
15225 (_mm256_maskload_pd): Change mask to __m256i.
15226 (_mm256_maskstore_pd): Likewise.
15227 (_mm256_maskload_ps): Likewise.
15228 (_mm256_maskstore_ps): Likewise.
15229
15230 * config/i386/i386-builtin-types.def: Updated.
15231 (ix86_expand_special_args_builtin): Likewise.
15232
15233 * config/i386/i386.c (bdesc_special_args): Update
15234 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
15235 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
15236 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
15237 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
15238
15239 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
15240 Use <avxpermvecmode> on mask register.
15241 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
15242
b9361af2 152432011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
15244 Michael Haubenwallner <michael.haubenwallner@salomon.at>
15245 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
15246
15247 PR target/46655
15248 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
15249 if <= USHRT_MAX in 32-bit mode.
15250
b7ae9eb5
RW
152512011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15252
15253 * doc/install.texi (Configuration, Specific): Wrap long
15254 lines in examples. Allow line wrapping in long options
15255 and URLs where beneficial for PDF output.
15256
4377fad9
RS
152572011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
15258
15259 * config/mips/mips.c (mips_classify_symbol): Don't return
15260 SYMBOL_PC_RELATIVE for nonlocal labels.
15261
55959ffa 152622011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 15263
55959ffa
EB
15264 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
15265
152662011-01-15 Jan Hubicka <jh@suse.cz>
15267
15268 PR tree-optimization/47276
be46831f
JH
15269 * ipa.c (function_and_variable_visibility): Do not try to mark alias
15270 declarations as needed.
15271
05842ff5
MJ
152722011-01-15 Martin Jambor <mjambor@suse.cz>
15273
15274 * common.opt (fdevirtualize): New flag.
15275 * doc/invoke.texi (Option Summary): Document it.
15276 * opts.c (default_options_table): Add devirtualize flag.
15277 * ipa-prop.c (detect_type_change): Return immediately if
15278 devirtualize flag is not set.
15279 (detect_type_change_ssa): Likewise.
15280 (compute_known_type_jump_func): Likewise.
15281 (ipa_analyze_virtual_call_uses): Likewise.
15282
f65cf2b7
MJ
152832011-01-14 Martin Jambor <mjambor@suse.cz>
15284
15285 PR tree-optimization/45934
15286 PR tree-optimization/46302
15287 * ipa-prop.c (type_change_info): New type.
15288 (stmt_may_be_vtbl_ptr_store): New function.
15289 (check_stmt_for_type_change): Likewise.
15290 (detect_type_change): Likewise.
15291 (detect_type_change_ssa): Likewise.
15292 (compute_complex_assign_jump_func): Check for dynamic type change.
15293 (compute_complex_ancestor_jump_func): Likewise.
15294 (compute_known_type_jump_func): Likewise.
15295 (compute_scalar_jump_functions): Likewise.
15296 (ipa_analyze_virtual_call_uses): Likewise.
15297 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
15298
eb5bb0fd
JM
152992011-01-14 Joseph Myers <joseph@codesourcery.com>
15300
15301 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
15302 * config/i386/i386.opt (msse5): New Alias.
15303
f2060fbe
JM
153042011-01-14 Joseph Myers <joseph@codesourcery.com>
15305
15306 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
15307 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15308 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15309 * config/sparc/sparc.h (CC1_SPEC): Likewise.
15310
3a7b4385
JM
153112011-01-14 Joseph Myers <joseph@codesourcery.com>
15312
15313 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
15314 -mcpu options.
15315 * config/sparc/linux64.h (CC1_SPEC): Likewise.
15316 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
15317 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
15318 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
15319 Likewise.
15320 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
15321
a7b778f8
JM
153222011-01-14 Joseph Myers <joseph@codesourcery.com>
15323
38be4072 15324 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 15325
a7edae0a
MS
153262011-01-14 Mike Stump <mikestump@comcast.net>
15327
15328 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
15329 * config/fr30/fr30.md: Likweise
15330 (movsi_push): Likewise.
15331 (movsi_pop): Likewise.
15332 (enter_func): Likewise.
15333 * config/moxie/moxie.md (movsi_push): Likewise.
15334 (movsi_pop): Likewise.
15335
cbabf03f
JM
153362011-01-14 Joseph Myers <joseph@codesourcery.com>
15337
15338 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
15339 %{no_archive} %{exact_version}.
15340 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
15341 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
15342 %{no_archive} %{exact_version}.
15343 * config/mips/openbsd.h (LINK_SPEC): Likewise.
15344 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
15345 * config/mips/vxworks.h: Likewise.
15346
438da41a
JM
153472011-01-14 Joseph Myers <joseph@codesourcery.com>
15348
38be4072 15349 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 15350
da290a42
JM
153512011-01-14 Joseph Myers <joseph@codesourcery.com>
15352
15353 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
15354 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
15355
8989d00e
JM
153562011-01-14 Joseph Myers <joseph@codesourcery.com>
15357
15358 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
15359 -nodefaultlib.
15360
a3010a69
JM
153612011-01-14 Joseph Myers <joseph@codesourcery.com>
15362
15363 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
15364 for mcpu not cpu.
15365 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
15366 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
15367 not cpu.
15368 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
15369 Don't handle -shlib.
15370
e7f2f537
JM
153712011-01-14 Joseph Myers <joseph@codesourcery.com>
15372
15373 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
15374 (CC1_SPEC): Don't handle -profile.
15375
34830bfd
JM
153762011-01-14 Joseph Myers <joseph@codesourcery.com>
15377
15378 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
15379 * config/mips/mips.h (CC1_SPEC): Likewise.
15380
b2d36e74
JM
153812011-01-14 Joseph Myers <joseph@codesourcery.com>
15382
15383 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
15384 * config/mips/mips.h (CC1_SPEC): Likewise.
15385
dabadc52
JM
153862011-01-14 Joseph Myers <joseph@codesourcery.com>
15387
15388 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
15389 * config/m32r/linux.h (LINK_SPEC): Likewise.
15390 * config/mips/linux.h (LINK_SPEC): Likewise.
15391 * config/mips/linux64.h (LINK_SPEC): Likewise.
15392 * config/sparc/linux.h (LINK_SPEC): Likewise.
15393 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15394 LINK_SPEC): Likewise.
15395 * config/xtensa/linux.h (LINK_SPEC): Likewise.
15396
43ee6785
JM
153972011-01-14 Joseph Myers <joseph@codesourcery.com>
15398
15399 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
15400 %{version:-v}.
15401 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
15402
45e79dfd
JM
154032011-01-14 Joseph Myers <joseph@codesourcery.com>
15404
15405 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
15406 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
15407
37e9e71d
JM
154082011-01-14 Joseph Myers <joseph@codesourcery.com>
15409
15410 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
15411
bb127cd8
RO
154122011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15413
15414 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
15415 supports -Bstatic/-Bdynamic.
15416 * configure: Regenerate.
15417
89a012ea 154182011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 15419 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
15420
15421 PR target/46037
15422 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
15423 when checking debug_info_level. Test write_symbols instead of
15424 debug_hooks->var_location when setting flag_var_tracking_uninit.
15425
7352c013
RG
154262011-01-14 Richard Guenther <rguenther@suse.de>
15427
15428 PR tree-optimization/47179
15429 * target.def (ref_may_alias_errno): New target hook.
15430 * targhooks.h (default_ref_may_alias_errno): Declare.
15431 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
15432 (default_ref_may_alias_errno): New function.
15433 * target.h (struct ao_ref_s): Declare.
15434 * tree-ssa-alias.c: Include target.h.
15435 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
15436 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
15437 (targhooks.o): Likewise.
15438 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
15439 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
15440
9a6c9288
RG
154412011-01-14 Richard Guenther <rguenther@suse.de>
15442
15443 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
15444
0fdb0d27
RG
154452011-01-14 Richard Guenther <rguenther@suse.de>
15446
15447 PR tree-optimization/47280
15448 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
15449 return CFG changes.
15450 (tree_ssa_forward_propagate_single_use_vars): Deal with
15451 CFG changes from associate_plusminus.
15452
8f66db3b
RG
154532011-01-14 Richard Guenther <rguenther@suse.de>
15454
15455 PR middle-end/47281
15456 Revert
15457 2011-01-11 Richard Guenther <rguenther@suse.de>
15458
280d9630
EB
15459 PR tree-optimization/46076
15460 * tree-ssa.c (useless_type_conversion_p): Conversions from
15461 unprototyped to empty argument list function types are useless.
8f66db3b 15462
6c0c92e6
RG
154632011-01-14 Richard Guenther <rguenther@suse.de>
15464
15465 PR tree-optimization/47286
280d9630 15466 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 15467
db09f943
MJ
154682011-01-14 Martin Jambor <mjambor@suse.cz>
15469
15470 PR middle-end/46823
15471 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
15472
dde8a3a4
AS
154732011-01-13 Anatoly Sokolov <aesok@post.ru>
15474
15475 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
15476 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15477 * config/xtensa/xtensa.c (xtensa_libcall_value,
15478 xtensa_function_value_regno_p): New functions.
15479 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
15480
a2b63a20
KT
154812011-01-13 Kai Tietz <kai.tietz@onevision.com>
15482
15483 PR c++/47213
15484 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
15485 PE specific hook.
15486 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
15487 New function prototype.
15488 * config/i386/winnt.c (i386_pe_assemble_visibility):
15489 Warn only if attribute was specified by user.
15490
b41f0b34
MM
154912011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
15492
15493 PR target/47251
15494 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
15495 floating point.
15496 (floatunsdidf2_fcfidu): Ditto.
15497
3f3c098d
AK
154982011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15499
15500 * config/s390/s390.c (print_operand_address): Replace 'error' with
15501 'output_operand_lossage'.
15502 (print_operand): Likewise.
15503
29fa95ed
JL
155042011-01-13 Jeff Law <law@redhat.com>
15505
280d9630 15506 PR rtl-optimization/39077
29fa95ed
JL
15507 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
15508 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
15509 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
15510 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
15511 * gcse.c (prune_insertions_deletions): New function.
15512 (compute_pre_data): Use it.
15513
71d12276
DS
155142011-01-13 Dodji Seketeli <dodji@redhat.com>
15515
15516 PR debug/PR46973
15517 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
15518 static function.
61052244 15519 (prune_unused_types_mark): Use it.
71d12276 15520
9b0f04e7
AB
155212011-01-13 Andrey Belevantsev <abel@ispras.ru>
15522
15523 PR rtl-optimization/45352
1c3ba85b 15524 * sel-sched.c: Update copyright years.
9b0f04e7 15525 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 15526 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 15527
d6a3e264
RH
155282011-01-12 Richard Henderson <rth@redhat.com>
15529
a49b692a
RH
15530 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
15531 (TARGET_MD_ASM_CLOBBERS): New.
15532
126b1483
RH
15533 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
15534 (TARGET_DELEGITIMIZE_ADDRESS): New.
15535
f3d9d2e0
RH
15536 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
15537 (clzsi2, *bsch): New patterns.
15538
d84760c9
RH
15539 * config/mn10300/mn10300.md (INT): New mode iterator.
15540 (*mov<INT>_clr): New pattern, and peep2 to generate it.
15541
ec815d65
RH
15542 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
15543 flag_split_wide_types.
15544
d6a3e264
RH
15545 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
15546 (mn10300_trampoline_init): Rewrite without a template, an immediate
15547 load and a direct branch.
15548 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
15549
0f8ab434
AS
155502011-01-12 Anatoly Sokolov <aesok@post.ru>
15551
15552 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15553 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
15554 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
15555 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15556
d8a24b65
KT
155572011-01-12 Kai Tietz <kai.tietz@onevision.com>
15558
15559 PR debug/47209
15560 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
15561 of type.
15562
56e22cab
JH
155632011-01-12 Jan Hubicka <jh@suse.cz>
15564
15565 PR driver/47244
15566 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
15567 (PLUGIN_COND_CLOSE): New macro.
15568 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
15569
4b18b3c2
RG
155702011-01-12 Richard Guenther <rguenther@suse.de>
15571
15572 PR lto/47259
15573 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
15574 register variables in a MEM_REF.
15575
8e38461c
JM
155762011-01-12 Joseph Myers <joseph@codesourcery.com>
15577
15578 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
15579 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
15580 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
15581 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15582 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15583 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
15584 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
15585 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
15586 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
15587 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
15588 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
15589 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
15590 * config/gnu-user.h: New. Copied from linux.h.
15591 (LINUX_TARGET_STARTFILE_SPEC): Rename to
15592 GNU_USER_TARGET_STARTFILE_SPEC.
15593 (LINUX_TARGET_ENDFILE_SPEC): Rename to
15594 GNU_USER_TARGET_ENDFILE_SPEC.
15595 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
15596 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
15597 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
15598 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
15599 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
15600 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
15601 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
15602 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
15603 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
15604 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
15605 * config/arm/linux-eabi.h (CC1_SPEC): Use
15606 GNU_USER_TARGET_CC1_SPEC.
15607 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
15608 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
15609 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
15610 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
15611 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
15612 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
15613 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
15614 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
15615
a570fc16
RG
156162011-01-12 Richard Guenther <rguenther@suse.de>
15617
15618 PR other/46946
15619 * doc/invoke.texi (ffast-math): Document it is turned on
15620 with -Ofast.
15621
b0223c3e
JH
156222011-01-12 Jan Hubicka <jh@suse.cz>
15623
15624 PR tree-optimization/47233
ca1e00b3
EB
15625 * opts.c (common_handle_option): Disable ipa-reference with profile
15626 feedback.
b0223c3e 15627
1c3ba85b 156282011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
15629
15630 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
15631 error message.
15632
d853ee42
NP
156332011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
15634
15635 * c-parser.c (c_lex_one_token): Updated and reindented some
15636 comments. No changes in code.
15637
4053a5a0
ILT
156382011-01-11 Ian Lance Taylor <iant@google.com>
15639
15640 * godump.c (go_output_var): Don't output the variable if there is
15641 already a type with the same name.
15642
fa3e04d2
ILT
156432011-01-11 Ian Lance Taylor <iant@google.com>
15644
15645 * godump.c (go_format_type): Don't generate float80.
15646
885fe07c
RH
156472011-01-11 Richard Henderson <rth@redhat.com>
15648
72d6e3c5
RH
15649 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
15650 declaration. Rewrite for both speed and size.
15651 (mn10300_address_cost_1): Remove.
15652 (mn10300_register_move_cost): New.
15653 (mn10300_memory_move_cost): New.
15654 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
15655 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
15656 extensions, shifts, BSWAP, CLZ.
15657 (mn10300_wide_const_load_uses_clr): Remove.
15658 (TARGET_REGISTER_MOVE_COST): New.
15659 (TARGET_MEMORY_MOVE_COST): New.
15660 * config/mn10300/mn10300-protos.h: Update.
15661 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
15662
df37c023
RH
15663 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
15664 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
15665 * config/mn10300/mn10300-protos.h: Update.
15666 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
15667 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
15668 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
15669 (*test_int_bitfield, *test_byte_bitfield): Remove.
15670 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 15671 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 15672
85a337b5
RH
15673 * config/mn10300/constraints.md ("c"): Rename from "A".
15674 ("A", "D"): New constraint letters.
15675 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
15676 (fmssf4, fnmasf4, fnmssf4): Likewise.
15677
a5c727e3
RH
15678 * config/mn10300/mn10300.md (isa): New attribute.
15679 (enabled): New attribute.
15680
0d9e23f4
RH
15681 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
15682 (abssf2, negsf2): Define only for hardware fp.
15683 (sqrtsf2): Reformat.
15684 (addsf3, subsf3, mulsf3): Merge expander and insn.
15685
c157b3f0
RH
15686 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
15687 (DEBUGGER_AUTO_OFFSET): Remove.
15688 (DEBUGGER_ARG_OFFSET): Remove.
15689
cc909bba
RH
15690 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
15691 Emit register stores with the same offsets as the hardware.
15692 (mn10300_store_multiple_operation): Don't check that the register
15693 save offsets are monotonic.
15694 * config/mn10300/mn10300-protos.h: Update.
15695
e3b5c2f3
RH
15696 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
15697
885fe07c
RH
15698 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
15699 in terms of the value on the stack, not the MDR register.
15700
6e701822
JH
157012011-01-11 Jan Hubicka <jh@suse.cz>
15702
15703 PR lto/45721
15704 PR lto/45375
15705 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
15706 (symbol_alias_set_destroy, symbol_alias_set_contains,
15707 propagate_aliases_backward): Declare.
15708 * lto-streamer-out.c (struct sets): New sturcture.
15709 (trivally_defined_alias): New function.
15710 (output_alias_pair_p): Rewrite.
15711 (output_unreferenced_globals): Fix output of alias pairs.
15712 (produce_symtab): Likewise.
15713 * ipa.c (function_and_variable_visibility): Set weak alias destination
15714 as needed in lto.
15715 * varasm.c (symbol_alias_set_t): Remove.
15716 (symbol_alias_set_destroy): Export.
15717 (propagate_aliases_forward, propagate_aliases_backward): New functions
15718 based on ...
15719 (compute_visible_aliases): ... this one; remove.
15720 (trivially_visible_alias): New
15721 (trivially_defined_alias): New.
15722 (remove_unreachable_alias_pairs): Rewrite.
15723 (finish_aliases_1): Reorganize code checking if alias is defined.
15724 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
15725 in LTO mode.
15726
1b248907
RG
157272011-01-11 Richard Guenther <rguenther@suse.de>
15728
15729 PR tree-optimization/46076
15730 * tree-ssa.c (useless_type_conversion_p): Conversions from
15731 unprototyped to empty argument list function types are useless.
15732
b1923f0a
RG
157332011-01-11 Richard Guenther <rguenther@suse.de>
15734
15735 PR middle-end/45235
15736 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
15737 volatile MEMs as MEM_READONLY_P.
15738
e98965af
RG
157392011-01-11 Richard Guenther <rguenther@suse.de>
15740
15741 PR tree-optimization/47239
15742 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
15743
9f9ca914
JL
157442011-01-11 Jeff Law <law@redhat.com>
15745
1ee3ea05 15746 PR tree-optimization/47086
9f9ca914
JL
15747 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
15748 IVs from statements that might throw.
15749
345fdcb7
JH
157502011-01-10 Jan Hubicka <jh@suse.cz>
15751
15752 PR lto/45375
15753 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
15754
c459c97b
JH
157552011-01-10 Jan Hubicka <jh@suse.cz>
15756
15757 PR lto/45375
15758 * profile.c (read_profile_edge_counts): Ignore profile inconistency
15759 when correcting profile.
15760
06c9eb51
JH
157612011-01-10 Jan Hubicka <jh@suse.cz>
15762
15763 PR lto/46083
15764 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
15765 DECL_FINI_PRIORITY.
15766 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
15767 Restore DECL_FINI_PRIORITY.
15768
ae9fd815
RW
157692011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15770
15771 * doc/gimple.texi: Fix quoting of multi-word return values in
15772 @deftypefn statements. Ensure presence of return value. Wrap
15773 overlong @deftypefn lines.
15774 (is_gimple_operand, is_gimple_min_invariant_address): Remove
15775 descriptions of removed functions.
15776 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
15777 of multi-word return value in @deftypefn statement.
15778
0ecb4a7c
RW
157792011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15780
15781 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
15782 (Conditional Expressions, Logical Operators)
15783 (Statement and operand traversals): Do not indent smallexample
15784 code. Fix duplicate function argument in example.
15785
2e5e346d
JL
157862011-01-10 Jeff Law <law@redhat.com>
15787
1ee3ea05 15788 PR tree-optimization/47141
2e5e346d
JL
15789 * ipa-split.c (split_function): Handle case where we are
15790 returning a value and the return block has a virtual operand phi.
15791
cf9712cc
JH
157922011-01-10 Jan Hubicka <jh@suse.cz>
15793
1c3ba85b 15794 PR tree-optimization/47234
cf9712cc
JH
15795 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
15796 (pass_feedback_split_functions): Declare.
15797 * passes.c (init_optimization_passes): Add ipa-split as subpass of
15798 tree-profile.
15799 * ipa-split.c (gate_split_functions): Update comments; disable
15800 split-functions for profile_arc_flag and branch_probabilities.
15801 (gate_feedback_split_functions): New function.
15802 (execute_feedback_split_functions): New function.
15803 (pass_feedback_split_functions): New global var.
15804
94cd932c
L
158052011-01-10 H.J. Lu <hongjiu.lu@intel.com>
15806
15807 PR lto/46760
15808 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
15809 calling gimple_call_set_cannot_inline.
15810
fbbfcaf1
IS
158112011-01-10 Iain Sandoe <iains@gcc.gnu.org>
15812
15813 * config/darwin-sections.def: Remove unused section.
15814
d06865bf
DK
158152011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
15816
15817 PR c++/47218
15818 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
15819
96bbfbac
NP
158202011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
15821
15822 PR objc/47232
15823 * c-parser.c (c_parser_declaration_or_fndef): Improved
15824 error message.
15825
1ba6516f
KT
158262011-01-09 Kai Tietz <kai.tietz@onevision.com>
15827
15828 * config/i386/winnt.c (i386_pe_start_function): Make sure
15829 to switch back to function's section.
15830
0c5d770e
IS
158312011-01-09 Iain Sandoe <iains@gcc.gnu.org>
15832
15833 PR gcc/46902
15834 PR testsuite/46912
15835 * plugin.c: Move include of dlfcn.h from here...
15836 * system.h: ... to here.
15837
158382011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
15839
15840 * doc/cpp.texi (C++ Named Operators): Fix markup for header
15841 file name.
15842 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
15843 two extra empty pages in PDF output.
15844
046608a3
NP
158452011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
15846
15847 PR objc/47078
15848 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
15849 for error recovery purposes behave as if it was not specified so
15850 that the default type is usd.
15851
8cb114b9
JH
158522011-01-07 Jan Hubicka <jh@suse.cz>
15853
15854 PR tree-optmization/46469
15855 * ipa.c (function_and_variable_visibility): Clear needed flags on
15856 nodes with external decls; handle weakrefs merging correctly.
15857
b294a75e
JM
158582011-01-07 Joseph Myers <joseph@codesourcery.com>
15859
15860 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
15861 not false.
15862
96bdf9b4
JH
158632011-01-07 Jan Hubicka <jh@suse.cz>
15864
f60c2554 15865 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
15866 and no longer claim that gold is required for linker plugin.
15867 * configure: Regenerate.
15868 * gcc.c (PLUGIN_COND): New macro.
15869 (LINK_COMMAND_SPEC): Use it.
15870 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
15871 * config.in (HAVE_LTO_PLUGIN): New.
15872 * configure.ac (--with-lto-plugin): New parameter; autodetect
15873 HAVE_LTO_PLUGIN.
15874
17afc0fe
JH
158752011-01-07 Jan Hubicka <jh@suse.cz>
15876
15877 PR tree-optimization/46367
15878 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
15879 when we can update original.
15880 (cgraph_mark_inline_edge): Sanity check.
15881 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
15882
d4c48c0f
UW
158832011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15884
15885 * config/spu/spu.h (ASM_COMMENT_START): Define.
15886
96f5b137
L
158872011-01-07 H.J. Lu <hongjiu.lu@intel.com>
15888
15889 PR driver/42445
15890 * gcc.c (%>S): New.
15891 (SWITCH_KEEP_FOR_GCC): Likewise.
15892 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
15893 (do_spec_1): Handle "%>".
15894
15895 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
15896
c6a8f6de
JJ
158972011-01-07 Jakub Jelinek <jakub@redhat.com>
15898
c21bbd7a
JJ
15899 PR target/47201
15900 * config/i386/i386.c (ix86_delegitimize_address): If
15901 simplify_gen_subreg fails, return orig_x.
15902
c6a8f6de
JJ
15903 PR bootstrap/47187
15904 * value-prof.c (gimple_stringop_fixed_value): Handle
15905 lhs of the call properly.
15906
fe95fbf9
JH
159072011-01-07 Jan Hubicka <jh@suse.cz>
15908
15909 PR lto/45375
15910 * lto-opt.c (lto_reissue_options): Set flag_shlib.
15911
14d11d40
IS
159122011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15913
72e961c8
EB
15914 * target.def (function_switched_text_sections): New hook.
15915 * doc/tm.texi: Regenerated.
15916 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15917 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
15918 (final_scan_insn): Call function_switched_text_sections when a
15919 mid-function section change occurs.
14d11d40 15920 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
15921 * config/darwin-protos.h (darwin_function_switched_text_sections):
15922 Likewise.
14d11d40 15923 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 15924 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 15925
0b764288
IS
159262011-01-07 Iain Sandoe <iains@gcc.gnu.org>
15927
15928 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
15929 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
15930 the secondary code fragment when outputting for DWARF == 2.
15931
2ac6bb04
AS
159322011-01-07 Anatoly Sokolov <aesok@post.ru>
15933
15934 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15935 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
15936 Remove.
15937 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
15938 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15939
9f82de11
EB
159402011-01-06 Eric Botcazou <ebotcazou@adacore.com>
15941
15942 PR debug/46704
280d9630
EB
15943 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
15944 when it is not empty.
9f82de11
EB
15945
159462011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 15947
1ed72abf 15948 Bobcat Enablement
14b52538 15949 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 15950 (case ${target}): Add btver1.
14b52538 15951 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 15952 -march=native recognize btver1 processors.
14b52538 15953 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 15954 btver1 def_and_undef
14b52538 15955 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
15956 btver1 cost table.
15957 (m_BTVER1): New definition.
15958 (m_AMD_MULTIPLE): Includes m_BTVER1.
15959 (initial_ix86_tune_features): Add btver1 tune.
15960 (processor_target_table): Add btver1 entry.
15961 (static const char *const cpu_names): Add btver1 entry.
15962 (software_prefetching_beneficial_p): Add btver1.
15963 (ix86_option_override_internal): Add btver1 instruction sets.
15964 (ix86_issue_rate): Add btver1.
15965 (ix86_adjust_cost): Add btver1.
14b52538 15966 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
15967 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
15968 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
15969 * config/i386/i386.md (define_attr "cpu"): Add btver1.
15970
e1a973d8
RO
159712011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15972
15973 PR target/43309
15974 * config/i386/i386.c (legitimize_tls_address)
15975 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
15976 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
15977 (tls_initial_exec_64_sun): New pattern.
15978
c73f67c5
GP
159792011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15980
15981 * doc/invoke.texi (Overall Options): Improve wording and markup
15982 of the description of -wrapper.
15983
bc4c6f9c
JM
159842011-01-06 Joseph Myers <joseph@codesourcery.com>
15985
15986 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
15987 rdynamic, threads): New Driver options.
15988
adb75db0
RO
159892011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15990
15991 PR target/38118
15992 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
15993 if coming from .tdata.
15994 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
15995
402c1cb4
JH
159962011-01-06 Jan Hubicka <jh@suse.cz>
15997
15998 PR lto/47188
15999 * collect2.c (main): Do not enable LTOmode when plugin is active.
16000
a4da6485
RO
160012011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16002
16003 PR other/45915
16004 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
16005 --version output if supported.
16006 * configure: Regenerate.
16007
028dbdf4
JM
160082011-01-06 Joseph Myers <joseph@codesourcery.com>
16009
16010 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
16011 Driver options.
16012
dfe776dd
JJ
160132011-01-06 Jakub Jelinek <jakub@redhat.com>
16014
16015 PR c/47150
16016 * c-convert.c (convert): When converting a complex expression
16017 other than COMPLEX_EXPR to a different complex type, ensure
16018 c_save_expr is called instead of save_expr, unless in_late_binary_op.
16019 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
16020 when converting COMPLEX_TYPE.
16021
210dedfe
IR
160222011-01-06 Ira Rosen <irar@il.ibm.com>
16023
16024 PR tree-optimization/47139
16025 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
16026 only the last reduction value is used outside the loop. Update
16027 documentation.
16028
cd33a412
JM
160292011-01-05 Joseph Myers <joseph@codesourcery.com>
16030
16031 * config/rtems.opt: New.
16032 * config.gcc (*-*-rtems*): Use rtems.opt.
16033
819edd94
CF
160342011-01-05 Changpeng Fang <changpeng.fang@amd.com>
16035
16036 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
16037 processors do not support 3DNow instructions.
16038
dc242c4a
UW
160392011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16040
16041 * config/spu/spu.c (spu_option_override): Set parameter
16042 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
16043
be286227
JH
160442011-01-05 Jan Hubicka <jh@suse.cz>
16045
16046 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
16047 at the command line.
16048
644e637f
MJ
160492011-01-05 Martin Jambor <mjambor@suse.cz>
16050
16051 PR lto/47162
16052 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
16053 deltas on streamed outgoing edges.
16054 (output_node_opt_summary): Output info for outgoing edges only when
16055 the node is in new parameter set.
16056 (output_cgraph_opt_summary): New parameter set, passed to the two
16057 aforementioned functions. Update its forward declaration and its
16058 callee too.
16059
7bd11157
TT
160602011-01-05 Tom Tromey <tromey@redhat.com>
16061
16062 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
16063 operator to c_finish_omp_atomic.
16064 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
16065 (build_unary_op): Update.
16066 (build_modify_expr): Update.
16067 (build_asm_expr): Update.
16068
f626b979
UW
160692011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16070
16071 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
16072 newly inserted insns.
16073 (pad_bb): Likewise.
16074 (spu_emit_branch_hint): Likewise.
16075 (insert_hbrp_for_ilb_runout): Likewise.
16076 (spu_machine_dependent_reorg): Call df_finish_pass after
16077 schedule_insns returns.
16078
4c825c02
UW
160792011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16080
16081 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
16082
5e9fba51
EB
160832011-01-05 Eric Botcazou <ebotcazou@adacore.com>
16084
16085 PR tree-optimization/47005
16086 * tree-sra.c (struct access): Add 'non_addressable' bit.
16087 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
16088 (decide_one_param_reduction): Return 0 if the parameter is passed by
16089 reference and one of the accesses in the group is non_addressable.
16090
3ebb5ca6
EB
160912011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16092
16093 PR tree-optimization/47056
16094 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
16095 (mark_load): Likewise. Handle FUNCTION_DECL specially.
16096 (mark_store): Likewise. Pass STMT to ipa_record_reference.
16097
d5d4d14e
EB
160982011-01-04 Eric Botcazou <ebotcazou@adacore.com>
16099
16100 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
16101 initializer. Skip view conversions from aggregate types.
16102
d996ef70
KT
161032011-01-04 Kai Tietz <kai.tietz@onevision.com>
16104
16105 PR bootstrap/47055
16106 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
16107
509d65dd 161082011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
16109
16110 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
16111 obvious typo.
16112
55c623b5
UW
161132011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16114
16115 * function.c (thread_prologue_and_epilogue_insns): Do not crash
16116 on empty epilogue sequences.
16117
b98d6b35
JM
161182011-01-04 Joseph Myers <joseph@codesourcery.com>
16119
16120 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
16121 non-static): New Driver options.
16122
a0d43bac
JZ
161232011-01-04 Jie Zhang <jie@codesourcery.com>
16124
16125 PR driver/47137
16126 * gcc.c (default_compilers[]): Set combinable field to 0
16127 for all assembly languages.
16128
2b18eb32
MX
161292011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
16130
16131 * config/mips/loongson3a.md: New file.
16132 * config/mips/mips.md: Include loongson3a.md.
16133 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
16134 TUNE_LOONGSON_3A.
16135
42a48c4f
EB
161362011-01-03 Eric Botcazou <ebotcazou@adacore.com>
16137
16138 PR middle-end/47017
16139 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
16140 instead of convert_memory_address_addr_space on the base expression.
16141
9c1732c4
UW
161422011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16143
16144 * config/spu/spu.c (spu_option_override): Update error text
16145 for bad -march= / -mtune= values.
16146
aa474365
UW
161472011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16148
16149 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
16150 if branch-hint optimization will be performed.
16151
9766135b
JJ
161522011-01-03 Jakub Jelinek <jakub@redhat.com>
16153
371556ee
JJ
16154 PR tree-optimization/47148
16155 * ipa-split.c (split_function): Convert arguments to
16156 DECL_ARG_TYPE if possible.
16157
1ac12fa2
JJ
16158 PR tree-optimization/47155
16159 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
16160 when computing uns.
16161
9766135b
JJ
16162 PR rtl-optimization/47157
16163 * combine.c (try_combine): If undobuf.other_insn becomes
16164 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
16165 and set *new_direct_jump_p too.
16166
f4a2e571
SP
161672011-01-03 Sebastian Pop <sebastian.pop@amd.com>
16168
16169 PR tree-optimization/47021
16170 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
16171
9f8e43c0
JJ
161722011-01-03 Jakub Jelinek <jakub@redhat.com>
16173
16174 * gcc.c (process_command): Update copyright notice dates.
16175 * gcov.c (print_version): Likewise.
16176 * gcov-dump.c (print_version): Likewise.
16177 * mips-tfile.c (main): Likewise.
16178 * mips-tdump.c (main): Likewise.
16179
1a2e38f3
MJ
161802011-01-03 Martin Jambor <mjambor@suse.cz>
16181
16182 PR tree-optimization/46801
16183 * tree-sra.c (type_internals_preclude_sra_p): Check whether
16184 aggregate fields start at byte boundary instead of the bit-field flag.
16185
56b721c5
L
161862011-01-03 H.J. Lu <hongjiu.lu@intel.com>
16187
16188 PR driver/47137
16189 * gcc.c (main): Revert revision 168407.
16190
839d549b
MJ
161912011-01-03 Martin Jambor <mjambor@suse.cz>
16192
16193 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
16194
4ce99a20 161952011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
16196
16197 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
16198 vector optab to expand vector/scalar shift, update gimple to vector.
16199
76df0ae6
MJ
162002011-01-03 Martin Jambor <mjambor@suse.cz>
16201
16202 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
16203 a thunk.
16204
ce47fda3
MJ
162052011-01-03 Martin Jambor <mjambor@suse.cz>
16206
16207 PR tree-optimization/46984
16208 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
16209 HOST_WIDE_INT.
16210 (cgraph_create_indirect_edge): Fixed line length.
16211 (cgraph_indirect_call_info): Declare.
16212 (cgraph_make_edge_direct) Update declaration.
16213 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
16214 (cgraph_create_indirect_edge): Use it.
16215 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
16216 callees.
16217 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
16218 the new thunk_delta representation.
16219 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
16220 HOST_WIDE_INT.
16221 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
16222 (ipa_read_indirect_edge_info): Likewise.
16223 * lto-cgraph.c (output_edge_opt_summary): New function.
16224 (output_node_opt_summary): Call it on all outgoing edges.
16225 (input_edge_opt_summary): New function.
16226 (input_node_opt_summary): Call it on all outgoing edges.
16227
1e67fa1f
L
162282011-01-02 H.J. Lu <hongjiu.lu@intel.com>
16229
16230 PR driver/47137
16231 * gcc.c (main): Don't check have_o when settting combine_inputs.
16232
6656b2ac
EB
162332011-01-02 Eric Botcazou <ebotcazou@adacore.com>
16234
16235 * regrename.c: Add general comment describing the pass.
16236 (struct du_head): Remove 'length' field.
16237 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
16238 (regrename_optimize): Do not sort chains. Rework comments, add others.
16239 Force renaming to the preferred class (if any) in the first pass and do
16240 not consider registers that belong to it in the second pass.
16241 (create_new_chain): Do not set 'length' field.
16242 (scan_rtx_reg): Likewise.
16243
bc470c24
JJ
162442011-01-02 Jakub Jelinek <jakub@redhat.com>
16245
4e996296
JJ
16246 PR tree-optimization/47140
16247 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
16248 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
16249 to bit_value_binop.
16250
bc470c24 16251 PR rtl-optimization/47028
6656b2ac
EB
16252 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
16253 parm_birth_insn instead of at the beginning of first bb.
bc470c24 16254
5af62fcd 162552011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
16256
16257 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
16258 Remove the word "see" before "@pxref".
16259 * doc/rtl.texi: Remove the word "see" before "@pxref".
16260
0e20c89f
JH
162612011-01-01 Jan Hubicka <jh@suse.cz>
16262
6656b2ac
EB
16263 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
16264 memory.
0e20c89f 16265
220e83ca
KT
162662011-01-01 Kai Tietz <kai.tietz@onevision.com>
16267
16268 PR target/38662
6656b2ac 16269 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 16270
ad41bd84 16271\f
797103eb 16272Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
16273
16274Copying and distribution of this file, with or without modification,
16275are permitted in any medium without royalty provided the copyright
16276notice and this notice are preserved.