]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gimple.c (gimple_types_compatible_p_1): Use names of the type itself, not its main...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c11b6902
RG
12011-05-16 Richard Guenther <rguenther@suse.de>
2
3 * gimple.c (gimple_types_compatible_p_1): Use names of the
4 type itself, not its main variant.
5 (iterative_hash_gimple_type): Likewise.
6
1e83b5f1
RG
72011-05-16 Richard Guenther <rguenther@suse.de>
8
9 * gimple.c (iterative_hash_gimple_type): Re-instantiate
10 change to always visit pointer target and function result
11 and argument types.
12
62e36382
JM
132011-05-16 Jason Merrill <jason@redhat.com>
14
15 PR c++/48999
16 * tree-inline.c (copy_statement_list): Put back recursion.
17
687027a4
GJL
182011-05-16 Georg-Johann Lay <avr@gjlay.de>
19
20 PR target/27663
21 PR target/41076
22 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
23 * config/avr/avr.md ("*ior<mode>qi.byte0",
24 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
25
f24a5190
GJL
262011-05-16 Georg-Johann Lay <avr@gjlay.de>
27
28 PR target/45099
29 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
30 register is needed for a function argument.
31
3066f593
RG
322011-05-16 Richard Guenther <rguenther@suse.de>
33
34 * gimple.c (struct type_hash_pair): New type.
35 (type_hash_pair_compare): New function.
36 (iterative_hash_gimple_type): Mix in SCC member hashes in
37 hash-order.
38
b2ab2cf4
RE
392011-05-16 Revital Eres <revital.eres@linaro.org>
40
41 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P
42 first.
43
dfb737fc
UB
442011-05-15 Uros Bizjak <ubizjak@gmail.com>
45
46 * config/i386/i386.md (floating point move splitters): Fix
47 usage of standard_80387_constant_p.
48 (ix86_preferred_reload_class): Ditto.
49
8caa1de0
UB
502011-05-15 Uros Bizjak <ubizjak@gmail.com>
51
52 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
53
8a519095
EB
542011-05-14 Eric Botcazou <ebotcazou@adacore.com>
55
56 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
57 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
58 (tree_ssa_lim_finalize): Likewise.
59
479fecd3
UB
602011-05-14 Uros Bizjak <ubizjak@gmail.com>
61
62 * config/i386/constraint.md (Yd, Yx): New register constraints.
63 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
64 Yd conditional register constraint.
65 (*movtf_internal): Use standard_sse_constant_opcode.
66 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
67 Yx conditional register constraint.
68 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
69 Yd conditional register constraint. Use standard_sse_constant_p to
70 check for valid SSE constants and call standard_sse_constant_opcode to
71 output SSE insn.
72 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
73 constants and call standard_sse_constant_opcode to output SSE insn.
74 * config/i386/i386.c (ix86_option_ovverride_internal): Set
75 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
76 optimize_size is set.
77 (standard_sse_constant_opcode): Output conditional AVX insn templates.
78
792011-05-14 Uros Bizjak <ubizjak@gmail.com>
80
81 * config/i386/constraint.md (Yd, Yx): New register constraints.
82 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
83 Yd conditional register constraint.
84 (*movtf_internal): Use standard_sse_constant_opcode.
85 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
86 Yx conditional register constraint.
87 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
88 Yd conditional register constraint. Use standard_sse_constant_p to
89 check for valid SSE constants and call standard_sse_constant_opcode to
90 output SSE insn.
91 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
92 constants and call standard_sse_constant_opcode to output SSE insn.
93 * config/i386/i386.c (ix86_option_ovverride_internal): Set
94 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
95 optimize_size is set.
96 (standard_sse_constant_opcode): Output conditional AVX insn templates.
97
2d8c9ad5
TB
982011-05-14 Tobias Burnus <burnus@net-b.de>
99
100 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
101
411a20d6
MJ
1022011-05-13 Martin Jambor <mjambor@suse.cz>
103
104 * ipa-prop.c (ipa_cst_from_jfunc): New function.
105 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
106 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
107 (evaluate_conditions_for_ipcp_clone): Removed.
108 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
109 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
110 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
111
dc764d10
EB
1122011-05-13 Eric Botcazou <ebotcazou@adacore.com>
113
114 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
115 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
116 lieu of MAY_HAVE_DEBUG_STMTS.
117 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
118 debug statements if !MAY_HAVE_DEBUG_STMTS.
119
9f47a24e
MT
1202011-05-13 Martin Thuresson <martint@google.com>
121
122 PR gcov-profile/47793
123 * libgcov.c (gcov_exit): Support relative profile paths.
124 * doc/invoke.texi (-fprofile-dir): Update for above change.
125
b8a71aed
RG
1262011-05-13 Richard Guenther <rguenther@suse.de>
127
128 * gimple.c (gimple_canonical_types_compatible_p): Do not use
129 type-pair caching, do not compare hashes.
130
eb9f9259
NF
1312011-05-13 Nathan Froyd <froydnj@codesourcery.com>
132
133 PR middle-end/48965
134 * tree-cfg.c (edge_to_cases_cleanup): Return true.
135 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
136
3c6cbf7a
KT
1372011-05-13 Kai Tietz <ktietz@redhat.com>
138
139 * gimplify.c (gimplify_expr): Make sure operand is boolified.
140 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
141 compatible type for TRUTH_NOT_EXPR.
142
2e7f5dc0
L
1432011-05-13 H.J. Lu <hongjiu.lu@intel.com>
144
dc764d10 145 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
146 (ix86_hard_regno_mode_ok): Change return value to bool. Use
147 can_create_pseudo_p ().
148
e834e95c
RG
1492011-05-13 Richard Guenther <rguenther@suse.de>
150
151 PR lto/48978
152 * gimple.c (iterative_hash_gimple_type): Revert change in
153 pointer target and function result and argument hashing.
154
34203483
UB
1552011-05-13 Uros Bizjak <ubizjak@gmail.com>
156
157 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
158 (*movxf_internal_nointeger): Ditto.
159 (*movdf_internal_rex64): Ditto.
160 (*movdf_internal): Ditto.
161 (*movdf_internal_nointeger): Ditto.
162 (*movsf_internal): Ditto.
163 (sincos splitters): Use can_create_pseudo ().
164
7eb68c06
JM
1652011-05-13 Joseph Myers <joseph@codesourcery.com>
166
167 * config/i386/i386-opts.h: New.
168 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
169 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
170 ix86_section_threshold): Remove.
171 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
172 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
173 OPT_mbranch_cost_.
174 (ix86_option_override_internal): Don't decode strings for options
175 other than -march=, -mtune= and -mfpmath=. Don't allow for
176 __attribute__ uses in remaining diagnostics for options with
34203483 177 string arguments. Don't check for integer arguments being negative.
7eb68c06 178 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 179 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
180 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
181 ix86_branch_cost, ix86_section_threshold): Remove.
182 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
183 HeaderInclude.
184 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
185 but not Var.
186 (masm=): Use Enum and Init.
187 (asm_dialect): New Enum and EnumValue entries.
188 (mbranch-cost=): Use UInteger.
189 (mlarge-data-threshold=): Use UInteger and Init.
190 (mcmodel=): Use Enum and Init.
191 (cmodel): New Enum and EnumValue entries.
192 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
193 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
194 mregparm=): Use UInteger.
195 (mstringop-strategy=): Use Enum and Init.
196 (stringop_alg): New Enum and EnumValue entries.
197 (mtls-dialect=): Use Enum and Init.
198 (tls_dialect): New Enum and EnumValue entries.
199 (mabi=): Use Enum and Init.
200 (calling_abi): New Enum and EnumValue entries.
201 (mveclibabi=): Use Enum and Init.
202 (ix86_veclibabi): New Enum and EnumValue entries.
203
f67e203c
NC
2042011-05-13 Nick Clifton <nickc@redhat.com>
205
34203483
UB
206 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
207 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 208
221df0b6
KT
2092011-05-13 Kai Tietz <ktietz@redhat.com>
210
211 PR middle-end/48984
212 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
213 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
214 (gimple_boolify): Check for cast for boolean_type_node instead for
215 BOOLEAN_TYPE.
216
208cb8cb
RG
2172011-05-13 Richard Guenther <rguenther@suse.de>
218
219 PR tree-optimization/48172
220 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
221 multiplying by number of iterations for equal step.
222 (vect_create_cond_for_alias_checks): Likewise.
223
b88ecf55
AS
2242011-05-13 Andreas Schwab <schwab@redhat.com>
225
226 * configure.ac: Use AS_HELP_STRING throughout.
227 * configure: Regenerate.
228
569b527e
L
2292011-05-12 H.J. Lu <hongjiu.lu@intel.com>
230
34203483 231 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
232 (ix86_emit_restore_regs_using_mov): Likewise.
233 (ix86_emit_restore_sse_regs_using_mov): Likewise.
234
8b9a1428
AS
2352011-05-12 Anatoly Sokolov <aesok@post.ru>
236
237 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
238 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
239 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
240 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
241 RTX_OK_FOR_OLO10_P): ...here.
242 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
243 SYMBOLIC_CONST.
244
1d15f620
KT
2452011-05-12 Kai Tietz <ktietz@redhat.com>
246
247 * gimplify.c (gimple_boolify): Re-boolify expression
248 arguments even if expression type is of kind BOOLEAN_TYPE.
249 (gimplify_boolean_expr): Removed.
250 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
251 and XOR. Additional take care that we keep expression's type.
252 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
253 of TRUTH_AND|OR|XOR_EXPR.
254
c2b5fc8d
JJ
2552011-05-12 Jakub Jelinek <jakub@redhat.com>
256
257 PR tree-optimization/48975
258 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
259 on all bbs here and free and clear ifc_bbs at the end.
260
61332f77
RG
2612011-05-12 Richard Guenther <rguenther@suse.de>
262
263 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
264 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
265 until after simple checks.
266 (gimple_types_compatible_p): Likewise.
267 (iterative_hash_gimple_type): Always hash pointer targets
268 and function return and argument types.
269 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
270 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
271 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
272 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
273 completely in the simple compare section.
274 (gimple_register_canonical_type): Query the cache again after
275 registering.
276
e2a3a5f1
RG
2772011-05-12 Richard Guenther <rguenther@suse.de>
278
279 PR tree-optimization/48172
280 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
281 the number of iterations from the segment size calculation.
282 (vect_create_cond_for_alias_checks): Adjust.
283
2c703f3a
JJ
2842011-05-12 Jakub Jelinek <jakub@redhat.com>
285
286 PR debug/48967
287 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
288 if validate_subreg fails.
289
2902011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
291
292 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
293 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
294 early.
295
87e91fca
DD
2962011-05-12 DJ Delorie <dj@redhat.com>
297
d53903d6 298 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
299 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
300 created builtin into rx_builtins array.
301 (rx_builtin_decl): New function.
34203483 302 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 303
5f2f13fd
DD
3042011-05-12 DJ Delorie <dj@redhat.com>
305 Nick Clifton <nickc@redhat.com>
306
307 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
308 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
309 (rx_is_legitimate_address): Add pre-decrement and post-increment
310 addressing in HImode and QImode. Fix test for out of range
311 REG+INT addressing.
87e91fca 312 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 313 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 314 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 315 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 316
57421f45
JM
3172011-05-11 Jason Merrill <jason@redhat.com>
318
319 * tree.c (type_hash_canon): Use struct tree_type_non_common.
320
898c90c0
EB
3212011-05-11 Eric Botcazou <ebotcazou@adacore.com>
322
323 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
324 reindent the subsequent block.
325
79bec923
ST
3262011-05-11 Satoru Takabayashi <satorux@google.com>
327 Paul Pluzhnikov <ppluzhnikov@google.com>
328
34203483 329 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
330 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
331 * config.in: Add LINKER_HASH_STYLE.
332 * configure.ac: Add --with-linker-hash-style.
333 * configure: Regenerate.
79bec923 334
d0340959
RG
3352011-05-11 Richard Guenther <rguenther@suse.de>
336
337 PR middle-end/48964
338 * gimple.c (iterative_hash_canonical_type): Fix typo.
339
cb032fee
UB
3402011-05-11 Uros Bizjak <ubizjak@gmail.com>
341
342 * config/i386/i386.c (legitimize_tls_address)
479fecd3 343 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
344 expanders directly for TARGET_GNU2_TLS. Determine pic and
345 __tls_get_addr symbol reference here. Update call to
346 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 347 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
348 expanders directly for TARGET_GNU2_TLS. Determine
349 __tls_get_addr symbol reference here. Update call to
350 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
351 unique UNSPEC REG_EQUIV to libcall block.
352 (ix86_tls_get_addr): Declare static.
353 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
354 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
355 Do not determine pic and __tls_get_addr symbol reference here. Do not
356 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
357 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
358 (tls_global_dynamic_64): Add operand 2. Do not determine
359 __tls_get_addr symbol reference here. Do not call
360 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
361 (tls_local_dynamic_base64): Ditto for operand 1.
362
6d3cc8f0
EB
3632011-05-11 Eric Botcazou <ebotcazou@adacore.com>
364
365 * function.c (expand_function_start): Initialize stack_check_probe_note
366 only if the generic stack checking mechanism is used.
367
51e020fc
RG
3682011-05-11 Richard Guenther <rguenther@suse.de>
369
370 PR tree-optimization/15256
371 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
372 (A & B) | C, combine (A op CST1) op CST2.
373 (tree_ssa_forward_propagate_single_use_vars): Only bother to
374 visit assigns that have uses.
375
51545682
NF
3762011-05-11 Nathan Froyd <froydnj@codesourcery.com>
377
cb032fee 378 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
379 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
380 (unpack_ts_type_common_value_fields): ...this. Update comment.
381 (unpack_value_fields): Adjust for renaming.
382 (lto_input_ts_type_tree_pointers): Split into...
383 (lto_input_ts_type_common_tree_pointer): ...this and...
384 (lto_input_ts_type_non_common_tree_pointers): ...this.
385 (lto_input_tree_pointers): Adjust for above split.
386 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
387 (pack_ts_type_common_value_fields): ...this. Update comment.
388 (lto_output_ts_type_tree_pointers): Split into...
389 (lto_output_ts_type_common_tree_pointers): ...this and...
390 (lto_output_ts_type_non_common_tree_pointers): ...this.
391 (lto_output_tree_pointers): Adjust for above split.
392 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
393 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
394 * stor-layout.c (vector_type_mode): Adjust location of mode field.
395 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
396 Define.
397 (struct tree_type): Split into...
398 (struct tree_type_common: ...this and...
399 (struct tree_type_with_lang_specific): ...this and...
400 (struct tree_type_non_common): ...this. Adjust accessor macros
401 accordingly.
402 (TYPE_VALUES_RAW): Define.
403 (union tree_node): Update for above changes.
404 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
405 TS_TYPE_NON_COMMON.
406 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
407 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
408 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
409 * treestructu.def (TS_TYPE): Remove.
410 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
411 Define.
412
b03c3082
JJ
4132011-05-11 Jakub Jelinek <jakub@redhat.com>
414
415 PR debug/48159
416 * tree-ssa.c (reset_debug_uses): New function.
417 * tree-flow.h (reset_debug_uses): New prototype.
418 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
419 * tree-loop-distribution.c (generate_loops_for_partition): Call
420 reset_debug_uses on the stmts that will be removed. Keep around
421 all debug stmts, don't count them as bits in partition bitmap.
422 (generate_builtin): Don't count debug stmts or labels as bits in
423 partition bitmap.
424
b5e04de5
RG
4252011-05-11 Richard Guenther <rguenther@suse.de>
426
427 * gimple.c (gimple_type_hash_1): Merge with ...
428 (gimple_type_hash): ... this.
429 (gtc_visit): Remove mode parameter and simplify accordingly.
430 (gimple_types_compatible_p_1): Likewise.
431 (gimple_types_compatible_p): Likewise.
432 (iterative_hash_gimple_type): Likewise.
433 (visit): Likewise.
434 (gimple_type_eq): Adjust.
435
fc6970e4
RE
4362011-05-11 Revital Eres <revital.eres@linaro.org>
437
438 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
439 enters the branch create an anti edge in the opposite direction
440 to prevent the creation of reg-moves.
441 * modulo-sched.c: Adjust comment to reflect the fact we are
442 scheduling closing branch.
443 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
444 (stage_count): New field in struct partial_schedule.
445 (calculate_stage_count): New function.
446 (normalize_sched_times): Rename to reset_sched_times and handle
447 incrementing the sched time of the nodes by a constant value
448 passed as parameter.
449 (duplicate_insns_of_cycles): Skip closing branch.
450 (sms_schedule_by_order): Schedule closing branch.
451 (ps_insn_find_column): Handle closing branch.
452 (sms_schedule): Call reset_sched_times and adjust the code to
453 support scheduling of the closing branch.
454 (ps_insert_empty_row): Update calls to normalize_sched_times
455 and rotate_partial_schedule functions.
456
41a58a92
RG
4572011-05-11 Richard Guenther <rguenther@suse.de>
458
459 PR middle-end/48953
460 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
461
e9f8dcf9
JM
4622011-05-11 Joseph Myers <joseph@codesourcery.com>
463
cb032fee
UB
464 * opts.c (finish_options): Move warning settings from process_options.
465 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 466
10c224a9
RG
4672011-05-11 Richard Guenther <rguenther@suse.de>
468
469 PR tree-optimization/18041
470 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
471 (simplify_bitwise_binary): ... this. Handle operand conversions
472 by applying them to the result instead.
473 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
474
825b27de
RG
4752011-05-11 Richard Guenther <rguenther@suse.de>
476
477 * gimple.c (gimple_canonical_types_compatible_p): Split out
478 from gimple_types_compatible_p and friends. Do not recurse
479 to pointed-to types.
480 (gimple_canonical_type_eq): Use it.
481 (iterative_hash_canonical_type): Split out from
482 iterative_hash_gimple_type and friends. Do not recurse
483 to pointed-to types.
484 (gimple_canonical_type_hash): Use it, allocate the hash here.
485
ca756625
RE
4862011-05-11 Revital Eres <revital.eres@linaro.org>
487
488 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
489 recognizing doloop.
490
b8abece3
RE
4912011-05-11 Revital Eres <revital.eres@linaro.org>
492
493 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
494 instead of PREV_INSN.
495
ce7b3761
RE
4962011-05-11 Revital Eres <revital.eres@linaro.org>
497
498 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
499 * loop-doloop.c (doloop_condition_get): Likewise.
500 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
501 (doloop_end): New.
502 * config/arm/arm.md (*addsi3_compare0): Remove "*".
503
a9dc9d37
NF
5042011-05-10 Nathan Froyd <froydnj@codesourcery.com>
505
506 * tree.def (CASE_LABEL_EXPR): Add an operand.
507 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
508
96703596
JM
5092011-05-10 Joseph Myers <joseph@codesourcery.com>
510
511 * c-decl.c (c_override_global_bindings_to_false): Remove.
512 (global_bindings_p): Don't check
513 c_override_global_bindings_to_false.
514 * c-tree.h (c_override_global_bindings_to_false): Remove.
515 * c-typeck.c (composite_type): Don't set
516 c_override_global_bindings_to_false.
517
dbcc9f08
MM
5182011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
519
520 PR target/48857, 48495
521 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
522 (VSX_MODE): Ditto.
523 (VSX_MOVE_MODE): Ditto.
524 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
525 VSX vector types. Add V2DImode.
526 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
527 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
528 (MODES_TIEABLE_P): Ditto.
529
530 * config/rs6000/rs6000.c (rs6000_emit_move): Use
531 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
532 VSX_VECTOR_MODE.
533 (init_cumulative_args): Ditto.
534 (rs6000_function_arg_boundary): Ditto.
535 (rs6000_function_arg_advance_1): Ditto.
536 (rs6000_function_arg): Ditto.
537 (rs6000_function_ok_for_sibcall): Ditto.
538 (emit_frame_save): Ditto.
539 (rs6000_function_value): Ditto.
540 (rs6000_libcall_value): Ditto.
541
4a68b4ca
JM
5422011-05-10 Joseph Myers <joseph@codesourcery.com>
543
544 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
545 i386/darwin-lib.h to $libgcc_tm_file.
546 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
547
bcb521e9
JM
5482011-05-10 Joseph Myers <joseph@codesourcery.com>
549
550 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
551
f10d3ac9
JM
5522011-05-10 Joseph Myers <joseph@codesourcery.com>
553
cb032fee 554 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
555 * config/rs6000/rs6000-tables.opt: New file (generated).
556 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
557 rs6000/rs6000-tables.opt to extra_options.
558 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
559 * config/rs6000/rs6000.c (rs6000_select): Remove.
560 (processor_target_table): Move contents to rs6000-cpus.def.
561 (darwin_rs6000_override_options): Check
562 global_options_set.x_rs6000_cpu_index instead of
563 rs6000_select[1].string.
564 (rs6000_option_override_internal): Likewise.
565 (rs6000_handle_option): Don't assert that global structures are in
566 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
567 (rs6000_default_cpu): New variable.
568 (rs6000_file_start): Set it instead of local default_cpu. Check
569 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
570 global_options_set.x_rs6000_tune_index instead of rs6000_select.
571 (rs6000_darwin_file_start): Check rs6000_default_cpu and
572 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
573 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
574 rs6000_select): Remove.
575 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
576 Remove.
577 (mcpu=, mtune=): Use Var, Init, Enum and Save.
578 * config/rs6000/t-rs6000
579 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
580 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
581 global_options_set.x_rs6000_cpu_index instead of
582 rs6000_select[1].string.
583 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
584 global_options_set.x_rs6000_cpu_index instead of
585 rs6000_select[1].string.
586
80cf2e08
JM
5872011-05-10 Joseph Myers <joseph@codesourcery.com>
588
589 * config.gcc (libgcc_tm_file): Define instead of including files
590 from ../../libgcc/config/ in tm_file.
cb032fee 591 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
592 * configure: Regenerate.
593 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
594 libgcc_tm.h, cs-libgcc_tm.h): New.
595 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
596 (clean): Remove libgcc_tm.h.
597 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
598 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
599 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
600
fd01a351
GJL
6012011-05-10 Georg-Johann Lay <avr@gjlay.de>
602
603 PR target/48896
604 * config/avr/avr.c (avr_ret_register): Return unsigned int
605 instead of int.
606 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
607 it to avr_libcall_value.
608 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
609 expand_expr.
610 (avr_expand_binop_builtin): Ditto.
611 (avr_expand_unop_builtin): Ditto.
612
34cc3c86
DD
6132011-05-10 DJ Delorie <dj@redhat.com>
614
615 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
616 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
617 * config/rx/rx.c (rx_align_for_label): Add label and
618 uses_threshold parameters. Do not align when the label is not
619 used enough.
620 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
621
be173289
RG
6222011-05-10 Richard Guenther <rguenther@suse.de>
623
624 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
625 a series of conversions and apply foldings similar to what
626 fold-const does.
627 (tree_ssa_forward_propagate_single_use_vars): Call it.
628
e7f78021
JJ
6292011-05-10 Jakub Jelinek <jakub@redhat.com>
630
6ae70ea2
JJ
631 PR tree-optimization/48611
632 PR tree-optimization/48794
633 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
634 referenced from RESX or EH_DISPATCH arguments.
635
e7f78021
JJ
636 PR debug/48928
637 * dfp.c (decimal_to_decnumber): Handle conversion from
638 dconst{1,2,m1,half}.
639
fca132b9
UB
6402011-05-09 Uros Bizjak <ubizjak@gmail.com>
641
642 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
643 for !flag_prefer_avx128.
644 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
645
e4c03378
EB
6462011-05-09 Eric Botcazou <ebotcazou@adacore.com>
647
648 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
649 (fold_ternary_loc): Use expr_location_or.
650
805d6a75
L
6512011-05-09 H.J. Lu <hongjiu.lu@intel.com>
652
653 PR debug/48853
654 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
655 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
656 Pmode and mem_mode is not VOIDmode.
657
e4c03378 6582011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 659
e4c03378
EB
660 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
661 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 662
51e7f377
UB
6632011-05-09 Uros Bizjak <ubizjak@gmail.com>
664
665 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
666 (const_pow2_1_to_8_operand): Ditto.
667 (const_pow2_1_to_128_operand): Ditto.
668 (const_pow2_1_to_32768_operand): Ditto.
669 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
670 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
671 in insn constraint to check integer value of operand 3.
672 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
673
674 (PINSR_MODE): New mode iterator.
675 (sse2p4_1): New mode attribute.
676 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
677 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
678 iterator. Use const_int_operand instead of
679 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
680 exact_log2 in insn constraint to check integer value of operand 3.
681
6822011-05-09 Uros Bizjak <ubizjak@gmail.com>
683
684 * config/i386/sse.md (blendbits): Remove mode attribute.
685 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
686 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
687 Check integer value of operand 3 in insn constraint.
688
0ca8de87
RG
6892011-05-09 Richard Guenther <rguenther@suse.de>
690
691 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
692 for diagnostics.
693 (lto_symtab_merge): Likewise. Do not register types here.
694 (lto_symtab_merge_decls_2): Likewise.
695 (lto_symtab_merge_decls_1): Likewise.
696 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
697 * gimple.c (enum gtc_mode): Declare.
698 (gimple_types_compatible_p): Make static.
699
a9e6994a
AK
7002011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
701
702 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
703 temporary register to match Pmode.
704
fb55d62e
UB
7052011-05-09 Uros Bizjak <ubizjak@gmail.com>
706
707 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
708 and *vec_concatv4si_1_avx.
709
eb1485a6
UB
7102011-05-09 Uros Bizjak <ubizjak@gmail.com>
711
712 PR rtl-optimization/48927
713 * ira-conflicts.c (commutative_constraint_p): Use
714 recog_data.alternative_enabled_p to disable alternatives where
715 "enabled" attribute is false.
716 (get_dup_num): Ditto.
717 * ira-lives.c (single_reg_class): Ditto.
718 (ira_implicitly_set_insn_hard_regs): Ditto.
719
c46d001a
EB
7202011-05-09 Eric Botcazou <ebotcazou@adacore.com>
721
722 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
723 (dataflow_set_preserve_mem_locs): Likewise.
724
7252011-05-09 Philipp Thomas <pth@suse.de>
726
6d9e7c41
PT
727 * config/mep/mep.c (mep_validate_vliw): Syntax description
728 should not be translated.
729
d371df6f
JM
7302011-05-09 Joseph Myers <joseph@codesourcery.com>
731
732 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
733 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 734 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
735 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
736 MIPS_ARCH_OPTION_NATIVE): Define.
737 * config/mips/mips.c (mips_cpu_info_table): Move contents to
738 mips-cpus.def.
739 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
740 mips_parse_cpu): Remove.
741 (mips_cpu_info_from_opt, mips_default_arch): New.
742 (mips_handle_option): Don't assert that global structures are in
743 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
744 (mips_option_override): Use new variables and functions to set
eb1485a6 745 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
746 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
747 definition.
748 * config/mips/mips.opt (march=): Use ToLower and Enum.
749 (mips): Use ToLower, Enum and Var.
750 (mtune=): Use ToLower and Enum.
751 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
752
4fc07af9
JH
7532011-05-08 Jan Hubicka <jh@suse.cz>
754
755 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
756 Arrange type pairs to be UID ordered.
757 (gimple_lookup_type_leader): Make inline.
758
2cf320a8
NC
7592011-05-09 Nick Clifton <nickc@redhat.com>
760
61d6def5
NC
761 PR target/48899
762 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
763 PROCESSOR_DEFAULT.
764
2cf320a8
NC
765 PR target/48897
766 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
767 variable 's'.
768
4f82319d
CLT
7692011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
770
771 * combine.c (simplify_comparison): Abstract out parts into...
772 (simplify_compare_const): ... new function.
773 (try_combine): Generalize parallel arithmetic/compare combining
774 to call simplify_compare_const() and CANONICALIZE_COMPARE().
775
74605a11
JH
7762011-05-08 Jan Hubicka <jh@suse.cz>
777
778 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
779 (cgraph_create_virtual_clone): Call hooks once virtual clone
780 is finished.
74605a11 781 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
782 * ipa-cp.c (ipcp_estimate_growth): Use
783 estimate_ipcp_clone_size_and_time.
74605a11
JH
784 * ipa-inline-transform.c (clone_inlined_nodes): Update.
785 * lto-cgraph.c (input_node): Update.
786 * ipa-inline.c (recursive_inlining): Update.
787 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
788 (evaluate_conditions_for_known_args): Break out from ...
789 (evaluate_conditions_for_edge): ... here.
790 (evaluate_conditions_for_ipcp_clone): New function.
791 (inline_node_duplication_hook): Update clone summary based
792 on parameter map.
793 (estimate_callee_size_and_time): Rename to ...
794 (estimate_node_size_and_time): take NODE instead of EDGE;
795 take POSSIBLE_TRUTHS as argument.
796 (estimate_callee_size_and_time): Update.
797 (estimate_ipcp_clone_size_and_time): New function.
798 (do_estimate_edge_time): Update.
799
5c049507
RG
8002011-05-08 Richard Guenther <rguenther@suse.de>
801
802 PR middle-end/48908
803 PR middle-end/48905
804 * expmed.c (expand_shift_1): Compute adjusted constant shift
805 amount manually.
806
f64c36ba
EB
8072011-05-08 Eric Botcazou <ebotcazou@adacore.com>
808
809 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
810
c461a957
EB
8112011-05-08 Eric Botcazou <ebotcazou@adacore.com>
812
813 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
814
7c74e556
JW
8152011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
816
817 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
818
b4c0a884
JH
8192011-05-07 Jan Hubicka <jh@suse.cz>
820
a9bcb3f0
EB
821 * ipa-inline-transform.c (inline_call): Account when program size
822 decreases.
b4c0a884 823 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
824 (edge_badness): Reorganize to be power 2 based; fix thinko when
825 computing badness for negative growth; update comments to match
826 reality; better dumps.
b4c0a884 827
c99c0026
EB
8282011-05-07 Eric Botcazou <ebotcazou@adacore.com>
829
830 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
831 type to bool and adjust comment.
832 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
833 (fold_mathfn_compare): Remove calls to global_bindings_p.
834 (fold_inf_compare): Likewise.
835 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
836 * c-tree.h (global_bindings_p): Adjust prototype.
837 * c-decl.c (global_bindings_p): Return bool and simplify.
838
1400c8e5
ZD
8392011-05-07 Zdenek Dvorak <ook@ucw.cz>
840
841 PR tree-optimization/48837
842 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
843 when accumulator transformation is performed.
844
5d0878e7
JH
8452011-05-06 Jan Hubicka <jh@suse.cz>
846
a9bcb3f0
EB
847 * i386.h (ix86_tune_indices): Add
848 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 849 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
850 * i386.c (initial_ix86_tune_features): Add
851 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
852 (software_prefetching_beneficial_p): Remove predicate.
853 (ix86_option_override_internal): Use new macro.
854
58696ce5
JH
8552011-05-06 Jan Hubicka <jh@suse.cz>
856
857 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
858
c47d0034
JH
8592011-05-06 Jan Hubicka <jh@suse.cz>
860
861 * cgraph.c (cgraph_add_thunk): Create real function node instead
862 of alias node; finalize it and mark needed/reachale; arrange visibility
863 to be right and add it into the corresponding same comdat group list.
864 (dump_cgraph_node): Dump thunks.
865 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
866 cgraph_function_with_gimple_body_p,
867 cgraph_first_function_with_gimple_body,
c47d0034
JH
868 cgraph_next_function_with_gimple_body): New functions.
869 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
870 New macros.
871 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
872 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
873 * cgraphunit.c (cgraph_finalize_function): Only look into possible
874 devirtualization when optimizing.
875 (verify_cgraph_node): Verify thunks.
876 (cgraph_analyze_function): Analyze thunks.
877 (cgraph_mark_functions_to_output): Output thunks only in combination
878 with function they are assigned to.
879 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
880 alias into normal node.
881 (assemble_thunks): New functoin.
882 (cgraph_expand_function): Use it.
883 * lto-cgraph.c (lto_output_node): Stream thunks.
884 (input_overwrite_node): Stream in thunks.
885 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
886 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
887 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
888 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
889 (inline_analyze_function): Do not care about thunk jump functions.
890 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
891 * ipa-prop.c (ipa_prop_write_jump_functions): Use
892 cgraph_function_with_gimple_body_p.
893 * passes.c (do_per_function_toporder): Use
894 cgraph_function_with_gimple_body_p.
c47d0034
JH
895 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
896 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
897 (function_called_by_processed_nodes_p): Likewise.
898
d8f426ec
JM
8992011-05-06 Joseph Myers <joseph@codesourcery.com>
900
901 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
902 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
903 entries.
904 (mabi=): Replace with separate entries for mabi=altivec,
905 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
906 mabi=ieeelongdouble and mabi=ibmlongdouble.
907 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
908 check for -mabi=spe without SPE ABI support here.
909 (rs6000_handle_option): Replace OPT_mabi_ handling with
910 OPT_mabi_altivec and OPT_mabi_spe handling.
911
80bde45b
CC
9122011-05-06 Cary Coutant <ccoutant@google.com>
913
914 * dwarf2out.c (contains_subprogram_definition): New function.
915 (should_move_die_to_comdat): Call it.
916
a91926b9
JL
9172011-05-06 Jeff Law <law@redhat.com>
918
919 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
920 remove_ctrl_stmt_and_useless_edges.
921 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
922 (fixup_template_block, thread_single_edge): Likewise.
923 (mark_threaded_blocks): Use THREAD_TARGET.
924
1fc1b66d
AM
9252011-05-06 Alan Modra <amodra@gmail.com>
926
927 PR target/48900
928 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
929 const0_rtx as the arg to the dummy __tls_get_addr libcall.
930
e194de64
UB
9312011-05-06 Uros Bizjak <ubizjak@gmail.com>
932
933 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
934 constraint modifier to "r".
935
d740dc9e
JM
9362011-05-06 Joseph Myers <joseph@codesourcery.com>
937
938 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
939 fall through for OPT_mcmodel_.
940
cab78b15
AK
9412011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
942
943 * config/s390/s390.c (s390_asm_trampoline_template): Comment
944 instruction sizes.
e194de64 945 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 946
ee6824ae
RR
9472011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
948
eb1485a6
UB
949 PR target/47930
950 * config/arm/arm.opt (marm): Document it.
951 (mthumb): Reject negative variant.
ee6824ae 952
9ef58464
UB
9532011-05-06 Uros Bizjak <ubizjak@gmail.com>
954
955 PR target/48898
956 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
957 Fix typo in "ccvt" variable name.
958
155b6176
TG
9592011-05-06 Tristan Gingold <gingold@adacore.com>
960
961 PR target/48895
962 * config/vms/vms-ar.c (main): Remove cwd variable.
963
3becc47b
JJ
9642011-05-06 Jakub Jelinek <jakub@redhat.com>
965
966 PR debug/48902
967 * var-tracking.c (prepare_call_arguments): Move else before #endif.
968
3d528853
NF
9692011-05-05 Nathan Froyd <froydnj@codesourcery.com>
970
971 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
972 * gimplify.c (gimplify_switch_expr): Likewise.
973 * omp-low.c (expand_omp_sections): Likewise.
974 * tree-eh.c (lower_try_finally_switch): Likewise.
975 (lower_eh_dispatch): Likewise.
976 * tree.h (build_case_label): Declare.
977 * tree.c (build_case_label): Define.
978
deb5046b
JM
9792011-05-05 Jason Merrill <jason@redhat.com>
980
981 PR c++/40975
982 * tree-inline.c (copy_tree_r): Use copy_statement_list.
983 (copy_statement_list): Don't recurse.
984 * stor-layout.c (copy_self_referential_tree_r): Don't allow
985 STATEMENT_LIST.
986
013c0411
JM
9872011-05-05 Joseph Myers <joseph@codesourcery.com>
988
989 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
990 through from -mfpu= handling.
991 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
992
a0905f8b
BS
9932011-05-05 Bernd Schmidt <bernds@codesourcery.com>
994
995 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
996 POST_MODIFY.
997
fc4538e4
SE
9982011-05-05 Steve Ellcey <sje@cup.hp.com>
999
1000 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
1001 for 11.31.
1002 (hppa[12]*-*-hpux11*): Ditto.
1003 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
1004 * config/ia64/hpux-unix2003.h: New.
1005 * config/pa/pa-hpux1131.opt: New.
1006 * config/pa/pa-hpux1131.h: New.
1007 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
1008 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 1009 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 1010
1e30c578
JJ
10112011-05-05 Jakub Jelinek <jakub@redhat.com>
1012
1013 PR debug/48853
1014 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
1015 instead of mode as 3rd argument to recursive call.
1016 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
1017 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
1018 VOIDmode.
1019 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
1020 don't give up if mode is Pmode and mem_mode is not VOIDmode.
1021 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
1022 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
1023
d19eb620
JB
10242011-05-05 Julian Brown <julian@codesourcery.com>
1025
1026 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
1027 parenthesis in D-register case.
1028
c860fe8c
JM
10292011-05-05 Joseph Myers <joseph@codesourcery.com>
1030
1031 * opt-functions.awk (var_type_struct): Handle Enum options.
1032 * optc-gen.awk: Don't check range of variables of character type.
1033 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
1034 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
1035 rs6000_sdata_name, rs6000_explicit_options): Remove.
1036 (rs6000_option_override_internal): Check for -malign-power here.
1037 Use global_options_set instead of rs6000_explicit_options.
1038 (rs6000_parse_fpu_option): Remove.
1039 (rs6000_handle_option): Access variables via opts and opts_set
1040 pointers. Use error_at and warning_at. Add fall-through
1041 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
1042 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
1043 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
1044 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
1045 here. Don't use rs6000_parse_fpu_option.
1046 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
1047 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
1048 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
1049 (mrecip=): Use Var.
1050 (mspe): Use Var and Save.
1051 (mtraceback=): Use Enum and Var.
1052 (rs6000_traceback_type): New Enum and EnumValue entries.
1053 (mfloat-gprs=): Use Enum, Var and Save.
1054 (rs6000_float_gprs): New Enum and EnumValue entries.
1055 (mlong-double-): use Var and Save.
1056 (msched-costly-dep=, minsert-sched-nops=): Use Var.
1057 (malign-): Use Enum and Var.
1058 (rs6000_alignment_flags): New Enum and EnumValue entries.
1059 (mfpu=): Use Enum.
1060 (fpu_type_t): New Enum and EnumValue entries.
1061 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1062 global_options_set instead of rs6000_explicit_options.
1063 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1064 global_options_set instead of rs6000_explicit_options.
1065 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1066 global_options_set instead of rs6000_explicit_options.
1067 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
1068 global_options_set instead of rs6000_explicit_options.
1069 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
1070 global_options_set instead of rs6000_explicit_options.
1071 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1072 global_options_set instead of rs6000_explicit_options.
1073 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
1074 definition.
1075 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1076 global_options_set instead of rs6000_explicit_options.
1077 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
1078 (rs6000_cmodel): New Enum and EnumValue entries.
1079 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1080 global_options_set instead of rs6000_explicit_options.
1081 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
1082 (mtls-size=): Use Enum and Var.
1083 (rs6000_tls_size): New Enum and EnumValue entries.
1084
0691dde9
MM
10852011-05-05 Michael Matz <matz@suse.de>
1086
1087 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
1088 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
1089 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
1090 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
1091 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
1092 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
1093 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
1094 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
1095 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
1096 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
1097 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
1098 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
1099 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
1100 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
1101 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
1102 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
1103
86529a49
RG
11042011-05-05 Richard Guenther <rguenther@suse.de>
1105
1106 * expmed.c (expand_variable_shift): Rename to ...
1107 (expand_shift_1): ... this. Take an expanded shift amount.
1108 For rotates recurse directly not building trees for the shift amount.
1109 (expand_variable_shift): Wrap around expand_shift_1.
1110 (expand_shift): Adjust.
1111
d0228c2e
JJ
11122011-05-05 Jakub Jelinek <jakub@redhat.com>
1113
1114 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
1115
907a08d9
EB
11162011-05-05 Eric Botcazou <ebotcazou@adacore.com>
1117
1118 * tree.h (get_pending_sizes): Remove prototype.
1119 (put_pending_size): Likewise.
1120 (put_pending_sizes): Likewise.
1121 * stor-layout.c (pending_sizes): Delete.
1122 (get_pending_sizes): Likewise.
1123 (put_pending_size): Likewise.
1124 (put_pending_sizes): Likewise.
1125 (variable_size): Do not call put_pending_size and tidy up.
1126 * function.h (struct function): Remove dont_save_pending_sizes_p.
1127 * lto-streamer-in.c (input_function): Do not stream it.
1128 * lto-streamer-out.c (output_function): Likewise.
1129 * tree-inline.c (initialize_cfun): Do not copy it.
1130 * c-decl.c (store_parm_decls): Do not set it.
1131 * omp-low.c (create_task_copyfn): Likewise.
1132 * tree-optimize.c (tree_rest_of_compilation): Likewise.
1133
386d9c57
UB
11342011-05-05 Uros Bizjak <ubizjak@gmail.com>
1135
1136 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
1137 conditions.
1138 (*movdf_internal): Ditto.
1139 (*movdf_internal_nointeger): Ditto.
1140 (*movsf_internal): Ditto.
1141
a04a722b
JM
11422011-05-05 Joseph Myers <joseph@codesourcery.com>
1143
1144 * c-decl.c (finish_decl): Don't call get_pending_sizes.
1145 (grokparm): Add parameter expr. Pass it to grokdeclarator.
1146 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
1147 (c_variable_size): Remove.
1148 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
1149 call put_pending_sizes.
1150 (get_parm_info): Add parameter expr. Use it to set
1151 arg_info->pending_sizes.
1152 (store_parm_decls): Use arg_info->pending_sizes instead or calling
1153 get_pending_sizes.
1154 * c-parser.c (c_parser_parms_declarator): Update call to
1155 c_parser_parms_list_declarator.
1156 (c_parser_parms_list_declarator): Take parameter expr. Update
1157 call to push_parm_decl. Update recursive call. Don't call
1158 get_pending_sizes. Update calls to get_parm_info.
1159 (c_parser_objc_method_definition): Update calls to
1160 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 1161 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
1162 (c_parser_objc_method_decl): Add parameter expr. Update call to
1163 grokparm.
386d9c57 1164 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
1165 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
1166 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
1167
c92a6f97
MH
11682011-05-05 Michael Hope <michael.hope@linaro.org>
1169
386d9c57
UB
1170 PR pch/45979
1171 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
1172 __ARM_EABI__ hosts.
c92a6f97 1173
07ea0048
UW
11742011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1175
1176 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
1177 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
1178 (spu_output_mi_thunk): New function.
1179
d634bfa1
RO
11802011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1181
1182 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
1183 targetm.asm_out.print_operand.
1184 * config/sol2.c: Include target.h.
1185
40fda55b
JH
11862011-05-04 Jan Hubicka <jh@suse.cz>
1187
1188 * ipa-inline.c (reset_edge_caches): New function.
1189 (update_caller_keys): Add check_inlinablity_for; do not
1190 reset edge caches; remove now unnecesary loop.
386d9c57 1191 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
1192 (update_all_callee_keys): Likewise.
1193 (inline_small_functions): Sanity check cache; update code
1194 recomputing it.
1195
0360f70d
BS
11962011-05-04 Bernd Schmidt <bernds@codesourcery.com>
1197
1198 PR rtl-optimization/47612
1199 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
1200 as the last insn of the sequence to be moved.
1201
7a994646
TB
12022011-05-04 Tobias Burnus <burnus@net-b.de>
1203
1204 PR fortran/48864
1205 * doc/invoke.texi (Ofast): Document that it
1206 enables Fortran's -fno-protect-parens.
1207
7a2f7208
UB
12082011-05-04 Uros Bizjak <ubizjak@gmail.com>
1209
1210 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
1211
a2d42931
EB
12122011-05-04 Eric Botcazou <ebotcazou@adacore.com>
1213
1214 * stor-layout.c (variable_size): Do not issue errors.
1215
f81b1a3d
RG
12162011-05-04 Richard Guenther <rguenther@suse.de>
1217
1218 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
1219 for array-ref indices.
1220 (tree_coverage_counter_addr): Likewise.
1221 (build_fn_info_type): Use size_int for index types.
1222 (build_gcov_info): Likewise.
1223
c62c040f
RG
12242011-05-04 Richard Guenther <rguenther@suse.de>
1225
1226 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
1227 to build_int_cst.
1228 * c-typeck.c (really_start_incremental_init): Use bitsize_int
1229 for constructor indices.
1230 (push_init_level): Likewise.
1231
1e3287d0
RG
12322011-05-04 Richard Guenther <rguenther@suse.de>
1233
1234 * explow.c (promote_mode): Move variable declarations before code.
1235
6c32445b
NF
12362011-05-04 Nathan Froyd <froydnj@codesourcery.com>
1237
1238 * tree.h (build_function_type_array): Declare.
1239 (build_varargs_function_type_array): Declare.
1240 (build_function_type_vec, build_varargs_function_type_vec): Define.
1241 * tree.c (build_function_type_array_1): New function.
1242 (build_function_type_array): New function.
1243 (build_varargs_function_type_array): New function.
1244
fdabf269
RS
12452011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
1246
1247 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
1248 before setting STMT_VINFO_TYPE.
1249
a207915a
UW
12502011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1251
1252 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
1253 instead of spu_pass_by_reference.
1254
5e617be8
AK
12552011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1256
1257 * calls.c (emit_library_call_value_1): Invoke
1258 promote_function_mode hook on libcall arguments.
1259 * explow.c (promote_function_mode, promote_mode): Handle TYPE
1260 argument being NULL.
1261 * targhooks.c (default_promote_function_mode): Lisewise.
1262 * config/s390/s390.c (s390_promote_function_mode): Likewise.
1263 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
1264
1265 * doc/tm.texi: Document that TYPE argument might be NULL.
1266
486d04be
SH
12672011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1268
1269 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
1270
9b19b026
SH
12712011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1272
1273 From Bernd Schmidt
1274 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
1275
502bc3df
RO
12762011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1277
1278 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
1279 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
1280 Move ...
1281 * mips-tfile.c: ... here.
1282 Don't include coretypes.h, tm.h, filenames.h.
1283 (saber_stop): Remove definition and all calls.
1284 [__SABER__]: Remove.
1285 (__LINE__): Remove default.
1286 (Size_t, Ptrdiff_t): Remove definitions.
1287 Replace by size_t, ptrdiff_t.
1288 [!MIPS_DEBUGGING_INFO]: Remove.
1289 (SHASH_SIZE, THASH_SIZE): Remove defaults.
1290 (progname): Add const.
1291 (STATIC): Remove.
1292 Replace all uses by static.
1293 (ALIGN_SYMTABLE_OFFSET): Remove default.
1294 * mips-tdump.c: Don't include coretypes.h, tm.h.
1295 Remove !MIPS_IS_STAB guard.
1296 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
1297 $(TM_H), filenames.h dependencies.
1298 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
1299
991eb6ef
SH
13002011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1301
1302 From Jie Zhang
1303 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
1304 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1305
420ccc84
SH
13062011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1307
1308 From Bernd Schmidt
1309 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
1310 account and save/restore RETS.
1311 (PROFILE_BEFORE_PROLOGUE): Define.
1312 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
1313 the push insn to use predecrement.
1314
9f8d69ee
SH
13152011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
1316
1317 From Jie Zhang
1318 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
1319
662c03f4
NC
13202011-05-04 Nick Clifton <nickc@redhat.com>
1321
1322 * config/mn10300/mn10300.c: Include cfgloop.h.
1323 (DUMP): New macro.
1324 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
1325 Lcc or a FLcc insn into the instruction stream.
1326 (mn10300_block_contains_call): New function. Returns true if the
1327 given basic block contains a CALL insn.
1328 (mn10300_loop_contains_call_insn): New function. Returns true if
1329 the given loop contains a CALL insn.
1330 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
1331 to use the SETLB and Lcc or FLcc insns.
1332 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
1333 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
1334 * config/mn10300/mn10300.opt (msetlb): New option. Used to
1335 disable the SETLB optimization.
1336 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1337 __SETLB__ or __NO_SETLB__.
1338 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
1339 (movsf_internal): Handle MDR register.
1340 (cmpsi): Make visible.
1341 (setlb): New pattern.
1342 (Lcc): New pattern.
1343 (FLcc): New pattern.
1344
843b6915
UB
13452011-05-04 Uros Bizjak <ubizjak@gmail.com>
1346
1347 PR target/48860
1348 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
1349 for reg<->xmm moves.
1350 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1351 (vec_concatv2di_rex64_sse): Ditto.
1352 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
1353 (*vec_extractv2di_1_rex64): Ditto.
1354
1355 Revert:
1356 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
1357
1358 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1359 reg<->xmm moves.
1360 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
1361
d35936ab
RG
13622011-05-04 Richard Guenther <rguenther@suse.de>
1363
1364 * tree.h (int_const_binop): Remove notrunc argument.
1365 * fold-const.c (int_const_binop): Remove notrunc argument. Always
1366 create integer constants that are properly truncated.
1367 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
1368 (const_binop): Remove zero notrunc argument to int_const_binop.
1369 (size_binop_loc): Likewise.
1370 (fold_div_compare): Likewise.
1371 (maybe_canonicalize_comparison_1): Likewise.
1372 (fold_comparison): Likewise.
1373 (fold_binary_loc): Likewise.
1374 (multiple_of_p): Likewise.
1375 * expr.c (store_constructor): Likewise.
1376 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1377 (maybe_fold_stmt_addition): Likewise.
1378 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1379 * stor-layout.c (layout_type): Likewise.
1380 * tree-data-ref.c (tree_fold_divides_p): Likewise.
1381 * tree-sra.c (build_ref_for_offset): Likewise.
1382 (build_user_friendly_ref_for_offset): Likewise.
1383 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1384 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1385 * tree-ssa-loop-niter.c (inverse): Likewise.
1386 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1387 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
1388 * tree-switch-conversion.c (check_range): Likewise.
1389 (build_constructors): Likewise.
1390 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
1391 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
1392 (extract_range_from_assert): Likewise.
1393 (vrp_int_const_binop): Likewise.
1394 (extract_range_from_binary_expr): Likewise.
1395 (extract_range_from_unary_expr): Likewise.
1396 (check_array_ref): Likewise.
1397 (find_case_label_range): Likewise.
1398 (simplify_div_or_mod_using_ranges): Likewise.
1399 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
1400 comparing case labels for merging.
1401
8992c063
MW
14022011-05-03 Mark Wielaard <mjw@redhat.com>
1403
1404 * dwarf2out.c (debug_str_hash_forced): Removed.
1405 (gen_label_for_indirect_string): Removed.
1406 (get_debug_string_label): Removed.
1407 (AT_string_form): Generate label directly.
1408 (output_indirect_string): Test indirect_string_node for
1409 DW_FORM_strp instead of checking label and refcount.
1410 (prune_indirect_string): Removed.
1411 (prune_unused_types): Don't check debug_str_hash_forced or
1412 call prune_indirect_string.
1413
4868e6ea
AO
14142011-05-04 Alexandre Oliva <aoliva@redhat.com>
1415
1416 PR other/48093
1417 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
1418
01a5c0ab
AO
14192011-05-04 Alexandre Oliva <aoliva@redhat.com>
1420
1421 PR debug/47994
1422 PR debug/47919
1423 * combine.c (try_combine): Skip debug insns at m_split tests.
1424
6ac00218
MW
14252011-04-26 Mark Wielaard <mjw@redhat.com>
1426
1427 PR42288
1428 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
1429 when info_section_emitted.
1430
3af42a7b
JM
14312011-05-03 Joseph Myers <joseph@codesourcery.com>
1432
1433 * config/mips/mips-opts.h: New.
1434 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
1435 to mips-opts.h.
1436 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
1437 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
1438 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
1439 via opts pointer.
1440 * config/mips/mips.h (enum mips_code_readable_setting): Move to
1441 mips-opts.h.
1442 (mips_abi, mips_code_readable): Don't declare.
843b6915 1443 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
1444 (mabi=): Use Enum and Var.
1445 (mips_abi): New Enum and EnumValue entries.
1446 (mcode-readable=): Use Enum and Var.
1447 (mips_code_readable_setting): New Enum and EnumValue entries.
1448 (mr10k-cache-barrier=): Use Enum and Var.
1449 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
1450
1cb1a99f
JH
14512011-05-03 Jan Hubicka <jh@suse.cz>
1452
1453 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
1454 replace hash by pointer map.
1455 (cgraph_node_set_element_def, cgraph_node_set_element,
1456 const_cgraph_node_set_element, varpool_node_set_element_def,
1457 varpool_node_set_element, const_varpool_node_set_element): Remove.
1458 (free_cgraph_node_set, free_varpool_node_set): New function.
1459 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
1460 * tree-emutls.c: Free varpool node set.
1461 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
1462 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1463 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
1464 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1465 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
1466 Move here from ipa.c; implement using pointer_map
1467 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
1468 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
1469 debug_cgraph_node_set, varpool_node_set_new,
1470 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
1471 dump_varpool_node_set, debug_varpool_node_set):
1472 Move to ipa-uitls.c.
1473 * passes.c (ipa_write_summaries): Update.
1474
7f31f4db
SH
14752011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1476
7a2f7208
UB
1477 From Mike Frysinger:
1478 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
1479 bf542/bf544/bf547/bf548/bf549.
7f31f4db 1480
b70fce6d
UB
14812011-05-03 Uros Bizjak <ubizjak@gmail.com>
1482
1483 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
1484
265b1d82
SH
14852011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1486
1487 From Bernd Schmidt:
1488 * config/bfin/bfin.md (MOVCC): New mode_macro.
1489 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
1490 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
1491 comments from generated assembly.
1492
f0b568f3
SH
14932011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1494
1495 From Bernd Schmidt
1496 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
1497 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
1498 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
1499 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
1500 * config/bfin/lib1funcs.asm (___muldi3): New function.
1501
2c67cf6e
NF
15022011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1503
1504 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
1505 build_function_type_list instead of build_function_type.
1506 Rearrange initialization of `args' to do so.
1507
f9ac28ad
NF
15082011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1509
1510 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
1511 instead of build_function_type.
1512
22b8798c
NF
15132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1514
1515 * config/rs6000/rs6000.c (spe_init_builtins): Call
1516 build_function_type_list instead of build_function_type.
1517 (paired_init_builtins, altivec_init_builtins): Likewise.
1518 (builtin_function_type): Likewise.
1519
4cb44528
NF
15202011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1521
1522 * config/sh/sh.c (sh_media_init_builtins): Call
1523 build_function_type_list instead of build_function_type.
1524
4c203a6a
NF
15252011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1526
1527 * config/sparc/sparc.c (sparc_file_end): Call
1528 build_function_type_list instead of build_function_type.
1529
d6a3d62b
NF
15302011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1531
1532 * config/alpha/alpha.c (alpha_init_builtins): Call
1533 build_function_type_list instead of build_function_type.
1534
de530b86
NF
15352011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1536
1537 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
1538 build_function_type_list instead of build_function_type.
1539
baeec5f2
NF
15402011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1541
1542 * config/iq2000/i2000.c (iq2000_init_builtins): Call
1543 build_function_type_list instead of build_function_type.
1544 Delete `endlink' variable.
1545
c19afe52
NF
15462011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1547
1548 * config/avr/avr.c (avr_init_builtins): Call
1549 build_function_type_list instead of build_function_type.
1550
a341df0a
NF
15512011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1552
1553 * config/picochip/picochip.c (picochip_init_builtins): Call
1554 build_function_type_list instead of build_function_type.
1555 Delete `endlink' variable.
1556
2102b1e1
NF
15572011-05-03 Nathan Froyd <froydnj@codesourcery.com>
1558
1559 * config/bfin/bfin.c (bfin_init_builtins): Call
1560 build_function_type_list instead of build_function_type.
1561
9f111209
SH
15622011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1563
1564 From Bernd Schmidt
1565 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
1566 that's not CONST_INT. Seemingly redundant check is due to PR39768.
1567
7071d064
SH
15682011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1569
1570 From Jie Zhang:
1571 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
1572 libbffastfp overrides libgcc when -mfast-fp.
1573
748f7574 15742011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
1575
1576 Originally from Bernd Schmidt
1577 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
1578 * config/bfin/bfin.c (override_options): Test it and error if
1579 TARGET_FDPIC.
1580
1a3a9152
SH
15812011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
1582
1583 Originally From Bernd Schmidt
1584 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
1585 FD-PIC.
1586
7134c090
JL
15872011-05-03 Jeff Law <law@redhat.com>
1588
1589 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
1590 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
1591 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
1592 than accessing AUX field directly. Free the AUX field before
1593 clearing it.
7134c090
JL
1594 (thread_block, thread_through_loop_header): Likewise.
1595 (thread_single_edge, mark_threaded_blocks): Likewise.
1596 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
1597 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 1598
2c7eebae
BS
15992011-05-03 Bernd Schmidt <bernds@codesourcery.com>
1600
1601 * function.c (init_function_start): Call decide_function_section.
1602 * varasm.c (decide_function_section): New function.
1603 (assemble_start_function): When not using
1604 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
1605 or first_function_block_is_cold.
1606 * rtl.h (decide_function_section): Declare.
1607
17038fcf
JJ
16082011-05-03 Uros Bizjak <ubizjak@gmail.com>
1609 Jakub Jelinek <jakub@redhat.com>
1610
1611 PR target/48774
1612 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
1613 only succeed if req_mode is the same as set_mode.
1614
3810076b
BS
16152011-05-03 Bernd Schmidt <bernds@codesourcery.com>
1616
1617 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
1618 * genemit.c (gen_exp): Handle RETURN.
1619 * emit-rtl.c (verify_rtx_sharing): Likewise.
1620 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
1621 * rtl.c (copy_rtx): RETURN is shared.
1622 * rtl.h (enum global_rtl_index): Add GR_RETURN.
1623 (ret_rtx): New.
1624 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
1625 * config/s390/s390.c (s390_emit_epilogue): Likewise.
1626 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
1627 * config/cris/cris.c (cris_expand_return): Likewise.
1628 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
1629 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
1630 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
1631 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
1632 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
1633 Likewise.
1634 * config/v850/v850.c (expand_epilogue): Likewise.
1635 * config/bfin/bfin.c (bfin_expand_call): Likewise.
1636 * config/arm/arm.md (epilogue): Likewise.
1637 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
1638 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
1639 variable to ret_reg.
1640
9efdb4ad
RG
16412011-05-03 Richard Guenther <rguenther@suse.de>
1642
1643 PR lto/48846
1644 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
1645 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
1646 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1647
60a45536
RG
16482011-05-03 Richard Guenther <rguenther@suse.de>
1649
1650 * c-decl.c (grokdeclarator): Instead of looking at
1651 TREE_OVERFLOW check if the constant fits in the index type.
1652
3188ed59
RS
16532011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
1654
1655 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
1656 (vec_store_lanes<mode><mode>): Likewise.
1657
272c6793
RS
16582011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
1659
1660 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
1661 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
1662 convert_optab_index values.
1663 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
1664 * genopinit.c (optabs): Initialize the new optabs.
1665 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
1666 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
1667 (expand_STORE_LANES): New functions.
1668 * tree.h (build_array_type_nelts): Declare.
1669 * tree.c (build_array_type_nelts): New function.
1670 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
1671 (vect_model_load_cost): Likewise.
1672 (vect_store_lanes_supported, vect_load_lanes_supported)
1673 (vect_record_strided_load_vectors): Declare.
1674 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
1675 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
1676 (vect_transform_strided_load): Split out statement recording into...
1677 (vect_record_strided_load_vectors): ...this new function.
1678 * tree-vect-stmts.c (create_vector_array, read_vector_array)
1679 (write_vector_array, create_array_ref): New functions.
1680 (vect_model_store_cost): Add store_lanes_p argument.
1681 (vect_model_load_cost): Add load_lanes_p argument.
1682 (vectorizable_store): Try to use store-lanes functions for
1683 interleaved stores.
1684 (vectorizable_load): Likewise load-lanes and loads.
1685 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
1686 to vect_model_store_cost.
1687 (vect_build_slp_tree): Likewise vect_model_load_cost.
1688
0f6d54f7
RS
16892011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
1690
1691 * hooks.h (hook_bool_mode_uhwi_false): Declare.
1692 * hooks.c (hook_bool_mode_uhwi_false): New function.
1693 * target.def (array_mode_supported_p): New hook.
1694 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
1695 * doc/tm.texi: Regenerate.
1696 * stor-layout.c (mode_for_array): New function.
1697 (layout_type): Use it.
1698 * config/arm/arm.c (arm_array_mode_supported_p): New function.
1699 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
1700
b15eacc7
EB
17012011-05-03 Eric Botcazou <ebotcazou@adacore.com>
1702
1703 PR target/48723
1704 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
1705 for -fstack-check if the size to allocate is negative.
1706
575bfb00
LC
17072011-05-02 Lawrence Crowl <crowl@google.com>
1708
1709 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1710 (timevar_cond_start): New for starting a timer only when it is not
1711 already running.
1712 (timevar_cond_stop): New for stopping a timer when it was not already
1713 running.
1714
1715 * timevar.c (timevar_stop): Enable start/stop timers to start again.
1716 (timevar_cond_start): New as above.
1717 (timevar_cond_stop): New as above.
1718
1719 * timevar.def: Add start/stop timers for compiler phases,
1720 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1721 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1722 and TV_PHASE_FINALIZE.
1723 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1724 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1725 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1726 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1727 Make unused TV_OVERLOAD into a start/stop timer.
1728
1729 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1730 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1731 to indicate that they are start/stop timers.
1732
1733 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1734 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1735 Move initialization to do_compile.
1736 (do_compile): Add initialization from above.
1737 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1738
1739 * c-decl.c (c_write_global_declarations): Add start/stop of
1740 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1741
1742 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1743 or TV_PARSE_INLINE, as appropriate.
1744 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1745 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1746
3533b943
JM
17472011-05-02 Jason Merrill <jason@redhat.com>
1748
1749 PR c++/40975
1750 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
1751
2609a0ce
SM
17522011-05-02 Simon Martin <simartin@users.sourceforge.net>
1753
1754 PR c/35445
1755 * c-decl.c (finish_decl): Only create a composite if the types are
1756 compatible.
1757
6b0e4cbb
JM
17582011-05-02 Joseph Myers <joseph@codesourcery.com>
1759
1760 * config/fr30/fr30-protos.h (Mmode): Don't define.
1761 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
1762 definition where used.
1763 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
1764 define. Expand definitions where used.
1765 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
1766 Expand definitions where used.
1767 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
1768 rx_function_arg, rx_function_arg_advance,
1769 rx_function_arg_boundary): Expand definitions of those macros.
1770 * config/v850/v850-protos.h (Mmode): Don't define. Expand
1771 definition where used.
1772
4e938ce6
UB
17732011-05-02 Uros Bizjak <ubizjak@gmail.com>
1774
1775 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
1776 reg<->xmm moves.
1777 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
1778 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
1779 with *movv2sf_internal_rex64_avx.
1780 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
1781 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
1782 Use %v prefix in insn mnemonic to handle TARGET_AVX.
1783 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
1784 "vex" in "prefix" attribute calculation.
1785 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
1786
36019c19
SH
17872011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
1788
7a2f7208
UB
1789 PR target/47951
1790 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
1791 inputs match the output.
36019c19 1792
f69ea688
AS
17932011-05-02 Andreas Schwab <schwab@linux-m68k.org>
1794
1795 PR target/47955
1796 * config/m68k/m68k.c (m68k_expand_prologue): Set
1797 current_function_static_stack_size.
1798
c33406f5
JH
17992011-05-02 Jan Hubicka <jh@suse.cz>
1800
1801 * lto-streamer.c (lto_streamer_cache_insert_1,
1802 lto_streamer_cache_lookup, lto_streamer_cache_create,
1803 lto_streamer_cache_delete): Use pointer map instead of hashtable.
1804 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
1805
47c94d21
JM
18062011-05-02 Joseph Myers <joseph@codesourcery.com>
1807
1808 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
1809 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
1810 config/m68k/t-opts: New files.
1811 * config/m68k/m68k-tables.opt: New file (generated).
1812 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
1813 extra_options and m68k/t-opts to tmake_file.
1814 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
1815 (all_isas): Initialize using m68k-isas.def.
1816 (all_microarchs): Initialize using m68k-microarchs.def.
1817 (m68k_find_selection): Remove.
1818 (m68k_handle_option): Don't assert that global structures are in
1819 use. Use error_at. Access variables via opts pointer. Don't
1820 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
1821 directly for -m68020-40 and -m68020-60.
1822 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
1823 m68k_tune_entry here.
1824 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
1825 to m68k-opts.h.
1826 (m68k_library_id_string): Remove declaration.
4e938ce6 1827 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
1828 (m68k_library_id_string): New Variable.
1829 (march=, mcpu=, mtune=): Use Enum and Var.
1830
e562bf36
RG
18312011-05-02 Richard Guenther <rguenther@suse.de>
1832
1833 * varasm.c (output_constructor_regular_field): Compute zero-based
1834 index with double-ints. Make sure to ICE instead of producing
1835 wrong code.
1836 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
1837 in asserts. Properly use a signed type.
1838
6bec6c98
UB
18392011-05-02 Uros Bizjak <ubizjak@gmail.com>
1840
1841 * config/i386/sse.md (V): New mode iterator.
1842 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
1843 TARGET_SSE2.
1844 (V_256): Rename from AVX256MODE.
1845 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
1846 condition to all users.
1847 (VF1): Ditto.
1848 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
1849 condition to all users.
1850 (VF_128): Make V4SF mode unconditional.
1851 (VF_256): Rename from AVX256MODEF2P.
1852 (VI4F_128): Rename from SSEMODE4S.
1853 (VI8F_128): Rename from SSEMODE2D.
1854 (VI4F_256): Rename from AVX256MODE8P.
1855 (VI8F_256): Rename from AVX256MODE4P.
1856 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
1857 (ssescalarmodesuffix): Remove SF and DF modes.
1858 (SSEMODE124): Remove.
1859 (SSEMODE1248): Ditto.
1860 (SSEMODEF2P): Ditto.
1861 (AVXMODEF2P): Ditto.
1862 (AVXMODEFDP): Ditto.
1863 (AVXMODEFSP): Ditto.
1864 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
1865 unconditional.
1866 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
1867 unconditional.
1868 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
1869 xop_pcmov_<mode>256. Use V mode iterator.
1870
1871 Adjust RTX patterns globally for renamed mode attributes.
1872
2dfdcb4b
UW
18732011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1874
1875 * haifa-sched.c (sched_emit_insn): Emit insn before first
1876 non-scheduled insn. Inform back-end about new insn. Add
1877 new insn to scheduled_insns list.
1878
90bc4623
RG
18792011-05-02 Richard Guenther <rguenther@suse.de>
1880
1881 PR tree-optimization/48822
1882 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
1883 (process_scc): Indicate which iteration we start.
1884
bc0fe8cb
JH
18852011-05-02 Jan Hubicka <jh@suse.cz>
1886
1887 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
1888 (lto_section_overrun): New.
1889 * lto-section-out.c (append_block): Rename to ...
1890 (lto_append_block): ... this one; export.
1891 (lto_output_1_stream): Move lto lto-streamer.h
1892 (lto_output_data_stream): Update.
1893 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
1894 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
1895 functions.
1896
f070a9d1
RG
18972011-05-02 Richard Guenther <rguenther@suse.de>
1898
1899 * tree.c (tree_code_counts): New global array.
1900 (record_node_allocation_statistics): Count individual tree codes.
1901 (dump_tree_statistics): Dump individual code stats.
1902
09dfe187
JH
19032011-05-01 Jan Hubicka <jh@suse.cz>
1904
1905 * ipa-inline.c (caller_growth_limits): Fix thinko when
1906 looking for largest stack frame.
1907 * ipa-inline.h (dump_inline_summary): Declare.
1908 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
1909 on stack usage.
1910 (dump_inline_summary): Export.
1911 (debug_inline_summary): Declare as DEBUG_FUNCTION.
1912
6f76a878
AS
19132011-05-01 Anatoly Sokolov <aesok@post.ru>
1914
1915 * reginfo.c (memory_move_cost): Change rclass argument type form
1916 'enum reg_class' to reg_class_t.
1917 * reload.h (memory_move_cost): Update prototype.
1918 * postreload.c reload_cse_simplify_set): Change type dclass var to
1919 reg_class_t.
1920 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
1921 Update prototype.
1922 (ira_allocate_and_set_costs): Change aclass argument type form
1923 'enum reg_class' to reg_class_t.
6bec6c98 1924 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
1925 Change aclass argument type to reg_class_t.
1926 (update_conflict_hard_reg_costs): Change type aclass and pref vars
1927 to reg_class_t.
1928 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
1929 memory_move_cost call.
1930
1931 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
1932 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
1933 Change type tmp var to reg_class_t.
1934
9a4ac625
JH
19352011-04-30 Jan Hubicka <jh@suse.cz>
1936
1937 * ipa-inline.c (can_inline_edge_p): Disregard limits when
1938 inlining into function with flatten attribute.
1939 (want_inline_small_function_p): Be more realistic about inlining
1940 cold calls where callee size grows.
1941
dd8352ee
JH
19422011-04-30 Jan Hubicka <jh@suse.cz>
1943
1944 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
1945 flags.
1946
46e43d2b
AS
19472011-04-30 Anatoly Sokolov <aesok@post.ru>
1948
1949 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
1950 PRINT_OPERAND_PUNCT_VALID_P): Remove.
1951 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
1952 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
1953 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1954 (print_operand): Rename to...
1955 (sparc_print_operand): ...this. Make static. Adjust
1956 sparc_print_operand function call.
1957 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
1958 functions.
1959
ecb62563
JH
19602011-04-30 Jan Hubicka <jh@suse.cz>
1961
6bec6c98 1962 PR middle-end/48752
ecb62563
JH
1963 * ipa-inline.c (early_inliner): Disable when doing late
1964 addition of function.
1965
edb9b69e
JJ
19662011-04-30 Jakub Jelinek <jakub@redhat.com>
1967
be80a87e
JJ
1968 * dwarf2out.c (get_address_mode): New inline.
1969 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
1970 if not dwarf_strict emit
1971 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
1972 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
1973 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
1974 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
1975 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
1976 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
1977 mem_loc_descriptor callers.
1978 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
1979 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
1980 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
1981 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
1982 (base_types): New variable.
1983 (get_base_type_offset, calc_base_type_die_sizes,
1984 base_type_for_mode, mark_base_types, base_type_cmp,
1985 move_marked_base_types): New functions.
1986 (calc_die_sizes): Assert that die_offset is 0 or equal to
1987 next_die_offset.
1988 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
1989 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
1990 callers. If not dwarf_strict, call mem_loc_descriptor even for
1991 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
1992 (gen_subprogram_die): Don't give up on call site parameters
1993 with non-integral or large integral modes. Adjust
1994 mem_loc_descriptor callers.
1995 (prune_unused_types): Call prune_unused_types_mark on base_types
1996 vector entries.
1997 (resolve_addr): Call mark_base_types.
1998 (dwarf2out_finish): Call move_marked_base_types.
1999
edb9b69e
JJ
2000 PR tree-optimization/48809
2001 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
2002 type.
2003 (gen_inbound_check): Don't compute index_expr - range_min in utype
2004 again, instead reuse SSA_NAME initialized in build_arrays.
2005 Remove two useless gsi_for_stmt calls.
2006
a6545a3d
JL
20072011-04-29 Jeff Law <law@redhat.com>
2008
2009 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
2010
af8bca3c
MJ
20112011-04-29 Martin Jambor <mjambor@suse.cz>
2012
2013 * cgraph.h (cgraph_postorder): Remove declaration.
2014 * ipa-utils.h (ipa_free_postorder_info): Declare.
2015 (ipa_reverse_postorder): Likewise.
2016 * cgraphunit.c: Include ipa-utils.h.
2017 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
2018 * ipa-inline.c: Include ipa-utils.h.
2019 (ipa_inline): Update call to ipa_reverse_postorder.
2020 * ipa-pure-const.c (propagate_pure_const): Update call to
2021 ipa_reduced_postorder and ipa_print_order. Call
2022 ipa_free_postorder_info to clean up.
2023 (propagate_nothrow): Likewise.
2024 * ipa-reference.c (propagate): Removed a useless call to
2025 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
2026 and ipa_print_order. Call ipa_free_postorder_info to clean up.
2027 * ipa.c: Include ipa-utils.h.
2028 (ipa_profile): Update call to ipa_reverse_postorder.
2029 (cgraph_postorder): Moved to...
2030 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
2031 (ipa_utils_print_order): Renamed to ipa_print_order.
2032 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
2033 comments.
2034 (ipa_free_postorder_info): New function.
2035 * passes.c: Include ipa-utils.h.
2036 (do_per_function_toporder): Update call to ipa_reverse_postorder.
2037 (ipa_write_summaries): Likewise.
2038 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
2039 (cgraphunit.o): Likewise.
2040 (ipa.o): Likewise.
2041 (ipa-inline.o): Likewise.
2042
b15c64ee
JH
20432011-04-29 Jan Hubicka <jh@suse.cz>
2044
2045 * gcc.dg/tree-ssa/inline-10.c: New testcase.
2046 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
2047 * ipa-inline.h (clause_t): Turn into unsigned int.
2048 * ipa-inline-analysis.c (add_clause): Do more simplification.
2049 (and_predicates): Shortcut more cases.
2050 (predicates_equal_p): Move forward; check that clauses are properly
2051 ordered.
2052 (or_predicates): Shortcut more cases.
2053 (edge_execution_predicate): Rewrite as...
2054 (set_cond_stmt_execution_predicate): ... this function; handle
2055 __builtin_constant_p.
2056 (set_switch_stmt_execution_predicate): New .
2057 (compute_bb_predicates): New.
2058 (will_be_nonconstant_predicate): Update TODO.
2059 (estimate_function_body_sizes): Use compute_bb_predicates
2060 and free them later, always try to estimate if stmt is constant.
2061 (estimate_time_after_inlining, estimate_size_after_inlining):
2062 Gracefully handle optimized out edges.
2063 (read_predicate): Fix off by one error.
2064
a88fdc2a
NP
20652011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
2066
2067 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
2068
d984c8ef
XDL
20692011-04-27 Xinliang David Li <davidxl@google.com>
2070
2071 * tree-profile.c (init_ic_make_global_vars): Set
2072 tls attribute on ic vars.
2073 * coverage.c (coverage_end_function): Initialize
2074 function_list with zero.
2075
45a2c477
RG
20762011-04-29 Richard Guenther <rguenther@suse.de>
2077
2078 * builtins.c (fold_builtin_classify_type): Use integer_type_node
2079 for the type of the result.
2080 (fold_builtin_isascii): Likewise.
2081 (fold_builtin_toascii): Use integer_type_node where appropriate.
2082 (fold_builtin_logb): Likewise.
2083 (fold_builtin_frexp): Likewise.
2084 (fold_builtin_strstr): Likewise.
2085 (fold_builtin_strpbrk): Likewise.
2086 (fold_builtin_fputs): Likewise.
2087 (fold_builtin_sprintf): Likewise.
2088 (fold_builtin_snprintf): Likewise.
2089 (fold_builtin_printf): Likewise.
2090 (do_mpfr_remquo): Use a proper type for the assigned constant.
2091 (do_mpfr_lgamma_r): Likewise.
2092 * dwarf2out.c (resolve_one_addr): Use size_int.
2093 * except.c (init_eh): Likewise.
2094 (assign_filter_values): Use integer_type_node for filter values.
2095 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
2096 indices.
2097 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
2098 for EH region numbers.
2099 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
2100 for the shift amount.
2101
eb6c3df1
RG
21022011-04-29 Richard Guenther <rguenther@suse.de>
2103
2104 * expr.h (expand_shift): Rename to ...
2105 (expand_variable_shift): ... this.
2106 (expand_shift): Take a constant shift amount.
2107 * expmed.c (expand_shift): Rename to ...
2108 (expand_variable_shift): ... this.
2109 (expand_shift): New wrapper around expand_variable_shift.
2110 * expr.c (convert_move, emit_group_load_1, emit_group_store,
2111 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
2112 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
2113 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
2114 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
2115 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
2116 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
2117 emit_store_flag_1, emit_store_flag): Likewise.
2118 * builtins.c (expand_builtin_signbit): Likewise.
2119 * calls.c (load_register_parameters): Likewise.
2120 * function.c (assign_parm_setup_block): Likewise.
2121 * lower-subreg.c (resolve_shift_zext): Likewise.
2122 * optabs.c (widen_bswap, expand_abs_nojump,
2123 expand_one_cmpl_abs_nojump, expand_float): Likewise.
2124 * spu/spu.c (spu_expand_extv): Likewise.
2125 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
2126
9f616812
RG
21272011-04-29 Richard Guenther <rguenther@suse.de>
2128
2129 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
2130 for the remapped region number.
2131 * predict.c (build_predict_expr): Use integer_type_node for the
2132 predict kind.
2133 * fold-const.c (fold_binary_loc): Use integer_type_node for
2134 the shift amount. Use a proper type for the PLUS_EXPR operand.
2135
b823cdfe
MM
21362011-04-29 Michael Matz <matz@suse.de>
2137
2138 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
2139 other trees that just builtins.
2140 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
2141
413581ba
RG
21422011-04-29 Richard Guenther <rguenther@suse.de>
2143
2144 * tree-nested.c (get_trampoline_type): Use size_int.
2145 (get_nl_goto_field): Likewise.
2146 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
2147 for all indexes.
2148 (lower_eh_constructs_2): Likewise.
2149 (lower_resx): Likewise.
2150 (lower_eh_dispatch): Likewise.
2151 * tree-mudflap.c (mf_build_string): Use size_int.
2152 (mudflap_register_call): Use integer_type_node for the flag.
2153 (mudflap_enqueue_constant): Use size_int.
2154 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
2155 instead of rebuilding it.
2156
5c04e9f4
RG
21572011-04-29 Richard Guenther <rguenther@suse.de>
2158
2159 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
2160 Handle OBJ_TYPE_REF.
2161 (find_func_aliases_for_call): Use it more consistently.
2162
5c24671b
AO
21632011-04-29 Alexandre Oliva <aoliva@redhat.com>
2164
2165 * haifa-sched.c (last_nondebug_scheduled_insn): New.
2166 (rank_for_schedule): Use it.
2167 (schedule_block): Set it.
2168
10adac51
XDL
21692011-04-28 David Li <davidxl@google.com>
2170
2171 * tree.c (crc32_string): Use crc32_byte.
2172 (crc32_byte): New function.
2173 * tree.h (crc32_byte): New function.
2174 * gcov.c (read_graph_file): Handle new cfg_cksum.
2175 (read_count_file): Ditto.
2176 * profile.c (instrument_values): Ditto.
2177 (get_exec_counts): Ditto.
2178 (read_profile_edge_counts): Ditto.
2179 (compute_branch_probabilities): Ditto.
2180 (compute_value_histograms): Ditto.
2181 (branch_prob): Ditto.
2182 (end_branch_prob): Ditto.
2183 * coverage.c (read_counts_file): Ditto.
2184 (get_coverage_counts): Ditto.
2185 (tree_coverage_counter_addr): Ditto.
2186 (coverage_checksum_string): Ditto.
2187 (coverage_begin_output): Ditto.
2188 (coverage_end_function): Ditto.
2189 (build_fn_info_type): Ditto.
2190 (build_fn_info_value): Ditto.
2191 * libgcov.c (gcov_exit): Ditto.
2192 * gcov-dump.c (tag_function): Ditto.
2193 (compute_checksum): Remove.
2194
5d6358a5
AM
21952011-04-29 Alan Modra <amodra@gmail.com>
2196
2197 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
2198 unspec plus offset. Tidy macho code.
2199
85ad2ef5
MJ
22002011-04-29 Martin Jambor <mjambor@suse.cz>
2201
2202 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
2203 node instead of a decl. Update all callers.
2204 * cgraph.h: Update declaration.
2205
437f4a00
IR
22062011-04-28 Ira Rosen <ira.rosen@linaro.org>
2207
2208 PR tree-optimization/48765
2209 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
2210 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
2211 to indicate if loop aware SLP is being used. Scan the statements
2212 and update the vectorization factor according to the type of
2213 vectorization before statement analysis.
2214 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
2215 pass it to vect_analyze_loop_operations.
2216 (vectorizable_reduction): Set number of copies to 1 in case of pure
2217 SLP statement.
2218 * tree-vect-stmts.c (vectorizable_conversion,
2219 vectorizable_assignment, vectorizable_shift,
2220 vectorizable_operation, vectorizable_type_demotion,
2221 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
2222 Likewise.
2223 (vectorizable_condition): Move the check that it is not SLP
2224 vectorization before the number of copies check.
2225 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
2226 to vectorize the loop using SLP.
2227
c6fc44f3
JJ
22282011-04-28 Jakub Jelinek <jakub@redhat.com>
2229
2230 PR middle-end/48597
2231 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
2232 inline asm.
2233
6c0170ea
JM
22342011-04-28 Joseph Myers <joseph@codesourcery.com>
2235
2236 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
2237 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
2238 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
2239 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
2240 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
2241 linux*.h headers.
6bec6c98 2242 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
2243 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2244 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
2245 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 2246 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
2247 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
2248 REG_NAME.
2249 * config/i386/linux.h (REG_NAME): Don't define.
2250 * config/i386/linux64.h (REG_NAME): Don't define.
2251 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
2252 Undefine before defining.
2253
970dabbd
JH
22542011-04-28 Jan Hubicka <jh@suse.cz>
2255
6bec6c98
UB
2256 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
2257 nonconstant_names array.
970dabbd
JH
2258 (estimate_function_body_sizes): Build nonconstant_names array; handle
2259 BUILT_IN_CONSTANT_P.
2260
8d3e3924
RG
22612011-04-28 Richard Guenther <rguenther@suse.de>
2262
2263 PR bootstrap/48804
2264 Revert
2265 2011-04-28 Richard Guenther <rguenther@suse.de>
2266
2267 * tree-ssa-structalias.c (solve_constraints): Build succ graph
2268 as late as possible.
6bec6c98 2269
8576f20a
RG
22702011-04-28 Richard Guenther <rguenther@suse.de>
2271
2272 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
2273 (debug_constraint): Do it here.
2274 (dump_constraints): And here.
2275 (rewrite_constraints): And here.
2276 (dump_constraint_edge): Remove.
2277 (dump_constraint_graph): Rewrite to produce DOT output.
2278 (solve_constraints): Build succ graph as late as possible.
2279 Dump constraint graphs before and after solving.
2280
e38811ce
RG
22812011-04-28 Richard Guenther <rguenther@suse.de>
2282
2283 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2284 New function split out from ...
2285 (find_func_aliases): ... here. Call it.
2286 (find_func_aliases_for_call): Likewise.
2287
fbaf0d0c
GDR
22882011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
2289
2290 * internal-fn.h (internal_fn_name_array): Declare.
2291 (internal_fn_flags_array): Likewise.
2292
cbb734aa
UB
22932011-04-27 Uros Bizjak <ubizjak@gmail.com>
2294
2295 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
2296 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
2297 Move from sse.md.
2298 (ssemodefsuffix): Remove.
2299 (ssevecmodesuffix): New mode attribute.
2300 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
2301 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2302 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2303 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2304 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
2305 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
2306 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
2307 ssemodesuffix mode attribute.
2308 (float splitters): Use ssevecmodesuffix mode attribute.
2309 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
2310 (sseinsmode): Rename from avxvecmode.
2311 (avxsizesuffix): Rename from avxmodesuffix.
2312 (sseintvecmode): Rename from avxpermvecmode.
2313 (ssedoublevecmode): Rename from ssedoublesizemode.
2314 (ssehalfvecmode): Rename from avxhalfvecmode.
2315 (ssescalarmode): Rename from avxscalarmode.
2316 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
2317 templates for ssemodesuffix mode attribute.
2318 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
2319 mode attribute.
2320
2321 Adjust RTX patterns globally for renamed mode attributes.
2322
991278ab
JH
23232011-04-27 Jan Hubcika <jh@suse.cz>
2324
2325 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
2326 * ipa-inline-analysis.c: Include alloc-pool.h.
2327 (edge_predicate_pool): New.
2328 (trye_predicate_p): New function
2329 (false_predicate_p): New function.
2330 (add_clause): Sanity check that false clauses are "optimized";
2331 never add clauses to predicate that is already known to be false.
2332 (and_predicate): Use flase_predicate_p.
2333 (evaulate_predicate): Rename to ...
2334 (evaluate_predicate): ... this one; update all callers; assert
2335 that false is not listed among possible truths.
2336 (dump_predicate): Use true_predicate_p.
2337 (account_size_time): Use false_predicate_p.
2338 (evaulate_conditions_for_edge): Rename to ...
2339 (evaluate_conditions_for_edge) ... this one.
2340 (edge_set_predicate): New function.
2341 (inline_edge_duplication_hook): Duplicate edge predicates.
2342 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 2343 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
2344 (dump_inline_summary): Update.
2345 (estimate_function_body_sizes): Set edge predicates.
2346 (estimate_calls_size_and_time): Handle predicates.
2347 (estimate_callee_size_and_time): Update.
2348 (remap_predicate): Add toplev_predicate; update comment.
2349 (remap_edge_predicates): New function.
2350 (inline_merge_summary): Compute toplev predicate; update.
2351 (read_predicate): New function.
2352 (read_inline_edge_summary): Use it.
2353 (inline_read_section): Likewise.
2354 (write_predicate): New function.
2355 (write_inline_edge_summary): Use it.
2356 (inline_write_summary): Likewise.
2357 (inline_free_summary): Free alloc pool and edge summary vec.
2358
648b5f85
RG
23592011-04-27 Richard Guenther <rguenther@suse.de>
2360
2361 * tree-ssa-structalias.c (changed_count): Remove.
2362 (changed): Use a bitmap.
2363 (unify_nodes): Adjust.
2364 (do_sd_constraint): Likewise.
2365 (do_ds_constraint): Likewise.
2366 (do_complex_constraint): Likewise.
2367 (solve_graph): Likewise.
2368
4d5dcfb2
JH
23692011-04-27 Jan Hubicka <jh@suse.cz>
2370
2371 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
2372
200eb7d2
UB
23732011-04-27 Uros Bizjak <ubizjak@gmail.com>
2374
2375 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
2376 (avx_vperm2f128_*_operand): Ditto.
2377 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
2378 Use avx_vpermilp_parallel in insn condition.
2379 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
2380 Use avx_vperm2f128_parallel in insn condition.
2381
7d6e2521
RG
23822011-04-27 Richard Guenther <rguenther@suse.de>
2383
2384 * Makefile.in (tree-ssa-structalias.o): Remove
2385 gt-tree-ssa-structalias.h dependency.
2386 (GTFILES): Remove tree-ssa-structalias.c.
2387 * tree.c (allocate_decl_uid): New function.
2388 (make_node_stat): Use it.
2389 (copy_node_stat): Likewise.
2390 * tree.h (allocate_decl_uid): Declare.
2391 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
2392 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
2393 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 2394 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
2395 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
2396 (struct heapvar_map): Likewise.
2397 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
2398 heapvar_insert): Likewise.
2399 (make_heapvar_for): Rename to ...
2400 (make_heapvar): ... this. Simplify.
2401 (fake_var_decl_obstack): New global var.
2402 (build_fake_var_decl): New function.
2403 (make_constraint_from_heapvar): Adjust.
2404 (handle_lhs_call): Likewise.
2405 (create_function_info_for): Likewise.
2406 (intra_create_variable_infos): Likewise.
2407 (init_alias_vars): Allocate fake_var_decl_obstack.
2408 (init_alias_heapvars, delete_alias_heapvars): Remove.
2409 (compute_points_to_sets): Do not call init_alias_heapvars.
2410 (ipa_pta_execute): Likewise.
2411 (delete_points_to_sets): Free fake_var_decl_obstack.
2412
526ed6c2
UW
24132011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2414
2415 * config/spu/divmovti4.c (union qword_UTItype): New data type.
2416 (si_from_UTItype, si_to_UTItype): New functions.
2417 (__udivmodti4): Use them to implement type-punning.
2418 * config/spu/multi3.c (union qword_TItype): New data type.
2419 (si_from_TItype, si_to_TItype): New functions.
2420 (__multi3): Use them to implement type-punning.
2421
c187d33c
UW
24222011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2423
2424 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
2425
40982661
JH
24262011-04-27 Jan Hubicka <jh@suse.cz>
2427
2428 * ipa-prop.c (function_insertion_hook_holder): New holder.
2429 (ipa_add_new_function): New function.
200eb7d2
UB
2430 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
2431 Register/deregister holder.
40982661 2432
9aef53ee
RG
24332011-04-27 Richard Guenther <rguenther@suse.de>
2434
2435 PR tree-optimization/48772
200eb7d2 2436 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 2437
f63d806d
RG
24382011-04-27 Richard Guenther <rguenther@suse.de>
2439
2440 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
2441 TARGET_MEM_REF handling.
2442
e1ea7451
NC
24432011-04-27 Nick Clifton <nickc@redhat.com>
2444
9b5db25d
NC
2445 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
2446 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
2447 (REG_CLASS_NAMES): Likewise.
2448 (REG_CLASS_CONTENTS): Likewise.
2449 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
2450 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
2451 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
2452 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
2453 (EVEN_REGS): New macro. Alias for QUAD_REGS.
2454 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
2455 duplicate register classes.
97d20907 2456 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
2457 (frv_register_move_cost): Likewise.
2458
e1ea7451
NC
2459 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
2460 end of the regno_reg_class array.
2461
5c2f94b4
JJ
24622011-04-27 Jakub Jelinek <jakub@redhat.com>
2463
2464 PR c/48742
2465 * c-typeck.c (build_binary_op): Don't wrap arguments if
2466 int_operands is true.
2467
57a944d7
KK
24682011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
2469
2470 PR target/48767
2471 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
2472 targetm.calls.must_pass_in_stack for void type.
2473
898b8927
JH
24742011-04-26 Jan Hubicka <jh@suse.cz>
2475
2476 * cgraphbuild.c (build_cgraph_edges): Update call
2477 of cgraph_create_edge and cgraph_create_indirect_edge.
2478 * cgraph.c (cgraph_create_edge_including_clones,
2479 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
2480 cgraph_update_edges_for_call_stmt_node): Do not take nest
2481 argument; do not initialize call_stmt_size/time.
2482 (dump_cgraph_node): Do not dump nest.
2483 (cgraph_clone_edge): Do not take loop_nest argument;
2484 do not propagate it; do not clone call_stmt_size/time.
2485 (cgraph_clone_node): Likewise.
2486 (cgraph_create_virtual_clone): Update.
2487 * cgraph.h (struct cgraph_edge): Remove
2488 call_stmt_size/call_stmt_time/loop_nest.
2489 (cgraph_create_edge, cgraph_create_indirect_edge,
2490 cgraph_create_edge_including_clones, cgraph_clone_node): Update
2491 prototype.
2492 * tree-emutls.c (gen_emutls_addr): Update.
2493 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
2494 loop_nest; handle indirect calls, too.
2495 (clone_inlined_nodes): Do not care about updating inline summaries.
2496 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
2497 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
2498 stream call_stmt_size/call_stmt_time/loop_nest.
2499 * ipa-inline.c (edge_badness): Update.
2500 (ipa_inline): dump summaries after inlining.
2501 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 2502 New.
898b8927
JH
2503 (inline_edge_summary): New function.
2504 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
2505 (inline_edge_removal_hook): Handle edge summaries.
2506 (inline_edge_duplication_hook): New hook.
2507 (inline_summary_alloc): Alloc hooks.
2508 (initialize_growth_caches): Do not register removal hooks.
2509 (free_growth_caches); Do not free removal hook.
2510 (dump_inline_edge_summary): New function.
2511 (dump_inline_summary): Use it.
2512 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
2513 (inline_update_callee_summaries): New function.
2514 (inline_merge_summary): Use it.
2515 (do_estimate_edge_time, do_estimate_edge_growth): Update.
2516 (read_inline_edge_summary): New function.
2517 (inline_read_section): Use it.
2518 (write_inline_edge_summary): New function.
2519 (inline_write_summary): Use it.
2520 (inline_free_summary): Free edge new holders.
2521 * tree-inline.c (copy_bb): Update.
2522
ffa03772
JM
25232011-04-26 Jason Merrill <jason@redhat.com>
2524
2525 * tree-eh.c (lower_try_finally_switch): Create the label along with
2526 the CASE_LABEL_EXPR.
2527
6d7b45ad
DM
25282011-04-26 David S. Miller <davem@davemloft.net>
2529 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2530
2531 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
2532 * configure: Regenerate.
2533
df10b6d4
MM
25342011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2535
2536 PR target/48258
2537 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
2538 reduction.
2539 (VEC_reduc): New code iterator and splitters for vector reduction.
2540 (VEC_reduc_name): Ditto.
2541 (VEC_reduc_rtx): Ditto.
2542 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
2543 (reduc_<VEC_reduc_name>_v4sf): Ditto.
2544
2545 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2546 support for extracting SF on VSX.
2547
2548 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
2549 generating xscvspdp.
2550 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
2551 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
2552 double add, minimum, maximum vector reduction.
2553 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
2554 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
2555 optimize double vector reduction.
2556 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
2557
35a5db04
JM
25582011-04-26 Joseph Myers <joseph@codesourcery.com>
2559
2560 * config/fr30/fr30.h (inhibit_libc): Don't define.
2561 * config/m32r/m32r-protos.h: Correct comment.
2562 * config/v850/v850.h (GHS_default_section_names,
2563 GHS_current_section_names): Use tree, not union tree_node *.
2564
2f964ad6
XDL
25652011-04-26 Xinliang David Li <davidxl@google.com>
2566
200eb7d2 2567 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
2568 * c-family/c-opts.c (c_common_handle_option): Set
2569 warn_maybe_uninitialized.
2570 * opts.c (common_handle_option): Ditto.
2571 * common.opt: New option.
2572 * tree-ssa.c (warn_uninit): Add one more parameter.
2573 (warn_uninitialized_var): Pass warning code.
2574 * tree-flow.h: Interface change.
2575
2576
9c7bd91a
RO
25772011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2578
200eb7d2 2579 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
2580 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
2581 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
2582
c2f36e21
RO
25832011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2584
2585 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
2586 * config/mips/mips.opt (mmips-tfile): Remove.
2587
2588 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
2589 mips-tdump reference to ...
200eb7d2 2590 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
2591 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
2592 reference by Tru64 UNIX.
2593
2c9da85b
JJ
25942011-04-26 Jakub Jelinek <jakub@redhat.com>
2595
0c5f6539
JJ
2596 PR debug/48768
2597 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
2598 is error_mark_node, set value to NULL.
2599
2c9da85b
JJ
2600 PR tree-optimization/48734
2601 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
2602 if return value from maybe_fold_*_comparsions isn't something
2603 the code is prepared to handle.
2604
77fa1d54
UB
26052011-04-26 Uros Bizjak <ubizjak@gmail.com>
2606
2607 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
2608 mode check.
2609 (ext_QIreg_nomode_operands): Remove.
2610 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
2611 (*andsi_1): Ditto.
2612 (*andhi_1): Ditto.
2613
0e2a6c2b
AS
26142011-04-26 Andrew Stubbs <ams@codesourcery.com>
2615
2616 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
2617
961562d8
RB
26182011-04-26 Richard Guenther <rguenther@suse.de>
2619
2620 * c-typeck.c (build_unary_op): Do not expand array-refs via
2621 pointer arithmetic. Only adjust qualifiers for function types.
2622
26232011-04-26 Richard Guenther <rguenther@suse.de>
2624
2625 PR middle-end/48694
2626 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
2627 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
2628 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
2629 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 2630
a0d260fc
PC
26312011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
2632
6bec6c98 2633 * doc/extend.texi: Document __underlying_type.
a0d260fc 2634
4d583bb9
SB
26352011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
2636
2637 * config/rs6000/titan.md (automata_option "progress"): Remove.
2638
1f3fcdc3
JL
26392011-04-25 Jeff Law <law@redhat.com>
2640
2641 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
2642
e5b0dad8
JK
26432011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
2644
2645 * system.h (ENUM_BITFIELD): Remove.
2646
5157a881 26472011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 2648 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
2649
2650 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
2651 for STORE_FLAG_VALUE==-1 case.
2652
ed4c109e
RS
26532011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
2654
2655 PR target/43804
2656 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
2657 LEGITIMATE_PIC_OPERAND_P.
2658
f3181aa2
JH
26592011-04-24 Jan Hubicka <jh@suse.cz>
2660
2661 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
2662 WPA hack.
77fa1d54
UB
2663 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
2664 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
2665 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
2666 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
2667 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
2668 Sanity check predicate length.
2669 (remap_predicate): Likewise; sanity check jump functions.
2670 (inline_read_section, inline_write_summary): Sanity check
2671 predicate length.
2672
5307cbaa
PC
26732011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
2674
2675 PR other/48748
2676 * doc/extend.texi (Type Traits): Document __is_standard_layout,
2677 __is_literal_type, and __is_trivial; update throughout about
2678 possibly cv-qualified void types.
2679
bebd5f99
GP
26802011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
2681
2682 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
2683 testsuite and make it version agnostic.
2684
7ee28a74
JH
26852011-04-22 Jan Hubicka <jh@suse.cz>
2686
2687 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
2688
16997bc0
JJ
26892011-04-23 Jakub Jelinek <jakub@redhat.com>
2690
2691 PR c/48685
2692 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
2693 to VOID_TYPE even around MODIFY_EXPR.
2694
f94d4ab1
MS
26952011-04-22 Mike Stump <mikestump@comcast.net>
2696
1a84c183 2697 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
2698 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
2699 comment.
2700
632b4f8e
JH
27012011-04-22 Jan Hubicka <jh@suse.cz>
2702
2703 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
2704 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
2705 ipa-prop.c; update all uses.
632b4f8e 2706 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
2707 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
2708 merge summary of inlined function into former caller.
632b4f8e
JH
2709 * ipa-inline.c (max_benefit): Remove.
2710 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
2711 (update_caller_keys): Use
2712 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
2713 (update_callee_keys): Likewise.
2714 (update_all_callee_keys): Likewise.
77fa1d54
UB
2715 (inline_small_functions): Do not collect max_benefit; do not reset
2716 estimated_growth; call free_growth_caches and initialize_growth_caches.
2717 * ipa-inline.h (struct condition, type clause_t, struct predicate,
2718 struct size_time_entry): New structures.
632b4f8e 2719 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
2720 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
2721 and estimated_growth.
632b4f8e
JH
2722 (edge_growth_cache_entry): New structure.
2723 (node_growth_cache, edge_growth_cache): New global vars.
2724 (estimate_growth): Turn into inline.
2725 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
2726 initialize_growth_caches, free_growth_caches): Declare.
2727 (estimate_edge_growth): Rewrite.
2728 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
2729 (reset_node_growth_cache, reset_edge_growth_cache): New inline
2730 functions.
632b4f8e
JH
2731 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
2732 (NUM_CONDITIONS): New constant.
2733 (predicate_conditions): New enum.
2734 (IS_NOT_CONSTANT): New constant.
2735 (edge_removal_hook_holder): New var.
2736 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
2737 (true_predicate, single_cond_predicate, false_predicate,
2738 not_inlined_predicate, add_condition, add_clause, and_predicates,
2739 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
2740 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
2741 evaulate_conditions_for_edge): New functions.
2742 (inline_summary_alloc): Move to heap.
2743 (inline_node_removal_hook): Clear condition and entry vectors.
2744 (inline_edge_removal_hook): New function.
2745 (initialize_growth_caches, free_growth_caches): New function.
2746 (dump_inline_summary): Update.
2747 (edge_execution_predicate): New function.
2748 (will_be_nonconstant_predicate): New function.
2749 (estimate_function_body_sizes): Compute BB and constantness predicates.
2750 (compute_inline_parameters): Do not clear estimated_growth.
2751 (estimate_edge_size_and_time): New function.
2752 (estimate_calls_size_and_time): New function.
2753 (estimate_callee_size_and_time): New function.
2754 (remap_predicate): New function.
2755 (inline_merge_summary): New function.
2756 (do_estimate_edge_time): New function based on...
2757 (estimate_edge_time): ... this one.
2758 (do_estimate_edge_growth): New function.
2759 (do_estimate_growth): New function based on....
2760 (estimate_growth): ... this one.
2761 (inline_analyze_function): Analyze after deciding on jump functions.
2762 (inline_read_section): New function.
2763 (inline_read_summary): Use it.
2764 (inline_write_summary): Write all the new data.
2765 * ipa-prop.c (ipa_get_param_decl_index): Export.
2766 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
2767 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
2768 Declare.
2769 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
2770 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
2771 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
2772 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
2773 cgraph_edge_inlinable_p): Remove.
2774 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
2775 (cgraph_process_new_functions): Update call of
2776 compute_inline_parameters.
632b4f8e 2777
1df5b0db
RG
27782011-04-22 Richard Guenther <rguenther@suse.de>
2779
2780 * tree.c (build_int_cst): Properly create canonicalized integer
2781 constants.
2782 (build_int_cst_type): Remove scary comments.
2783
ae01169c
XDL
27842011-04-22 Xinliang David Li <davidxl@google.com>
2785
2786 * toplev.c (process_options): Enable -Werror=coverage-mismatch
2787 by default when -Wno-error is not specified.
2788 * opts-global.c (decode_options): Remove call to
2789 control_warning_options.
2790
93dfac24
JJ
27912011-04-22 Jakub Jelinek <jakub@redhat.com>
2792
2793 PR tree-optimization/48717
2794 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
2795 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
2796
1b5f5069
JM
27972011-04-22 Joseph Myers <joseph@codesourcery.com>
2798
2799 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
2800 definition where used.
2801
144f4153
JJ
28022011-04-22 Jakub Jelinek <jakub@redhat.com>
2803
2804 PR c/48716
2805 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
2806 TREE_STATIC variables declared inside of some OpenMP construct.
2807
f9fd305b
MJ
28082011-04-22 Martin Jambor <mjambor@suse.cz>
2809
2810 PR middle-end/48585
1d284ec5 2811 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 2812
49819fef
AM
28132011-04-22 Alexander Monakov <amonakov@ispras.ru>
2814
2815 PR c/36750
2816 * c-typeck.c (pop_init_level): Do not warn about initializing
2817 with ` = {0}'.
2818
401f6699
AM
28192011-04-22 Alan Modra <amodra@gmail.com>
2820
2821 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
2822 when returning call_cookie.
2823 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
2824 pointers, to functions with no more vector args than the current
2825 function, and some non-local calls for ABI_V4.
2826 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
2827 sibcall_nonlocal_aix64): Combine to ..
2828 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
2829 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
2830 (sibcall_value_nonlocal_aix<mode>): ..likewise.
2831 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
2832 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
2833 operand.
2834 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
2835 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
2836 sibcall_value_symbolic_64): Delete.
2837
903d1e67
XDL
28382011-04-21 Xinliang David Li <davidxl@google.com>
2839
2840 * cgraph.h: Remove pid.
2841 * cgraph.c: Remove pid.
2842 * value-prof.c (init_node_map): New function.
2843 (del_node_map): New function.
2844 (find_func_by_funcdef_no): New function.
2845 (gimple_ic_transform): Call new function.
2846 * cgraphunit.c (cgraph_finalize_function): Remove pid.
2847 * function.c (get_last_funcdef_no): New function.
2848 * function.h (get_last_funcdef_no): New function.
2849 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
2850 to libgcov function.
2851 (tree-profiling): Call node map init and delete function.
2852
7378e95f
ILT
28532011-04-21 Ian Lance Taylor <iant@google.com>
2854
2855 * godump.c (go_format_type): Use exported Go name for anonymous
2856 field name.
2857
e84a6fcf
NF
28582011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2859
2860 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
2861 Call builtin_function_type_list instead of builtin_function_type.
2862 (UNARY, BINARY, TRINARY, QUAD): Likewise.
2863
4fe058e2
NF
28642011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2865
2866 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
2867 build_function_type_list instead of build_function_type.
2868 Delete variable `endlink'.
2869
1ba0a2d2
NF
28702011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2871
2872 * config/s390/s390.c (s390_init_builtins): Call
2873 build_function_type_list instead of build_function_type.
2874
c0676219
NF
28752011-04-21 Nathan Froyd <froydnj@codesourcery.com>
2876
2877 * config/ia64/ia64.c (ia64_init_builtins): Call
2878 build_function_type_list instead of builtin_function_type.
2879
6ddfda8a
ER
28802011-04-21 Easwaran Raman <eraman@google.com>
2881
3a6448ea 2882 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
2883 (add_stack_var): ...and its reference here...
2884 (expand_stack_vars): ...and here.
2885 (stack_var_cmp): Sort by descending order of size.
2886 (partition_stack_vars): Change heuristic.
1d284ec5 2887 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
2888 (dump_stack_var_partition): Add newline after each partition.
2889
23756963
DA
28902011-04-21 Dimitrios Apostolou <jimis@gmx.net>
2891 Jeff Law <law@redhat.com>
2892
77fa1d54 2893 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
2894 * gengtype.c (matching_file_name_substitute): Likewise.
2895
aa2a43d2
RG
28962011-04-21 Richard Guenther <rguenther@suse.de>
2897
2898 PR lto/48703
1d284ec5 2899 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 2900
4d931f41
EB
29012011-04-21 Eric Botcazou <ebotcazou@adacore.com>
2902
2903 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
2904
f103fa7a
RG
29052011-04-21 Richard Guenther <rguenther@suse.de>
2906
2907 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
2908 file name.
2909
e19f6650
RG
29102011-04-21 Richard Guenther <rguenther@suse.de>
2911
2912 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2913 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
2914 Use DECL_P, not SSA_VAR_P.
2915 (ptr_derefs_may_alias_p): Likewise.
2916 (ptr_deref_may_alias_ref_p_1): Likewise.
2917 (decl_refs_may_alias_p): Likewise.
2918 (refs_may_alias_p_1): Likewise.
2919 (ref_maybe_used_by_call_p_1): Likewise.
2920 (call_may_clobber_ref_p_1): Likewise.
2921 (indirect_ref_may_alias_decl_p): Assume indirect refrences
2922 are either MEM_REF or TARGET_MEM_REF.
2923 (indirect_refs_may_alias_p): Likewise.
2924 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
2925 for MEM_EXPR of indirect calls.
2926
9d1831bb
TG
29272011-04-21 Tristan Gingold <gingold@adacore.com>
2928
2929 * vmsdbgout.c (write_srccorr): Compute file length from the string.
2930 (dst_file_info_struct): Remove flen field.
2931 (lookup_filename): Remove code that set flen field.
2932
f199c029
TG
29332011-04-21 Tristan Gingold <gingold@adacore.com>
2934
2935 * config/ia64/ia64.c (ia64_start_function): Add a guard.
2936
2894086e
UB
29372011-04-21 Uros Bizjak <ubizjak@gmail.com>
2938
2939 PR target/48708
2940 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
2941 vec_extract and vec_concat for non-SSE4_1 targets.
2942
53f94a5c
RG
29432011-04-21 Richard Guenther <rguenther@suse.de>
2944
2945 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
2946 return statements.
2947
f0dca5ba
JM
29482011-04-21 Joseph Myers <joseph@codesourcery.com>
2949
2950 * config/i386/cygming.h (union tree_node, TREE): Don't define or
2951 undefine.
2952 (FILE): Don't undefine.
2953
984514ac
JM
29542011-04-21 Joseph Myers <joseph@codesourcery.com>
2955
2956 * config/alpha/alpha.c (struct machine_function): Use rtx, not
2957 struct rtx_def *.
2958 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
2959 struct rtx_def *.
2960 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 2961 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
2962 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
2963 rtx_def *.
2964 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
2965 definitions where used.
2966 * config/microblaze/microblaze.h (struct microblaze_args): Use
2967 rtx, not struct rtx_def *.
2968 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
2969 rtx_def *.
2894086e
UB
2970 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
2971 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
2972 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
2973 not struct rtx_def *.
2974 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
2975 struct rtx_def *.
2976 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
2977 rtx_def *.
2894086e 2978 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 2979
0b5a2724
RS
29802011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2981
2982 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
2983 operand_equal_p to compare DR_BASE_ADDRESSes.
2984 (vect_check_interleaving): Likewise.
2985
4b18d683
RS
29862011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2987
2988 PR target/46329
2989 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
2990 for all Neon struct constants.
2991
1a627b35
RS
29922011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
2993
2994 * target.def (legitimate_constant_p): New hook.
2995 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
2996 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
2997 * doc/tm.texi: Regenerate.
2998 * hooks.h (hook_bool_mode_rtx_true): Declare.
2999 * hooks.c (hook_bool_mode_rtx_true): Define.
3000 * system.h (LEGITIMATE_CONSTANT_P): Poison.
3001 * calls.c (precompute_register_parameters): Replace uses of
3002 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
3003 (emit_library_call_value_1): Likewise.
3004 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
3005 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
3006 * ira-costs.c (scan_one_insn): Likewise.
3007 * recog.c (general_operand, immediate_operand): Likewise.
3008 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
3009 * reload1.c (init_eliminable_invariants): Likewise.
3010
3011 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
3012 mode argument.
3013 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
3014 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
3015 argument.
3016 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3017 * config/alpha/predicates.md (input_operand): Update call to
3018 alpha_legitimate_constant_p.
3019
3020 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
3021 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
3022 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
3023 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3024 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
3025 (arm_legitimate_constant_p): New functions.
3026 (arm_cannot_force_const_mem): Make static.
3027
3028 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
3029
3030 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
3031 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
3032 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
3033 instead of bfin_legitimate_constant_p.
3034 (bfin_legitimate_constant_p): Make static. Add a mode argument.
3035 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3036
3037 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
3038
3039 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
3040
3041 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
3042 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
3043 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3044 (frv_legitimate_constant_p): Make static. Add a mode argument.
3045
3046 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
3047 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
3048 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
3049
3050 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
3051 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
3052 * config/i386/i386.c (legitimate_constant_p): Rename to...
3053 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
3054 argument.
3055 (ix86_cannot_force_const_mem): Update accordingly.
3056 (ix86_legitimate_address_p): Likewise.
3057 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3058 * config/i386/i386.md: Update commentary.
3059
3060 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
3061 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
3062 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3063 (ia64_legitimate_constant_p): Make static. Add a mode argument.
3064
3065 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
3066
3067 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
3068 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
3069 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3070 (lm32_legitimate_constant_p): Make static. Add a mode argument.
3071
3072 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
3073 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
3074 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
3075
3076 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
3077 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3078 (m32r_legitimate_constant_p): New function.
3079
3080 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
3081 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
3082 LEGITIMATE_CONSTANT_P.
3083 (LEGITIMATE_CONSTANT_P): Delete.
3084 * config/m68k/m68k.c (m68k_expand_prologue): Call
3085 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
3086 (m68k_legitimate_constant_p): New function.
3087 * config/m68k/m68k.md: Update comments.
3088
3089 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
3090 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3091 (mcore_legitimate_constant_p): New function.
3092
3093 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
3094 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
3095 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
3096 Add a mode argument.
3097 (mep_legitimate_address): Update accordingly.
3098 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3099
3100 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
3101 Delete.
3102 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
3103 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
3104 static. Check OP's mode for VOIDmode.
3105 (microblaze_legitimate_constant_p): New function.
3106 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3107
3108 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
3109 * config/mips/mips.c (mips_legitimate_constant_p): New function.
3110 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
3111 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3112 * config/mips/predicates.md: Update comments.
3113
3114 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
3115 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
3116 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3117 (mmix_legitimate_constant_p): Make static, return a bool, and take
3118 a mode argument.
3119 (mmix_print_operand_address): Update accordingly.
3120
3121 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
3122 Delete.
3123 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
3124 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
3125 static. Add a mode argument.
1a627b35
RS
3126 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3127
3128 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
3129
3130 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
3131 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3132 (pa_legitimate_constant_p): New function.
3133
3134 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
3135
3136 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
3137 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3138 (pdp11_legitimate_constant_p): New function.
3139
3140 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
3141 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3142 (rs6000_legitimate_constant_p): New function.
3143
3144 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
3145 (rx_legitimate_constant_p): ...this.
3146 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
3147 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
3148 (rx_legitimate_constant_p): ...this.
3149 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3150 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
3151
3152 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
3153 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
3154 * config/s390/s390.c (legitimate_constant_p): Rename to...
3155 (s390_legitimate_constant_p): ...this. Make static, return a bool,
3156 and add a mode argument.
3157 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3158
3159 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
3160
3161 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
3162 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3163 (sh_legitimate_constant_p): New function.
3164
3165 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
3166 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
3167 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3168 (legitimate_constant_p): Rename to...
3169 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
3170 argument.
3171 (constant_address_p): Update accordingly.
3172
3173 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
3174 argument and return a bool.
3175 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
3176 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3177 (spu_legitimate_constant_p): Add a mode argument and return a bool.
3178 (spu_rtx_costs): Update accordingly.
3179 * config/spu/predicates.md (vec_imm_operand): Likewise.
3180
3181 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
3182
3183 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
3184 * config/v850/v850.c (v850_legitimate_constant_p): New function.
3185 (TARGET_LEGITIMATE_CONSTANT_P): Define.
3186
3187 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
3188 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
3189 * config/vax/vax.c (legitimate_constant_p): Likewise.
3190
3191 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
3192 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
3193 (xtensa_legitimate_constant_p): New function.
3194
fbbf66e7
RS
31952011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
3196
3197 * target.def (cannot_force_const_mem): Add a mode argument.
3198 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
3199 * doc/tm.texi: Regenerate.
3200 * hooks.h (hook_bool_mode_rtx_false): Declare.
3201 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
3202 (hook_bool_mode_const_rtx_true): Likewise.
3203 (hook_bool_mode_rtx_false): New function.
3204 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
3205 to be non-VOID. Update call to cannot_force_const_mem.
3206 (find_reloads): Update accordingly.
3207 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
3208 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
3209 argument.
3210 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
3211 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
3212 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
3213 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
3214 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
3215 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
3216 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
3217 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3218 (m68k_cannot_force_const_mem): ...this new function.
3219 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
3220 argument.
3221 (mips_const_insns, mips_legitimize_const_move): Update calls.
3222 (mips_secondary_reload_class): Likewise.
3223 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
3224 (pa_cannot_force_const_mem): ...this new function.
2894086e 3225 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
3226 (rs6000_cannot_force_const_mem): ...this new function.
3227 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
3228 argument.
3229 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
3230 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
3231 to...
3232 (xtensa_cannot_force_const_mem): ...this new function.
3233
b861891b
NF
32342011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3235
3236 * config/mips/mips.c (mips16_build_function_stub): Call
3237 build_function_type_list instead of build_function_type.
3238 (mips16_build_call_stub): Likewise.
3239
34149ed5
NF
32402011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3241
3242 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
3243 instead of build_function_type.
3244
12526412
NF
32452011-04-20 Nathan Froyd <froydnj@codesourcery.com>
3246
3247 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
3248 instead of build_function_type.
3249
3b84d61f
UB
32502011-04-20 Uros Bizjak <ubizjak@gmail.com>
3251
3252 PR target/48678
3253 * config/i386/i386.md (insv): Change operand 0 constraint to
3254 "register_operand". Change operand 1 and 2 constraint to
3255 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
3256 * config/i386/sse.md (sse4_1_pinsrb): Export.
3257 (sse2_pinsrw): Ditto.
3258 (sse4_1_pinsrd): Ditto.
3259 (sse4_1_pinsrq): Ditto.
3260 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
3261 * config/i386/i386.c (ix86_expand_pinsr): New.
3262
4a25752b
ER
32632011-04-20 Easwaran Raman <eraman@google.com>
3264
3265 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
3266 containing union type only with -fstrict-aliasing.
3267
04695783
JM
32682011-04-20 Jim Meyering <meyering@redhat.com>
3269
3270 Remove useless if-before-free tests.
3271 * calls.c (expand_call, save_area): Likewise.
3272 * cfgcleanup.c (try_forward_edges): Likewise.
3273 * collect2.c (collect_execute): Likewise.
3274 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
3275 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
3276 * coverage.c (coverage_checksum_string): Likewise.
3277 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
3278 * cselib.c (cselib_init): Likewise.
3279 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
3280 (df_set_clean_cfg): Likewise.
3281 * function.c (free_after_compilation): Likewise.
3282 * gcc.c (do_spec_1, main): Likewise.
3283 * gcov.c (create_file_names): Likewise.
3284 * gensupport.c (identify_predicable_attribute): Likewise.
3285 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
3286 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
3287 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
3288 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
3289 * ipa-pure-const.c (local_pure_const): Likewise.
3290 * ipa-reference.c (propagate): Likewise.
3291 * ira-costs.c (free_ira_costs): Likewise.
3292 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
3293 * matrix-reorg.c (mat_free): Likewise.
3294 * prefix.c (get_key_value): Likewise.
3295 * profile.c (compute_value_histograms): Likewise.
3296 * reload1.c (free_reg_equiv): Likewise.
3297 * sched-deps.c (free_deps): Likewise.
3298 * sel-sched-ir.c (fence_clear): Likewise.
3299 * sese.c (set_rename, if_region_set_false_region): Likewise.
3300 * tree-data-ref.c (free_rdg): Likewise.
3301 * tree-eh.c (lower_try_finally): Likewise.
3302 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
3303 * tree-ssa-live.c (delete_var_map): Likewise.
3304 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
3305 * tree-ssa-pre.c (phi_trans_add): Likewise.
3306
6788475a
JJ
33072011-04-20 Jakub Jelinek <jakub@redhat.com>
3308
3309 PR tree-optimization/48611
3310 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
3311 beyond ERT_MUST_NOT_THROW region.
3312
0eda4033
CM
33132011-04-20 Catherine Moore <clm@codesourcery.com>
3314
3315 * config/mips/mips.opt (mfix-24k): New.
3316 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
3317 * config/mips/mips.md (length): Increase by 4 for stores if
3318 fixing 24K errata.
3319 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
3320 all noreorder if fixing 24K errata.
3321 * doc/invoke.texi: Document mfix-24k.
3322
01475747
CLT
33232011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
3324
3325 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 3326 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 3327
bc2c1a60
AS
33282011-04-20 Andrew Stubbs <ams@codesourcery.com>
3329
3330 * config/arm/arm.c (arm_gen_constant): Move movw support ....
3331 (const_ok_for_op): ... to here.
3332
583722ee
KT
33332011-04-20 Kai Tietz <ktietz@redhat.com>
3334
2894086e
UB
3335 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
3336 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 3337
422c0989
AS
33382011-04-20 Andrew Stubbs <ams@codesourcery.com>
3339
3340 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
3341
d7978bff
RG
33422011-04-20 Richard Guenther <rguenther@suse.de>
3343
3344 PR tree-optimization/47892
3345 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
3346 are if-convertible.
3347
818412ba
EB
33482011-04-20 Eric Botcazou <ebotcazou@adacore.com>
3349
3350 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
3351
b501ce4e
TG
33522011-04-20 Tristan Gingold <gingold@adacore.com>
3353
3354 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
3355
516edfdd
GJL
33562011-04-20 Georg-Johann Lay <avr@gjlay.de>
3357
3358 PR target/18145
3359
3360 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
3361 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
3362 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3363 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
3364 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
3365
3366 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
3367 New prototype.
3368
3369 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
3370 (avr_asm_named_section, avr_asm_output_aligned_common,
3371 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
3372 New functions to update...
3373 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
3374 (avr_asm_init_sections): Overwrite section callbacks for
3375 data_section, bss_section.
3376 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
3377 from here to...
3378 (avr_file_end): ...here.
3379
dafc9511
RG
33802011-04-20 Richard Guenther <rguenther@suse.de>
3381
3382 PR middle-end/48695
3383 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 3384 objects and types here. Adjust for their offset before comparing.
dafc9511 3385
1da0876c
RS
33862011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3387
3388 * tree-vect-stmts.c (vectorizable_store): Only chain one related
3389 statement per copy.
3390
25583c4f
RS
33912011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
3392
3393 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
3394 (GIMPLE_H): Include $(INTERNAL_FN_H).
3395 (OBJS-common): Add internal-fn.o.
3396 (internal-fn.o): New rule.
3397 * internal-fn.def: New file.
3398 * internal-fn.h: Likewise.
3399 * internal-fn.c: Likewise.
3400 * gimple.h: Include internal-fn.h.
3401 (GF_CALL_INTERNAL): New gf_mask.
3402 (gimple_statement_call): Put fntype into a union with a new
3403 internal_fn field.
3404 (gimple_build_call_internal): Declare.
3405 (gimple_build_call_internal_vec): Likewise.
3406 (gimple_call_same_target_p): Likewise.
3407 (gimple_call_internal_p): New function.
3408 (gimple_call_internal_fn): Likewise.
3409 (gimple_call_fntype): Return null for internal calls.
3410 (gimple_call_set_fntype): Assert that the function is not internal.
3411 (gimple_call_set_fn): Likewise.
3412 (gimple_call_set_fndecl): Likewise.
3413 (gimple_call_set_internal_fn): New function.
3414 (gimple_call_addr_fndecl): Handle null functions.
3415 (gimple_call_return_type): Likewise null types.
3416 * gimple.c (gimple_build_call_internal_1): New function.
3417 (gimple_build_call_internal): Likewise.
3418 (gimple_build_call_internal_vec): Likewise.
3419 (gimple_call_same_target_p): Likewise.
3420 (gimple_call_flags): Handle calls to internal functions.
3421 (gimple_call_fnspec): New function.
3422 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
3423 (gimple_has_side_effects): Handle null functions.
3424 (gimple_rhs_has_side_effects): Likewise.
3425 (gimple_call_copy_skip_args): Handle calls to internal functions.
3426 * cfgexpand.c (expand_call_stmt): Likewise.
3427 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
3428 * gimple-fold.c (gimple_fold_call): Handle null functions.
3429 (gimple_fold_stmt_to_constant_1): Don't fold
3430 calls to internal functions.
3431 * gimple-low.c (gimple_check_call_args): Handle calls to internal
3432 functions.
3433 * gimple-pretty-print.c (dump_gimple_call): Likewise.
3434 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
3435 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
3436 (do_warn_unused_result): Likewise.
3437 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
3438 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
3439 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
3440 the target of a call.
3441 (initialize_hash_element): Update accordingly.
3442 (hashable_expr_equal_p): Use gimple_call_same_target_p.
3443 (iterative_hash_hashable_expr): Handle calls to internal functions.
3444 (print_expr_hash_elt): Likewise.
3445 * tree-ssa-pre.c (can_value_number_call): Likewise.
3446 (eliminate): Handle null functions.
3447 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
3448 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3449 (find_func_aliases): Likewise.
3450 * value-prof.c (gimple_ic_transform): Likewise.
3451 (gimple_indirect_call_to_profile): Likewise.
3452 * lto-streamer-in.c (input_gimple_stmt): Likewise.
3453 * lto-streamer-out.c (output_gimple_stmt): Likewise.
3454
1a3118e9
JH
34552011-04-19 Jan Hubicka <jh@suse.cz>
3456
3457 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
3458 * ipa-inline.c (inline_small_functions): Compute summaries first,
3459 populate heap later.
1a3118e9 3460
fee8b6da
JH
34612011-04-19 Jan Hubicka <jh@suse.cz>
3462
3463 * cgraph.h (save_inline_function_body): Remove.
3464 * ipa-inline-transform.c: New file, broke out of...
3465 * ipa-inline.c: ... this one; Update toplevel comment.
3466 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
3467 make global.
3468 (update_noncloned_frequencies): Move to ipa-inline-transform.c
3469 (cgraph_mark_inline_edge): Rename to inline_call; move to
3470 ipa-inline-transform.c.
3471 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
3472 move to ipa-inline-transform.c
3473 (recursive_inlining, inline_small_functions, flatten_function,
3474 ipa_inline, inline_always_inline_functions,
3475 early_inline_small_functions): Update.
3476 (inline_transform): Move to ipa-inline-transform.c.
3477 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
3478 Declare.
3479 * Makefile.in (ipa-inline-transform.o): New file.
3480 * cgraphunit.c (save_inline_function_body): Move to
3481 ipa-inline-transform.c
3482
f0679612
DD
34832011-04-19 DJ Delorie <dj@redhat.com>
3484
3485 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
3486 registers if we already know there aren't any.
3487 (m32c_emit_epilogue): Don't emit a barrier here.
3488 (m32c_emit_eh_epilogue): Likewise.
3489 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
3490 operands at expand time.
3491 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
3492 int" wchar type.
3493 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
3494 duplicates. Provide aliases instead.
3495 * config/m32c/prologue.md (eh_return): Emit a barrier here.
3496 (eh_epilogue): Add a "(return)" here as a hint to other parts of
3497 the compiler.
3498
32257ddc
AS
34992011-04-19 Anatoly Sokolov <aesok@post.ru>
3500
3501 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
3502 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
3503 (general_or_i64_p, sparc_register_move_cost): New function.
3504
60bea929
RO
35052011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3506
3507 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 3508 Add lynx, mipssde. Sort table.
60bea929 3509
444b3995 35102011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 3511
9d12f71a
EB
3512 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
3513 not negative.
444b3995 3514
d708ce50
JJ
35152011-04-19 Jakub Jelinek <jakub@redhat.com>
3516
3517 PR target/48678
3518 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
3519 is a SUBREG with non-MODE_INT mode inside of it.
3520
49c471e3
MJ
35212011-04-19 Martin Jambor <mjambor@suse.cz>
3522
3523 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
3524 also according to actual contants.
3525 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
3526 (gimple_fold_call): Use it.
3527 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
3528
0004f992
MJ
35292011-04-19 Martin Jambor <mjambor@suse.cz>
3530
3531 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
3532 non-pointer assignments.
3533
40591473
MJ
35342011-04-19 Martin Jambor <mjambor@suse.cz>
3535
3536 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
3537 account anc_offset and otr_type from the indirect edge info.
3538 * ipa-prop.c (get_ancestor_addr_info): New function.
3539 (compute_complex_ancestor_jump_func): Assignment analysis moved to
3540 get_ancestor_addr_info, call it.
3541 (ipa_note_param_call): Do not initialize information about polymorphic
3542 calls, return the indirect call graph edge. Remove the last
3543 parameter, adjust all callers.
3544 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
3545 parameters. Initialize polymorphic information in the indirect edge.
3546
abe36b81
EB
35472011-04-19 Eric Botcazou <ebotcazou@adacore.com>
3548
3549 PR lto/48148
3550 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
3551 the types if they have different enumeration identifiers.
3552
e6416b30
JH
35532011-04-19 Jan Hubicka <jh@suse.cz>
3554
3555 * cgraph.h (cgraph_optimize_for_size_p): Declare.
3556 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
3557 * predict.c (cgraph_optimize_for_size_p): Break out from ...
3558 (optimize_function_for_size_p) ... here.
3559
d39132ea
RG
35602011-04-19 Richard Guenther <rguenther@suse.de>
3561
3562 PR lto/48207
3563 * tree.c (free_lang_data): Do not reset the decl-assembler-name
3564 langhook.
3565
ff7037dc
EB
35662011-04-19 Eric Botcazou <ebotcazou@adacore.com>
3567
3568 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
3569 if DECL_NO_INLINE_WARNING_P is set on the function.
3570
c1ee2892
BS
35712011-04-19 Bernd Schmidt <bernds@codesourcery.com>
3572
3573 PR fortran/47976
3574 * reload1.c (inc_for_reload): Return void. All callers changed.
3575 (emit_input_reload_insns): Don't try to delete previous output
3576 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
3577
35782011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
3579
3580 * gengtype.h: Updated copyright year.
3581 (struct input_file_st): Add inpisplugin field.
3582 (type_fileloc): New function.
3583 * gengtype.c
3584 (write_typed_struct_alloc_def): Add gcc_assert.
3585 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
3586 (write_typed_alloc_defns): Don't output for plugin files.
3587 (input_file_by_name): Clear inpisplugin field.
3588 (main): Set inpisplugin field for plugin files.
3589
897e0a89
NP
35902011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
3591
3592 * gengtype-state.c (string_eq): New.
3593 (read_state): Use string_eq instead of strcmp when creating the
3594 state_ident_tab.
3595
363ee90e
WG
35962011-04-19 Wei Guozhi <carrot@google.com>
3597
3598 PR target/47855
3599 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
3600 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
3601 linkage.
3602 * config/arm/constraints.md (Uu): New constraint.
3603 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
3604
18a24fed
TG
36052011-04-19 Tristan Gingold <gingold@adacore.com>
3606
3607 * config.gcc (-*-*-*vms): Added.
3608 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
3609 definitions moved.
3610 * config/vms/vms-ld.c: New file.
3611 * config/vms/vms-ar.c: New file.
3612 * config/vms/t-vmsnative: New file.
3613
1c13f168
XDL
36142011-04-18 Xinliang David Li <davidxl@google.com>
3615
3616 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
3617
84825707
JJ
36182011-04-18 Jakub Jelinek <jakub@redhat.com>
3619
3620 PR middle-end/48661
3621 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
3622 if TREE_TYPE (v) is non-NULL.
3623
3624 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
3625 gimple_get_virt_mehtod_for_binfo.
3626 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
3627 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
3628 callers.
3629 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3630
7d4f8d02 36312011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
3632 Steve Ellcey <sje@cup.hp.com>
3633
7d4f8d02
EB
3634 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
3635 use its mode as source mode if it isn't VOIDmode.
7254cb57 3636
474e8e70
DCR
36372011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
3638
3639 * doc/passes.texi: Fill crossref nodes.
3640
cff41484
JM
36412011-04-18 Jim Meyering <meyering@redhat.com>
3642
7d4f8d02 3643 Fix doubled-word typos in comments and strings
cff41484
JM
3644 * config/alpha/vms-unwind.h: s/for for/for/
3645 * config/arm/unwind-arm.h: Likewise.
3646 * config/microblaze/microblaze.c: Likewise.
3647 * config/sh/constraints.md: s/in in/in/
3648 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
3649
f60c2554
UB
36502011-04-18 Uros Bizjak <ubizjak@gmail.com>
3651
3652 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
3653 (AVX_FLOAT_MODE_P): Ditto.
3654 (AVX128_VEC_FLOAT_MODE_P): Ditto.
3655 (AVX256_VEC_FLOAT_MODE_P): Ditto.
3656 (AVX_VEC_FLOAT_MODE_P): Ditto.
3657 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
3658 (UNSPEC_MASKSTORE): Ditto.
3659 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
3660 Merge from <sse>_movmsk<ssemodesuffix> and
3661 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
3662 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
3663 iterator.
3664 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
3665 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
3666 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
3667
09a2806f
JH
36682011-04-18 Jan Hubicka <jh@suse.cz>
3669
8a8dccb2
JH
3670 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
3671
09a2806f
JH
3672 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
3673 (want_inline_function_called_once_p): Break out the logic from
3674 ipa_inline.
3675 (edge_badness): Ensure that profile is not misupdated.
3676 (lookup_recursive_calls): Prioritize by call frequencies.
3677 (inline_small_functions): Move program size estimates here;
3678 actually process whole queue even when unit growth has been
3679 met. (to properly compute inline_failed reasons and for the
f60c2554 3680 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
3681 (ipa_inline): Remove unit summary code; first inline hot calls
3682 of functions called once, cold calls next.
3683 (order, nnodes): Remove unused variables.
3684 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
3685 (GTFILES): Remove ipa-inline.c
3686 * sel-sched.c (fill_insns): Silence uninitialized var warning.
3687
3eea52ef
EB
36882011-04-18 Eric Botcazou <ebotcazou@adacore.com>
3689
3690 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
3691
229a1c59 36922011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 3693 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
3694
3695 * arm.c (neon_builtin_type_bits): Remove.
3696 (typedef enum neon_builtin_mode): New.
3697 (T_MAX): Don't define.
3698 (typedef enum neon_builtin_datum): Remove bits, codes[],
3699 num_vars and base_fcode. Add mode, code and fcode.
3700 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
3701 VAR10): Change accordingly.
3702 (neon_builtin_data[]): Change accordingly
3703 (arm_init_neon_builtins): Change accordingly.
3704 (neon_builtin_compare): Remove.
3705 (locate_neon_builtin_icode): Remove.
3706 (arm_expand_neon_builtin): Change accordingly.
3707
3708 * arm.h (enum arm_builtins): Move to ...
3709 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
3710
3711 * arm.c (arm_builtin_decl): Declare.
3712 (TARGET_BUILTIN_DECL): Define.
3713 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
3714 (arm_builtin_decls[]): New.
3715 (arm_init_neon_builtins): Store builtin declarations in
3716 arm_builtin_decls[].
3717 (arm_init_tls_builtins): Likewise.
3718 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
3719 (arm_builtin_decl): New.
3720
75e802cc
RG
37212011-04-18 Richard Guenther <rguenther@suse.de>
3722
3723 * tree.c (upper_bound_in_type): Build properly canonicalized
3724 INTEGER_CSTs.
3725 (lower_bound_in_type): Likewise.
3726
3b45a007
RG
37272011-04-18 Richard Guenther <rguenther@suse.de>
3728
3729 * gimple.h (gimple_call_addr_fndecl): New function.
3730 (gimple_call_fndecl): Use it.
3731 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
3732 for direct calls.
3733 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
3734 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
3735
d25a79ea
RG
37362011-04-18 Richard Guenther <rguenther@suse.de>
3737
3738 PR middle-end/48650
3739 * tree.c (build_string): STRING_CST is now derived from tree_typed.
3740
7d5fc814
EB
37412011-04-18 Eric Botcazou <ebotcazou@adacore.com>
3742
3743 PR lto/48492
3744 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
3745 DECL_IN_CONSTANT_POOL without RTL.
3746
7e7cfcf6
UW
37472011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
3748 Ira Rosen <ira.rosen@linaro.org>
3749
3750 PR target/48252
3751 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
3752 to match neon_vzip/vuzp/vtrn_internal.
3753 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
3754 outputs explicitly dependent on both inputs.
3755 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
3756
49eab32e
JJ
37572011-04-18 Jakub Jelinek <jakub@redhat.com>
3758
3759 PR tree-optimization/48616
3760 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
3761 whether the shift is by scalar or vector based on whether all SLP
3762 scalar stmts have the same rhs.
3763
e54170f4
CLT
37642011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
3765
3766 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
3767 memory operands.
3768
b14ee6c9
RS
37692011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
3770
3771 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
3772 registers.
3773
10158cd3
JH
37742011-04-17 Jan Hubicka <jh@suse.cz>
3775
3776 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
3777 * cgrpahunit.c (cgraph_finalize_function): Do not set
3778 finalized_by_frontend.
10158cd3
JH
3779 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3780 finalized_by_frontend.
3781
2e9bb6ba
JH
37822011-04-17 Jan Hubicka <jh@suse.cz>
3783
3784 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
3785 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
3786 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
3787 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
3788 method.
2e9bb6ba
JH
3789 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
3790 gimple-fold.c
3791 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
3792
beb628e1
EB
37932011-04-17 Eric Botcazou <ebotcazou@adacore.com>
3794
3795 PR lto/48538
3796 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
3797 is non-null before accessing it.
3798 (input_cgraph): Remove trailing spaces.
3799
3e2fdd24
RE
38002011-04-17 Revital Eres <revital.eres@linaro.org>
3801
3802 * params.def (sms-min-sc): New param flag.
3803 * modulo-sched.c (sms_schedule): Use it.
3804 * doc/invoke.texi (sms-min-sc): Document it.
3805
4c0f7679
JH
38062011-04-17 Jan Hubicka <jh@suse.cz>
3807
3808 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
3809 present, also set gimple_call_set_cannot_inline.
3810 * ipa-inline.c: Update toplevel comment.
3811 (MAX_TIME): Remove.
3812 (cgraph_clone_inlined_nodes): Fix linebreaks.
3813 (cgraph_check_inline_limits): Restructure to ...
3814 (caller_growth_limits): ... this one; be more tolerant
3815 on growth in nested inline chains; add explanatory comment;
3816 fix stack accounting thinko introduced by previous patch.
3817 (cgraph_default_inline_p): Remove.
3818 (report_inline_failed_reason): New function.
3819 (can_inline_edge_p): New function.
3820 (can_early_inline_edge_p): New function.
3821 (leaf_node_p): Move upwards in file.
3822 (want_early_inline_function_p): New function.
3823 (want_inline_small_function_p): New function.
3824 (want_inline_self_recursive_call_p): New function.
3825 (cgraph_edge_badness): Rename to ...
3826 (edge_badness) ... this one; fix linebreaks.
3827 (update_edge_key): Update call of edge_baddness; add
3828 detailed dump about queue updates.
3829 (update_caller_keys): Use can_inline_edge_p and
3830 want_inline_small_function_p.
3831 (cgraph_decide_recursive_inlining): Rename to...
3832 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
3833 want_inline_self_recursive_call_p; simplify and remove no longer
3834 valid FIXME.
4c0f7679
JH
3835 (cgraph_set_inline_failed): Remove.
3836 (add_new_edges_to_heap): Use can_inline_edge_p and
3837 want_inline_small_function_p.
3838 (cgraph_decide_inlining_of_small_functions): Rename to ...
3839 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
3840 can/want predicates; cleanup debug ouput; work edges till fibheap
3841 is exhausted and do not stop once unit growth is reached; remove
3842 later loop processing remaining edges.
4c0f7679
JH
3843 (cgraph_flatten): Rename to ...
3844 (flatten_function): ... this one; use can_inline_edge_p
3845 and can_early_inline_edge_p predicates.
3846 (cgraph_decide_inlining): Rename to ...
3847 (ipa_inline): ... this one; remove unreachable nodes before
3848 inlining functions called once; simplify the pass.
3849 (cgraph_perform_always_inlining): Rename to ...
3850 (inline_always_inline_functions): ... this one; use
f60c2554 3851 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
3852 (cgraph_decide_inlining_incrementally): Rename to ...
3853 (early_inline_small_functions): ... this one; simplify
3854 using new predicates; cleanup; make dumps prettier.
3855 (cgraph_early_inlining): Rename to ...
3856 (early_inliner): newer inline regular functions into always-inlines;
3857 fix updating of call stmt summaries.
3858 (pass_early_inline): Update for new names.
3859 (inline_transform): Fix formating.
3860 (gate_cgraph_decide_inlining): Rename to ...
3861 (pass_ipa_inline): ... this one.
3862 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
3863 * ipa-inline-analysis.c (dump_inline_summary): Update.
3864 (compute_inline_parameters): Do not compute disregard_inline_limits;
3865 look for mismatching arguments.
3866 (estimate_growth): Fix handlig of non-trivial self recursion.
3867 (inline_read_summary): Do not read info->disregard_inline_limits.
3868 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
3869 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
3870 and move all checks into can_inline_edge_p predicate; re-enable code
3871 comparing optimization levels.
4c0f7679
JH
3872 (expand_call_inline): Do not test inline_forbidden_into_p.
3873 * Makefile.in (ipa-inline.o): Update arguments.
3874
54333b7c
RE
38752011-04-17 Revital Eres <revital.eres@linaro.org>
3876
3877 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
3878
42c2bf92
RE
38792011-04-17 Revital Eres <revital.eres@linaro.org>
3880
3881 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
3882
b183e9e0
MM
38832011-04-17 Michael Matz <matz@suse.de>
3884
3885 PR tree-optimization/48622
3886 PR lto/48645
3887 * ipa-inline-analysis.c (inline_read_summary): Read size/time
3888 in same order as they're written.
3889
b8a17fa2
JDA
38902011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3891
3892 * config/pa/predicates.md: Reorganize and simplify predicates.
3893 Eliminate duplicate code checks.
3894 (arith_operand): Rename to arith14_operand
3895 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
3896 * config/pa/pa.md: Use renamed operands.
3897 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
3898 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
3899 arith11_operand, adddi3_operand, indexed_memory_operand,
3900 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
3901 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
3902 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
3903 move_dest_operand, move_src_operand, prefetch_cc_operand,
3904 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
3905 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
3906 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
3907 div_operand, int5_operand, movb_comparison_operator,
3908 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
3909 arith_double_operand, ireg_operand, lhs_lshift_operand,
3910 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
3911 integer_store_memory_operand): Likewise.
3912 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
3913 (integer_store_memory_operand, read_only_operand,
3914 function_label_operand, borx_reg_operand,
3915 non_hard_reg_operand): Likewise.
3916 (eq_neq_comparison_operator): Delete unused operator.
3917 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
3918 function_label_operand.
3919 (emit_move_sequence): Likewise.
3920
8dfb9f16
UB
39212011-04-16 Uros Bizjak <ubizjak@gmail.com>
3922
3923 * config/i386/sse.md (sseunpackmode): New mode attribute.
3924 (ssepackmode): Ditto.
3925 (vec_pack_trunc_<mode>): Macroize expander from
3926 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
3927 (vec_unpacks_lo_<mode>): Macroize expander from
3928 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3929 (vec_unpacks_hi_<mode>): Macroize expander from
3930 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3931 (vec_unpacku_lo_<mode>): Macroize expander from
3932 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3933 (vec_unpacku_hi_<mode>): Macroize expander from
3934 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
3935 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
3936 ix86_expand_sse4_unpack.
3937 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
3938
e7f23018
JH
39392011-04-16 Jan Hubicka <jh@suse.cz>
3940
3941 * cgraphbuild.c: Include ipa-inline.h.
3942 (reset_inline_failed): Use initialize_inline_failed.
3943 * cgraph.c: Include ipa-inline.h.
3944 (cgraph_create_node_1): Do not initialize estimated_growth.
3945 (initialize_inline_failed): More to ipa-inline-analysis.c
3946 (dump_cgraph_node): Do not dump inline flags.
3947 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
3948 and disregard_inline_limits flags.
3949 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
3950 time, size, estimated_growth.
8dfb9f16
UB
3951 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
3952 Update.
e7f23018
JH
3953 * cgraphunit.c (cgraph_decide_is_function_needed): Use
3954 DECL_DISREGARD_INLINE_LIMITS.
3955 (cgraph_analyze_function): Do not initialize
3956 node->local.disregard_inline_limits.
3957 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
3958 inlinable, versionable and disregard_inline_limits.
3959 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
3960 cgraph_check_inline_limits, cgraph_default_inline_p,
3961 cgraph_edge_badness, update_caller_keys, update_callee_keys,
3962 add_new_edges_to_heap): Update.
3963 (cgraph_decide_inlining_of_small_function): Update; set
3964 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
3965 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
3966 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
3967 * ipa-inline.h (inline_summary): Add inlinable, versionable,
3968 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
3969 time, size and estimated_growth parameters.
e7f23018
JH
3970 (estimate_edge_growth): Update.
3971 (initialize_inline_failed): Declare.
3972 * ipa-split.c: Include ipa-inline.h
3973 (execute_split_functions): Update.
3974 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
3975 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
3976 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
3977 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
3978 estimated_growth to INT_MIN.
3979 (inline_node_duplication_hook): Likewise.
3980 (dump_inline_summary): Dump new fields.
3981 (compute_inline_parameters): Update.
3982 (estimate_edge_time, estimate_time_after_inlining,
3983 estimate_size_after_inlining, estimate_growth, inline_read_summary,
3984 inline_write_summary):
3985 (initialize_inline_failed): Move here from cgraph.c.
3986 * tree-sra.c: Include ipa-inline.h.
3987 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
3988 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
3989 ipa-inline.h.
e7f23018 3990
e81b8564
UB
39912011-04-16 Uros Bizjak <ubizjak@gmail.com>
3992
3993 * config/i386/sse.md (V16): New mode iterator.
3994 (VI1, VI8): Ditto.
3995 (AVXMODEQI, AVXMODEDI): Remove.
3996 (sse2, sse3): New mode attribute.
3997 (mov<mode>): Use V16 mode iterator.
3998 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
3999 (push<mode>1): Use V16 mode iterator.
4000 (movmisalign<mode>): Ditto.
4001 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4002 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
4003 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
4004 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
4005 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
4006 avx_movdqu<avxmodesuffix>.
4007 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
4008 *avx_movdqu<avxmodesuffix>.
4009 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
4010 avx_lddqu<avxmodesuffix>.
4011 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
4012 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
4013 avx_movnt<AVXMODEDI:mode>.
4014 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
4015 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
4016
4743d438
BS
40172011-04-16 Bernd Schmidt <bernds@codesourcery.com>
4018
4019 PR target/48629
4020 * haifa-sched.c (prune_ready_list, schedule_block): Use
4021 sched_pressure_p rather than flag_sched_pressure.
4022
748f7574 40232011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
4024
4025 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4026 cgraph_get_node instead of cgraph_get_create_node.
4027
2ba172e0
JJ
40282011-04-15 Jakub Jelinek <jakub@redhat.com>
4029
4030 * cfgexpand.c (expand_debug_expr): Use
4031 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
4032
63d2a353
MM
40332011-04-15 Michael Matz <matz@suse.de>
4034
4035 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
4036 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
4037 * function.c (gimplify_parameters): Ditto.
4038 * gimplify.c (gimplify_vla_decl): Ditto.
4039
4040 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
4041 (gimple_call_set_alloca_for_var): New inline function.
4042 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
4043 * gimple.c (gimple_build_call_from_tree): Remember
4044 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
4045 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
4046
4047 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
4048 calls if they were for VLA objects.
4049
dee74c34
MJ
40502011-04-15 Martin Jambor <mjambor@suse.cz>
4051
4052 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
4053 of ADR_EXPRs.
4054
8e5837bc
MJ
40552011-04-15 Martin Jambor <mjambor@suse.cz>
4056
4057 PR middle-end/48601
4058 * tree-emutls.c (lower_emutls_function_body): Call
4059 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
4060 result is non-NULL.
4061
0dc33c3c
NP
40622011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
4063
4064 * c-decl.c (detect_field_duplicates): Call
4065 objc_detect_field_duplicates instead of objc_get_interface_ivars.
4066
edcdea5b
NF
40672011-04-15 Nathan Froyd <froydnj@codesourcery.com>
4068
4069 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
4070 * gimple.c (gimple_asm_clobbers_memory_p): Define.
4071 * ipa-pure-const.c (check_stmt): Call it.
4072 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
4073
8456558d
RG
40742011-04-15 Richard Guenther <rguenther@suse.de>
4075
4076 PR tree-optimization/48290
4077 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
4078 Properly decide inhibiting propagation based on the valueized
4079 operand. Do loop-closed SSA form preserving here ...
4080 (init_copy_prop): ... not here.
4081
266446be
L
40822011-04-15 H.J. Lu <hongjiu.lu@intel.com>
4083
4084 PR target/48612
4085 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
4086 (*ieee_smax<mode>3): Likewise.
4087
17465c6e
AK
40882011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4089
4090 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
4091 Replace match_operand with match_dup for the third operand in
4092 these expanders.
4093
bce204e5
MK
40942011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4095
4096 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
4097 to track processing of conditionals. Update all callers.
4098 (try_combine, simplify_if_then_else): Update.
4099
3162fdf4
MK
41002011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
4101
4102 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
4103 -fsched-pressure.
4104
79002a57 41052011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 4106
79002a57
GJL
4107 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
4108 instead of match_operand for operand 3.
4109
4fd3a105
RS
41102011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
4111
4112 * recog.h (insn_operand_data): Add an "allows_mem" field.
4113 * genoutput.c (output_operand_data): Initialize it.
4114 * optabs.c (maybe_legitimize_operand_same_code): New function.
4115 (maybe_legitimize_operand): Use it when matching the original
4116 op->value.
4117
ad19c4be
EB
41182011-04-15 Eric Botcazou <ebotcazou@adacore.com>
4119
4120 * gimplify.c: Fix issues in comments throughout.
4121 (voidify_wrapper_expr): Fix long line.
4122 (build_stack_save_restore): Likewise.
4123 (gimplify_loop_expr): Likewise.
4124 (gimplify_compound_lval): Likewise.
4125 (gimplify_init_ctor_eval): Likewise.
4126 (gimplify_modify_expr_rhs): Likewise.
4127 (omp_notice_threadprivate_variable): Likewise.
4128
b25aa0e8 41292011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 4130
b25aa0e8
EB
4131 * cfgexpand.c (expand_call_stmt): Convert the function type to the
4132 original one if this is not a builtin function.
e7925582 4133
09db7afe
JJ
41342011-04-14 Jakub Jelinek <jakub@redhat.com>
4135
4136 PR target/48605
4137 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
4138 offset it as needed based on top 2 bits in operands[3], change
4139 MEM mode to SFmode and mask those 2 bits away from operands[3].
4140
c59633d9
NP
41412011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4142
4143 * c-parser.c (c_parser_objc_protocol_definition): Updated for
4144 change from objc_declare_protocols() to objc_declare_protocol().
4145
5e60198b
UB
41462011-04-14 Uros Bizjak <ubizjak@gmail.com>
4147
4148 * config/i386/sse.md (sse4_1): New mode attribute.
4149 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
4150 avx_blend<ssemodesuffix><avxmodesuffix> and
4151 sse4_1_blend<ssemodesuffix> using VF mode iterator.
4152 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
4153 avx_blendv<ssemodesuffix><avxmodesuffix> and
4154 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
4155 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
4156 avx_dp<ssemodesuffix><avxmodesuffix> and
4157 sse4_1_dp<ssemodesuffix> using VF mode iterator.
4158 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
4159 (sse4_1_packusdw): Merge with *avx_packusdw.
4160 (sse4_1_pblendvb): Merge with *avx_pblendvb.
4161 (sse4_1_pblendw): Merge with *avx_pblendw.
4162 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
4163 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
4164 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
4165 VF mode iterator.
4166 (sse4_1_round<ssescalarmodesuffix>): Merge with
4167 *avx_round<ssescalarmodesuffix>.
4168 (aesenc): Merge with *avx_aesenc.
4169 (aesenclast): Merge with *avx_aesenclast.
4170 (aesdec): Merge with *avx_aesdec.
4171 (aesdeclast): Merge with *avx_aesdeclast.
4172 (pclmulqdq): Merge with *pclmulqdq.
4173 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
4174 New predicate.
4175 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
4176
6f197850
L
41772011-04-14 H.J. Lu <hongjiu.lu@intel.com>
4178
4179 PR middle-end/48608
4180 * cfgexpand.c (get_decl_align_unit): Renamed to ...
4181 (align_local_variable): This. Update DECL_ALIGN.
4182 (add_stack_var): Updated.
4183 (expand_one_stack_var): Likewise.
4184
4a5ba3ed
RG
41852011-04-14 Richard Guenther <rguenther@suse.de>
4186
4187 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
4188 Remove.
4189 (dse_initialize_block_local_data, dse_leave_block,
4190 record_voperand_set, get_stmt_uid): Likewise.
4191 (dse_possible_dead_store_p): Allow any kind of killing stmt.
4192 (dse_optimize_stmt): Remove voperand set handling code.
4193 Simplify and improve to handle any kind of killing stmt.
4194 (dse_record_phi): Remove.
4195 (dse_enter_block): Simplify.
4196 (tree_ssa_dse): Likewise.
4197 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
4198
10a5dd5d
JH
41992011-04-14 Jan Hubicka <jh@suse.cz>
4200
4201 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
4202 * cgraph.h (struct inline_summary): Move to ipa-inline.h
4203 (cgraph_local_info): Remove inline_summary.
4204 * ipa-cp.c: Include ipa-inline.h.
4205 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
4206 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
4207 accesor.
4208 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
4209 (input_overwrite_node): Do not set inline summary.
4210 (input_node): Do not stream inline summary.
4211 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
4212 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
4213 growth; we do not have inline parameters computed for that anyway.
4214 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
4215 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
4216 (inline_summary_t): New type and VECtor.
4217 (debug_inline_summary, dump_inline_summaries): Declare.
4218 (inline_summary): Use VOCtor.
4219 (estimate_edge_growth): Kill hack computing call stmt size directly.
4220 * lto-section-in.c (lto_section_name): Add inline section.
4221 * ipa-inline-analysis.c: Include lto-streamer.h
4222 (node_removal_hook_holder, node_duplication_hook_holder): New holders
4223 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
4224 (inline_summary_vec): Define.
4225 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
4226 dump_inline_summaries): New functions.
5e60198b
UB
4227 (estimate_function_body_sizes): Properly compute size/time of outgoing
4228 calls.
4229 (compute_inline_parameters): Alloc inline_summary; do not compute
4230 size/time of incomming calls.
10a5dd5d
JH
4231 (estimate_edge_time): Avoid missing time summary hack.
4232 (inline_read_summary): Read inline summary info.
4233 (inline_write_summary): Write inline summary info.
4234 (inline_free_summary): Free all hooks and inline summary vector.
4235 * lto-streamer.h: Add LTO_section_inline_summary section.
4236 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
4237 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
4238
b602d918
RS
42392011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4240
4241 * tree-vectorizer.h (vect_strided_store_supported): Add a
4242 HOST_WIDE_INT argument.
4243 (vect_strided_load_supported): Likewise.
4244 (vect_permute_store_chain): Return void.
4245 (vect_transform_strided_load): Likewise.
4246 (vect_permute_load_chain): Delete.
4247 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
4248 count argument. Check that the count is a power of two.
4249 (vect_strided_load_supported): Likewise.
4250 (vect_permute_store_chain): Return void. Update after above changes.
4251 Assert that the access is supported.
4252 (vect_permute_load_chain): Likewise.
4253 (vect_transform_strided_load): Return void.
4254 * tree-vect-stmts.c (vectorizable_store): Update calls after
4255 above interface changes.
4256 (vectorizable_load): Likewise.
4257 (vect_analyze_stmt): Don't check for strided powers of two here.
4258
ab4472fa
RG
42592011-04-14 Richard Guenther <rguenther@suse.de>
4260
4261 PR tree-optimization/48590
4262 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4263 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4264 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
4265 BUILT_IN_STACK_SAVE.
4266 * tree-ssa-dce.c (propagate_necessity): Handle
4267 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
4268
32dabdaf
NP
42692011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
4270
4271 * c-parser.c (c_parser_objc_class_declaration): Updated call to
4272 objc_declare_class.
4273
daade206
RG
42742011-04-14 Richard Guenther <rguenther@suse.de>
4275
4276 * tree.h (get_object_alignment_1): Declare.
4277 * builtins.c (get_object_alignment_1): Split out worker from ...
4278 (get_object_alignment): ... here.
4279 * fold-const.c (get_pointer_modulus_and_residue): Use
4280 get_object_alignment_1.
4281
920e8172
RS
42822011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4283
4284 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
4285 type parameter.
4286 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
4287 parameter. Generalise code to handle arrays as well as vectors.
4288 (vect_setup_realignment): Update accordingly.
4289 * tree-vect-stmts.c (vectorizable_store): Likewise.
4290 (vectorizable_load): Likewise.
4291
5ce1ee7f
RS
42922011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
4293
4294 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
4295 within the per-copy loop.
4296
6438fe33 42972011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
4298
4299 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
4300 in the dump file.
4301
6438fe33 43022011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
4303
4304 * doc/options.texi (Negative): Explicitly mention that the
4305 Negative chain must be circular.
4306
61e46a7d
NF
43072011-04-14 Nathan Froyd <froydnj@codesourcery.com>
4308
4309 * function.h (block_chainon): Declare.
4310 * function.c (block_chainon): Define.
4311
43ea6502 43122011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 4313 Eric Weddington <eric.weddington@atmel.com>
748f7574 4314 Georg-Johann Lay <avr@gjlay.de>
5e60198b 4315
f60c2554 4316 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
4317 New Includes
4318 (avr_init_builtins, avr_expand_builtin,
4319 avr_expand_delay_cycles, avr_expand_unop_builtin,
4320 avr_expand_binop_builtin ): New functions.
4321 (avr_builtin_id): New enum
4322 (struct avr_builtin_description): New struct
4323 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
4324 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 4325
43ea6502 4326 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 4327 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
4328 UNSPECV_DELAY_CYCLES): new enumeration values
4329 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
4330 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
4331 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
4332 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
4333 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
4334 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
4335 "fmulsu"): New insns
5e60198b 4336
43ea6502
AS
4337 * config/avr/avr-c.c: fix line endings
4338 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
4339 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
4340 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
4341 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
4342 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 4343
43ea6502
AS
4344 * doc/extend.texi (AVR Built-in Functions): New node
4345 (Target Builtins): Add documentation of AVR
4346 built-in functions.
4347
8a9b55f3
GJL
43482011-04-14 Georg-Johann Lay <avr@gjlay.de>
4349
4350 PR target/44643
4351 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
4352 alone. Error if non-const data has attribute progmem.
4353
94bd1825
NF
43542011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4355
4356 * tree.h (struct tree_constructor): Include tree_typed instead of
4357 tree_common.
4358 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
4359 TS_TYPED instead of TS_COMMON.
4360
5e60198b 43612011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
4362
4363 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
4364 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
4365 (sse2_psadbw): Merge with *avx_psadbw.
4366 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
4367 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
4368 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
4369 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
4370 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
4371 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
4372 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
4373 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
4374 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
4375 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
4376 (ssse3_palignrti): Merge with *avx_palignrti.
4377
4b1a4694
NF
43782011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4379
4380 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
4381 * tree-ssanames.c (fini_ssanames): VEC_free it.
4382 (make_ssa_name_fn): Update for VECness of free_ssanames.
4383 (release_ssa_name, release_dead_ssa_names): Likewise.
4384 * tree.h (struct tree_ssa_name): Include tree_typed instead of
4385 tree_common.
4386 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
4387 TS_TYPED instead of TS_COMMON.
4388
4da3b811
NF
43892011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4390
4391 * postreload-gcse.c (gcse_after_reload_main): Add calls to
4392 statistics_counter_event.
4393 * tree-ssa-copyrename.c (stats): Define.
4394 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
4395 statistics_counter_event.
4396 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
4397 (bswap_stats, widen_mul_stats): Define.
4398 (insert_reciprocals): Increment rdivs_inserted.
4399 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
4400 rfuncs_inserted. Add calls to statistics_counter_event.
4401 (execute_cse_sincos_1): Increment inserted.
4402 (execute_cse_sincos): Zeroize sincos_stats. Add call to
4403 statistics_counter_event.
4404 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
4405 of bswap_stats. Add calls to statistics_counter_event.
4406 (convert_mult_to_widen): Increment widen_mults_inserted.
4407 (convert_plusminus_to_widen): Increment maccs_inserted.
4408 (convert_mult_to_fma): Increment fmas_inserted.
4409 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
4410 calls to statistics_counter_event.
4411
89fa552a
VM
44122011-04-13 Vladimir Makarov <vmakarov@redhat.com>
4413
4414 PR rtl-optimization/48455
4415 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
4416 `temp_costs->mem_cost'.
4417
03dfc36d
JH
44182011-04-13 Jan Hubicka <jh@suse.cz>
4419
4420 * ipa-inline.h: New file.
4421 * ipa-inline-analysis.c: New file. Broken out of ...
4422 * ipa-inline.c: ... this file; update toplevel comment;
4423 include ipa-inline.h
4424 (inline_summary): Move to ipa-inline.h
4425 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
4426 ipa-inline-analysis.c.
7d4f8d02
EB
4427 (cgraph_estimate_time_after_inlining): Rename to
4428 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
4429 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
4430 to estimate_edge_growth.
4431 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
4432 rename to estimate_size_after_inlining.
4433 (cgraph_mark_inline_edge): Update for new naming convention.
4434 (cgraph_check_inline_limits): Likewise.
4435 (cgraph_edge_badness): Likewise.
4436 (cgraph_decide_recursive_inlining): Likewise.
4437 (cgraph_decide_inlining_of_small_functions): Likewise.
4438 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
4439 (cgraph_estimate_growth): Rename to estimate_growth; move to
4440 ipa-inline-analysis.c.
03dfc36d
JH
4441 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
4442 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
4443 (compute_inline_parameters): Likewise.
4444 (compute_inline_parameters_for_current): Likewise.
4445 (pass_inline_parameters): Likewise.
4446 (inline_indirect_intraprocedural_analysis): Likewise.
4447 (analyze_function): Rename to inline_analyze_function; likewise.
4448 (add_new_function): Move to ipa-inline-analysis.c.
4449 (inline_generate_summary): Likewise.
4450 (inline_read_summary): Likewise.
4451 (inline_write_summary): Likewise.
4452 * Makefile.in (ipa-inline-analysis.c): New file.
4453
7673c962
RO
44542011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4455
4456 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
4457 * configure: Regenerate.
4458
9698252f
NF
44592011-04-13 Nathan Froyd <froydnj@codesourcery.com>
4460
4461 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
4462 instead of tree_common.
4463 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
4464 Likewise.
4465 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
4466 TS_TYPED rather than TS_COMMON.
4467 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
4468
3a7bfdd5
GJL
44692011-04-01 Georg-Johann Lay <avr@gjlay.de>
4470
4471 PR target/45263
86d83530
GJL
4472 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
4473 r20 around calls of __tablejump_elpm__
3a7bfdd5 4474
20790697
JJ
44752011-04-13 Jakub Jelinek <jakub@redhat.com>
4476
4477 PR middle-end/48591
4478 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
4479 NULL.
4480 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
4481
094d7661
BS
44822011-04-13 Bernd Schmidt <bernds@codesourcery.com>
4483
4484 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
4485 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
4486 (cfi_vec): New typedef.
4487 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
4488 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
4489 (cie_cfi_vec): New static variable.
4490 (cie_cfi_head): Delete.
4491 (add_cfi): Accept a cfi_vec * as first argument. All callers and
4492 declaration changed. Use vector rather than list operations.
4493 (new_cfi): Don't initialize the dw_cfi_next field.
4494 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
4495 rather than list operations.
4496 (lookup_cfa): Use vector rather than list operations.
4497 (output_cfis): New argument upto. Accept a cfi_vec rather than
4498 a dw_cfi_ref list head as argument. All callers changed.
4499 Iterate over the vector using upto as a maximum index.
4500 (output_all_cfis): New static function.
4501 (output_fde): Use vector rather than list operations. Use the
4502 new upto argument for output_cfis rather than manipulating a
4503 list.
4504 (dwarf2out_begin_prologue): Change initializations to match
4505 new struct members.
4506 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
4507 from the vector length rather than searching for the end of a list.
4508 Use output_all_cfis.
4509 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
4510
673a5740
NC
45112011-04-13 Nick Clifton <nickc@redhat.com>
4512
4513 * config/rx/rx.md (movmemsi): Do not use this pattern when
4514 volatile pointers are involved.
4515
1ee8b298
UB
45162011-04-13 Uros Bizjak <ubizjak@gmail.com>
4517
4518 * config/i386/sse.md (pinsrbits): Remove.
4519 (sse2_packsswb): Merge with *avx_packsswb.
4520 (sse2_packssdw): Merge with *avx_packssdw.
4521 (sse2_packuswb): Merge with *avx_packuswb.
4522 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
4523 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
4524 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
4525 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
4526 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
4527 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
4528 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
4529 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
4530 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
4531 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
4532 (sse2_loadld): Merge with *avx_loadld.
4533 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
4534 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
4535 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
4536 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
4537 (vec_concatv2di): Merge with *vec_concatv2di_avx.
4538
81f653d6
NF
45392011-04-12 Nathan Froyd <froydnj@codesourcery.com>
4540
4541 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
4542 calling TREE_CHAIN.
4543 * print-tree.c (print_node): Likewise.
4544 * tree-inline.c (copy_tree_r): Likewise.
4545 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
4546 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
4547 instead of TS_COMMON.
4548 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
4549 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
4550 (copy_node_stat): Zero TREE_CHAIN only if necessary.
4551 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
4552 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
4553 ...and these...
4554 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
4555 * tree.h: ...here.
4556 (TREE_CHAIN): Check for a TS_COMMON structure.
4557 (TREE_TYPE): Check for a TS_TYPED structure.
4558
748f7574 45592011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
4560
4561 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
4562 cgraph_get_create_node instead of cgraph_node.
4563
eb345401
NP
45642011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
4565
4566 * c-parser.c (c_parser_initelt): Updated call to
4567 objc_build_message_expr.
4568 (c_parser_postfix_expression): Likewise.
4569
a6c46762
KT
45702011-04-12 Kai Tietz <ktietz@redhat.com>
4571
4572 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
4573 MASK_MS_BITFIELD_LAYOUT bit.
4574
b4ccfed9
JJ
45752011-04-12 Jakub Jelinek <jakub@redhat.com>
4576
4577 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
4578 assert it is always true.
4579 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
4580 moves.
4581
0d8a2528
NP
45822011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
4583
4584 * c-parser.c (c_lex_one_token): Rewritten conditional used when
4585 compiling Objective-C to be more efficient.
4586
06bd234a
AF
45872011-04-12 Axel Freyn <axel-freyn@gmx.de>
4588
4589 * opts-common.c (decode_cmdline_options_to_array): Remove variable
4590 argv_copied.
4591
28569ac3
RS
45922011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
4593
4594 * recog.h, genoutput.c, optabs.c: Revert last patch.
4595
ae59e00d
RR
45962011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4597
81b1e7eb
UB
4598 PR target/48090
4599 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 4600
cff1b7e0
RS
46012011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
4602
4603 * recog.h (insn_operand_data): Add an "allows_mem" field.
4604 * genoutput.c (output_operand_data): Initialize it.
4605 * optabs.c (maybe_legitimize_operand_same_code): New function.
4606 (maybe_legitimize_operand): Use it when matching the original
4607 op->value.
4608
77059241
RS
46092011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
4610
4611 * genpreds.c (process_define_predicate): Move most processing
4612 to gensupport.c. Continue to validate the expression.
4613 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
4614 (process_define_predicate): Move processing to gensupport.c.
4615 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
4616 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
4617 (compute_predicate_codes): Moved from genrecog.c. Add lineno
4618 argument.
4619 (valid_predicate_name_p): New function, split out from old
4620 genpreds.c:process_define_predicate.
4621 (process_define_predicate): New function, combining code from
4622 old genpreds.c and genrecog.c functions.
4623 (process_rtx): Call it for DEFINE_PREDICATE and
4624 DEFINE_SPECIAL_PREDICATE.
4625
6308e208
RS
46262011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
4627
4628 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
4629 size of a '%A' memory reference.
4630 (T_DREG, T_QREG): New neon_builtin_type_bits.
4631 (arm_init_neon_builtins): Assert that the load and store operands
4632 are neon_struct_operands.
4633 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
4634 (NEON_ARG_MEMORY): New builtin_arg.
4635 (neon_dereference_pointer): New function.
4636 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
4637 Handle NEON_ARG_MEMORY.
4638 (arm_expand_neon_builtin): Update after above interface changes.
4639 Use NEON_ARG_MEMORY for loads and stores.
4640 * config/arm/predicates.md (neon_struct_operand): New predicate.
4641 * config/arm/iterators.md (V_two_elem): Tweak formatting.
4642 (V_three_elem): Use BLKmode for accesses that have no associated mode.
4643 (V_four_elem): Tweak formatting.
4644 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
4645 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
4646 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
4647 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
4648 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
4649 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
4650 (neon_vst4<mode>): Replace pointer operand with a memory operand.
4651 Use %A in the output template.
4652 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
4653 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
4654 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
4655 the width of the memory access. Remove post-increment.
4656 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
4657
e5db8f2f
NC
46582011-04-12 Nick Clifton <nickc@redhat.com>
4659
4660 * config/v850/v850.c (expand_prologue): Do not use the CALLT
4661 instruction for interrupt handlers if the target is the basic V850
4662 architecture.
4663 (expand_epilogue): Likewise.
4664
74f091d6
JJ
46652011-04-12 Jakub Jelinek <jakub@redhat.com>
4666
4667 PR rtl-optimization/48549
4668 * combine.c (propagate_for_debug): Also stop after BB_END of
4669 this_basic_block. Process LAST and just stop processing after it.
4670 (combine_instructions): If last_combined_insn has been deleted,
4671 set last_combined_insn to its PREV_INSN.
4672
f20ca725
RG
46732011-04-12 Richard Guenther <rguenther@suse.de>
4674
4675 PR tree-optimization/46076
4676 * gimple.h (struct gimple_statement_call): Add fntype field.
4677 (gimple_call_fntype): Adjust.
4678 (gimple_call_set_fntype): New function.
4679 * gimple.c (gimple_build_call_1): Set the call function type.
4680 * gimplify.c (gimplify_call_expr): Preserve the function
4681 type the frontend used for the call.
4682 (gimplify_modify_expr): Likewise.
4683 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
4684 function type.
4685 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
4686 function type.
4687 * tree-ssa.c (useless_type_conversion_p): Function pointer
4688 conversions are useless.
4689
a358e188
MJ
46902011-04-12 Martin Jambor <mjambor@suse.cz>
4691
4692 * cgraph.h (cgraph_node): Remove function declaration.
4693 (cgraph_create_node): Declare.
4694 (cgraph_get_create_node): Likewise.
4695 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
4696 Updated all callers.
4697 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
4698 the decl does not already exist. Call cgraph_get_create_node instead
4699 of cgraph_node.
4700 (cgraph_get_create_node): New function.
4701 (cgraph_same_body_alias): Update comment.
4702 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
4703 assert it does not return NULL.
4704 (cgraph_update_edges_for_call_stmt): Likewise.
4705 (cgraph_clone_edge): Likewise.
4706 (cgraph_create_virtual_clone): Likewise.
4707 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
4708 instead of cgraph_node.
4709 (cgraph_add_new_function): Call cgraph_create_node or
4710 cgraph_get_create_node instead of cgraph_node.
4711 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
4712 instead of cgraph_node.
4713 (record_eh_tables): Likewise.
4714 (mark_address): Likewise.
4715 (mark_load): Likewise.
4716 (build_cgraph_edges): Call cgraph_get_create_node instead
4717 of cgraph_node.
4718 (rebuild_cgraph_edges): Likewise.
4719 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
4720 instead of cgraph_node.
4721 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
4722 cgraph_node.
4723 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
4724 cgraph_create_node instead of cgraph_node.
4725 * c-decl.c (finish_function): Call cgraph_get_create_node instead
4726 of cgraph_node.
4727 * lto-cgraph.c (input_node): Likewise.
4728 * lto-streamer-in.c (input_function): Likewise.
4729 * varasm.c (mark_decl_referenced): Likewise.
4730 (assemble_alias): Likewise.
4731
fe660d7b
MJ
47322011-04-12 Martin Jambor <mjambor@suse.cz>
4733
4734 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
4735 instead of cgraph_node and assert it does not return NULL.
4736 * lto-streamer-in.c (lto_read_body): Likewise.
4737 * omp-low.c (new_omp_context): Likewise.
4738 (create_task_copyfn): Likewise.
4739 * tree-emutls.c (lower_emutls_function_body): Likewise.
4740 * matrix-reorg.c (transform_allocation_sites): Likewise.
4741
bae5cddf
JJ
47422011-04-12 Jakub Jelinek <jakub@redhat.com>
4743
4744 PR c/48552
4745 * c-typeck.c (build_asm_expr): Error out on attempts to use
4746 void type outputs or inputs for constraints that allow reg or
4747 don't allow memory.
4748
06eb52ca
CLT
47492011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
4750 Richard Earnshaw <rearnsha@arm.com>
4751
4752 PR target/48250
4753 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
4754 to use sign-magnitude offsets. Reject unsupported unaligned
4755 cases. Add detailed description in comments.
4756 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
4757 condition from TARGET_32BIT to TARGET_ARM.
4758
648a616b
NF
47592011-04-11 Nathan Froyd <froydnj@codesourcery.com>
4760
4761 * tree.h (struct typed_tree): New.
4762 (struct tree_common): Include it instead of tree_base.
4763 (TREE_TYPE): Update for new location of type field.
4764 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
4765 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
4766 (union tree_node): Add typed field.
4767 * treestruct.def (TS_TYPED): New.
4768 * lto-streamer.c (check_handled_ts_structures): Handle it.
4769 * tree.c (MARK_TS_TYPED): New macro.
4770 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
4771
1e6d1da0
EB
47722011-04-11 Eric Botcazou <ebotcazou@adacore.com>
4773
4774 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
4775 (force_nonfallthru): Do not alter the loop nest if no basic block
4776 was created.
4777
47782011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
4779
4780 * config/i386/sse.md (VI): New mode iterator.
4781 (SSEMODEI): Remove.
4782 (AVX256MODEI): Ditto.
4783 (AVXMODEF4P): Ditto.
4784 (avxvecpsmode): Ditto.
4785 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
4786 (sse2_andnot<mode>3): New expander.
4787 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
4788 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
4789 (<any_logic:code><mode>3): Use VI mode iterator.
4790 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
4791 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
4792 (*andnottf3): Handle AVX three-operand constraints.
4793 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
4794
b1372d5d 47952011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 4796 Robert Millan <rmh@gnu.org>
b1372d5d
JM
4797
4798 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
4799 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
4800 GNU_USER_DYNAMIC_LINKER64): Define.
4801 (REG_NAME): Don't undefine.
4802 (MD_UNWIND_SUPPORT): Undefine.
4803 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
4804 (REG_NAME): Don't undefine.
4805 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 4806 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 4807
761c0c6e
JM
48082011-04-11 Joseph Myers <joseph@codesourcery.com>
4809
4810 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
4811 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
4812
26e0228f
XDL
48132011-04-11 Xinliang David Li <davidxl@google.com>
4814
4815 * value-profile.c (check_ic_target): New function.
4816 (gimple_ic_transform): Sanity check indirect call target.
4817 * gimple-low.c (gimple_check_call_args): Interface change.
4818 (gimple_check_call_matching_types): New function.
4819 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
4820
48212011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
4822
4823 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
4824 tree-pretty-print.h & realmpfr.h.
4825
a58dfa49
VM
48262011-04-11 Vladimir Makarov <vmakarov@redhat.com>
4827
4828 PR middle-end/48464
4829 * ira.c (setup_pressure_classes): Fix typo in loop condition.
4830 (setup_allocno_and_important_classes): Ditto.
4831
107fd1c1
JM
48322011-04-11 Joseph Myers <joseph@codesourcery.com>
4833
4834 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
4835 GNU_USER_DYNAMIC_LINKER.
4836 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
4837 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4838 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
4839 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4840 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4841 GNU_USER_TARGET_OS_CPP_BUILTINS.
4842 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
4843 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4844 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4845 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4846 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
4847 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
4848 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4849 GNU_USER_TARGET_OS_CPP_BUILTINS.
4850 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4851 GNU_USER_DYNAMIC_LINKER.
4852 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4853 GNU_USER_TARGET_OS_CPP_BUILTINS.
4854 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
4855 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4856 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
4857 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4858 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
4859 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
4860 GNU_USER_DYNAMIC_LINKER64): Remove.
4861 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
4862 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4863 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4864 GNU_USER_DYNAMIC_LINKER.
4865 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4866 GNU_USER_TARGET_OS_CPP_BUILTINS.
4867 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4868 GNU_USER_TARGET_OS_CPP_BUILTINS.
4869 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
4870 to GNU_USER_TARGET_OS_CPP_BUILTINS.
4871 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
4872 GNU_USER_TARGET_OS_CPP_BUILTINS.
4873 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
4874 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
4875 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4876 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
4877 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4878 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4879 GNU_USER_DYNAMIC_LINKER.
4880 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
4881 GNU_USER_TARGET_OS_CPP_BUILTINS.
4882 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
4883 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4884 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4885 GNU_USER_DYNAMIC_LINKER.
4886 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4887 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4888 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
4889 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4890 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4891 GNU_USER_DYNAMIC_LINKER.
4892 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
4893 GNU_USER_DYNAMIC_LINKERN32.
4894 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
4895 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
4896 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
4897 GNU_USER_DYNAMIC_LINKER32.
4898 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
4899 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4900 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4901 GNU_USER_DYNAMIC_LINKER.
4902 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
4903 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4904 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
4905 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 4906 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
4907 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
4908 GNU_USER_DYNAMIC_LINKER32.
4909 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
4910 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
4911 GNU_USER_DYNAMIC_LINKER.
4912 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
4913 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4914 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4915 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
4916 GNU_USER_DYNAMIC_LINKER64.
4917 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
4918 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4919 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4920 GNU_USER_DYNAMIC_LINKER.
4921 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
4922 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4923 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
4924 GNU_USER_DYNAMIC_LINKER.
4925 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
4926 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4927 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
4928 GNU_USER_DYNAMIC_LINKER32.
4929 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4930 GNU_USER_DYNAMIC_LINKER64.
4931 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
4932 GNU_USER_DYNAMIC_LINKER64.
4933 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
4934 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
4935 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
4936 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 4937 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 4938
e24609cf
JM
49392011-04-11 Joseph Myers <joseph@codesourcery.com>
4940
4941 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
4942 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
4943 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
4944 GNU_USER_DYNAMIC_LINKER.
4945 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4946 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
4947 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
4948 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
4949 GNU_USER_DYNAMIC_LINKER64.
4950 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
4951 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
4952 GNU_USER_LINK_EMULATION.
4953 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
4954 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
4955 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
4956 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
4957 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
4958 CPP_SPEC, CC1_SPEC): Remove.
4959 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
4960 (GNU_USER_DYNAMIC_LINKER): Define.
4961 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
4962 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
4963 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
4964 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
4965 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
4966 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
4967 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4968 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
4969 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
4970 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
4971 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
4972 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
4973 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
4974 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
4975 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
4976 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
4977 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4978 GNU_USER_DYNAMIC_LINKER.
4979 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4980 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4981 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4982 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4983 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
4984 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
4985 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
4986 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
4987 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 4988 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 4989
b8ce4e94
KT
49902011-04-11 Kai Tietz <ktietz@redhat.com>
4991
4992 PR target/9601
4993 PR target/11772
4994 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
4995 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
4996 comment.
4997 (ix86_is_msabi_thiscall): Removed.
4998 (ix86_is_type_thiscall): Likewise.
4999 (ix86_get_callcvt): New function.
5000 (ix86_comp_type_attributes): Simplify check.
5001 (ix86_function_regparm): Use ix86_get_callcvt for calling
5002 convention attribute checks.
5003 (ix86_return_pops_args): Likewise.
5004 (ix86_static_chain): Likewise.
5005 (x86_this_parameter): Likewise.
5006 (x86_output_mi_thunk): Likewise.
5007 (ix86_function_type_abi): Optimize check for types without attributes.
5008 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
5009 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
5010 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
5011 by flag-values.
5012 (IX86_BASE_CALLCVT): Helper macro.
5013 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
5014 Use ix86_get_callcvt for calling convention attribute checks and avoid
5015 symbol-decoration for stdcall in TARGET_RTD case.
5016 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5017 Likewise.
5018 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
5019 for declaration.
5020
798dd0ba
UB
50212011-04-11 Uros Bizjak <ubizjak@gmail.com>
5022
5023 * config/i386/sse.md (VI_128): New mode iterator.
5024 (VI12_128): Rename from SSEMODE12.
5025 (VI14_128): Rename from SSEMODE14.
5026 (VI124_128): New mode iterator.
5027 (VI24_128): Rename from SSEMODE248.
5028 (VI248_128): Rename from SSEMODE248.
5029 (SSEMODE124C8): Remove.
5030 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5031 (*sse2_<plusminus_insn><mode>3): Merge with
5032 *avx_<plusminus_insn><mode>3.
5033 (*mulv8hi3): Merge with *avx_mulv8hi3.
5034 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
5035 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
5036 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
5037 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
5038 (ashr<mode>3): Merge with *avx_ashr<mode>3.
5039 (lshr<mode>3): Merge with *avx_lshr<mode>3.
5040 (ashl<mode>3): Merge with *avx_ashl<mode>3.
5041 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
5042 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
5043 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5044 (*<smaxmin:code>v8hi3): Ditto.
5045 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
5046 (*<smaxmin:code>v16qi3): Ditto.
5047 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
5048 (*sse2_eq<mode>3): Ditto.
5049 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
5050 (*sse2_gt<mode>3): Ditto.
5051 (vcondv2di): Split out of vcond<mode>.
5052 (vconduv2di): Split out of vcondu<mode>.
5053
956011be
RG
50542011-04-11 Richard Guenther <rguenther@suse.de>
5055
5056 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
5057 before calling tree_low_cst.
5058
e6313a78
RG
50592011-04-11 Richard Guenther <rguenther@suse.de>
5060
5061 * stor-layout.c (layout_type): Compute all array index size operations
5062 in the original type.
5063 (initialize_sizetypes): Add comment.
5064 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
5065
e69d7376
JM
50662011-04-11 Joseph Myers <joseph@codesourcery.com>
5067
5068 * common.opt (Tbss=, Tdata=, Ttext=): New options.
5069
9f9ebcdf
MJ
50702011-04-11 Martin Jambor <mjambor@suse.cz>
5071
5072 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
5073 of cgraph_node, handle NULL return value.
5074 (cgraph_global_info): Likewise.
5075 (cgraph_rtl_info): Likewise.
5076 * tree-inline.c (estimate_num_insns): Likewise.
5077 * gimplify.c (unshare_body): Likewise.
5078 (unvisit_body): Likewise.
5079 (gimplify_body): Likewise.
5080 * predict.c (optimize_function_for_size_p): Likewise.
5081 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
5082 (call_may_clobber_ref_p_1): Likewise.
5083 * varasm.c (function_section_1): Likewise.
5084 (assemble_start_function): Likewise.
5085
581985d7
MJ
50862011-04-11 Martin Jambor <mjambor@suse.cz>
5087
5088 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
5089 of cgraph_node.
5090 * final.c (rest_of_clean_state): Likewise.
5091 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
5092 * passes.c (pass_init_dump_file): Likewise.
5093 (execute_all_ipa_transforms): Likewise.
5094 (function_called_by_processed_nodes_p): Likewise.
5095 * predict.c (maybe_hot_frequency_p): Likewise.
5096 (probably_never_executed_bb_p): Likewise.
5097 (compute_function_frequency): Likewise.
5098 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
5099 (unnest_nesting_tree_1): Likewise.
5100 (lower_nested_functions): Likewise.
5101 * tree-optimize.c (execute_fixup_cfg): Likewise.
5102 (tree_rest_of_compilation): Likewise.
5103 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
5104 * tree-sra.c (ipa_early_sra): Likewise.
5105 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
5106 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
5107 * ipa.c (record_cdtor_fn): Likewise.
5108 * ipa-inline.c (cgraph_early_inlining): Likewise.
5109 (compute_inline_parameters_for_current): Likewise.
5110 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
5111 * ipa-pure-const.c (local_pure_const): Likewise.
5112 * ipa-split.c (split_function): Likewise.
5113 (execute_split_functions): Likewise.
5114 * cgraphbuild.c (build_cgraph_edges): Likewise.
5115 (rebuild_cgraph_edges): Likewise.
5116 (cgraph_rebuild_references): Likewise.
5117 (remove_cgraph_callee_edges): Likewise.
5118 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
5119 (verify_cgraph_node): Likewise.
5120 (cgraph_analyze_functions): Likewise.
5121 (cgraph_preserve_function_body_p): Likewise.
5122 (save_inline_function_body): Likewise.
5123 (save_inline_function_body): Likewise.
5124 * tree-inline.c (copy_bb): Likewise.
5125 (optimize_inline_calls): Likewise.
5126
57dbdc5a
MJ
51272011-04-11 Martin Jambor <mjambor@suse.cz>
5128
5129 PR tree-optimization/48195
5130 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
5131 ipa_check_create_edge_args.
5132 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
5133 ipa_check_create_edge_args.
5134 * ipa-inline.c (inline_generate_summary): Do not call
5135 ipa_check_create_node_params and ipa_check_create_edge_args.
5136 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
5137 ipa_check_create_edge_args.
5138
d108e679
AS
51392011-04-09 Anatoly Sokolov <aesok@post.ru>
5140
5141 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
5142 instead of loop.
5143 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
5144 * function.c (record_hard_reg_sets): Likewise.
5145 * ira.c (compute_regs_asm_clobbered): Likewise.
5146 * sched-deps.c (sched_analyze_1): Likewise.
5147 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
5148
3411bc59
XDL
51492011-04-09 Xinliang David Li <davidxl@google.com>
5150
5151 PR tree-optimization/PR48484
5152 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
5153 has_valid_pred lazily
5154
b365495a
DS
51552011-04-09 Duncan Sands <baldrick@free.fr>
5156
5157 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
5158
68bc509a
EB
51592011-04-08 Eric Botcazou <ebotcazou@adacore.com>
5160
5161 * combine.c (combine_validate_cost): Adjust comments. Set registered
5162 cost of I0 to zero at the end, if any.
5163
041e059f
XDL
51642011-04-08 Xinliang David Li <davidxl@google.com>
5165
68bc509a
EB
5166 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
5167 to insane profile data.
041e059f 5168
444b3995
XDL
51692011-04-08 Xinliang David Li <davidxl@google.com>
5170
5171 * ipa-cp.c (ipcp_update_profiling): Correct
5172 negative scale factor due to insane profile data.
5173
6a801cf2
XDL
51742011-04-08 Xinliang David Li <davidxl@google.com>
5175
5176 * final.c (dump_basic_block_info): New function.
5177 (final): Dump basic block.
5178 (final_scan_insn): Remove old dump.
5179
d5f3624e
SK
51802011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
5181
68bc509a
EB
5182 PR target/47829
5183 * config.gcc (i386-*-freebsd): Disable unwind table generation for
5184 crtbegin/crtend.
d5f3624e 5185
42821aff
MM
51862011-04-08 Michael Matz <matz@suse.de>
5187
5188 PR middle-end/48389
5189 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
5190 functions.
5191 (rebuild_jump_labels): Call rebuild_jump_labels_1.
5192 * rtl.h (rebuild_jump_labels_chain): Declare.
5193 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
5194 insns inserted on edges.
5195
ad7be009
JM
51962011-04-08 Joseph Myers <joseph@codesourcery.com>
5197
5198 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
5199 * config/arm/arm-arches.def: New.
5200 * config/arm/arm-opts.h: New.
5201 * config/arm/genopt.sh: New.
5202 * config/arm/arm-tables.opt: New (generated).
5203 * config/arm/arm.c (arm_handle_option, arm_target_help,
5204 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
5205 (all_architectures): Get most table contents from arm-arches.def.
5206 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
5207 arm_selected_tune here.
5208 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
5209 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
5210 (march=, mcpu=, mtune=): Use Enum and Var.
5211 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
5212 (arm.o): Update dependencies.
ecbb6fb7 5213
42821aff 52142011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
5215
5216 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
5217 of header_file.
5218 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
5219 (write_typed_alloc_defns): Likewise.
5220 (main): Calls write_typed_alloc_defns with output_header.
5221
8d189b3f
VM
52222011-04-08 Vladimir Makarov <vmakarov@redhat.com>
5223
68bc509a 5224 PR inline-asm/48435
8d189b3f
VM
5225 * ira-color.c (setup_profitable_hard_regs): Add comments.
5226 Don't take prohibited hard regs into account.
5227 (setup_conflict_profitable_regs): Rename to
5228 get_conflict_profitable_regs.
5229 (check_hard_reg_p): Check prohibited hard regs.
5230
44f370bf
NF
52312011-04-08 Nathan Froyd <froydnj@codesourcery.com>
5232
5233 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
5234 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
5235 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
5236
483d7ad3
JDA
52372011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5238
5239 PR target/48366
5240 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 5241 move from floating point to shift amount register.
483d7ad3
JDA
5242 (emit_move_sequence): Remove secondary reload support for floating
5243 point to shift amount amount register copies.
5244 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
5245 amount register copies.
5246 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
5247 register, return false if mode isn't a scalar integer mode.
5248 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
5249
97e03fa1
RG
52502011-04-08 Richard Guenther <rguenther@suse.de>
5251
5252 * gimple.c (gimple_call_flags): Remove kludge.
5253
9d40778b
AM
52542011-04-08 Alexander Monakov <amonakov@ispras.ru>
5255
5256 * sel-sched.c (sel_region_init): Move call to
5257 sel_setup_region_sched_flags after setup_current_loop_nest.
5258
19ac7892
AB
52592011-04-08 Andrey Belevantsev <abel@ispras.ru>
5260
5261 PR rtl-optimization/48272
19ac7892
AB
5262 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
5263 init_insn_reg_pressure_info. Adjust a caller.
5264 * sched-int.h (init_insn_reg_pressure_info): Declare.
5265 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
5266 when sched-pressure is enabled.
5267
0f8c63cc
RG
52682011-04-08 Richard Guenther <rguenther@suse.de>
5269
5270 * gimple.c (gimple_set_modified): Do not queue calls to
5271 MODIFIED_NORETURN_CALLS here ...
5272 * tree-ssa-operands.c (update_stmt_operands): ... but here.
5273
5e5a425e
RG
52742011-04-08 Richard Guenther <rguenther@suse.de>
5275
5276 PR lto/48467
5277 * toplev.c (lang_dependent_init): Do not open asm_out_file
5278 in WPA mode, nor perform debug machinery initialization.
5279 (finalize): Do not unlink asm_out_file in WPA mode.
5280
9bfc434b
RG
52812011-04-08 Richard Guenther <rguenther@suse.de>
5282
5283 * gimple.h (gimple_call_fntype): New function.
5284 (gimple_call_return_type): Use it.
5285 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
5286 * gimple-low.c (gimple_check_call_args): Likewise.
5287 * gimple.c (gimple_call_flags): Likewise.
5288 (gimple_call_arg_flags): Likewise.
5289 (gimple_call_return_flags): Likewise.
5290 * tree-cfg.c (verify_gimple_call): Likewise.
5291 (do_warn_unused_result): Likewise.
5292 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5293 * value-prof.c (gimple_ic_transform): Fix fndecl check.
5294
7c1f0b40
DM
52952011-04-08 Dmitry Melnik <dm@ispras.ru>
5296
5297 PR rtl-optimization/48235
5298 * sel-sched.c (code_motion_process_successors): Recompute the last
5299 insn in basic block if control flow changed.
5300 (code_motion_path_driver): Ditto. Recompute the first insn as well.
5301 Update condition for ilist_remove.
5302
ea4d630f
AM
53032011-04-08 Alexander Monakov <amonakov@ispras.ru>
5304
5305 PR rtl-optimization/48302
5306 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
5307 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
5308 it to record added preheader blocks.
5309 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
5310 on to sel_add_loop_preheaders.
5311 (sel_region_init): Move call to setup_current_loop_nest after
5312 sel_init_bbs.
5313
07643d76
AM
53142011-04-08 Alexander Monakov <amonakov@ispras.ru>
5315
5316 PR target/48273
5317 * cfgloop.h (loop_has_exit_edges): New helper.
5318 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
5319 non-clonable.
5320 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
5321 that have no exit edges.
5322
1f3b2b4e
AM
53232011-04-08 Alexander Monakov <amonakov@ispras.ru>
5324
5325 PR rtl-optimization/48442
5326 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
5327 all callers. Adjust assert.
5328
554f1948
JJ
53292011-04-08 Jakub Jelinek <jakub@redhat.com>
5330
5331 PR tree-optimization/48377
5332 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
5333 is_packed to true even for types with smaller TYPE_ALIGN than
5334 TYPE_SIZE.
5335
ddf72388
RG
53362011-04-08 Richard Guenther <rguenther@suse.de>
5337
5338 PR bootstrap/48513
5339 * doc/tm.texi: Re-generate.
5340
0c27e2d8
WG
53412011-04-08 Wei Guozhi <carrot@google.com>
5342
5343 PR target/47855
5344 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
5345 * config/arm/arm.c (arm_attr_length_push_multi): New function.
5346 * config/arm/arm.md (*push_multi): Change the length computation to
5347 call a C function.
5348
07c5f94e
AS
53492011-04-08 Anatoly Sokolov <aesok@post.ru>
5350
5351 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
5352 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
5353 * doc/tm.texi: Regenerate.
5354 * system.h (ASM_OUTPUT_BSS): Poison.
5355 * varasm.c (asm_output_bss): Remove function.
5356 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 5357
07c5f94e
AS
5358 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
5359 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
5360 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
5361 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5362 Likewise.
5363 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5364 Likewise.
5365 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
5366 Likewise.
5367 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
5368
5f2c36e1
JM
53692011-04-07 Joseph Myers <joseph@codesourcery.com>
5370
5371 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
5372 EnumValue lines.
5373
39e7722b
JM
53742011-04-07 Joseph Myers <joseph@codesourcery.com>
5375
5376 * config/m68k/m68k.c (m68k_handle_option): Don't handle
5377 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
5378 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
5379 OPT_mcpu32.
5380 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5381 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
5382 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
5383 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
5384 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
5385 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
5386 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
5387 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
5388 options. Don't map other m68k options manually. Don't handle
5389 old-style options as canonical.
5390 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 5391 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 5392
cf103ca4
EB
53932011-04-07 Eric Botcazou <ebotcazou@adacore.com>
5394
5395 * basic-block.h (force_nonfallthru): Move to...
5396 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
5397 (force_nonfallthru): ...here.
5398 * cfghooks.c (force_nonfallthru): New function.
5399 * cfgrtl.c (force_nonfallthru): Rename into...
5400 (rtl_force_nonfallthru): ...this.
5401 (commit_one_edge_insertion): Do not set AUX field.
5402 (commit_edge_insertions): Do not discover new basic blocks.
5403 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
5404 (cfg_layout_rtl_cfg_hooks): Likewise.
5405 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
5406 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
5407 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
5408
14431f58
AS
54092011-04-07 Anatoly Sokolov <aesok@post.ru>
5410
5411 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
5412 Remove macros.
5413
3729983c
UB
54142011-04-07 Uros Bizjak <ubizjak@gmail.com>
5415
5416 * config/i386/sse.md: Update copyright year.
5417 (avxcvtvecmode): Remove.
5418 (sse_movhlps): Merge with *avx_movhlps.
5419 (sse_movlhps): Merge with *avx_movlhps.
5420 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
5421 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
5422 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
5423 (sse_loadhps): Merge with *avx_loadhps.
5424 (sse_storelps): Merge with *avx_storelps.
5425 (sse_loadlps): Merge with *avx_loadlps.
5426 (sse_movss): Merge with *avx_movss.
5427 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
5428 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
5429 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
5430 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
5431 (vec_set<mode>_0): Ditto.
5432 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
5433 (sse4_1_insertps): Merge with *avx_insertps.
5434 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
5435 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
5436 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
5437 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
5438 (sse2_storehpd): Merge with *avx_storehpd.
5439 (sse2_loadhpd): Merge with *avx_loadhpd.
5440 (sse2_loadlpd): Merge with *avx_loadlpd.
5441 (sse2_movsd): Merge with *avx_movsd.
5442 (*vec_concatv2df): Merge with *vec_concatv2df.
5443
4e626909
JJ
54442011-04-07 Jakub Jelinek <jakub@redhat.com>
5445
5446 PR debug/48343
5447 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 5448 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
5449 (try_combine): Add last_combined_insn parameter, pass it instead of
5450 i3 to propagate_for_debug.
5451
3729983c 54522011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
5453
5454 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
5455 to handle MDR <-> data register transfers.
5456 (movhi_internal): Likewise.
5457
20c03367
AM
54582011-04-07 Alan Modra <amodra@gmail.com>
5459
5460 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
5461 previous stack info.
5462
bf22920b
TV
54632011-04-07 Tom de Vries <tom@codesourcery.com>
5464
5465 PR target/43920
5466 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
5467 flow_find_cross_jump. Swap variables to implement backward replacement.
5468 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
5469
823918ae
TV
54702011-04-07 Tom de Vries <tom@codesourcery.com>
5471
5472 PR target/43920
5473 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
5474 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
5475 and bb2.
5476 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
5477 src1 or src2. Redirect edges to the last basic block. Update
5478 frequency and count on multiple basic blocks in case of fallthru.
823918ae 5479
472c95f5
TV
54802011-04-07 Tom de Vries <tom@codesourcery.com>
5481
5482 PR target/43920
5483 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
5484 function.
3729983c
UB
5485 (old_insns_match_p): Change return type. Replace return false/true
5486 with return dir_none/dir_both. Use can_replace_by.
5487 (flow_find_cross_jump): Add dir_p parameter. Init replacement
5488 direction from dir_p. Register replacement direction in dir, last_dir
5489 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
5490 merge_dir. Return replacement direction in dir_p.
5491 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
5492 return type of old_insns_match_p.
5493 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
5494 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
5495 flow_find_cross_jump.
5496 * basic-block.h (enum replace_direction): New type.
5497 (flow_find_cross_jump): Add parameter to declaration.
5498
a95d4000
UB
54992011-04-06 Uros Bizjak <ubizjak@gmail.com>
5500
5501 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
5502 (AVXMODEDCVTPS2DQ): Ditto.
5503 (VEC_FLOAT_MODE): Ditto.
5504 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
5505 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5506 (<any_logic:code><mode>3): Use VF mode iterator.
5507 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
5508 Use VF mode iterator.
5509 (copysign<mode>3): Use VF mode iterator.
5510 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
5511 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
5512 (*<any_logic:code><MODEF:mode>3): Merge with
5513 *avx_<any_logic:code><MODEF:mode>3.
5514 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
5515 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
5516 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
5517 (avx_cvtdq2ps<avxmodesuffix>): Remove.
5518 (sse2_cvtdq2ps): Use %v modifier.
5519 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
5520 (avx_cvtps2dq<avxmodesuffix>): Remove.
5521 (sse2_cvtps2dq): Use %v modifier.
5522 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
5523 (avx_cvttps2dq<avxmodesuffix>): Remove.
5524 (sse2_cvttps2dq): Use %v modifier.
5525 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
5526 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
5527 (sse2_cvtsd2siq): Fix insn template.
5528 (sse2_cvtsd2siq_2): Ditto.
5529 (sse2_cvttsd2siq): Ditto.
5530 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
5531 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
5532
ad01c437
JM
55332011-04-06 Joseph Myers <joseph@codesourcery.com>
5534
5535 * gcov-io.c: Use GCC Runtime Library Exception.
5536
fe846284
JJ
55372011-04-06 Jakub Jelinek <jakub@redhat.com>
5538
5539 PR debug/48466
5540 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
5541 as base_reg whatever register reg has been eliminated to, instead
5542 of hardcoding STACK_POINTER_REGNUM.
5543
acce4e77
JM
55442011-04-06 Joseph Myers <joseph@codesourcery.com>
5545
5546 * doc/tm.texi.in: Document C target hooks as separate from general
5547 target hooks.
5548 * doc/tm.texi: Regenerate.
5549 * genhooks.c (struct hook_desc): Add docname field.
5550 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
5551 docname field.
5552 (hook_array): Include c-target.def.
5553 (emit_documentation): Use docname field in output.
5554 (emit_init_macros): Take docname argument. Only emit definitions
5555 for hooks matching docname.
5556 (main): Expect additional arguments in all cases. Pass argument
5557 to emit_init_macros.
5558 * target.def: Move initial macro definitions and comments to
5559 target-hooks-macros.h.
5560 (gcc_targetcm): Move to c-family/c-target.def.
5561 * target.h (targetcm): Move declaration to c-family/c-target.h.
5562 * targhooks.c (default_handle_c_option): Move to
5563 c-family/c-opts.c.
5564 * targhooks.h (default_handle_c_option): Move declaration to
5565 c-family/c-common.h.
5566 * target-hooks-macros.h: New file.
5567 * config.gcc (target_has_targetcm): Define and use to add to
5568 c_target_objs and cxx_target_objs.
5569 * config/default-c.c: New file.
5570 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
5571 of target.h and target-def.h.
5572 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
5573 (darwin_objc_construct_string, darwin_cfstring_ref_p,
5574 darwin_check_cfstring_format_arg): Make static.
5575 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5576 TARGET_STRING_OBJECT_REF_TYPE_P,
5577 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
5578 * config/darwin-protos.h (darwin_objc_construct_string,
5579 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
5580 declare.
5581 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
5582 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 5583 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
5584 * config/t-darwin (darwin-c.o): Update dependencies.
5585 * system.h (TARGET_HAS_TARGETCM): Poison.
5586 * Makefile.in (TARGET_H): Update.
5587 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
5588 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
5589 (default-c.o): New target.
5590 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 5591 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
5592 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
5593 c-target.def.
5594 (build/genhooks.o): Update dependencies.
5595
275b4baa 55962011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 5597
275b4baa
RG
5598 * ipa-inline.c (enum inlining_mode): Remove.
5599 (cgraph_flatten): Use some other token.
5600 (cgraph_edge_early_inlinable_p): New function, split out from ...
5601 (cgraph_perform_always_inlining): New function, split out from ...
5602 (cgraph_decide_inlining_incrementally): ... here.
5603 (cgraph_mark_inline_edge): Adjust.
5604 (cgraph_early_inlining): Re-structure.
5605 (pass_early_inline): Require SSA form.
5606
f15b8bdf 56072011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
5608 Julian Brown <julian@codesourcery.com>
5609 Mark Shinwell <shinwell@codesourcery.com>
5610
5611 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
5612 LO_REGS only for Thumb-1.
5613 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
5614 be used in short instructions when optimising for size on Thumb-2.
5615
516426da
EB
56162011-04-06 Eric Botcazou <ebotcazou@adacore.com>
5617
5618 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
5619 associated with user returns to be preserved.
5620
96621ebf
TG
56212011-04-06 Tristan Gingold <gingold@adacore.com>
5622
f15b8bdf
EB
5623 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
5624 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
5625 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
5626 if XCOFF_DEBUGGING_INFO.
5627
07c0852e
UB
56282011-04-06 Uros Bizjak <ubizjak@gmail.com>
5629
5630 * config/i386/i386.md (attribute isa): New.
5631 (attribute enabled): New.
5632 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
5633 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
5634 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
5635 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
5636 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
5637 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5638 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
5639 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
5640
5641 * config/i386/sse.md (VF): New mode iterator.
5642 (VF1): Ditto.
5643 (VF2): Ditto.
5644 (VF_128): Ditto.
5645 (SSEMODEF4): Remove.
5646 (attribute sse): Handle V8SF and V4DF modes.
5647 (<absneg:code><mode>2): Use VF mode iterator.
5648 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
5649 mode iterator.
5650 (<plusminus_insn><mode>3): Use VF mode iterator.
5651 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
5652 Use VF mode iterator.
5653 (<sse>_vm<plusminus_insn><mode>3): Merge with
5654 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
5655 (mul<mode>3): Use VF mode iterator.
5656 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
5657 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
5658 mode iterator.
5659 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
5660 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
5661 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
5662 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
5663 mode iterator.
5664 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
5665 Use VF1 mode iterator.
5666 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
5667 (sqrt<VF2:mode>2): New expander.
5668 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
5669 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
5670 and sqrtv2df2. Use VF mode iterator.
5671 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
5672 mode iterator.
5673 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
5674 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
5675 Use VF1 mode iterator.
5676 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
5677 (<smaxmin:code><mode>3): Use VF mode iterator.
5678 (*<smaxmin:code><mode>3_finite): Merge with
5679 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
5680 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
5681 (<sse>_vm<smaxmin:code><mode>2): Merge with
5682 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
5683 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
5684 mode iterator.
5685 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
5686 mode iterator.
5687 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
5688 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
5689 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
5690 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
5691 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
5692 VF mode iterator.
5693 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
5694 Use VF_128 mode iterator.
5695 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
5696 mode iterator.
5697 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
5698 VF_128 mode iterator.
5699 (vcond<mode>): Use VF mode iterator.
5700 * config/i386/predicates.md (sse_comparison_operator): Merge with
5701 avx_comparison_float_operator. Do not declare as special_predicate.
5702 * config/i386/i386.c (struct builtin_description): Update for renamed
5703 compare patterns.
5704 (ix86_expand_args_builtin): Ditto.
5705 (ix86_expand_sse_compare_mask): Ditto.
5706
ff5d142c
RG
57072011-04-06 Richard Guenther <rguenther@suse.de>
5708
5709 * tree-inline.c (estimate_num_insns): For calls simply account
5710 for all passed arguments and a used return value.
5711
d7d1d041 57122011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 5713
d7d1d041
RG
5714 PR tree-optimization/47663
5715 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
5716 call_stmt_time fields.
5717 (cgraph_edge_inlinable_p): Declare.
5718 (cgraph_edge_recursive_p): New inline function.
5719 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
5720 (cgraph_clone_edge): Copy it.
5721 * ipa-inline.c (cgraph_estimate_edge_time): New function.
5722 Account for call stmt time.
5723 (cgraph_estimate_time_after_inlining): Take edge argument.
5724 (cgraph_estimate_edge_growth): Account call stmt size.
5725 (cgraph_estimate_size_after_inlining): Take edge argument.
5726 (cgraph_mark_inline_edge): Adjust.
5727 (cgraph_check_inline_limits): Likewise.
5728 (cgraph_recursive_inlining_p): Remove.
5729 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
5730 (cgraph_decide_recursive_inlining): Take edge argument and
5731 adjust.
5732 (cgraph_decide_inlining_of_small_functions): Do not avoid
5733 diags for recursive inlining here.
5734 (cgraph_flatten): Adjust.
5735 (cgraph_decide_inlining_incrementally): Likewise.
5736 (estimate_function_body_sizes): Remove call cost handling.
5737 (compute_inline_parameters): Initialize caller edge call costs.
5738 (cgraph_estimate_edge_growth): New function.
5739 (cgraph_estimate_growth): Use it.
5740 (cgraph_edge_badness): Likewise.
5741 (cgraph_check_inline_limits): Take an edge argument.
5742 (cgraph_decide_inlining_of_small_functions): Adjust.
5743 (cgraph_decide_inlining): Likewise.
5744 * tree-inline.c (estimate_num_insns): Only account for call
5745 return value if it is used.
5746 (expand_call_inline): Avoid diagnostics on recursive inline
5747 functions here.
5748 * lto-cgraph.c (lto_output_edge): Output edge call costs.
5749 (input_edge): Input edge call costs.
5750
2feb95f7
RO
57512011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5752
5753 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
5754
26fbd9c2
JW
57552011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
5756
5757 * doc/invoke.texi (Spec Files): Fix typo.
5758
694dc0ca
EB
57592011-04-06 Eric Botcazou <ebotcazou@adacore.com>
5760
5761 * profile.c (branch_prob): Move declaration of local variable. Remove
5762 obsolete ??? comment. Expand the location explicitly instead of using
5763 the LOCATION_FILE and LOCATION_LINE macros.
5764
4925d0d5
WG
57652011-04-06 Wei Guozhi <carrot@google.com>
5766
5767 PR target/47855
5768 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
5769 (arm_cond_branch): Likewise.
5770 (arm_cond_branch_reversed): Likewise.
5771 (arm_jump): Likewise.
5772 (push_multi): Likewise.
5773 * config/arm/constraints.md (Py): New constraint.
5774
f55dfa2f
NF
57752011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5776
5777 PR bootstrap/48471
5778 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
5779 Move these...
5780 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
5781 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
5782 #ifdef DBX_DEBUGGING_INFO.
5783
fca96842
BS
57842011-04-05 Bernd Schmidt <bernds@codesourcery.com>
5785
5786 PR bootstrap/48403
5787 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
5788 if old and new states differ.
5789
30b83e38
JM
57902011-04-05 Joseph Myers <joseph@codesourcery.com>
5791
5792 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
5793 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
5794 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
5795 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
5796 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
5797 mcfv4e): Use Alias.
5798 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
5799 ColdFire options to -mcpu= options.
5800
277a9aa5
JL
58012011-04-05 Jeff Law <law@redhat.com>
5802
5803 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
5804 check if BB is a successor of LOOP->header and return
5805 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
5806
c1e2610e
SB
58072011-04-05 Steven Bosscher <steven@gcc.gnu.org>
5808
5809 * cprop.c (struct reg_use): Remove.
5810 (reg_use_table): Make an array of RTX.
5811 (find_used_regs, constprop_register, local_cprop_pass,
5812 bypass_block): Simplify users of reg_use_table.
5813 (cprop_insn): Likewise. Iterate if copy propagation succeeded
5814 on one of the uses found by find_used_regs.
5815
e532f586
NF
58162011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5817
5818 PR bootstrap/48469
5819 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
5820 declaration.
5821
3fb7c055
NF
58222011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5823
5824 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
5825 as an rtx.
5826 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
5827
b71b43d9
SB
58282011-04-05 Steven Bosscher <steven@gcc.gnu.org>
5829
5830 PR middle-end/48441
5831 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
5832
b405b274
NF
58332011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5834
5835 * combine.c: Include obstack.h.
5836 (struct insn_link): Define.
5837 (uid_log_links): Adjust type.
5838 (FOR_EACH_LOG_LINK): New macro.
5839 (insn_link_obstack): Declare.
5840 (alloc_insn_link): Define.
5841 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
5842 type of link variables.
5843 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
5844 (try_combine, record_promoted_values, distribute_notes): Likewise.
5845 (distribute_links): Likewise. Tweak prototype.
5846 (clear_log_links): Delete.
5847 (adjust_for_new_dest): Call alloc_insn_link.
5848 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
5849
6409abe3
NF
58502011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5851
5852 * gcse.c (modify_mem_list): Convert to an array of VECs.
5853 (canon_modify_mem_list, compute_transp): Tweak formatting.
5854 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
5855 (load_killed_in_block_p): Likewise.
5856 (record_last_mem_set_info): Likewise.
5857 (clear_modify_mem_tables): Likewise.
5858
170d8157
TV
58592011-04-05 Tom de Vries <tom@codesourcery.com>
5860
5861 PR middle-end/48461
5862 * function.c (emit_use_return_register_into_block): Only define if
5863 HAVE_return.
5864
c5911a55
EB
58652011-04-05 Eric Botcazou <ebotcazou@adacore.com>
5866
5867 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
5868
abd016e6
JM
58692011-04-05 Joseph Myers <joseph@codesourcery.com>
5870
5871 * config/rx/rx-opts.h: New.
5872 * config/rx/rx.c (rx_cpu_type): Remove.
5873 (rx_handle_option): Don't assert that global structures are in
5874 use. Access variables via opts pointer. Defer most handling of
5875 OPT_mint_register_. Use error_at.
5876 (rx_option_override): Handle deferred OPT_mint_register_ here.
5877 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
5878 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
5879 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
5880 (rx_cpu_types): New Enum and EnumValue entries.
5881 (mint-register=): Use Defer and use Var accordingly.
5882
1ed13f83
NF
58832011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5884
5885 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
5886 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
5887 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
5888 Move these...
5889 (debug_free_queue, debug_nesting, symbol_queue_index):
5890 ...and these...
5891 * dbxout.c: ...to here. Make static.
5892
6ce1edcf
NF
58932011-04-05 Nathan Froyd <froydnj@codesourcery.com>
5894
5895 * gcse.c (modify_pair): Define. Define a VEC of it.
5896 (canon_modify_mem_list): Convert to an array of VECs.
5897 (free_insn_expr_list_list): Delete.
5898 (clear_modify_mem_tables): Call VEC_free instead.
5899 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
5900 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
5901 (canon_list_insert, compute_transp): Likewise.
5902
c201ac94
TV
59032011-04-05 Tom de Vries <tom@codesourcery.com>
5904
5905 PR target/43920
5906 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
5907 for size.
5908
4c029f40
TV
59092011-04-05 Tom de Vries <tom@codesourcery.com>
5910
5911 PR target/43920
5912 * function.c (emit_use_return_register_into_block): New function.
5913 (thread_prologue_and_epilogue_insns): Use
5914 emit_use_return_register_into_block.
5915
2a562b0a
TV
59162011-04-05 Tom de Vries <tom@codesourcery.com>
5917
5918 PR target/43920
5919 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
5920 insn.
5921
0248bceb
TV
59222011-04-05 Tom de Vries <tom@codesourcery.com>
5923
5924 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
5925
ffa94123
YZ
59262011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
5927
798dd0ba
UB
5928 * config/arm/arm.md (define_constants for unspec): Replace with
5929 define_c_enum.
5930 (define_constants for unspecv): Replace with define_c_enum.
5931 * config/arm/neon.md (define_constants for unspec): Replace with
5932 define_c_enum.
ffa94123 5933
3b8f9b46
RH
59342011-04-04 Richard Henderson <rth@redhat.com>
5935
720cf80f 5936 PR bootstrap/48400
3b8f9b46
RH
5937 * dwarf2out.c (output_line_info): Always emit line info from
5938 at least one section.
5939 (dwarf2out_init): Create text_section_line_info here ...
5940 (set_cur_line_info_table): ... not here.
5941
720cf80f 59422011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
5943
5944 PR target/48380
5945 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 5946 not called.
e5b0e1ca 5947
720cf80f 5948 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 5949
196565d4
SB
59502011-04-04 Steven Bosscher <steven@gcc.gnu.org>
5951
b77f9eab
SB
5952 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
5953 (expr_equiv_p): Remove.
5954 (insert_set_in_table): Look at <dest, src> pair instead of expr.
5955 (hash_scan_set): Update call to insert_set_in_table.
5956 (dump_hash_table): Dump <dest, src> pair.
5957 (lookup_set): Simplify. Lookup <dest, src> pair.
5958 (compute_transp): Remove, fold heavily simplified code into...
5959 (compute_local_properties): ...here. Expect COMP and TRANSP
5960 unconditionally.
5961 (find_avail_set): Take set directly from struct expr.
5962 (find_bypass-set): Likewise.
5963 (bypass_block): Likewise.
5964 (cprop_insn): Likewise. Remove redundant INSN_P test.
5965
384d7a55
SB
5966 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
5967 checks on form of COND from find_implicit_sets to here.
5968 (find_implicit_sets): Cleanup control flow. Split critical edges
5969 if it exposes implicit sets. Allocate/resize implicit_sets as
5970 necessary.
5971 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
5972 changed something. Run df_analyze after find_implicit_sets if any
5973 edges were split. Do not allocate implicit_sets here.
5974
3084ce69
SB
5975 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
5976 (gcse_obstack): Renamed to cprop_obstack.
5977 (GNEW, GNEWVEC, GNEWVAR): Remove.
5978 (gmalloc): Remove.
5979 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
5980 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
5981 (gcse_alloc): Likewise, and rename to cprop_alloc.
5982 (alloc_gcse_men, free_gcse_mem): Remove.
5983 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
5984 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
5985 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
5986
196565d4
SB
5987 * cprop.c (oprs_not_set_p): Remove.
5988 (mark_set, mark_clobber): Remove.
5989 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
5990 (reg_not_set_p): New function.
5991 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
5992 (cprop_insn): Likewise.
5993 (cprop_jump): Use FOR_EACH_EDGE.
5994
9b69cf83
BS
59952011-04-04 Bernd Schmidt <bernds@codesourcery.com>
5996
5997 PR bootstrap/48403
5998 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
5999 (rank_for_schedule): Use scheduled_insns vector instead of
6000 last_scheduled_insn.
6001 (ok_for_early_queue_removal): Likewise.
6002 (queue_to_ready): Search forward in nonscheduled_insns_begin if
6003 we have a dbg_cnt.
6004 (choose_ready): Likewise.
6005 (commit_schedule): Use VEC_iterate.
6006 (schedule_block): Initialize nonscheduled_insns_begin. If we have
6007 a dbg_cnt, use it and ensure the first insn is in the ready list.
6008 (haifa_sched_init): Allocate scheduled_insns.
6009 (sched_extend_ready_list): Don't allocate it; reserve space.
6010 (haifa_sched_finish): Free it.
6011
24f48c2f
JM
60122011-04-04 Joseph Myers <joseph@codesourcery.com>
6013
6014 * optc-gen.awk: Always remove type from Variable entry before
6015 recording in var_seen.
6016
8effe856
EB
60172011-04-04 Eric Botcazou <ebotcazou@adacore.com>
6018
6019 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
6020 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
6021 call to tidy_fallthru_edges.
6022
413519ae
JM
60232011-04-04 Joseph Myers <joseph@codesourcery.com>
6024
6025 * doc/options.texi (ToLower): Document.
3729983c 6026 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
6027 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
6028 * opts.h (cl_option): Add cl_tolower field.
6029 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
6030 arguments with lowercase strings.
6031 * config/rx/rx.opt (mcpu=): Add ToLower.
6032 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
6033 argument.
6034
7d34a1b0
RS
60352011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6036
6037 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
6038
c30e7434
RS
60392011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
6040
6041 * config/vax/vax.c: Include reload.h.
6042
112a861d
AS
60432011-04-04 Anatoly Sokolov <aesok@post.ru>
6044
6045 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
6046 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6047 (sparc_preferred_reload_class): New function.
6048
e8c6bb74
JJ
60492011-04-04 Jakub Jelinek <jakub@redhat.com>
6050
2aeaa366 6051 PR debug/48401
e8c6bb74
JJ
6052 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6053 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
6054
2c081caf
NF
60552011-04-03 Nathan Froyd <froydnj@codesourcery.com>
6056
6057 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
6058 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
6059
53802f27
AS
60602011-04-03 Anatoly Sokolov <aesok@post.ru>
6061
6062 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
6063 (ASM_OUTPUT_ALIGNED_BSS): Define.
6064
e89964e3
MM
60652011-04-03 Michael Matz <matz@suse.de>
6066
6067 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
6068 and next_slot members.
6069 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
6070 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
6071 (lto_streamer_cache_append): Declare.
6072 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
6073 unsigned index, remove offset parameter, ensure that we append
6074 or update existing entries.
6075 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
6076 parameter, update next_slot for append.
6077 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
6078 parameter.
6079 (lto_streamer_cache_insert_at): Likewise.
6080 (lto_streamer_cache_append): New function.
6081 (lto_streamer_cache_lookup): Use unsigned index.
6082 (lto_streamer_cache_get): Likewise.
6083 (lto_record_common_node): Don't test tree_node_can_be_shared.
6084 (preload_common_node): Adjust call to lto_streamer_cache_insert.
6085 (lto_streamer_cache_delete): Don't free offsets member.
6086 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
6087 (lto_output_string_with_length): Use lto_output_data_stream.
6088 (lto_output_tree_header): Remove ix parameter, don't write it.
6089 (lto_output_builtin_tree): Likewise.
6090 (lto_write_tree): Adjust callers to above, don't track and write
6091 offset, write unsigned index.
6092 (output_unreferenced_globals): Don't emit all global vars.
6093 (write_global_references): Use unsigned indices.
6094 (lto_output_decl_state_refs): Likewise.
6095 (write_symbol): Likewise.
6096 * lto-streamer-in.c (lto_input_chain): Move earlier.
6097 (input_function): Use unsigned index.
6098 (input_alias_pairs): Don't read and then ignore all global vars.
6099 (lto_materialize_tree): Remove ix_p parameter, don't read index,
6100 don't pass it back, use lto_streamer_cache_append.
6101 (lto_register_var_decl_in_symtab): Use unsigned index.
6102 (lto_register_function_decl_in_symtab): Likewise.
6103 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
6104 index.
6105 (lto_get_builtin_tree): Don't read index, use
6106 lto_streamer_cache_append.
6107 (lto_read_tree): Adjust call to lto_materialize_tree.
6108
6109 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
6110 don't use function calls in arguments to MIN.
6111
6112 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
6113 twice.
6114
6115 * gimple.c (gimple_type_leader_entry): Mark deletable.
6116
b9a5b5b2
AM
61172011-04-03 Alan Modra <amodra@gmail.com>
6118
6119 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
6120
ac6a641b
MM
61212011-04-03 Michael Matz <matz@suse.de>
6122
6123 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
6124 an integer.
6125 * tree.h (tree_decl_non_common.vindex): Adjust comment.
6126
0038d4e0
MM
61272011-04-03 Michael Matz <matz@suse.de>
6128
e9c18386 6129 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
6130 * gimple-fold.c (canonicalize_constructor_val): Accept being called
6131 without function context.
6132 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
6133 current_function_decl and cfun.
6134
91f2fae8
MM
61352011-04-03 Michael Matz <matz@suse.de>
6136
6137 * tree.c (decl_init_priority_insert): Don't create entry for
6138 default priority.
6139 (decl_fini_priority_insert): Ditto.
6140 (fields_compatible_p, find_compatible_field): Remove.
6141 * tree.h (fields_compatible_p, find_compatible_field): Remove.
6142 * gimple.c (gimple_compare_field_offset): Adjust block comment.
6143
da29e070
EB
61442011-04-03 Eric Botcazou <ebotcazou@adacore.com>
6145
6146 * combine.c (try_combine): Remove useless local variable.
6147
4979c28b 61482011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 6149 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
6150
6151 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
6152 non-variable offsets and compare the remaining bases of the two
6153 accesses instead of looking for exact same data-ref.
6154
b4ddcaee
KT
61552011-04-02 Kai Tietz <ktietz@redhat.com>
6156
f90298e1
KT
6157 PR target/48416
6158 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
6159
b4ddcaee
KT
6160 * i386.c (ix86_is_msabi_thiscall): New helper function.
6161 (ix86_is_type_thiscall): New helper function.
6162 (ix86_comp_type_attributes): Handle thiscall for method-functions
6163 special.
6164 (init_cumulative_args): Likewise.
6165 (find_drap_reg): Likewise.
6166 (ix86_static_chain): Likewise.
6167 (x86_this_parameter): Likewise.
6168 (x86_output_mi_thunk): Likewise.
6169
2a9d769a 61702011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
6171 Nicolas Setton <setton@adacore.com>
6172 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
6173
6174 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
6175 (add_gnat_descriptive_type_attribute): New function.
6176 (gen_array_type_die): Call it.
6177 (gen_enumeration_type_die): Likewise.
6178 (gen_struct_or_union_type_die): Likewise.
6179 (modified_type_die): Likewise.
6180 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
6181 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
6182 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
6183
15a03a11
JJ
61842011-04-01 Jakub Jelinek <jakub@redhat.com>
6185
6186 PR bootstrap/48148
6187 * dwarf2out.c (resolve_addr): Don't call force_decl_die
6188 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
6189
6190 Revert:
6191 2011-03-17 Richard Guenther <rguenther@suse.de>
6192
6193 PR bootstrap/48148
6194 * lto-cgraph.c (input_overwrite_node): Clear the abstract
6195 origin for decls in other ltrans units.
6196 (input_varpool_node): Likewise.
6197
19228b93
JJ
61982011-04-01 Jakub Jelinek <jakub@redhat.com>
6199
6200 PR middle-end/48335
6201 * expr.c (expand_assignment): Handle all possibilities
6202 if TO_RTX is CONCAT.
e9c18386 6203 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
6204 (store_split_bit_field): If SUBREG_REG (op0) or
6205 op0 itself has smaller mode than word, return it
6206 for offset 0 and const0_rtx for out-of-bounds stores.
6207 If word is const0_rtx, skip it.
6208
88cb339e
N
62092011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
6210
6211 * config/h8300/h8300.c (print_operand_address): Rename to...
6212 (h8300_print_operand_address): ...this. Make static. Adjust comments.
6213 Call h8300_print_operand and h8300_print_operand_address instead of
6214 print_operand and print_operand_address. Declare.
6215 (print_operand): Renake to...
6216 (h8300_print_operand): ...this. Make static. Adjust comments.
6217 Call h8300_print_operand instead of print_operand. Declare.
6218 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
6219 (h8300_register_move_cost): Likewise.
6220 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
6221 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
6222 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
6223 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
6224 * config/h8300/h8300-protos.h (print_operand): Delete.
6225 (print_operand_address): Delete.
6226
756d6ee9
RH
62272011-04-01 Richard Henderson <rth@redhat.com>
6228
6229 PR 48400
6230 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
6231 in strict mode before dwarf4. Re-order tests to early out
6232 before switching sections.
6233
ceaaaeab
NF
62342011-04-01 Nathan Froyd <froydnj@codesourcery.com>
6235
6236 * config/h8300/constraints.md: New file.
6237 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
6238 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
6239 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
6240 * config/h8300/predicates.md (bit_operand): Likewise.
6241 (incdec_operand): Use satisfies_constraint_M and
6242 satisfies_constraint_O. Don't use C code block.
6243 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
6244 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
6245 (compute_mov_length): Use satisfies_constraint_G.
6246 (fix_bit_operand): Use satisfies_constraint_U.
6247 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
6248 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
6249 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
6250 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
6251 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
6252 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
6253 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6254 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
6255 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
6256 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
6257 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
6258 (EXTRA_MEMORY_CONSTRAINT): Delete.
6259
08ae38e0
AP
62602011-04-01 Andrew Pinski <pinskia@gmail.com>
6261 Michael Meissner <meissner@linux.vnet.ibm.com>
6262
6263 PR target/48262
6264 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
6265 operands, as per the specifications.
6266
6267 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
6268 (vec_extract_evenv4sf): Ditto.
6269 (vec_extract_evenv8hi): Ditto.
6270 (vec_extract_evenv16qi): Ditto.
6271 (vec_extract_oddv4si): Ditto.
6272
bdb0b0f6
MW
62732011-03-31 Mark Wielaard <mjw@redhat.com>
6274
6275 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
6276 high_pc attribute if the CU has no associated code. Only output
6277 DW_AT_entry_pc for CU if not generating strict dwarf and
6278 dwarf_version < 4.
6279
722279e4
BS
62802011-04-01 Bernd Schmidt <bernds@codesourcery.com>
6281
6282 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
6283 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
6284 out of ...
6285 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
6286 * final.c (final_start_function): Call the new function rather
6287 than using a NULL argument for dwarf2out_frame_debug.
6288
c5dd277d
BS
6289 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
6290 that contains the prologue.
6291
ec4efea9
BS
6292 * haifa-sched.c (queue_insn): New arg REASON. All callers
6293 changed. Print it in debugging output.
6294
2a6a0d80
BS
6295 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
6296
86014d07
BS
6297 * sched-ebb.c (begin_schedule_ready): Remove second argument.
6298 Split most of the code into...
6299 (begin_move_insn): ... here. New function.
6300 (ebb_sched_info): Add a pointer to it.
6301 * haifa-sched.c (scheduled_insns): New static variable.
6302 (sched_extend_ready_list): Allocate it.
6303 (schedule_block): Use it to record the order of scheduled insns.
6304 Perform RTL changes to move insns only after all scheduling
6305 decisions have been made.
6306 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
6307 begin_move_insn field.
6308 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6309 * sched-int.h (struct haifa_sched_info): Remove second argument
6310 from begin_schedule_ready hook. Add new member begin_move_insn.
6311 * sched-rgn.c (begin_schedule_ready): Remove second argument.
6312 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
6313
9d701248
BS
6314 * haifa-sched.c (prune_ready_list): New function, broken out of
6315 schedule_block.
6316 (schedule_block): Use it.
6317
1ca1dad5
UW
63182011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6319
6320 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
6321
49568e45
KT
63222011-04-01 Kai Tietz <ktietz@redhat.com>
6323
6324 * config.gcc (*-*-mingw*): Allow as option the
6325 posix threading model.
07c0852e 6326 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
6327 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
6328 definition.
6329 (CPP_SPEC): Add pthread/no-pthread handling.
6330 (LIB_SPEC): Likewise.
6331 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
6332 (LIB_SPEC): Likewise.
6333 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
6334 flag to pass -pthread option for shared libgcc build.
6335 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
6336 for shared libgcc build.
6337 * config/i386/t-mingw-pthread: New file.
6338 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
6339 New define to enable use of library pthread by default.
6340 * config/i386/mingw.opt (pthread): New driver option.
6341 (no-pthread): New driver option.
e9c18386 6342 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
6343 * config/i386/mingw-w64.opt: Likewise.
6344
748f7574 63452011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
6346
6347 * c-decl.c (grokdeclarator): Fix formatting.
6348
f04713ee
RS
63492011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6350
6351 * expr.c (emit_block_move_via_movmem): Use n_generator_args
6352 instead of n_operands.
6353 (set_storage_via_setmem): Likewise.
6354 * optabs.c (maybe_gen_insn): Likewise.
6355 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
6356 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
6357 (mips_expand_builtin_direct): Likewise.
6358 * config/spu/spu.c (expand_builtin_args): Likewise.
6359
b29387ee
RS
63602011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6361
6362 * recog.h (insn_data_d): Add n_generator_args.
6363 * genoutput.c (data): Likewise.
6364 (output_insn_data): Print it.
6365 (max_opno, num_dups): Delete.
6366 (scan_operands): Just fill in "d->operand[...]".
6367 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
6368
e792559a
RS
63692011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
6370
6371 * gensupport.h (pattern_stats): New structure.
6372 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
6373 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
6374 (max_operand_1, max_operand_vec): Delete.
6375 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
6376
e8110d6f
NF
63772011-03-31 Nathan Froyd <froydnj@codesourcery.com>
6378
6379 * emit-rtl.c (emit_pattern_after_setloc): New function.
6380 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
6381 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
6382 (emit_pattern_after): New function.
6383 (emit_insn_after, emit_jump_insn_after): Call it.
6384 (emit_call_insn_after, emit_debug_insn_after): Likewise.
6385 (emit_pattern_before_setloc): New function.
6386 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
6387 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
6388 Likewise.
6389 (emit_pattern_before): New function.
6390 (emit_insn_before, emit_jump_insn_before): Call it.
6391 (emit_call_insn_before, emit_debug_insn_before): Likewise.
6392
576f85f1
RH
63932011-03-31 Richard Henderson <rth@redhat.com>
6394
6395 * dwarf2out.c (dw_separate_line_info_ref): Remove.
6396 (dw_separate_line_info_entry): Remove.
6397 (enum dw_line_info_opcode): New.
6398 (dw_line_info_entry): Use it.
6399 (dw_line_info_table, dw_line_info_table_p): New.
6400 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
6401 (line_info_table, line_info_label_num): Remove.
6402 (line_info_table_in_use): Remove.
6403 (separate_line_info_table): Remove.
6404 (separate_line_info_table_allocated): Remove.
6405 (separate_line_info_table_in_use): Remove.
6406 (LINE_INFO_TABLE_INCREMENT): Remove.
6407 (line_info_label_num): New.
6408 (cur_line_info_table): New.
6409 (text_section_line_info, cold_text_section_line_info): New.
6410 (separate_line_info): New.
6411 (SEPARATE_LINE_CODE_LABEL): Remove.
6412 (print_dwarf_line_table): Remove.
6413 (debug_dwarf): Don't dump it.
6414 (output_one_line_info_table): New.
6415 (output_line_info): Use it.
6416 (new_line_info_table): New.
6417 (set_cur_line_info_table): New.
6418 (dwarf2out_switch_text_section): Use it.
6419 (dwarf2out_begin_function): Likewise.
6420 (push_dw_line_info_entry): New.
6421 (dwarf2out_source_line): Rewrite for new line info tables.
6422 (dwarf2out_init): Remove dead initailizations.
6423
300d83d9
JM
64242011-03-31 Joseph Myers <joseph@codesourcery.com>
6425
6426 * opts.h (cl_option): Add comments to fields. Add bit-fields for
6427 various flags.
6428 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
6429 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
6430 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
6431 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
6432 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
6433 * opt-functions.awk (flag_init, switch_bit_fields): New.
6434 (switch_flags): Don't handle flags moved to bit-fields. Don't
6435 generate CL_MISSING_OK or CL_SAVE.
6436 * optc-gen.awk: Update to generate bit-field output as well as
6437 flags field.
6438 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
6439 bit-field instead of CL_REJECT_DRIVER flag.
6440 * opts-common.c (generate_canonical_option,
6441 decode_cmdline_option): Use bit-fields instead of CL_* flags.
6442 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
6443 instead of CL_REJECT_NEGATIVE flag.
6444 * toplev.c (print_switch_values): Use cl_report bit-field instead
6445 of CL_REPORT flag.
6446
d4d73ce2
EB
64472011-03-31 Eric Botcazou <ebotcazou@adacore.com>
6448
6449 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
6450 a zero minimum index only if it is redundant.
6451
b8faca75
VM
64522011-03-31 Vladimir Makarov <vmakarov@redhat.com>
6453
6454 PR rtl-optimization/48381
6455 * ira-color.c (assign_hard_reg): Use hard reg set intersection
6456 instead of ira_class_hard_reg_index for calculating conflicting
6457 hard registers.
6458
7d11cebe
SB
64592011-03-31 Steven Bosscher <steven@gcc.gnu.org>
6460
6461 * cprop.c: Clean up hash table building.
6462 (reg_avail_info): Remove.
6463 (oprs_available_p): Remove.
6464 (record_last_reg_set_info): Remove.
6465 (record_last_set_info): Remove.
6466 (reg_available_p): New function.
6467 (gcse_constant_p): Do not treat unfolded conditions as constants.
6468 (make_set_regs_unavailable): New function.
6469 (hash_scan_set): Simplify with new reg_available_p.
6470 (compute_hash_table_work): Traverse insns stream only once.
6471 Do not compute reg_avail_info. Traverse insns in reverse order.
6472 Record implicit sets after recording explicit sets from the block.
6473
98faf84f
MM
64742011-03-31 Michael Matz <matz@suse.de>
6475
e9c18386 6476 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 6477
f52d97da
AS
64782011-03-31 Anatoly Sokolov <aesok@post.ru>
6479
6480 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
6481 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
6482 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6483 (h8300_mode_dependent_address_p): New function.
6484 (h8300_get_index): Make static.
6485
e16b6fd0
JL
64862011-03-31 Jeff Law <law@redhat.com>
6487
10c51983
JL
6488 * reload1.c (elimination_effects): Fix typo in recent change.
6489
e9c18386 6490 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
6491 typo potentially leading to null pointer dereference.
6492
6493 * caller-save.c (new_saved_hard_reg): Eliminate return value.
6494 (setup_save_areas): Corresponding changes to avoid useless
6495 assignments.
6496
6497 * jump.c (reversed_comparison_code_parts): Avoid successive return
6498 statements when REVERSE_CONDITION is defined.
6499
6500 * expr.c (expand_assignment): Avoid useless assignments.
6501 (expand_expr_real_1): Likewise.
6502 (expand_expr_real_2): Avoid useless statements.
6503
6504 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
6505
6506 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
6507
6508 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
6509 statements.
6510
6511 * stmt.c (expand_expr_stmt): Avoid useless assignment.
6512
eb1eb914
JM
65132011-03-31 Joseph Myers <joseph@codesourcery.com>
6514
6515 PR target/47109
6516 * doc/tm.texi.in (TARGET_VERSION): Remove.
6517 * doc/tm.texi: Regenerate.
6518 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
6519 * collect2.c (main): Don't use TARGET_VERSION.
6520 * mips-tdump.c (main): Don't use TARGET_VERSION.
6521 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 6522 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
6523 * config/rs6000/vxworksae.h: Remove.
6524 * config/alpha/alpha.h (TARGET_VERSION): Remove.
6525 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
6526 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
6527 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
6528 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6529 * config/arm/arm.h (TARGET_VERSION): Remove.
6530 * config/arm/coff.h (TARGET_VERSION): Remove.
6531 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
6532 * config/arm/elf.h (TARGET_VERSION): Remove.
6533 * config/arm/freebsd.h (TARGET_VERSION): Remove.
6534 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
6535 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
6536 * config/arm/pe.h (TARGET_VERSION): Remove.
6537 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
6538 * config/arm/semi.h (TARGET_VERSION): Remove.
6539 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
6540 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
6541 * config/arm/vxworks.h (TARGET_VERSION): Remove.
6542 * config/avr/avr.h (TARGET_VERSION): Remove.
6543 * config/bfin/bfin.h (TARGET_VERSION): Remove.
6544 * config/fr30/fr30.h (TARGET_VERSION): Remove.
6545 * config/frv/frv.h (TARGET_VERSION): Remove.
6546 * config/h8300/h8300.h (TARGET_VERSION): Remove.
6547 * config/i386/cygwin.h (TARGET_VERSION): Remove.
6548 * config/i386/darwin.h (TARGET_VERSION): Remove.
6549 * config/i386/darwin64.h (TARGET_VERSION): Remove.
6550 * config/i386/djgpp.h (TARGET_VERSION): Remove.
6551 * config/i386/freebsd.h (TARGET_VERSION): Remove.
6552 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
6553 * config/i386/gnu.h (TARGET_VERSION): Remove.
6554 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
6555 * config/i386/i386elf.h (TARGET_VERSION): Remove.
6556 * config/i386/linux.h (TARGET_VERSION): Remove.
6557 * config/i386/linux64.h (TARGET_VERSION): Remove.
6558 * config/i386/lynx.h (TARGET_VERSION): Remove.
6559 * config/i386/mingw32.h (TARGET_VERSION): Remove.
6560 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
6561 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
6562 * config/i386/netware.h (TARGET_VERSION): Remove.
6563 * config/i386/nto.h (TARGET_VERSION): Remove.
6564 * config/i386/openbsd.h (TARGET_VERSION): Remove.
6565 * config/i386/vxworks.h (TARGET_VERSION): Remove.
6566 * config/ia64/elf.h (TARGET_VERSION): Remove.
6567 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
6568 * config/ia64/hpux.h (TARGET_VERSION): Remove.
6569 * config/ia64/linux.h (TARGET_VERSION): Remove.
6570 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
6571 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
6572 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6573 * config/lm32/lm32.h (TARGET_VERSION): Remove.
6574 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
6575 * config/m32c/m32c.h (TARGET_VERSION): Remove.
6576 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
6577 * config/m32r/m32r.h (TARGET_VERSION): Remove.
6578 * config/m68k/linux.h (TARGET_VERSION): Remove.
6579 * config/m68k/m68k.h (TARGET_VERSION): Remove.
6580 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
6581 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
6582 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
6583 * config/mep/mep.h (TARGET_VERSION): Remove.
6584 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
6585 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
6586 * config/mips/iris6.h (MACHINE_TYPE): Remove.
6587 * config/mips/linux.h (TARGET_VERSION): Remove.
6588 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
6589 * config/mips/vxworks.h (TARGET_VERSION): Remove.
6590 * config/mmix/mmix.h (TARGET_VERSION): Remove.
6591 * config/mn10300/linux.h (TARGET_VERSION): Remove.
6592 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
6593 * config/pa/pa.h (TARGET_VERSION): Remove.
6594 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
6595 * config/picochip/picochip.h (TARGET_VERSION): Remove.
6596 * config/rs6000/aix.h (TARGET_VERSION): Remove.
6597 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
6598 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
6599 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
6600 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
6601 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
6602 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
6603 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
6604 * config/rs6000/linux.h (TARGET_VERSION): Remove.
6605 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
6606 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
6607 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
6608 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
6609 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
6610 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
6611 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
6612 * config/s390/linux.h (TARGET_VERSION): Remove.
6613 * config/s390/s390.h (TARGET_VERSION): Remove.
6614 * config/s390/tpf.h (TARGET_VERSION): Remove.
6615 * config/score/score.h (TARGET_VERSION): Remove.
6616 * config/sh/linux.h (TARGET_VERSION): Remove.
6617 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
6618 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
6619 * config/sh/sh.h (TARGET_VERSION): Remove.
6620 * config/sh/sh64.h (TARGET_VERSION): Remove.
6621 * config/sh/superh.h (TARGET_VERSION): Remove.
6622 * config/sh/vxworks.h (TARGET_VERSION): Remove.
6623 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
6624 * config/sparc/linux.h (TARGET_VERSION): Remove.
6625 * config/sparc/linux64.h (TARGET_VERSION): Remove.
6626 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
6627 TARGET_NAME32, TARGET_NAME): Remove.
6628 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
6629 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
6630 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
6631 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
6632 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
6633 * config/spu/spu.h (TARGET_VERSION): Remove.
6634 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
6635 * config/v850/v850.h (TARGET_VERSION): Remove.
6636 * config/vax/linux.h (TARGET_VERSION): Remove.
6637 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
6638 * config/xtensa/elf.h (TARGET_VERSION): Remove.
6639 * config/xtensa/linux.h (TARGET_VERSION): Remove.
6640
ace31bca
EB
66412011-03-31 Eric Botcazou <ebotcazou@adacore.com>
6642
6643 PR target/48142
6644 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
6645 frame-related from frame-unrelated adjustments to the stack pointer.
6646
76f9db36
JJ
66472011-03-31 Jakub Jelinek <jakub@redhat.com>
6648
6649 * common.opt (fdebug-types-section): Move earlier.
6650 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
6651
b7826465
AT
66522011-03-31 Andreas Tobler <andreast@fgznet.ch>
6653
6654 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
6655 var.
6656
1290e54c
NF
66572011-03-30 Nathan Froyd <froydnj@codesourcery.com>
6658
6659 * tree.h (CASE_CHAIN): Define.
6660 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
6661 (gimple_redirect_edge_and_branch): Likewise.
6662
bddc98e1
VM
66632011-03-30 Vladimir Makarov <vmakarov@redhat.com>
6664
6665 PR middle-end/48367
6666 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
6667 calculation.
6668
c865e437
JL
66692011-03-30 Jeff Law <law@redhat.com>
6670
b3750213 6671 * PR bootstrap/48371
c865e437
JL
6672 * reload1.c (reload): Fix botch in last change.
6673
6674 * reload.h (struct reload): Fix typo introduced in last change.
6675
2cdf9574
JM
66762011-03-30 Joseph Myers <joseph@codesourcery.com>
6677
6678 * config/arm/arm.opt (mhard-float, msoft-float): Mark
6679 Undocumented. Remove help text.
6680 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
6681 -mhard-float.
6682
666a21a2
JM
66832011-03-30 Joseph Myers <joseph@codesourcery.com>
6684
6685 * doc/options.texi (NegativeAlias): Document.
6686 (Alias): Mention NegativeAlias.
6687 * opt-functions.awk: Handle NegativeAlias.
e9c18386 6688 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
6689 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
6690 * opts.h (CL_NEGATIVE_ALIAS): Define.
6691 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
6692 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
6693 OPT_mspe_.
6694 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
6695 Alias entries.
6696 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6697 mno-spe and mno-isel instead of mspe=no and -misel=no.
6698
0fa4e351
MW
66992011-03-29 Mark Wielaard <mjw@redhat.com>
6700
6701 * common.opt (fdebug-types-section): New flag.
6702 * doc/invoke.texi: Document new -fno-debug-types-section flag.
6703 * dwarf2out.c (use_debug_types): New define.
6704 (struct die_struct): Mark die_id with GTY desc use_debug_types.
6705 (print_die): Guard output of type unit signatures using
6706 use_debug_types.
6707 (build_abbrev_table): Replace assert of dwarf_version >= 4
6708 with assert on use_debug_types.
6709 (size_of_die): Likewise.
6710 (unmark_dies): Likewise.
6711 (value_format): Decide AT_ref_external form on use_debug_types.
6712 (output_die): Replace dwarf_version version check guard with
6713 use_debug_types where appropriate.
6714 (modified_type_die): Likewise.
6715 (gen_reference_type_die): Likewise.
6716 (dwarf2out_start_source_file): Likewise.
6717 (dwarf2out_end_source_file): Likewise.
6718 (prune_unused_types_walk_attribs): Likewise.
6719 (dwarf2out_finish): Likewise.
6720
4648deb4
VM
67212011-03-30 Vladimir Makarov <vmakarov@redhat.com>
6722
6723 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
6724
4f431835
RS
67252011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
6726
6727 PR rtl-optimization/48332
6728 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
6729 mode of input operand N and modeN to its actual mode.
6730
f2034d06
JL
67312011-03-30 Jeff Law <law@redhat.com>
6732
6733 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
6734 define accessor macro.
6735 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
6736 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
6737 (reg_equiv_init): Likewise.
6738 (reg_equivs_size): New variable.
6739 (reg_equiv_init_size): Remove.
6740 (allocate_initial_values): Move prototype to here from....
6741 * integrate.h (allocate_initial_values): Remove prototype.
6742 * integrate.c: Include reload.h.
6743 (allocate_initial_values): Corresponding changes.
6744 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
6745 (fix_reg_equiv_init, no_equiv): Corresponding changes.
6746 (update_equiv_regs): Corresponding changes.
6747 (ira): Corresponding changes.
6748 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
6749 (push_secondary_reload): Corresponding changes.
6750 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
6751 (make_memloc, find_reloads_address): Corresponding changes.
6752 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
6753 (find_reloads_address_1): Corresponding changes.
6754 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
6755 (refers_to_regno_for_reload_p): Corresponding changes.
6756 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
6757 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
6758 * reload1.c: Include ggc.h.
6759 (grow_reg_equivs): New function.
6760 (replace_pseudos_in, reload): Corresponding changes.
6761 (calculate_needs_all_insns, alter_regs): Corresponding changes.
6762 (eliminate_regs_1, elimination_effects): Corresponding changes.
6763 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
6764 (delete_output_reload): Likewise.
6765 * caller-save.c (mark_referenced_regs): Corresponding changes.
6766 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
6767 * frv/predicates.md (frv_load_operand): Corresponding changes.
6768 * microblaze/microblaze.c (double_memory_operand): Corresponding
6769 changes.
6770 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
6771 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 6772 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
6773 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
6774 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
6775 changes.
6776 * pa/pa.c (emit_move_sequence): Corresponding changes.
6777 * vax/vax.c (nonindexed_address_p): Corresponding changes.
6778
159b81b0
RS
67792011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
6780
6781 PR target/47551
6782 * config/arm/arm.c (coproc_secondary_reload_class): Handle
6783 structure modes. Don't check neon_vector_mem_operand for
6784 vector or structure modes.
6785
a6217191
RS
67862011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
6787 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6788
6789 PR target/43590
6790 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
6791 operand 1 and reshuffle the operands to match.
6792 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
6793
bd837408
CS
67942011-03-30 Christian Schüler <cschueler@gmx.de>
6795
6955d771 6796 PR driver/48208
bd837408 6797 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 6798
6955d771 6799 PR driver/48260
bd837408
CS
6800 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
6801 handler function.
6802 * config/darwin.opt: Added '-arch' option.
6803
e9c0470a
NC
68042011-03-30 Nick Clifton <nickc@redhat.com>
6805
6806 * config/rx/rx.md: Add peepholes and patterns to combine
6807 extending loads and simple arithmetic instructions.
6808 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
6809 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
6810 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 6811 modes to use pre-decrement and post-increment addressing.
e9c18386 6812 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 6813 addresses.
e9c18386
UB
6814 (rx_print_operand): Add support for %Q. Fix handling of %Q.
6815 (rx_memory_move_cost): Adjust cost of stores.
6816 (rx_adjust_insn_length): New function.
e9c0470a 6817
8a87e7ab
JJ
68182011-03-30 Jakub Jelinek <jakub@redhat.com>
6819
6820 PR c/48305
6821 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6822 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
6823 matching arg00/arg01 types.
6824
12486e03
EB
68252011-03-30 Eric Botcazou <ebotcazou@adacore.com>
6826
6827 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
6828 last_location to UNKNOWN_LOCATION.
6829
0b99eef6
L
68302011-03-30 H.J. Lu <hongjiu.lu@intel.com>
6831
6832 PR target/48349
6833 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
6834 FLOAT_SSE_REGS.
6835
023592aa
JM
68362011-03-30 Joseph Myers <joseph@codesourcery.com>
6837 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6838
6839 PR bootstrap/48337
6840 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
6841 Init(PROCESSOR_V7).
6842 (sparc_cpu): Likewise.
6843 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
6844 PROCESSOR_V7.
6845
ad3b266b
VM
68462011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6847
6848 PR target/48336
6849 PR middle-end/48342
6850 PR rtl-optimization/48345
6851 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
6852 hard regs for given mode from profitable regs when doing secondary
6853 allocation.
6854
633c9126
JL
68552011-03-29 Jeff Law <law@redhat.com>
6856
6857 PR bootstrap/48327
6858 * tree-ssa-threadupdate.c (struct redirection_data): Remove
6859 do_not_duplicate field.
6860 (lookup_redirection_data): Corresponding changes.
6861 (create_duplicates): Always create a template block.
6862 (redirect_edges): Remove code which reused the original block
6863 when it was going to become unreachable code.
6864 (thread_block): Don't set do_not_duplicate field.
6865
eb50f63a
JM
68662011-03-29 Joseph Myers <joseph@codesourcery.com>
6867
6868 * lto-opts.c (register_user_option_p, lto_register_user_option):
6869 Make type argument unsigned.
6870 * lto-streamer.h (lto_register_user_option): Make type argument
6871 unsigned.
6872 * opth-gen.awk: Make CL_* macros unsigned.
6873 * opts-common.c (find_opt): Make lang_mask argument unsigned.
6874 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6875 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
6876 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
6877 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
6878 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
6879 (find_opt): Make lang_mask argument unsigned.
6880
76763a6d
VM
68812011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6882
6883 PR rtl-optimization/48331
6884 PR rtl-optimization/48334
6885 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
6886 for any used algorithm.
6887
5c82436e
VM
68882011-03-29 Vladimir Makarov <vmakarov@redhat.com>
6889
6890 * ira-conflicts.c (build_object_conflicts): Add unused attribute
6891 to parent_max.
6892
7a81008b
UB
68932011-03-29 Uros Bizjak <ubizjak@gmail.com>
6894
6895 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
6896 (alpha_option_override): Don't set alpha_sr_alias_set.
6897 (emit_frame_store_1): Use gen_frame_mem rather than calling
6898 set_mem_alias_set.
6899 (alpha_expand_epilogue): Ditto.
6900
86c8d1f6
IR
69012011-03-29 Ira Rosen <ira.rosen@linaro.org>
6902
6903 PR tree-optimization/48290
6904 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
6905 vectorization, check that relevant phis in the basic block after
6906 the inner loop are really inner loop's exit phis.
6907
0d12220f
RS
69082011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
6909
e8cf17e7 6910 PR debug/48190
0d12220f
RS
6911 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
6912 (cached_dw_loc_list_def): New structure.
6913 (cached_dw_loc_list): New typedef.
6914 (cached_dw_loc_list_table): New variable.
6915 (cached_dw_loc_list_table_hash): New function.
6916 (cached_dw_loc_list_table_eq): Likewise.
6917 (add_location_or_const_value_attribute): Take a bool cache_p.
6918 Cache the list when the parameter is true.
6919 (gen_formal_parameter_die): Update caller.
6920 (gen_variable_die): Likewise.
6921 (dwarf2out_finish): Likewise.
6922 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
6923 while generating debug info for the decl.
6924 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
6925 (dwarf2out_init): Initialize cached_dw_loc_list_table.
6926 (resolve_addr): Cache the result of resolving a chain of
6927 location lists.
6928
1756cb66
VM
69292011-03-28 Vladimir Makarov <vmakarov@redhat.com>
6930
6931 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
6932 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 6933
1756cb66
VM
6934 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
6935 after regstat_init_n_sets_and_refs.
6936
6937 * ira.c: Add more comments at the top.
6938 (setup_stack_reg_pressure_class, setup_pressure_classes):
6939 Add comments how we compute the register pressure classes.
6940 (setup_allocno_and_important_classes): Add more comments.
6941 (setup_class_translate_array, reorder_important_classes)
6942 (setup_reg_class_relations): Add comments.
6943
6944 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
6945 start of the file.
6946
6947 * ira-color.c: Add 2011 to the Copyright line.
6948 (assign_hard_reg): Add more comments.
6949 (improve_allocation): Ditto.
6950
6951 * ira-costs.c: Add 2011 to the Copyright line.
6952 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
6953 comments.
6954 (setup_regno_cost_classes_by_mode): Ditto.
6955
6956 Initial patches from ira-improv branch:
6957
6958 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
6959
f60c2554 6960 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
6961 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
6962 (ira_create_allocno): Remove initialization of
6963 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
6964 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
6965 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6966 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
6967 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
6968 Initialize ALLOCNO_ADD_DATA.
6969 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
6970 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
6971 ALLOCNO_REG.
6972 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
6973 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
6974
6975 * ira.c (ira_reallocate): Remove.
6976 (setup_pressure_classes): Call
6977 ira_init_register_move_cost_if_necessary. Use
6978 ira_register_move_cost instead of ira_get_register_move_cost.
6979 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
6980 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
6981
6982 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
6983 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
6984 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
6985 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
6986 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
6987 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
6988 Fix formatting.
7a81008b 6989 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
6990 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
6991 (struct allocno_color_data): New.
6992 (allocno_color_data_t): New typedef.
6993 (allocno_color_data): New definition.
6994 (ALLOCNO_COLOR_DATA): New macro.
6995 (struct object_color_data): New.
6996 (object_color_data_t): New typedef.
6997 (object_color_data): New definition.
6998 (OBJECT_COLOR_DATA): New macro.
6999 (update_copy_costs, calculate_allocno_spill_cost): Call
7000 ira_init_register_move_cost_if_necessary. Use
7001 ira_register_move_cost instead of ira_get_register_move_cost.
7002 (move_spill_restore, update_curr_costs): Ditto.
7003 (allocno_spill_priority): Make it inline.
7a81008b 7004 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
7005 (struct coalesce_data, coalesce_data_t): New.
7006 (allocno_coalesce_data): New definition.
7007 (ALLOCNO_COALESCE_DATA): New macro.
7008 (merge_allocnos, coalesced_allocno_conflict_p): Use
7009 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
7010 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
7011 (coalesce_allocnos): Ditto.
7012 (setup_coalesced_allocno_costs_and_nums): Ditto.
7013 (collect_spilled_coalesced_allocnos): Ditto.
7014 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
7015 (setup_slot_coalesced_allocno_live_ranges): Ditto.
7016 (coalesce_spill_slots): Ditto.
7017 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
7018 free allocno_coalesce_data.
7019
7020 * ira-conflicts.c: Fix formatting.
7021 (process_regs_for_copy): Call
7022 ira_init_register_move_cost_if_necessary. Use
7023 ira_register_move_cost instead of ira_get_register_move_cost.
7024 (build_object_conflicts): Optimize.
7025
7026 * ira-costs.c (record_reg_classes): Optimize. Call
7027 ira_init_register_move_cost_if_necessary. Use
7028 ira_register_move_cost, ira_may_move_in_cost, and
7029 ira_may_move_out_cost instead of ira_get_register_move_cost and
7030 ira_get_may_move_cost.
7031 (record_address_regs): Ditto.
7032 (scan_one_insn): Optimize.
7033 (find_costs_and_classes): Optimize.
7034 (process_bb_node_for_hard_reg_moves): Call
7035 ira_init_register_move_cost_if_necessary. Use
7036 ira_register_move_cost instead of ira_get_register_move_cost.
7037
7038 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
7039 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
7040 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
7041 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
7042 definitions.
7043 (ira_initiate_emit_data, ira_finish_emit_data)
7044 (create_new_allocno): New functions.
7a81008b 7045 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
7046 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
7047 Use ira_register_move_cost instead of ira_get_register_move_cost.
7048
7049 * ira-int.h: Fix some comments.
7a81008b
UB
7050 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
7051 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
7052 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
7053 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
7054 add_data.
7055 (struct ira_allocno): Make mode and aclass a bitfield. Move other
7056 bitfield after mode. Make hard_regno a short int. Make
7057 hard_regno short. Remove first_coalesced_allocno and
7058 next_coalesced_allocno. Move mem_optimized_dest_p,
7059 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
7060 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
7061 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
7062 temp, colorable_p. Add new member add_data.
7063 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
7064 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
7065 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
7066 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
7067 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
7068 (ALLOCNO_ADD_DATA): New macro.
7069 (ira_emit_data_t): New typedef.
7070 (struct ira_emit_data): New. Move mem_optimized_dest_p,
7071 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
7072 from struct ira_allocno.
7073 (ALLOCNO_EMIT_DATA): New macro.
7074 (ira_allocno_emit_data, allocno_emit_reg): New.
7075 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 7076 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
7077 (OBJECT_ADD_DATA): New macro.
7078 (ira_reallocate): Remove.
7079 (ira_initiate_emit_data, ira_finish_emit_data): New.
7080 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
7081 (ira_init_register_move_cost_if_necessary): New.
7082 (ira_object_conflict_iter_next): Merge into
7083 ira_object_conflict_iter_cond.
7a81008b 7084 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 7085
f60c2554 7086 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
7087 ira_init_register_move_cost_if_necessary. Use
7088 ira_register_move_cost instead of ira_get_register_move_cost.
7089
7090 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
7091
7092 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
7093
7094 * ira-costs.c: Fix formatting.
7095 (cost_classes, cost_classes_num): Remove.
7096 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
7097 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
7098 (cost_classes_del, cost_classes_htab): New.
7099 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
7100 (initiate_regno_cost_classes, setup_cost_classes): New.
7101 (setup_regno_cost_classes_by_aclass): New.
7a81008b 7102 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
7103 (record_reg_classes): Use regno_cost_classes instead of
7104 cost_classes. Move checking opposite operand up.
7105 (record_address_regs): Use regno_cost_classes
7106 instead of cost_classes.
7107 (scan_one_insn): Ditto. Use always general register.
7108 (print_allocno_costs): Use regno_cost_classes instead of
7109 cost_classes.
7110 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
7111 (find_costs_and_classes): Set up cost classes for each registers.
7112 Use also their mode for this. Use regno_cost_classes instead of
7113 cost_classes.
7114 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
7115 cost_classes.
7116 (free_ira_costs, ira_init_costs): Don't use cost_classes.
7117 (ira_costs, ira_set_pseudo_classes): Call
7118 initiate_regno_cost_classes and finish_regno_cost_classes.
7119
7120 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
7121
7122 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
7123
7124 * target.def (ira_cover_classes): Remove.
7125
7a81008b 7126 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
7127
7128 * doc/tm.texi.in: Ditto.
7129
7130 * ira-conflicts.c: Remove mentioning cover classes from the file.
7131 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 7132 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
7133
7134 * targhooks.c (default_ira_cover_classes): Remove.
7135
7136 * targhooks.h (default_ira_cover_classes): Ditto.
7137
7138 * haifa-sched.c: Remove mentioning cover classes from the file.
7139 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7140 ira_pressure_classes and ira_pressure_classes_num instead of
7141 ira_reg_class_cover_size and ira_reg_class_cover. Use
7142 sched_regno_pressure_class instead of sched_regno_cover_class.
7143 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
7144 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7145
7146 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
7147 classes from the file.
7148 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
7149 (struct object_hard_regs, struct object_hard_regs_node): New.
7150 (struct ira_object): New members profitable_hard_regs,
7151 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
7152 (struct ira_allocno): Rename cover_class to aclass. Rename
7153 cover_class_cost and updated_cover_class_cost to class_cost and
7154 updated_class_cost. Remove splay_removed_p and
7155 left_conflict_size. Add new members colorable_p.
7156 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
7157 (ALLOCNO_COLORABLE_P): New macro.
7158 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
7159 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
7160 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
7161 (OBJECT_...): Rename parameter C to O.
7162 (OBJECT_PROFITABLE_HARD_REGS): New macro.
7163 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
7164 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
7165 (struct target_ira_int): New members x_ira_max_memory_move_cost,
7166 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
7167 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
7168 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
7169 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
7170 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
7171 x_ira_reg_class_subunion.
7172 (ira_max_memory_move_cost, ira_max_register_move_cost)
7173 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
7174 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
7175 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 7176 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
7177 (ira_reg_class_union): Rename to ira_reg_class_subunion.
7178 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7179 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7180 (ira_tune_allocno_costs_and_cover_classes): Rename to
7181 ira_tune_allocno_costs.
7182 (ira_debug_hard_regs_forest): New.
7183 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
7184 (ira_object_conflict_iter_next): Fix comments.
7a81008b 7185 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
7186 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
7187 cover_class to aclass.
7188 (ira_allocate_and_accumulate_costs): Ditto.
7189 (ira_allocate_and_set_or_copy_costs): Ditto.
7190
7191 * opts.c (decode_options): Remove ira_cover_class check.
7192
7193 * ira-color.c: Remove mentioning cover classes from the file. Use
7194 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
7195 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
7196 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7197 (splay-tree.h): Remove include.
7198 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
7199 before copy_freq_compare_func.
7200 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
7201 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
7202 New definitions.
7203 (hard_regs_roots, hard_regs_node_vec): Ditto.
7204 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
7205 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
7206 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
7207 (create_new_object_hard_regs_node): Ditto.
7208 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 7209 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
7210 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
7211 Ditto.
7212 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
7213 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
7214 (remove_unused_object_hard_regs_nodes): Ditto.
7215 (enumerate_object_hard_regs_nodes): Ditto.
7216 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
7217 (object_hard_regs_subnode_t): Ditto.
7218 (struct object_hard_regs_subnode): Ditto.
7219 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
7220 (setup_object_hard_regs_subnode_index): Ditto.
7221 (get_object_hard_regs_subnodes_num): Ditto.
7222 (form_object_hard_regs_nodes_forest): Ditto.
7223 (finish_object_hard_regs_nodes_tree): Ditto.
7224 (finish_object_hard_regs_nodes_forest): Ditto.
7225 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 7226 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
7227 (pseudos_have_intersected_live_ranges_p): Rename to
7228 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
7229 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
7230 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
7231 (update_copy_costs): Remove assert. Skip cost update if the hard
7232 reg does not belong the class.
7233 (assign_hard_reg): Process only profitable hard regs.
7234 (uncolorable_allocnos_num): Make it scalar.
7235 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
7236 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
7237 and ira_reg_class_max_nregs.
7238 (bucket_allocno_compare_func): Check frequency first.
7239 (sort_bucket): Add compare function as a parameter.
7240 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
7241 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
7242 (push_allocno_to_stack): Rewrite for checking new allocno
7243 colorability.
7a81008b 7244 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
7245 (push_only_colorable): Pass new parameter to sort_bucket.
7246 (push_allocno_to_spill): Remove.
7247 (allocno_spill_priority_compare): Make it inline and rewrite.
7248 (splay_tree_allocate, splay_tree_free): Remove.
7249 (allocno_spill_sort_compare): New function.
7250 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
7251 build and use splay tree. Choose first allocno in uncolorable
7252 allocno bucket to spill. Remove setting spill cost.
7253 (all_conflicting_hard_regs): Remove.
7254 (setup_allocno_available_regs_num): Check only profitable hard
7255 regs. Print info about hard regs nodes.
7256 (setup_allocno_left_conflicts_size): Remove.
7257 (put_allocno_into_bucket): Don't call
7a81008b 7258 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
7259 (improve_allocation): New.
7260 (color_allocnos): Call setup_profitable_hard_regs,
7261 form_object_hard_regs_nodes_forest, improve_allocation,
7262 finish_object_hard_regs_nodes_forest. Setup spill cost.
7263 (print_loop_title): Use pressure classes.
7264 (color_allocnso): Ditto.
7265 (do_coloring): Remove allocation and freeing splay_tree_node_pool
7266 and allocnos_for_spilling.
7267 (ira_sort_regnos_for_alter_reg): Don't setup members
7268 {first,next}_coalesced_allocno.
7269 (color): Remove allocating and freeing removed_splay_allocno_vec.
7270 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
7271 prohibited_class_mode_regs.
7272
7273 * ira-lives.c: Remove mentioning cover classes from the file. Fix
7274 formatting.
7275 (update_allocno_pressure_excess_length): Use pressure classes.
7276 (inc_register_pressure, dec_register_pressure): Check for pressure
7277 class.
7278 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
7279 pressure class. Use ira_reg_class_nregs instead of
7280 ira_reg_class_max_nregs.
7281 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
7282 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
7283 (single_reg_class): Use ira_reg_class_nregs instead of
7284 ira_reg_class_max_nregs.
7285 (process_bb_node_lives): Use pressure classes.
7286
7287 * ira-emit.c: Remove mentioning cover classes from the file. Use
7288 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
7289 (change_loop): Use pressure classes.
7290 (modify_move_list): Call ira_set_allocno_class instead of
7291 ira_set_allocno_cover_class.
7292
7293 * ira-build.c: Remove mentioning cover classes from the file. Use
7294 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
7295 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
7296 ALLOCNO_UPDATED_CLASS_COST instead of
7297 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
7298 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
7299 (ira_create_allocno): Remove initialization of
7300 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
7301 ALLOCNO_COLORABLE_P.
7302 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
7303 Update conflict regs for the objects.
7304 (create_cap_allocno): Remove assert. Don't propagate
7305 ALLOCNO_AVAILABLE_REGS_NUM.
7306 (ira_free_allocno_costs): New function.
7307 (finish_allocno): Change a part of code into call of
7308 ira_free_allocno_costs.
7309 (low_pressure_loop_node_p): Use pressure classes.
7310 (object_range_compare_func): Don't compare classes.
7311 (setup_min_max_conflict_allocno_ids): Ditto.
7312
7313 * loop-invariant.c: Remove mentioning cover classes from the file.
7314 Use ira_pressure_classes and ira_pressure_classes_num instead of
7315 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
7316 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
7317 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7318 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
7319 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
7320 STACK_REG_COVER_CLASS.
7321 (get_regno_cover_class): Rename to get_regno_pressure_class.
7322 (move_loop_invariants): Initialize and finalize regstat.
7323
7324 * ira.c: Remove mentioning cover classes from the file. Add
7325 comments about coloring without cover classes. Use ALLOCNO_CLASS
7326 instead of ALLOCNO_COVER_CLASS. Fix formatting.
7327 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
7328 setup_class_subset_and_memory_move_costs.
7329 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
7330 (setup_cover_and_important_classes): Rename to
7331 setup_allocno_and_important_classes.
7332 (setup_class_translate_array): New.
7333 (setup_class_translate): Call it for allocno and pressure classes.
7334 (cover_class_order): Rename to allocno_class_order.
7335 (comp_reg_classes_func): Use ira_allocno_class_translate instead
7336 of ira_class_translate.
7337 (reorder_important_classes): Set up ira_important_class_nums.
7338 (setup_reg_class_relations): Set up ira_reg_class_superunion.
7339 (print_class_cover): Rename to print_classes. Add parameter.
7340 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
7341 Print pressure classes too.
7342 (find_reg_class_closure): Rename to find_reg_classes. Don't call
7343 setup_reg_subclasses.
7a81008b 7344 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7345 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7346 (setup_prohibited_class_mode_regs): Use
7a81008b 7347 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
7348 (clarify_prohibited_class_mode_regs): New function.
7349 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
7350 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
7351 (ira_init_once): Initialize them.
7352 (free_register_move_costs): Process them.
7353 (ira_init): Move calls of find_reg_classes and
7354 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
7355 Call clarify_prohibited_class_mode_regs.
7356 (ira_no_alloc_reg): Remove.
7357 (too_high_register_pressure_p): Use pressure classes.
7358
7359 * sched-deps.c: Remove mentioning cover classes from the file.
7360 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
7361 ira_pressure_classes and ira_pressure_classes_num instead of
7362 ira_reg_class_cover_size and ira_reg_class_cover.
7363 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
7364 sched_regno_pressure_class instead of sched_regno_cover_class.
7365 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
7366 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
7367
7368 * ira.h: Add 2010 to Copyright.
7369 (ira_no_alloc_reg): Remove external.
7370 (struct target_ira): Rename x_ira_hard_regno_cover_class,
7371 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
7372 x_ira_class_translate to x_ira_hard_regno_allocno_class,
7373 x_ira_allocno_classes_num, x_ira_allocno_classes, and
7374 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
7375 x_ira_pressure_classes, x_ira_pressure_class_translate, and
7376 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
7377 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
7378 x_ira_no_alloc_regs.
7a81008b 7379 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
7380 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
7381 ira_allocno_classes_num and ira_allocno_classes.
7382 (ira_class_translate): Rename to ira_allocno_class_translate.
7383 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
7384 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
7385 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
7386 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
7387 (ira_no_alloc_regs): New.
7388
7389 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
7390 classes from the file. Use ALLOCNO_CLASS instead of
7391 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
7392 ALLOCNO_COVER_CLASS_COST.
7393 (regno_cover_class): Rename to regno_aclass.
7394 (record_reg_classes): Use ira_reg_class_subunion instead of
7395 ira_reg_class_union.
7396 (record_address_regs): Check overflow.
7397 (scan_one_insn): Ditto.
7a81008b 7398 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
7399 (print_pseudo_costs): Use REG_N_REFS.
7400 (find_costs_and_classes): Use classes intersected with them on the
7401 1st pass. Check overflow. Use ira_reg_class_subunion instead of
7402 ira_reg_class_union. Use ira_allocno_class_translate and
7403 regno_aclass instead of ira_class_translate and regno_cover_class.
7404 Modify code for finding regno_aclass. Setup preferred classes for
7405 the next pass.
7406 (setup_allocno_cover_class_and_costs): Rename to
7407 setup_allocno_class_and_costs. Use regno_aclass instead of
7408 regno_cover_class. Use ira_set_allocno_class instead of
7409 ira_set_allocno_cover_class.
7410 (init_costs, finish_costs): Use regno_aclass instead of
7411 regno_cover_class.
7412 (ira_costs): Use setup_allocno_class_and_costs instead of
7413 setup_allocno_cover_class_and_costs.
7414 (ira_tune_allocno_costs_and_cover_classes): Rename to
7415 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
7416 by processing objects. Use ira_reg_class_max_nregs instead of
7417 ira_reg_class_nregs.
7418
7419 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
7420
7421 * sched-int.h: Remove mentioning cover classes from the file.
7422 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
7423
7424 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
7425 classes from the file.
7426 (struct reg_pref): Rename coverclass into allocnoclass.
7427 (reg_cover_class): Rename to reg_allocno_class.
7428
7a81008b 7429 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
7430
7431 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
7432
7433 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
7434
7435 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
7436
7437 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
7438
7439 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
7440
7441 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
7442
7443 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
7444
7445 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
7446
7447 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
7448
7449 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
7450 (i386_ira_cover_classes): Ditto.
7451
7452 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
7453
7454 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
7455
7456 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
7457
7458 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
7459
7460 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
7461
7462 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
7463
7464 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
7465 (mips_ira_cover_classes): Ditto.
7466
7467 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
7468
7469 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
7470
7471 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
7472
7473 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
7474
7475 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
7476
7477 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
7478 (IRA_COVER_CLASSES_VSX): Ditto.
7479
7480 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
7481 (rs6000_ira_cover_classes): Ditto.
7482
7483 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
7484
7485 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
7486
7487 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
7488
7489 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
7490
7491 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
7492
7493 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
7494
7495 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
7496
7497 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
7498
7499 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
7500
7501 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
7502
2b80199f
JJ
75032011-03-29 Jakub Jelinek <jakub@redhat.com>
7504
71dae1fe
JJ
7505 PR debug/48253
7506 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
7507 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
7508 dw_fde_unlikely_section_end_label, cold_in_std_section,
7509 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
7510 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
7511 fields.
7512 (output_fde): Use dw_fde_second_{begin,end} if second is
7513 true, otherwise dw_fde_{begin,end}.
7514 (output_call_frame_info): Test dw_fde_second_begin != NULL
7515 instead of dw_fde_switched_sections.
7516 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
7517 fields, initialize new fields. Initialize in_std_section
7518 unconditionally from the first partition.
7519 (dwarf2out_end_epilogue): Don't override dw_fde_end when
7520 dw_fde_second_begin is non-NULL.
7521 (dwarf2out_switch_text_section): Stop initializing removed
7522 dw_fde_struct fields, initialize new fields, initialize
7523 also dw_fde_end here. Set dw_fde_switch_cfi even when
7524 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
7525 (struct var_loc_list_def): Add last_before_switch field.
7526 (arange_table, arange_table_allocated, arange_table_in_use,
7527 ARANGE_TABLE_INCREMENT, add_arange): Removed.
7528 (size_of_aranges): Count !in_std_section and !second_in_std_section
7529 hunks in fdes, instead of looking at arange_table_in_use.
7530 (output_aranges): Add aranges_length argument, don't call
7531 size_of_aranges here. Instead of using aranges_table*
7532 emit ranges for fdes when !in_std_section resp.
7533 !second_in_std_section.
7534 (dw_loc_list): Break ranges crossing section switch.
7535 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 7536 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
7537 (gen_subprogram_die): Don't call add_arange. Use
7538 dw_fde_{begin,end} for first partition and if switched
7539 section dw_fde_second_{begin,end} for the second.
7540 (var_location_switch_text_section_1,
7541 var_location_switch_text_section): New functions.
7542 (dwarf2out_begin_function): Initialize cold_text_section even
7543 when function_section () isn't text_section.
7544 (prune_unused_types): Don't walk arange_table.
7545 (dwarf2out_finish): Don't needlessly test
7546 flag_reorder_blocks_and_partition when testing cold_text_section_used.
7547 If info_section_emitted, call size_of_aranges and if it indicates
7548 non-empty .debug_aranges, call output_aranges with the computed
7549 size. Stop using removed dw_fde_struct fields, use
7550 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
7551 for second.
7552
2b80199f
JJ
7553 PR debug/48203
7554 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
7555 create ENTRY_VALUE if incoming or address of incoming's MEM
7556 is a hard REG.
7557 * dwarf2out.c (mem_loc_descriptor): Don't emit
7558 DW_OP_GNU_entry_value of DW_OP_fbreg.
7559 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
7560 on ENTRY_VALUE is able to find the canonical parameter VALUE.
7561 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
7562 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
7563 ENTRY_VALUE_EXPs.
7564 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
7565 is a REG_P or MEM_P with REG_P address, compute hash directly
7566 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
7567 (preserve_only_constants): Don't clear VALUES forwaring
7568 ENTRY_VALUE to some other VALUE.
7569
8a445129
RS
75702011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
7571
7572 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
7573 instead of GEN_INT.
7574
c82fee88
EB
75752011-03-28 Eric Botcazou <ebotcazou@adacore.com>
7576
7577 * cfgexpand.c (expand_gimple_cond): Always set the source location and
7578 block before expanding the statement.
7579 (expand_gimple_stmt_1): Likewise. Set them here...
7580 (expand_gimple_stmt): ...and not here. Tidy.
7581 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
7582 unknown.
7583
e45425ec
SB
75842011-03-28 Steven Bosscher <steven@gcc.gnu.org>
7585
7586 * Makefile.in: New rule for cprop.o.
7587 * gcse.c: Move constant/copy propagation to cprop.c.
7588 (compute_local_properties): Only handle expression tables.
7589 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
7590 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
7591 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
7592 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 7593 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
7594 compute_cprop_data, find_used_regs, try_replace_reg,
7595 find_avail_set, cprop_jump, constprop_register, cprop_insn,
7596 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
7597 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
7598 find_bypass_set, reg_killed_on_edge, bypass_block,
7599 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
7600 execute_rtl_cprop, pass_rtl_cprop): Move to...
7601 * cprop.c: ...here. New file, constant/copy propagation for RTL
7602 moved from gcse.c to here with minor cleanups in duplicated code.
7603
c09d5426
L
76042011-03-28 H.J. Lu <hongjiu.lu@intel.com>
7605
7606 * config/i386/i386.c (flag_opts): Fix a typo in
7607 -mavx256-split-unaligned-store.
7608
9eaa7740
AS
76092011-03-28 Anatoly Sokolov <aesok@post.ru>
7610
7611 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7612 LIBCALL_VALUE): Remove macros.
7613 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7614 TARGET_FUNCTION_VALUE_REGNO_P): Define.
7615 (h8300_function_value, h8300_libcall_value,
7616 h8300_function_value_regno_p): New functions.
7617
dcec2be2
AS
76182011-03-28 Anatoly Sokolov <aesok@post.ru>
7619
7620 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
7621
520af9ec
JL
76222011-03-28 Jeff Law <law@redhat.com>
7623
7624 * tree-ssa-threadupdate.c (redirect_edges): Call
7625 create_edge_and_update_destination_phis as needed.
7626 (create_edge_and_update_destination_phis): Accept new BB argument.
7627 All callers updated.
7628 (thread_block): Do not update the profile when threading around
7629 intermediate blocks.
7630 (thread_single_edge): Likewise.
7631 (determine_bb_domination_status): If BB is not a successor of the
7632 loop header, return NONDOMINATING.
7633 (register_jump_thread): Note when we register a jump thread around
7634 an intermediate block.
7635 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
7636 (thread_across_edge): Use it.
7637
7450b54f
TG
76382011-03-28 Tristan Gingold <gingold@adacore.com>
7639
7640 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
7641 when for_return is 2.
7642
649beb33
JL
76432011-03-28 Jeff Law <law@redhat.com>
7644
7645 * var-tracking.c (canonicalize_values_mark): Delete unused
7646 lhs assignment.
7647 (canonicalize_values_star, set_variable_part): Likewise.
7648 (clobber_variable_part, delete_variable_part): Likewise.
7649
d5b8da97
SB
76502011-03-28 Steven Bosscher <steven@gcc.gnu.org>
7651
7652 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
7653
322dd859
MJ
76542011-03-28 Martin Jambor <mjambor@suse.cz>
7655
7656 * tree-inline.c (expand_call_inline): Do not check that destination
7657 node is analyzed.
7658 (optimize_inline_calls): Assert that destination node is analyzed.
7659 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
7660 not call tree_lowering_passes.
7661 * cgraph.h (cgraph_analyze_function): Declare.
7662 * cgraphunit.c (cgraph_analyze_function): Make public.
7663
aa53e58b
JM
76642011-03-28 Joseph Myers <joseph@codesourcery.com>
7665
7666 * config/sparc/sparc-opts.h: New.
7667 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
7668 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
7669 (sparc_option_override): Store processor_type enumeration rather
7670 than string in cpu_default. Remove name and enumeration from
7671 cpu_table. Directly default -mcpu then default -mtune from -mcpu
7672 without using sparc_select. Use target_flags_explicit instead of
7673 fpu_option_set.
7674 * config/sparc/sparc.h (enum processor_type): Move to
7675 sparc-opts.h.
7676 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
7677 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
7678 HeaderInclude entry.
7679 (mcpu=, mtune=): Use Var and Enum.
7680 (sparc_processor_type): New Enum and EnumValue entries.
7681
dd350eba
RO
76822011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7683 Iain Sandoe <iains@gcc.gnu.org>
7684
7685 PR target/48245
7686 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
7687
1b29f05e
EB
76882011-03-28 Eric Botcazou <ebotcazou@adacore.com>
7689
7690 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
7691 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
7692 Insert new statements at it in lieu of STMT.
7693 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
7694 * tree-vect-stmts.c (vectorizable_store): Likewise.
7695 (vectorizable_load): Likewise.
7696
506e6808
UB
76972011-03-28 Uros Bizjak <ubizjak@gmail.com>
7698
7699 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
7700 (divtf3): Ditto.
7701 (multf3): Ditto.
7702 (subtf3): Ditto.
7703
2e939ee9
L
77042011-03-27 H.J. Lu <hongjiu.lu@intel.com>
7705
7706 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
7707 unaligned 256bit load/store.
7708 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
7709 (*avx_movdqu<avxmodesuffix>): Likewise.
7710
5e85ab88
JDA
77112011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7712
7713 PR target/48288
7714 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
7715 * config/pa/pa.md (iordi3): Use new predicate in expander.
7716 (iorsi3): Likewise.
7717
47be3d6d
AS
77182011-03-27 Anatoly Sokolov <aesok@post.ru>
7719
506e6808 7720 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 7721 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
7722 * config/mips/mips-protos.h (mips_function_value): Remove.
7723 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
7724 (mips_function_value_1): ... this. Make static. Handle receiving
7725 the function type in 'fn_decl_or_type' argument.
7726 (mips_function_value, mips_libcall_value,
7727 mips_function_value_regno_p): New function.
7728 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7729 TARGET_FUNCTION_VALUE_REGNO_P): Define.
7730
d253656a
L
77312011-03-27 H.J. Lu <hongjiu.lu@intel.com>
7732
7733 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
7734 and -mavx256-split-unaligned-store.
7735 (ix86_option_override_internal): Split 32-byte AVX unaligned
7736 load/store by default.
7737 (ix86_avx256_split_vector_move_misalign): New.
7738 (ix86_expand_vector_move_misalign): Use it.
7739
7740 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
7741 -mavx256-split-unaligned-store.
7742
7743 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
7744 256bit load/store. Generate unaligned store on misaligned memory
7745 operand.
7746 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
7747 256bit load/store.
7748 (*avx_movdqu<avxmodesuffix>): Likewise.
7749
7750 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
7751 -mavx256-split-unaligned-store.
7752
1ea9206a
RS
77532011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
7754
7755 PR target/38598
7756 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
7757 Update commentary.
7758
b99ce2a8
RS
77592011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
7760
7761 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
7762 opno arguments with an expand_operand. Use create_input_operand.
7763 (mips_prepare_builtin_target): Delete.
7764 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
7765 functions.
7766 (mips_expand_builtin_direct): Use create_output_operand and
7767 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
7768 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
7769 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
7770
69d52339
IR
77712011-03-27 Ira Rosen <ira.rosen@linaro.org>
7772
7773 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
7774 function.
7775 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7776
ba5e9aca
EB
77772011-03-26 Eric Botcazou <ebotcazou@adacore.com>
7778
7779 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
7780 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
7781 basic blocks and call commit_edge_insertions directly.
7782 (fixup_abnormal_edges): Move from here to...
7783 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
7784 on the edges and return whether some have actually been inserted.
7785 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
7786 compensation code.
7787
5d369d58
AB
77882011-03-26 Andrey Belevantsev <abel@ispras.ru>
7789
7790 PR rtl-optimization/48144
7791 * sel-sched-ir.c (merge_history_vect): Factor out from ...
7792 (merge_expr_data): ... here.
7793 (av_set_intersect): Rename to av_set_code_motion_filter.
7794 Update all callers. Call merge_history_vect when an expression
7795 is found in both sets.
7796 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
7797
f082c000
AM
77982011-03-26 Alan Modra <amodra@gmail.com>
7799
7800 * config/rs6000/predicates.md (word_offset_memref_op): Handle
7801 cmodel medium addresses.
7802 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
7803 64-bit gpr loads and stores.
7804 (rs6000_secondary_reload_ppc64): New function.
7805 * config/rs6000/rs6000-protos.h: Declare it.
7806 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
7807
8ac5e12e
AM
78082011-03-26 Alan Modra <amodra@gmail.com>
7809
7810 PR target/47487
7811 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
7812 GNU Go in traceback table.
7813
c2654ded
RH
78142011-03-25 Richard Henderson <rth@redhat.com>
7815
7816 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
7817 if there are exactly 6 operands.
7818 (set_storage_via_setmem): Similarly.
7819
ba78087b
KT
78202011-03-25 Kai Tietz <ktietz@redhat.com>
7821
7822 * collect2.c (write_c_file_stat): Handle backslash
7823 as right-hand directory separator.
7824 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
7825 checking just for slash.
7826 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
7827 instead of checking for trailing slash.
7828 * gcc.c (record_temp_file): Use filename_cmp instead
7829 of strcmp.
7830 (do_spec_1): Likewise.
7831 (replace_outfile_spec_function): Likewise.
7832 (is_directory): Use filename_ncmp instead of strncmp.
7833 (print_multilib_info): Likewise.
7834 * gcov.c (find_source): Use filename_cmp instead
7835 instead of strcmp.
7836 (make_gcov_file_name): Fix order of slash/backslash
7837 checks.
7838 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
7839 (add_standard_paths): Likewise.
7840 * mips-tfile.c (saber_stop): Handle backslash.
7841 * prefix.c (update_path): Use filename_ncmp instead of
7842 strncmp.
7843 * profile.c (output_location): Use filename_cmp instead
7844 of strcmp.
7845 * read-md.c (handle_toplevel_file): Handle backslash.
7846 * tlink.c (frob_extension): Likewise.
7847 * tree-cfg.c (same_line_p): Use filename_cmp instead of
7848 strcmp.
7849 * tree-dump.c (dequeue_and_dump): Handle backslash.
7850 * tree.c (get_file_function_name): Likewise.
7851 * gengtype.c (read_input_list): Likewise.
7852 (get_file_realbasename): Likewise.
7853 (get_output_file_with_visibility): Use filename_cmp
7854 instead of strcmp.
7855
75f6ec9a
RS
78562011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
7857
7858 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
7859 case to VFPv1.
7860
6c4e2997
NF
78612011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7862
7863 * fold-const.c (expr_location_or): New function.
7864 (fold_truth_not_expr): Call it.
7865
0edf1bb2
JL
78662011-03-25 Jeff Law <law@redhat.com>
7867
7868 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
7869 va_end.
7870 * c-family/c-common.c (def_fn_type): Likewise.
7871 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
7872 * emit-rtl.c (gen_rtvec): Likewise.
7873 * lto/lto-lang.c (def_fn_type): Likewise.
7874
fdc2de95
RG
78752011-03-25 Richard Guenther <rguenther@suse.de>
7876
7877 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
7878 also generate copies.
7879 (fini_copy_prop): Handle constant values properly.
7880
21385db0
JJ
78812011-03-25 Jakub Jelinek <jakub@redhat.com>
7882
7883 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
7884 mode size instead of bitsize with DWARF2_ADDR_SIZE.
7885 (hash_loc_operands, compare_loc_operands): Handle
7886 DW_OP_GNU_entry_value.
7887
6510e8bb
KT
78882011-03-25 Kai Tietz <ktietz@redhat.com>
7889
7890 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
7891 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
7892 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
7893 comment and use macro TARGET_64BIT_MS_ABI instead.
7894 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
7895 and change default behavior for 32-bit MS_ABI.
7896 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
7897 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
7898 32-bit, too.
7899 (ix86_cfun_abi): Likewise.
7900 (ix86_maybe_switch_abi): Adjust comment.
7901 (init_cumulative_args): Check for bit-ness in MS_ABI case.
7902 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
7903 instead of checking for SYSV_ABI.
7904 (ix86_nsaved_sseregs): Likewise.
7905 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
7906 to 16 bytes.
7907 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
7908 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
7909 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
7910 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
7911 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
7912
34019e28
RG
79132011-03-25 Richard Guenther <rguenther@suse.de>
7914
7915 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
7916 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7917 (verify_gimple): Remove.
7918 * tree-cfg.c (verify_gimple_call): Merge verification
7919 from verify_stmts.
7920 (verify_gimple_phi): Merge verification from verify_stmts.
7921 (verify_gimple_label): New function.
7922 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
7923 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
7924 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
7925 (verify_stmts): Rename to verify_gimple_in_cfg.
7926 (verify_gimple_in_cfg): New function.
7927 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
7928 * tree-ssa.c (verify_ssa): Likewise.
7929 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
7930
605896f5
RG
79312011-03-25 Richard Guenther <rguenther@suse.de>
7932
7933 * passes.c (init_optimization_passes): Add FRE pass after
7934 early SRA.
7935
7baa7c13
BS
79362011-03-25 Bernd Schmidt <bernds@codesourcery.com>
7937 Andrew Stubbs <ams@codesourcery.com>
7938
7939 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
7940 for Cortex-A8.
7941 (arm_movdi_vfp_cortexa8): New pattern.
7942 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
7943 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
7944 instructions when tuning for Cortex-A8. Set attribute "arch".
7945 * config/arm/arm.md: Move include arm-tune.md up a bit.
7946 (define_attr "arch"): Add "onlya8" and "nota8" values.
7947 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
7948
45dbce1b
NF
79492011-03-25 Nathan Froyd <froydnj@codesourcery.com>
7950
4ff08abf 7951 PR bootstrap/48282
45dbce1b
NF
7952 Revert:
7953 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
7954
7955 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
7956 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
7957 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
7958 * passes.c (init_optimization_passes): Move
7959 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
7960
ac9a30ae
KT
79612011-03-25 Kai Tietz <ktietz@redhat.com>
7962
7963 * c-typeck.c (comptypes_internal): Replace target
7964 hook call of comp_type_attributes by version in tree.c file.
7965 * gimple.c (gimple_types_compatible_p_1): Likewise.
7966 * tree-ssa.c (useless_type_conversion_p): Likewise.
7967 * tree.c (build_type_attribute_qual_variant): Likewise.
7968 (attribute_value_equal): New static helper function.
7969 (comp_type_attributes): New function.
7970 (merge_attributes): Use attribute_value_equal for comparison.
7971 (attribute_list_contained): Likewise.
7972 * tree.h (comp_type_attributes): New prototype.
7973
afdac116
RG
79742011-03-25 Richard Guenther <rguenther@suse.de>
7975
7976 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
7977 of complex types at -O0.
7978 (verify_gimple_assign_binary): Likewise.
7979 (verify_gimple_assign_ternary): Likewise.
7980
ec6165f8
MW
79812011-03-24 Mark Wielaard <mjw@redhat.com>
7982
7983 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
7984 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
7985
2a5ac39a
MW
79862011-03-24 Mark Wielaard <mjw@redhat.com>
7987
7988 PR debug/48041
7989 * dwarf2out.c (output_abbrev_section): Only write table when
7990 abbrev_die_table_in_use > 1.
7991
e533b2a4
RH
79922011-02-24 Richard Henderson <rth@redhat.com>
7993
7994 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
7995 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
7996 (alpha_expand_unaligned_load_words): Use extql.
7997 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
7998 (emit_insxl): Handle all modes for consistency.
7999
0b2a7367
RH
80002011-02-24 Richard Henderson <rth@redhat.com>
8001
8002 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
8003 (alpha_expand_unaligned_load): Likewise.
8004 (alpha_expand_unaligned_store): Likewise.
8005 (alpha_expand_unaligned_load_words): Likewise.
8006 (alpha_expand_unaligned_store_words): Likewise.
8007 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
8008 (alpha_split_lock_test_and_set_12): Likewise.
8009 (print_operand, alpha_fold_builtin_extxx): Likewise.
8010 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
8011 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
8012 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
8013 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
8014 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
8015 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
8016 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
8017 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
8018 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
8019 (extwl, extll, extql): Similarly.
8020 (inswh, inslh, insqh): Similarly.
8021 (mskbl, mskwl, mskll, mskql): Similarly.
8022 (mskwh, msklh, mskqh): Similarly.
8023
315b2bef
RH
80242011-02-24 Richard Henderson <rth@redhat.com>
8025
8026 * config/alpha/alpha.md (attribute isa): Add er, ner.
8027 (attribute enabled): Handle them.
8028 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
8029
67102517
RH
80302011-02-24 Richard Henderson <rth@redhat.com>
8031
8032 * config/alpha/alpha.md (attribute isa): Add vms.
8033 (attribute enabled): Handle it.
8034 (*movsf): Merge *movsf_{nofix,fix,nofp}.
8035 (*movdf): Merge *movdf_{nofix,fix,nofp}.
8036 (*movtf): Rename from *movtf_internal for consistency.
8037 (*movsi): Merge with *movsi_nt_vms.
8038 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
8039 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
8040 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
8041 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
8042
6aba5cb4
RH
80432011-02-24 Richard Henderson <rth@redhat.com>
8044
8045 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
8046 (extendqisi2, extendhisi2): Likewise.
8047 (extendqidi2): Simplify BWX/non-BWX expansions.
8048 (extendhidi2): Similarly.
8049
bdfb351b
RH
80502011-02-24 Richard Henderson <rth@redhat.com>
8051
8052 * config/alpha/alpha.md (attribute isa): New.
8053 (attribute enabled): New.
8054 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
8055 (zero_extendqisi2, zero_extendqidi2): Similarly.
8056 (zero_extendhisi2, zero_extendhidi2): Similarly.
8057 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
8058
6abe71eb
RH
80592011-02-24 Richard Henderson <rth@redhat.com>
8060
8061 * config/alpha/predicates.md (input_operand): Revert last change;
8062 update comment to mention 32-bit VMS rather than Windows.
8063
7114321e
NF
80642011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8065
8066 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
8067 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
8068 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
8069 * passes.c (init_optimization_passes): Move
8070 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
8071
c8679567
EB
80722011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8073
8074 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
8075
27173058
UB
80762011-03-24 Uros Bizjak <ubizjak@gmail.com>
8077
8078 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
8079 correctly.
8080
6f0c9f06
JJ
80812011-03-24 Jakub Jelinek <jakub@redhat.com>
8082
8083 PR debug/48204
8084 * simplify-rtx.c (simplify_const_unary_operation): Call
8085 real_convert when changing mode class with FLOAT_EXTEND.
8086
662666e5
NC
80872011-03-24 Nick Clifton <nickc@redhat.com>
8088
8089 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
8090 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8091 * config/rx/rx.c (rx_option_override): Set align_jumps,
8092 align_loops and align_labels if not set by the user.
8093 (rx_align_for_label): New function.
8094 (rx_max_skip_for_label): New function.
8095 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
8096 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
8097 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
8098 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
8099 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
8100
2b99b2b8
RS
81012011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8102
8103 PR rtl-optimization/48263
8104 * optabs.c (expand_binop_directly): Reinstate convert_modes code
8105 and original commutative_p handling. Use maybe_gen_insn.
8106
ccecd6ea
AK
81072011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8108
8109 * reload.c (find_reloads_subreg_address): Add address_reloaded
8110 parameter and return true there if the full address has been
8111 reloaded.
8112 (find_reloads_toplev): Pass address_reloaded flag.
8113 (find_reloads_address_1): Don't use address_reloaded parameter.
8114
67295642
JL
81152011-03-24 Jeff Law <law@redhat.com>
8116
8117 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
8118 unused variable "ann".
8119 (remove_unused_locals): Likewise.
8120
8121 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
8122 statement.
8123
8124 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
8125 after it is freed.
8126
212aa74f
AK
81272011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8128
8129 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
8130 for invalid symbolic addresses.
8131 (s390_secondary_reload): Don't use s390_check_symref_alignment for
8132 larl operands.
8133
fe784e0d
EB
81342011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8135
8136 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
8137 the argument in calls to fold_truth_not_expr.
8138
63ee8641
NF
81392011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8140
8141 * tree.c (record_node_allocation_statistics): New function.
8142 (make_node_stat, copy_node_stat, build_string): Call it.
8143 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
8144 (build1_stat, build_omp_clause): Likewise.
8145
61be2a1c
RS
81462011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8147
8148 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
8149 last commit.
8150
a881aaa7
RG
81512011-03-24 Richard Guenther <rguenther@suse.de>
8152
8153 PR tree-optimization/48271
8154 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
8155 blocks that still exist.
8156
dbaa912c
RG
81572011-03-24 Richard Guenther <rguenther@suse.de>
8158
8159 PR tree-optimization/48270
8160 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
8161 not free datarefs before ddrs.
8162
1d60cc55
EB
81632011-03-24 Eric Botcazou <ebotcazou@adacore.com>
8164
8165 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
8166 from the address built for a reference with variable offset.
8167
c78dd519
UB
81682011-03-24 Uros Bizjak <ubizjak@gmail.com>
8169
8170 PR target/48237
8171 * config/i386/i386.md (*movdf_internal_rex64): Do not split
8172 alternatives that can be handled with movq or movabsq insn.
8173 (*movdf_internal): Disable for !TARGET_64BIT.
8174 (*movdf_internal_nointeger): Ditto.
8175 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
8176
b25b9e8f
NF
81772011-03-24 Nathan Froyd <froydnj@codesourcery.com>
8178
8179 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8180 (FUNCTION_ARG_ADVANCE): Likewise.
8181 * tm.texi.in: Change references to them to hook references.
8182 * tm.texi: Regenerate.
c78dd519 8183 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
8184 (default_function_incoming_arg): Likewise.
8185 (default_function_arg_advance): Likewise.
c78dd519 8186 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
8187 (function_arg_advance): Likewise.
8188 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8189
190b2187
RG
81902011-03-24 Richard Guenther <rguenther@suse.de>
8191
8192 PR middle-end/48269
8193 * tree-object-size.c (addr_object_size): Do not double-account
8194 for MEM_REF offsets.
8195
a183b5c7
DN
81962011-03-24 Diego Novillo <dnovillo@google.com>
8197
8198 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 8199 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
8200 (lto_input_data_block): Move from lto-opts.c. Make extern.
8201 Update all users.
8202 (lto_input_string): Rename from input_string. Make extern.
8203 Update all users.
8204 * lto-streamer-out.c (lto_output_string_with_length): Rename from
8205 output_string_with_length.
8206 Output 0 to indicate a non-NULL string. Update all callers to
8207 not emit 0.
8208 (lto_output_string): Rename from output_string. Make extern.
8209 Update all users.
8210 (lto_output_decl_state_streams): Make extern.
8211 (lto_output_decl_state_refs): Make extern.
8212 * lto-streamer.h (lto_input_string): Declare.
8213 (lto_input_data_block): Declare.
8214 (lto_output_string): Declare.
8215 (lto_output_string_with_length): Declare.
8216 (lto_output_decl_state_streams): Declare.
8217 (lto_output_decl_state_refs): Declare.
8218
cfef45c8
RG
82192011-03-24 Richard Guenther <rguenther@suse.de>
8220
8221 PR tree-optimization/46562
8222 * tree.c (build_invariant_address): New function.
8223 * tree.h (build_invariant_address): Declare.
8224 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
8225 a renamed function moved ...
8226 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
8227 Take valueization callback parameter.
8228 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
8229 * gimple-fold.h: New file.
8230 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
8231 (ccp_fold, fold_const_aggregate_ref,
8232 fold_ctor_reference, fold_nonarray_ctor_reference,
8233 fold_array_ctor_reference, fold_string_cst_ctor_reference,
8234 get_base_constructor): Move ...
8235 * gimple-fold.c: ... here.
8236 (gimple_fold_stmt_to_constant_1): New function
8237 split out from ccp_fold. Take a valueization callback parameter.
8238 Valueize all operands.
8239 (gimple_fold_stmt_to_constant): New wrapper function.
8240 (fold_const_aggregate_ref_1): New function split out from
8241 fold_const_aggregate_ref. Take a valueization callback parameter.
8242 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
8243 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
8244 invariant POINTER_PLUS_EXPRs to invariant form.
8245 (vn_valueize): New function.
8246 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
8247 * tree-vrp.c (vrp_valueize): New function.
8248 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
8249 to fold statements to constants.
8250 * tree-ssa-pre.c (eliminate): Properly guard propagation of
8251 function declarations.
8252 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
8253 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
8254
5e0a7e40
RS
82552011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
8256
8257 * config/h8300/predicates.md (jump_address_operand): Fix register
8258 mode check.
8259
bfe068c3
IR
82602011-03-24 Ira Rosen <ira.rosen@linaro.org>
8261
8262 * doc/invoke.texi (max-stores-to-sink): Document.
8263 * params.h (MAX_STORES_TO_SINK): Define.
8264 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
8265 if either vectorization or if-conversion is disabled.
8266 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
8267 tree-vect-data-refs.c vect_equal_offsets.
8268 (dr_equal_offsets_p): New function.
8269 (find_data_references_in_bb): Remove static.
8270 * tree-data-ref.h (find_data_references_in_bb): Declare.
8271 (dr_equal_offsets_p): Likewise.
8272 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
8273 (vect_drs_dependent_in_basic_block): Update calls to
8274 vect_equal_offsets.
8275 (vect_check_interleaving): Likewise.
8276 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
8277 (cond_if_else_store_replacement): Rename to...
8278 (cond_if_else_store_replacement_1): ... this. Change arguments and
8279 documentation.
8280 (cond_if_else_store_replacement): New function.
8281 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
8282 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
8283
4908b0bf
CLT
82842011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
8285
8286 PR target/46934
8287 * config/arm/arm.md (casesi): Use the gen_int_mode() function
8288 to subtract lower bound instead of GEN_INT().
8289
2be478a2
JW
82902011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
8291
8292 PR other/48179
8293 PR other/48221
8294 PR other/48234
8295 * doc/extend.texi (Alignment): Move section to match order in TOC.
8296 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
8297 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
8298
0c617be4
JL
82992011-03-23 Jeff Law <law@redhat.com>
8300
8301 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
8302 before removing the edge.
8303
8304 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
8305 it may have been freed by redirect_branch_edge or
8306 redirect_edge_succ_nodup.
8307
58da96fe
RG
83082011-03-23 Richard Guenther <rguenther@suse.de>
8309
c78dd519 8310 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
8311 (check_va_list_escapes): Likewise.
8312 (check_all_va_list_escapes): Likewise.
8313
b8beb4d1
RG
83142011-03-23 Richard Guenther <rguenther@suse.de>
8315
8316 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
8317 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
8318 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
8319 (alias.o): Likewise.
8320 (ipa-type-escape.o): Remove.
8321 (ipa-struct-reorg.o): Likewise.
8322 (GTFILES): Remove ipa-struct-reorg.c.
8323 * alias.c: Do not include ipa-type-escape.h.
8324 * tree-ssa-alias.c: Likewise.
8325 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
8326 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
8327 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
8328 and ipa-type-escape passes.
8329 * tree-pass.h (pass_ipa_type_escape): Remove.
8330 (pass_ipa_struct_reorg): Likewise.
8331 * ipa-struct-reorg.h: Remove.
8332 * ipa-struct-reorg.c: Likewise.
8333 * ipa-type-escape.h: Likewise.
8334 * ipa-type-escape.c: Likewise.
8335 * doc/invoke.texi (-fipa-struct-reorg): Remove.
8336 (--param struct-reorg-cold-struct-ratio): Likewise.
8337 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8338 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
8339 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
8340
f137aa63
AK
83412011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8342
8343 * config/s390/2084.md: Enable all insn reservations also for z9_ec
8344 cpu attribute value.
8345 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
8346 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
8347 * config/s390/s390.c (processor_flags_table): New constant array.
8348 (s390_handle_arch_option): Remove.
8349 (s390_handle_option): Remove s390_handle_arch_option invocations
8350 and OPT_mwarn_framesize_ handling.
8351 (s390_option_override): Remove s390_handle_arch_option invocation.
8352 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
8353 warnings.
8354 * config/s390/s390.md (cpu attribute): Add z9_ec value.
8355 * config/s390/s390.opt (s390_tune, s390_arch)
8356 (march=): Replace s390_arch_option enum and values with
8357 processor_type. Set variable name to s390_arch. Set
8358 initialization value.
8359 (mtune=): Replace s390_arch_option with processor_type. Set
8360 variable name to s390_tune. Set initialization value.
8361
bf90208f
JB
83622011-03-23 Julian Brown <julian@codesourcery.com>
8363
8364 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
8365 accesses which are not naturally aligned.
8366
3460fdf3
RS
83672011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8368
8369 PR target/47553
8370 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
8371
a5c7d693
RS
83722011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
8373
8374 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
8375 parameter from "int" to "enum insn_code".
8376 (expand_operand_type): New enum.
8377 (expand_operand): New structure.
8378 (create_expand_operand): New function.
8379 (create_fixed_operand, create_output_operand): Likewise
8380 (create_input_operand, create_convert_operand_to): Likewise.
8381 (create_convert_operand_from, create_address_operand): Likewise.
8382 (create_integer_operand): Likewise.
8383 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
8384 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8385 (expand_insn, expand_jump_insn): Likewise.
8386 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
8387 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
8388 (expand_movstr, expand_builtin___clear_cache): Likewise.
8389 (expand_builtin_lock_release): Likewise.
8390 * explow.c (allocate_dynamic_stack_space): Likewise.
8391 (probe_stack_range): Likewise. Allow check_stack to FAIL,
8392 and use the default handling in that case.
8393 * expmed.c (check_predicate_volatile_ok): Delete.
8394 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
8395 (emit_cstore): Likewise.
8396 * expr.c (emit_block_move_via_movmem): Likewise.
8397 (set_storage_via_setmem, expand_assignment): Likewise.
8398 (emit_storent_insn, try_casesi): Likewise.
8399 (emit_single_push_insn): Likewise. Allow the expansion to fail.
8400 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
8401 (expand_vec_shift_expr, expand_binop_directly): Likewise.
8402 (expand_twoval_unop, expand_twoval_binop): Likewise.
8403 (expand_unop_direct, emit_indirect_jump): Likewise.
8404 (emit_conditional_move, vector_compare_rtx): Likewise.
8405 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
8406 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
8407 (expand_sync_lock_test_and_set): Likewise.
8408 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
8409 (emit_unop_insn): Likewise.
8410 (expand_copysign_absneg): Change icode to an insn_code.
8411 (create_convert_operand_from_type): New function.
8412 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
8413 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
8414 (expand_insn, expand_jump_insn): Likewise.
8415 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
8416 than const_int_operand for operand 2.
8417
78fadbab
AK
84182011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8419
8420 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
8421 if possible.
8422
5f02387d
NF
84232011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8424
8425 * emit-rtl.c (emit_pattern_before_noloc): New function.
8426 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
8427 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
8428 (emit_pattern_after_noloc): New function.
8429 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
8430 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
8431
fdf3e18a
NF
84322011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8433
8434 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
8435 (__ffsDI2): Likewise.
8436
42d085c1
RH
84372011-03-22 Richard Henderson <rth@redhat.com>
8438
8439 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
8440 of !TARGET_ABI_OPEN_VMS.
8441 (alpha_trampoline_init, alpha_start_function): Likewise.
8442 (alpha_expand_epilogue, alpha_file_start): Likewise.
8443 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
8444 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
8445 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
8446 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
8447 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
8448
cabbe12a
JM
84492011-03-22 Joseph Myers <joseph@codesourcery.com>
8450
8451 * config/s390/s390-opts.h: New.
8452 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
8453 s390_arch_flags, s390_warn_framesize, s390_stack_size,
8454 s390_stack_guard): Remove.
8455 (s390_handle_arch_option): Return void. Take enum
8456 s390_arch_option value instead of string and searching array.
8457 (s390_handle_option): Don't assert that global structures are in
8458 use. Access variables via opts pointer. Use error_at. Don't use
8459 sscanf for -mstack-guard= or -mstack-size=. Update call to
8460 s390_handle_arch_option.
8461 (s390_option_override): Update call to s390_handle_arch_option.
8462 (s390_emit_prologue): Use %d format for s390_stack_size in
8463 diagnostic. Use %wd for HOST_WIDE_INT.
8464 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
8465 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
8466 * config/s390/s390.opt (config/s390/s390-opts.h): New
8467 HeaderInclude entry.
8468 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
8469 s390_arch_flags, s390_warn_framesize): New Variable entries.
8470 (s390_arch_option): New Enum and EnumValue entries.
8471 (march=): Use Enum instead of Var.
8472 (mstack-guard=, mstack-size=): Use UInteger and Var.
8473 (mtune=): Use Enum.
8474
05b12036
JM
84752011-03-22 Joseph Myers <joseph@codesourcery.com>
8476
8477 * config/score/score.c (score_handle_option): Don't assert that
8478 global structures are in use. Access target_flags via opts
8479 pointer. Use value of -march= option to determine target_flags
8480 settings.
8481 * config/score/score.opt (march=): Use Enum.
8482 (score_arch): New Enum and EnumValue entries.
8483
dd51e35a
JM
84842011-03-22 Joseph Myers <joseph@codesourcery.com>
8485
8486 * config/mep/mep.c (option_mtiny_specified): Remove.
8487 (mep_option_override): Move register handling for -mivc2 from
8488 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
8489 instead of option_mtiny_specified.
8490 (mep_handle_option): Access target_flags via opts pointer. Don't
8491 assert that global structures are in use. Defer part of -mivc2
8492 handling and move it to mep_option_override.
8493 * config/mep/mep.opt (IVC2): New Mask entry.
8494 (mivc2): Use Var and Defer instead of Mask.
8495
4a8d3d91
JM
84962011-03-22 Joseph Myers <joseph@codesourcery.com>
8497
8498 * config/v850/v850-opts.h: New.
8499 * config/v850/v850.c (small_memory): Replace with
8500 small_memory_physical_max array. Make that array static const.
8501 (v850_handle_memory_option): Take integer value of argument. Take
8502 gcc_options pointer, option text and location. Return void.
8503 Update for changes to small memory structures.
8504 (v850_handle_option): Access target_flags via opts pointer. Don't
8505 assert that global structures are in use. Update calls to
8506 v850_handle_memory_option.
c78dd519
UB
8507 (v850_encode_data_area): Update references to small memory settings.
8508 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
8509 (enum small_memory_type): Move to v850-opts.h.
8510 * config/v850/v850.opt (config/v850/v850-opts.h): New
8511 HeaderInclude entry.
8512 (small_memory_max): New Variable entry.
8513 (msda): Replace by pair of options msda= and msda-. Use UInteger.
8514 (mtda, mzda): Likewise.
8515
117fdbfa
JM
85162011-03-22 Joseph Myers <joseph@codesourcery.com>
8517
8518 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
8519 pointer. Don't assert that global structures are in use.
8520
d715091c
JM
85212011-03-22 Joseph Myers <joseph@codesourcery.com>
8522
8523 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
8524 via opts pointer. Don't assert that global structures are in use.
8525
1bb721dc
JM
85262011-03-22 Joseph Myers <joseph@codesourcery.com>
8527
8528 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
8529 (munix=93): Use Var.
8530 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
8531 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
8532 * config/pa/pa-opts.h: New.
8533 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
8534 (pa_handle_option): Don't assert that global structures are in
8535 use. Access target_flags via opts pointer. Don't handle
8536 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
8537 OPT_munix_98 here.
8538 (pa_option_override): Handle deferred OPT_mfixed_range_.
8539
cd8d8754
JM
85402011-03-22 Joseph Myers <joseph@codesourcery.com>
8541
8542 * config/mn10300/mn10300-opts.h: New.
8543 * config/mn10300/mn10300.c (mn10300_processor,
8544 mn10300_tune_string): Remove.
8545 (mn10300_handle_option): Don't assert that global structures are
8546 in use. Access mn10300_processor via opts pointer. Don't handle
8547 OPT_mtune_ here.
8548 * config/mn10300/mn10300.h (enum processor_type): Move to
8549 mn10300-opts.h.
8550 (mn10300_processor): Remove.
8551 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
8552 HeaderInclude entry.
8553 (mn10300_processor): New Variable entry.
8554 (mtune=): Use Var.
8555
24e6e6b1
JM
85562011-03-22 Joseph Myers <joseph@codesourcery.com>
8557
8558 * config/microblaze/microblaze.c: Don't include opts.h.
8559 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
8560 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
8561 (mno-clearbss): Use Var and Warn.
8562
8a784afb
JM
85632011-03-22 Joseph Myers <joseph@codesourcery.com>
8564
8565 * config/m32r/m32r-opts.h: New.
8566 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
8567 (m32r_handle_option): Don't assert that global structures are in
8568 use. Access target_flags and m32r_cache_flush_func via opts
8569 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
8570 OPT_mno_flush_trap here.
8571 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
8572 include of m32r-opts.h.
8573 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
8574 HeaderInclude entry.
8575 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
8576 (mmodel=): Use Enum and Var.
8577 (m32r_model): New Enum and EnumValue entries.
8578 (mno-flush-trap): Use Var.
8579 (msdata=): Use Enum and Var.
8580 (m32r_sdata): New Enum and EnumValue entries.
8581
bbfc9a8c
JM
85822011-03-22 Joseph Myers <joseph@codesourcery.com>
8583
8584 * config/m32c/m32c.c: Don't include opts.h.
8585 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
8586 m32c_handle_option): Remove.
8587 (m32c_option_override): Check global_options_set.x_target_memregs
8588 instead of target_memregs_set.
8589 * config/m32c/m32c.h (target_memregs): Remove.
8590 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
8591 variable.
8592
e24b8335
JM
85932011-03-22 Joseph Myers <joseph@codesourcery.com>
8594
8595 * config/iq2000/iq2000-opts.h: New.
8596 * config/iq2000/iq2000.c: Don't include opts.h.
8597 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 8598 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
8599 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
8600 HeaderInclude entry.
8601 (iq2000_tune): New Variable entry.
8602 (march=): Add comment. Use Enum.
8603 (iq2000_arch): New Enum and EnumValue entries.
8604 (mcpu=): Use Enum and Var.
8605 (iq2000_tune): New Enum and EnumValue entries.
8606
e6cc0c98
JM
86072011-03-22 Joseph Myers <joseph@codesourcery.com>
8608
8609 * config/ia64/ia64-opts.h: New.
8610 * config/ia64/ia64.c (ia64_tune): Remove.
8611 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
8612 here. Use error_at.
8613 (ia64_option_override): Handle deferred OPT_mfixed_range_.
8614 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
8615 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
8616 HeaderInclude entry.
8617 (ia64_tune): New Variable entry.
8618 (mfixed-range=): Use Defer and Var.
8619 (mtune=): Use Enum and Var.
8620 (ia64_tune): New Enum and EnumValue entries.
8621
db25893c
JM
86222011-03-22 Joseph Myers <joseph@codesourcery.com>
8623
8624 * config/frv/frv-opts.h: New.
8625 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
8626 frv-opts.h.
8627 (frv_cpu_type): Remove.
8628 * config/frv/frv.c: Don't include opts.h.
8629 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 8630 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
8631 (frv_cpu_type): New Variable entry.
8632 (frv_cpu): New Enum and EnumValue entries.
8633
6c223f5d
JM
86342011-03-22 Joseph Myers <joseph@codesourcery.com>
8635
8636 * config/cris/cris.c (cris_handle_option): Access target_flags via
8637 opts pointer. Don't assert that global structures are in use.
8638 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
8639 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
8640
bbd399cf
JM
86412011-03-22 Joseph Myers <joseph@codesourcery.com>
8642
8643 * config/bfin/bfin-opts.h: New.
8644 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
8645 bfin_si_revision, bfin_workarounds): Remove.
8646 (bfin_cpus): Make static const.
8647 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
8648 not bfin_lib_id_given.
8649 (bfin_handle_option): Don't set bfin_lib_id_given. Access
8650 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 8651 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
8652 * config/bfin/bfin.h: Include bfin-opts.h.
8653 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
8654 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
8655 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
8656 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
8657 entries.
8658
5e1b4d5a
JM
86592011-03-22 Joseph Myers <joseph@codesourcery.com>
8660
8661 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
8662 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
8663 or -msoft-float here.
8664 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
8665 -msoft-float and -mhard-float.
c78dd519 8666 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
8667 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8668 msoft-float.
8669 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
8670 -msoft-float.
8671 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
8672 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
8673 not mhard-float.
8674 (LIBGCC_SPEC): Don't handle -msoft-float.
8675 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
8676 -mhard-float.
8677 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
8678 msoft-float.
8679 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
8680 -mfloat-abi=*, not -msoft-float and -mhard-float.
8681 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
8682 -msoft-float.
8683 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
8684 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
8685 mhard-float and msoft-float.
8686 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
8687 mfloat-abi=soft in comments, not mhard-float and msoft-float.
8688 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
8689 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
8690 mhard-float.
8691 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
8692 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
8693 msoft-float.
8694 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
8695 not mhard-float.
8696 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
8697 not msoft-float.
8698
800d1de1
RH
86992011-03-22 Richard Henderson <rth@redhat.com>
8700
8701 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
8702 TARGET_ABI_WINDOWS_NT.
8703 (alpha_output_function_end_prologue): Likewise.
8704 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
8705 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8706 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
8707 (trap, *movsi_nt_vms): Likewise.
8708 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
8709 (*tablejump_osf_nt_internal): Remove.
8710 * config/alpha/predicates.md (input_operand): Only test Pmode.
8711
c59ddd2b
JM
87122011-03-22 Joseph Myers <joseph@codesourcery.com>
8713
8714 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
8715 via opts pointer. Use error_at. Don't assert that global
8716 structures are in use.
8717
1333f97f
JM
87182011-03-22 Joseph Myers <joseph@codesourcery.com>
8719
8720 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
8721 (ix86_handle_option): Access ix86_isa_flags and
8722 ix86_isa_flags_explicit via opts pointer. Don't assert that
8723 global structures are in use.
8724 (ix86_function_specific_save, ix86_function_specific_restore):
8725 Update ix86_isa_flags_explicit field name.
c78dd519 8726 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
8727 (ix86_isa_flags_explicit): Rename TargetSave entry to
8728 x_ix86_isa_flags_explicit.
8729
75db85d8
RH
87302011-03-22 Richard Henderson <rth@redhat.com>
8731
8732 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
8733 (alpha_option_override, direct_return): Likewise.
8734 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
8735 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
8736 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
8737 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
8738 (alpha_expand_epilogue, alpha_end_function): Likewise.
8739 (alpha_init_libfuncs): Likewise.
8740 (struct machine_function): Remove unicosmk members.
8741 (print_operand) ['t']: Remove.
8742 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
8743 unicosmk_output_module_name, unicosmk_output_common,
8744 current_section_align, unicosmk_output_text_section_asm_op,
8745 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
8746 unicosmk_section_type_flags, unicosmk_unique_section,
8747 unicosmk_asm_named_section, unicosmk_insert_attributes,
8748 unicosmk_output_align, unicosmk_defer_case_vector,
8749 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
8750 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
8751 unicosmk_output_ssib, unicosmk_add_call_info_word,
8752 unicosmk_extern_head, unicosmk_output_default_externs,
8753 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
8754 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
8755 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
8756 * config/alpha/alpha-protos.h: Update.
8757 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
8758 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
8759 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
8760 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
8761 (*mulsi_se, mulvsi3): Likewise.
8762 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
8763 (*divmodsi_internal, call, call_value, realign): Likewise.
8764 (moddi3, umoddi3): Likewise; remove duplicate expander.
8765 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
8766 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
8767 (*movdi_nofix): Remove r/U alternative.
8768 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
8769 * config/alpha/constraints.md ("U"): Remove.
8770 * config/alpha/predicates.md (call_operand"): Don't test
8771 TARGET_ABI_UNICOSMK.
8772
96e45421
JM
87732011-03-22 Joseph Myers <joseph@codesourcery.com>
8774
8775 * target.def (handle_option): Take gcc_options and
8776 cl_decoded_option pointers and location_t.
8777 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
8778 * doc/tm.texi: Regenerate.
8779 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
8780 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
8781 * lto-opts.c (lto_reissue_options): Generate option structure for
8782 targetm.handle_option call.
8783 * opts.c (target_handle_option): Update call to
8784 targetm.handle_option. Remove assertions about values now passed
8785 down to hook.
8786 * targhooks.c (default_target_handle_option): New.
8787 * targhooks.h (default_target_handle_option): Declare.
8788 * config/alpha/alpha.c: Include opts.h.
8789 (alpha_handle_option): Update to new hook interface.
8790 * config/arm/arm.c: Include opts.h.
8791 (arm_handle_option): Update to new hook interface.
8792 * config/arm/t-arm (arm.o): Update dependencies.
8793 * config/bfin/bfin.c: Include opts.h.
8794 (bfin_handle_option): Update to new hook interface.
8795 * config/cris/cris.c: Include opts.h.
8796 (cris_handle_option): Update to new hook interface.
8797 * config/frv/frv.c: Include opts.h.
8798 (frv_handle_option): Update to new hook interface.
8799 * config/i386/i386.c: Include opts.h.
8800 (ix86_handle_option): Update to new hook interface.
8801 (ix86_valid_target_attribute_inner_p): Generate option structure
8802 for call to ix86_handle_option.
8803 * config/i386/t-i386 (i386.o): Update dependencies.
8804 * config/ia64/ia64.c: Include opts.h.
8805 (ia64_handle_option): Update to new hook interface.
8806 * config/ia64/t-ia64 (ia64.o): Update dependencies.
8807 * config/iq2000/iq2000.c: Include opts.h.
8808 (iq2000_handle_option): Update to new hook interface.
8809 * config/m32c/m32c.c: Include opts.h.
8810 (m32c_handle_option): Update to new hook interface.
8811 * config/m32r/m32r.c: Include opts.h.
8812 (m32r_handle_option): Update to new hook interface.
8813 * config/m68k/m68k.c: Include opts.h.
8814 (m68k_handle_option): Update to new hook interface.
8815 * config/mep/mep.c: Include opts.h.
8816 (mep_handle_option): Update to new hook interface.
8817 * config/microblaze/microblaze.c: Include opts.h.
8818 (microblaze_handle_option): Update to new hook interface.
8819 * config/mips/mips.c: Include opts.h.
8820 (mips_handle_option): Update to new hook interface.
8821 * config/mn10300/mn10300.c: Include opts.h.
8822 (mn10300_handle_option): Update to new hook interface.
8823 * config/pa/pa.c: Include opts.h.
8824 (pa_handle_option): Update to new hook interface.
8825 * config/pdp11/pdp11.c: Include opts.h.
8826 (pdp11_handle_option): Update to new hook interface.
8827 * config/rs6000/rs6000.c: Include opts.h.
8828 (rs6000_handle_option): Update to new hook interface.
8829 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
8830 * config/rx/rx.c: Include opts.h.
8831 (rx_handle_option): Update to new hook interface.
8832 * config/s390/s390.c: Include opts.h.
8833 (s390_handle_option): Update to new hook interface.
8834 * config/score/score.c: Include opts.h.
8835 (score_handle_option): Update to new hook interface.
8836 * config/sh/sh.c: Include opts.h.
8837 (sh_handle_option): Update to new hook interface.
8838 * config/sparc/sparc.c: Include opts.h.
8839 (sparc_handle_option): Update to new hook interface.
8840 * config/v850/v850.c: Include opts.h.
8841 (v850_handle_option): Update to new hook interface.
8842
66017846
JM
88432011-03-22 Joseph Myers <joseph@codesourcery.com>
8844
8845 * gcc.c (driver_unknown_option_callback): Only permit and save
8846 unknown -Wno- options.
8847 (driver_wrong_lang_callback): Save options directly instead of via
8848 driver_unknown_option_callback.
8849
e8b97ccd
EB
88502011-03-22 Eric Botcazou <ebotcazou@adacore.com>
8851
8852 * combine.c (simplify_set): Try harder to find the best CC mode when
8853 simplifying a nested COMPARE on the RHS.
8854
ebb9f8b0
JM
88552011-03-22 Joseph Myers <joseph@codesourcery.com>
8856
8857 * config/alpha/gnu.h: Remove.
8858 * config/arc: Remove directory.
8859 * config/arm/netbsd.h: Remove.
8860 * config/arm/t-pe: Remove.
8861 * config/crx: Remove directory.
8862 * config/i386/netbsd.h: Remove.
8863 * config/m68hc11: Remove directory.
8864 * config/m68k/uclinux-oldabi.h: Remove.
8865 * config/mcore/mcore-pe.h: Remove.
8866 * config/mcore/t-mcore-pe: Remove.
8867 * config/netbsd-aout.h: Remove.
8868 * config/rs6000/gnu.h: Remove.
8869 * config/sh/sh-symbian.h: Remove.
8870 * config/sh/symbian-base.c: Remove.
8871 * config/sh/symbian-c.c: Remove.
8872 * config/sh/symbian-cxx.c: Remove.
8873 * config/sh/symbian-post.h: Remove.
8874 * config/sh/symbian-pre.h: Remove.
8875 * config/sh/t-symbian: Remove.
8876 * config/svr3.h: Remove.
8877 * config/vax/netbsd.h: Remove.
8878 * config.build: Don't handle i[34567]86-*-pe.
8879 * config.gcc: Remove handling of deprecations for most deprecated
8880 targets.
8881 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
8882 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
8883 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
8884 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
8885 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
8886 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
8887 Remove cases.
8888 * config.host: Don't handle i[34567]86-*-pe.
8889 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
8890 (ASM_SPEC32): Don't handle -mcall-gnu.
8891 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
8892 -mcall-gnu.
8893 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
8894 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
8895 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
8896 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
8897 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
8898 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
8899 conditional on SYMBIAN.
8900 * configure.ac: Don't handle powerpc*-*-gnu*.
8901 * configure: Regenerate.
8902 * doc/extend.texi (interrupt attribute): Don't mention CRX.
8903 * doc/install-old.texi (m6811, m6812): Don't mention.
8904 * doc/install.texi (arc-*-elf*): Don't document multilib option.
8905 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
8906 (m68k-uclinuxoldabi): Don't mention.
8907 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
8908 Remove.
8909 (-mcall-gnu): Remove.
8910 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
8911 families): Remove constraint documentation.
8912
999a7d80
MS
89132011-03-22 Marius Strobl <marius@FreeBSD.org>
8914
8915 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
8916 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
8917 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
8918
45540bcf
MM
89192011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8920
8921 PR target/48226
8922 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
8923 vector when peeking at the next token for vector, don't expand the
8924 keywords.
8925
980a0ff4
GJL
89262011-03-21 Georg-Johann Lay <avr@gjlay.de>
8927
8928 * config/avr/avr-protos.h (expand_epilogue): Change prototype
8929 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
8930 * config/avr/avr.c (init_cumulative_args)
8931 (avr_function_arg_advance): Use it.
8932 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
8933 sibcall epilogues.
8934 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
8935 (avr_function_ok_for_sibcall): ...this new function.
8936 (avr_lookup_function_attribute1): New static Function.
8937 (avr_naked_function_p, interrupt_function_p)
8938 (signal_function_p, avr_OS_task_function_p)
8939 (avr_OS_main_function_p): Use it.
8940 * config/avr/avr.md ("sibcall", "sibcall_value")
8941 ("sibcall_epilogue"): New expander.
8942 ("*call_insn", "*call_value_insn"): New insn.
8943 ("call_insn", "call_value_insn"): Remove
8944 ("call", "call_value", "epilogue"): Change expander to handle
8945 sibling calls.
8946
49168734
NC
89472011-03-21 Nick Clifton <nickc@redhat.com>
8948
8949 * doc/invoke.texi (Overall Options): Move closing brace to end of
8950 options list.
8951 (Optimization Options): Add missing @gol.
8952 (Directory Options): Likewise.
8953 (i386 and x86-64 Options): Likewise.
8954 (RS6000 and PowerPC Options): Likewise.
8955 (i386 and x86-64 Windows Options): Likewise.
8956 (V850 Options): Add text missing from descriptions.
8957
bdfe906f
RH
89582011-03-22 Richard Henderson <rth@redhat.com>
8959
8960 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
8961 (avr_incoming_return_addr_rtx): New.
8962 (emit_push_byte): New.
8963 (expand_prologue): Use it. Remove incorrect dwarf annotation for
8964 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
8965 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
8966 (emit_pop_byte): New.
8967 (expand_epilogue): Use it. Pop frame pointer by bytes.
8968 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
8969 (INCOMING_RETURN_ADDR_RTX): New.
8970 (INCOMING_FRAME_SP_OFFSET): New.
8971 (ARG_POINTER_CFA_OFFSET): New.
8972 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
8973 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
8974 (pophi): Remove.
8975
d090a5aa
RH
8976 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
8977
fdf3e18a
NF
89782011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8979
8980 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
8981 (FUNCTION_ARG_ADVANCE): Likewise.
8982 * tm.texi.in: Change references to them to hook references.
8983 * tm.texi: Regenerate.
8984 * targhooks.c (default_function_arg): Eliminate check for target
8985 macro.
8986 (default_function_incoming_arg): Likewise.
8987 (default_function_arg_advance): Likewise.
c78dd519 8988 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
8989 (function_arg_advance): Likewise.
8990 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
8991
009d3fcf
NF
89922011-03-22 Nathan Froyd <froydnj@codesourcery.com>
8993
8994 * tree.c (build_call_1): New function.
8995 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
8996
7bec30e1
RG
89972011-03-22 Richard Guenther <rguenther@suse.de>
8998
8999 PR tree-optimization/48228
9000 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
9001 for single-arg PHIs.
9002
0b7e851b
AB
90032011-03-22 Andrey Belevantsev <abel@ispras.ru>
9004
9005 PR rtl-optimization/48143
9006 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
9007 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
9008 sse2_cvtps2pd): Likewise.
9009
d89afca5
AK
90102011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9011
9012 * recog.c (canonicalize_change_group): Use validate_unshare_change.
9013
f471fe72
RG
90142011-03-22 Richard Guenther <rguenther@suse.de>
9015
9016 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
9017 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
9018 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
9019 and REALIGN_LOAD_EXPR.
9020 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
9021 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
9022 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
9023 DOT_PROD_EXPR case ...
9024 (expand_expr_real_2): ... here.
9025 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
9026 and REALIGN_LOAD_EXPR.
9027 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
9028 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
9029 (vect_create_epilog_for_reduction): Likewise.
9030 (vectorizable_reduction): Likewise.
9031 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
9032 * tree-vect-stmts.c (vectorizable_load): Likewise.
9033
f2f81d57
EB
90342011-03-22 Eric Botcazou <ebotcazou@adacore.com>
9035
9036 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
9037
ab081dd6
AK
90382011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9039
9040 * config/s390/s390.c (s390_delegitimize_address): Fix offset
9041 handling for PLTOFF/GOTOFF.
9042
6fd5332b
NC
90432011-03-22 Nick Clifton <nickc@redhat.com>
9044
9045 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
9046 trailing backslash from the end of the macro definition.
9047
01841ac0
AK
90482011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9049
9050 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
9051 and PLT unspecs.
9052
2ef6ce06
RS
90532011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
9054
9055 * expr.h (prepare_operand): Move to...
9056 * optabs.h (prepare_operand): ...here and change the insn code
9057 parameter from "int" to "enum insn_code".
9058 (insn_operand_matches): Declare.
9059 * expr.c (init_expr_target): Use insn_operand_matches.
9060 (compress_float_constant): Likewise.
9061 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
9062 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
9063 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
9064 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
9065 Likewise.
2ef6ce06
RS
9066 (gen_cond_trap): Likewise.
9067 (prepare_operand): Likewise. Change icode to an insn_code.
9068 (insn_operand_matches): New function.
9069 * reload.c (find_reloads_address_1): Use insn_operand_matches.
9070 * reload1.c (gen_reload): Likewise.
9071 * targhooks.c (default_secondary_reload): Likewise.
9072
9e43ad68
UB
90732011-03-21 Uros Bizjak <ubizjak@gmail.com>
9074
9a96da32
UB
9075 * config/alpha/alpha.md (unspec): New define_c_enum.
9076 (unspecv): Ditto.
9077
90782011-03-21 Uros Bizjak <ubizjak@gmail.com>
9079
9080 PR debug/48214
9e43ad68
UB
9081 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
9082 between a call and its CALL_ARG_LOCATION note.
9083
31408f60
EB
90842011-03-21 Eric Botcazou <ebotcazou@adacore.com>
9085
9086 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
9087
90882011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
9089
9090 PR c/42544
9091 PR c/48197
9092 * c-common.c (shorten_compare): If primopN is first sign-extended
9093 to opN and then zero-extended to result type, set primopN to opN.
9094
9dfd55f5
DJ
90952011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
9096
9097 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
9098 for barrier handlers.
9099
f3c33d9d
MM
91002011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9101
9102 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
9103 UNSPEC constants to be in the unspec enumeration, and redefine
9104 all UNSPECV constants to be in the unspecv enumeration, so that
9105 dumps print which unspec/unspec_volatile this is.
9106 * config/rs6000/vector.md (UNSPEC_*): Ditto.
9107 * config/rs6000/paired.md (UNSPEC_*): Ditto.
9108 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
9109 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
9110 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
9111
9112 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
9113 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
9114 UNSPECV_LWSYNC, since these are used as unspec_volatile.
9115 * config/rs6000/sync.md (isync, lwsync): Ditto.
9116
ac43f774
RG
91172011-03-21 Richard Guenther <rguenther@suse.de>
9118
9119 * params.def (lto-min-partition): Fix typo.
9120
411cdbd8
RG
91212011-03-21 Richard Guenther <rguenther@suse.de>
9122
9123 PR c/47939
9124 * c-decl.c (grokdeclarator): Drop to the main variant only
9125 for array types. Drop flag_gen_aux_info check.
9126
1cd9e416
RG
91272011-03-21 Richard Guenther <rguenther@suse.de>
9128
9129 PR translation/47911
9130 * params.def (lto-partitions): Fix typo.
9131 (lto-min-partition): Fix wording.
9132
ada5ad67
AT
91332011-03-21 Andreas Tobler <andreast@fgznet.ch>
9134
9135 * config/rs6000/t-freebsd: Remove duplication from file.
9136
f9613c9a
RG
91372011-03-21 Richard Guenther <rguenther@suse.de>
9138
9139 PR middle-end/47661
9140 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
9141
9bfbc1eb
RG
91422011-03-21 Richard Guenther <rguenther@suse.de>
9143
9144 PR lto/48210
9145 * params.def (lto-partitions): Require at least 1 partition.
9146
a2268084
RO
91472011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9148
9149 * gthr-solaris.h: Remove.
9150 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
9151 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
9152 (LIB_SPEC): Likewise.
9153 * config/sol2.opt (threads): Remove.
9e43ad68 9154 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
9155 (sparc*-*-solaris2*): Likewise.
9156 * configure.ac (enable_threads): Enable solaris support.
9157 * configure: Regenerate.
9e43ad68 9158 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
9159 * doc/install.texi (Configuration, --enable-threads=lib): Remove
9160 solaris.
9161
c43d9a1b
RO
91622011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9163
9164 * config.gcc: Obsolete *-*-solaris2.8*.
9165 * doc/install.texi (Specific, *-*-solaris2*): Document it.
9166
084239f4
RO
91672011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9168
9169 PR bootstrap/48135
9170 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
9171 reference. Solaris 8 perl works.
9172
64cadbe7
RO
91732011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9174
9175 PR bootstrap/48135
9176 * doc/install.texi (Prerequisites): Move jar etc. up.
9177 Explain support library version requirements.
9178
eb975109
RO
91792011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9180
9181 PR bootstrap/48135
9182 * doc/install.texi (Prerequisites): Move Perl to build
9183 requirements. Always necessary on Solaris 2 with Sun ld.
9184
8a509ffd
RO
91852011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9186
9187 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
9188 binutils 2.21.
9189 (Specific, i?86-*-solaris2.[89]): Likewise.
9190 (Specific, i?86-*-solaris2.10): Likewise.
9191 (Specific, mips-sgi-irix6): Likewise.
9192 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
9193 Update for binutils 2.21.
9194
8fbc58a1
RO
91952011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9196
9197 * configure.ac (gcc_cv_lto_plugin): Fix typo.
9198 Allow -fuse-linker-plugin for non-default plugin linker.
9199 * configure: Regenerate.
9200
7e84ad0b
NP
92012011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
9202
9203 PR bootstrap/48167
9204 * gengtype.c (files_rules): Added rule for cp/parser.h.
9205
2f36e14b
JJ
92062011-03-21 Jakub Jelinek <jakub@redhat.com>
9207
9208 PR target/48213
9209 * config/s390/s390.c (s390_delegitimize_address): Don't call
9210 lowpart_subreg if orig_x has BLKmode.
9211
62d784f7
KT
92122011-03-21 Kai Tietz <ktietz@redhat.com>
9213
9214 PR target/12171
9e43ad68
UB
9215 * doc/plugins.texi: Adjust documentation for plugin register_callback.
9216 * tree.h (attribute_spec): Add new member affects_type_identity.
9217 * attribs.c (empty_attribute_table): Adjust attribute_spec
9218 initializers.
62d784f7
KT
9219 * config/alpha/alpha.c: Likewise.
9220 * config/arc/arc.c: Likewise.
9221 * config/arm/arm.c: Likewise.
9222 * config/avr/avr.c: Likewise.
9223 * config/bfin/bfin.c: Likewise.
9224 * config/crx/crx.c: Likewise.
9225 * config/darwin.h: Likewise.
9226 * config/h8300/h8300.c: Likewise.
9227 * config/i386/cygming.h: Likewise.
9228 * config/i386/i386.c: Likewise.
9229 * config/ia64/ia64.c: Likewise.
9230 * config/m32c/m32c.c: Likewise.
9231 * config/m32r/m32r.c: Likewise.
9232 * config/m68hc11/m68hc11.c: Likewise.
9233 * config/m68k/m68k.c: Likewise.
9234 * config/mcore/mcore.c: Likewise.
9235 * config/mep/mep.c: Likewise.
9236 * config/microblaze/microblaze.c: Likewise.
9237 * config/mips/mips.c: Likewise.
9238 * config/rs6000/rs6000.c: Likewise.
9239 * config/rx/rx.c: Likewise.
9240 * config/sh/sh.c: Likewise.
9241 * config/sol2.h: Likewise.
9242 * config/sparc/sparc.c: Likewise.
9243 * config/spu/spu.c: Likewise.
9244 * config/stormy16/stormy16.c: Likewise.
9245 * config/v850/v850.c: Likewise.
9246
54833ec0
CLT
92472011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
9248
9249 * simplify-rtx.c (simplify_binary_operation_1): Handle
9250 (xor (and A B) C) case when B and C are both constants.
9251
14a41392
MX
92522011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
9253
9254 * tree-dfa.c (add_referenced_var): Fix typo in comment.
9255
806c3492
EB
92562011-03-20 Eric Botcazou <ebotcazou@adacore.com>
9257
9258 PR bootstrap/48168
9259 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
9260
65e0a0f3
JJ
92612011-03-20 Jakub Jelinek <jakub@redhat.com>
9262
9263 PR rtl-optimization/48156
9264 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
9265 assume df and df_lr are not NULL.
9266
b6a75dda
RR
92672011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9268
9269 PR debug/48023
9270 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
9271 between a call and its CALL_ARG_LOCATION note.
9272
5969b52d
KK
92732011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
9274
9275 PR debug/48178
9276 * config/sh/sh.c (find_barrier): Don't emit a constant pool
9277 between a call and its corresponding CALL_ARG_LOCATION note.
9278
f773c2bd
AS
92792011-03-19 Anatoly Sokolov <aesok@post.ru>
9280
9281 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
9282 instead of loop. Use HARD_REGISTER_NUM_P predicate.
9283 * haifa-sched.c (setup_ref_regs): Ditto.
9284 * caller-save.c (add_used_regs_1): Ditto.
9285 * dse.c (look_for_hardregs): Ditto.
9286 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
9287 * sched-rgn.c (check_live_1): Ditto.
9288
8bf872f9
JM
92892011-03-18 Joseph Myers <joseph@codesourcery.com>
9290
9291 * c-decl.c (diagnose_mismatched_decls): Give an error for
9292 redefining a typedef with variably modified type.
9293
ff8e2159
JM
92942011-03-18 Joseph Myers <joseph@codesourcery.com>
9295
9296 * c-decl.c (grokfield): Don't allow typedefs for structures or
9297 unions with no tag by default.
9298 * doc/extend.texi (Unnamed Fields): Update.
9299
16cc4440
UB
93002011-03-18 Uros Bizjak <ubizjak@gmail.com>
9301
9302 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9303 Rewrite using indirect functions.
9304 (lwp_slwpcb): Ditto.
9305 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
9306 (avx_vinsertf128<mode>): Ditto.
9307
e101e12e
AK
93082011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9309
9310 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
9311 unspecs.
9312
4627c7fb
AK
93132011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9314
9315 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 9316 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 9317
2d36b47f
MK
93182011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
9319
9320 PR rtl-optimization/48170
9321 * gcse.c (hoist_code): Remove bogus asserts.
9322
2a3d7659
JL
93232011-03-18 Georg-Johann Lay <avr@gjlay.de>
9324
9325 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
9326 computation for prologue/epilogue.
9327
34c3ef05
RO
93282011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9329
9330 * Makefile.in (check-consistency): Remove.
9331
81f2b976
JJ
93322011-03-18 Jakub Jelinek <jakub@redhat.com>
9333
9334 PR debug/48176
9335 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
9336 arange_table_in_use is 0, but either text_section_used or
9337 cold_text_section_used is true. Don't call it if
9338 !info_section_emitted.
9339
68fd7765
AS
93402011-03-18 Anatoly Sokolov <aesok@post.ru>
9341
9342 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
9343 FUNCTION_VALUE_REGNO_P): Remove.
9344 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
9345 Remove.
9346 * config/avr/avr.c (avr_ret_register): Make static inline.
9347 (avr_function_value_regno_p): New function.
9348 (avr_libcall_value): Make static. Add 'func' argument.
9349 (avr_function_value): Make static. Rename 'func' argument to
9350 'fn_decl_or_type', forward it to avr_libcall_value. Call
9351 avr_ret_register function instead of RET_REGISTER macro.
9352 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
9353
b4ef8aac
JM
93542011-03-18 Jason Merrill <jason@redhat.com>
9355
9356 PR c++/23372
9357 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
9358
09a52fc3
RG
93592011-03-18 Richard Guenther <rguenther@suse.de>
9360
9361 * doc/install.texi (--enable-gold): Remove.
9362 (--with-plugin-ld): Document.
9363 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
9364
2a3d7659 93652011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
9366
9367 PR middle-end/47790
9368 * expr.c (optimize_bitfield_assignment_op): Revamp to work
9369 again after expansion changes.
9370
2abbb0fe
CLT
93712011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
9372
9373 * combine.c (try_combine): Do simplification only call of
9374 subst() on i2 even when i1 is present. Update comments.
9375
2efd0aa6
KK
93762011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
9377
9378 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
9379 and UNSPEC_PCREL_SYMOFF.
9380
30a49b23
AK
93812011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9382
9383 * config/s390/s390.md: Use define_c_enum for the unspec constant
9384 definitions.
9385
419e1853
JJ
93862011-03-18 Richard Henderson <rth@redhat.com>
9387 Jakub Jelinek <jakub@redhat.com>
9388
9389 PR bootstrap/48161
9390 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
9391 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
9392
37875856
L
93932011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9394
9395 PR middle-end/47725
9396 * combine.c (cant_combine_insn_p): Don't check zero/sign
9397 extended hard registers.
9398
76069764
L
93992011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9400
9401 PR middle-end/47725
9402 * combine.c (cant_combine_insn_p): Check zero/sign extended
9403 hard registers.
9404
24da2019
AS
94052011-03-17 Anatoly Sokolov <aesok@post.ru>
9406
9407 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
9408 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
9409 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
9410 Change return type to bool.
9411 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9412
a82ff31f
JJ
94132011-03-17 Jakub Jelinek <jakub@redhat.com>
9414
8b29c87a
JJ
9415 PR debug/48163
9416 * var-tracking.c (prepare_call_arguments): If CALL target
9417 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
9418 pc instead of looking it up using cselib_lookup and use
9419 Pmode for it if x has VOIDmode.
9420 * dwarf2out.c (gen_subprogram_die): If also both first and
9421 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
9422
a82ff31f
JJ
9423 PR debug/48163
9424 * function.c (assign_parms): For data.passed_pointer parms
9425 use MEM of data.entry_parm instead of data.entry_parm itself
9426 as DECL_INCOMING_RTL.
9427 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
9428 also when passed and declared mode is the same, DECL_RTL
9429 is a MEM with pseudo as address and DECL_INCOMING_RTL is
9430 a MEM too.
9431
82ce305c
JL
94322011-03-16 Jeff Law <law@redhat.com>
9433
9434 PR rtl-optimization/37273
9435 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9436 handle them like argument loads from stack slots. Do not double
9437 count memory for memory constants and argument loads from stack slots.
9438
fe58e02b
L
94392011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9440
9441 PR debug/48160
9442 * var-tracking.c (prepare_call_arguments): Check SUBREG.
9443
6fc4dbc7
L
94442011-03-17 H.J. Lu <hongjiu.lu@intel.com>
9445
9446 PR target/48171
9447 * config/i386/i386.opt: Add Save to -mavx and -mfma.
9448
db3ed0b3
JJ
94492011-03-17 Jakub Jelinek <jakub@redhat.com>
9450
8054a389
JJ
9451 PR bootstrap/48153
9452 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
9453 if dwarf_strict.
9454 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
9455 Clear call_arg_locations and call_arg_loc_last always.
9456
db3ed0b3
JJ
9457 PR middle-end/48152
9458 * var-tracking.c (prepare_call_arguments): If argument needs to be
9459 passed by reference, adjust argtype and mode.
9460
1bce4ff3
RG
94612011-03-17 Richard Guenther <rguenther@suse.de>
9462
9463 PR middle-end/48134
9464 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
9465 a value make sure to fold the statement.
9466
7c71147d
CLT
94672011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
9468
9469 PR target/43872
9470 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
9471 return condition with !cfun->calls_alloca.
9472
0e1ee172
RG
94732011-03-17 Richard Guenther <rguenther@suse.de>
9474
9475 PR bootstrap/48148
9476 * lto-cgraph.c (input_overwrite_node): Clear the abstract
9477 origin for decls in other ltrans units.
9478 (input_varpool_node): Likewise.
9479
f8bce518
RG
94802011-03-17 Richard Guenther <rguenther@suse.de>
9481
9482 PR middle-end/48165
9483 * tree-object-size.c (compute_object_offset): Properly return
9484 the offset operand of MEM_REFs as sizetype.
9485
1b6fa860
JJ
94862011-03-17 Jakub Jelinek <jakub@redhat.com>
9487
dabd47e7
JJ
9488 PR rtl-optimization/48141
9489 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
9490 * dse.c: Include params.h.
9491 (active_local_stores_len): New variable.
9492 (add_wild_read, dse_step1): Clear it when setting active_local_stores
9493 to NULL.
9494 (record_store, check_mem_read_rtx): Decrease it when removing
9495 from the chain.
9496 (scan_insn): Likewise. Increase it when adding to chain, if it
9497 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
9498 set active_local_stores to NULL before the addition.
9499 * Makefile.in (dse.o): Depend on $(PARAMS_H).
9500
1b6fa860
JJ
9501 PR rtl-optimization/48141
9502 * dse.c (record_store): If no positions are needed in an insn
9503 that cannot be deleted, at least unchain it from active_local_stores.
9504
7b5cb7d6
DS
95052011-03-16 Dodji Seketeli <dodji@redhat.com>
9506
9507 PR debug/47510
9508 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
9509 (lookup_type_die_strip_naming_typedef): ... here.
9510 (get_context_die): Use it.
9511 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
9512 the anonymous struct named by the naming typedef.
9513
585e9d9d
L
95142011-03-16 H.J. Lu <hongjiu.lu@intel.com>
9515
9516 PR target/48154
9517 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
9518 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9519
6261ab0e
JL
95202011-03-16 Jeff Law <law@redhat.com>
9521
9522 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 9523 check for operands of conditional. Allow type to be a pointer.
6261ab0e 9524
0b0081ec
RG
95252011-03-16 Richard Guenther <rguenther@suse.de>
9526
9527 PR tree-optimization/48149
9528 * fold-const.c (fold_binary_loc): Fold
9529 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
9530
64a3d647
RG
95312011-03-16 Richard Guenther <rguenther@suse.de>
9532
9533 PR tree-optimization/26134
9534 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
9535 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
9536 (non_rewritable_mem_ref_base): Handle complex type component
9537 accesses, constrain offsets for vector and complex extracts
9538 more properly.
9539
ef13324e
RG
95402011-03-16 Richard Guenther <rguenther@suse.de>
9541
9542 PR tree-optimization/48146
9543 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
9544 operands avoiding the need for renaming.
9545
f0eddb90
RG
95462011-03-16 Richard Guenther <rguenther@suse.de>
9547
9548 * gimple-fold.c (maybe_fold_reference): Open-code relevant
9549 constant folding. Move MEM_REF canonicalization first.
9550 Rely on fold_const_aggregate_ref for initializer folding.
9551 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
9552
e42348b8
JJ
95532011-03-16 Jakub Jelinek <jakub@redhat.com>
9554
29f10e71
JJ
9555 PR middle-end/48136
9556 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
9557 arg0/arg1 or their arguments are always fold converted to matching
9558 types.
9559
e42348b8
JJ
9560 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
9561 to nargs.
9562
55b46574
RO
95632011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9564
9565 PR lto/46944
9566 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
9567 Handle in-tree gold.
9568 (ld_vers): Extract binutils version for gold.
9569 (gcc_cv_ld_hidden): Handle gold here.
9570 (gcc_cv_lto_plugin): Determine level of linker plugin support.
9571 * configure: Regenerate.
9572 * config.in: Regenerate.
9573 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
9574 -fuse-linker-plugin otherwise.
9575 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
9576 (LINK_COMMAND_SPEC): Use it.
9577 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
9578
2b1c5433
JJ
95792011-03-16 Jakub Jelinek <jakub@redhat.com>
9580
c2969d8e
JJ
9581 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
9582 * calls.c: Remove debug.h include.
9583 (emit_call_1): Don't call virtual_call_token debug hook.
9584 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
9585 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
9586 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
9587 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
9588 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
9589 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
9590 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
9591 dwarf2out_virtual_call): Remove.
9592 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
9593 copy_call_info and virtual_call hooks.
9594 (dwarf2out_init): Don't initialize vcall_insn_table,
9595 debug_dcall_section and debug_vcall_section.
9596 (prune_unused_types): Don't mark nodes from dcall_table.
9597 (dwarf2out_finish): Don't output dcall or vcall tables.
9598 * final.c (final_scan_insn): Don't call direct_call or
9599 virtual_call debug hooks.
9600 * debug.h (struct gcc_debug_hooks): Remove direct_call,
9601 virtual_call_token, copy_call_info and virtual_call hooks.
9602 (debug_nothing_uid): Remove prototype.
9603 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
9604 copy_call_info and virtual_call hooks.
9605 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9606 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
9607 * debug.c (do_nothing_debug_hooks): Likewise.
9608 (debug_nothing_uid): Remove.
9609 * doc/invoke.texi (-fenable-icf-debug): Remove.
9610 * common.opt (-fenable-icf-debug): Likewise.
9611
325f5379
JJ
9612 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
9613 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
9614 call's MEM. Handle functions returning aggregate through a hidden
9615 first pointer. For virtual calls add clobbered pc to call arguments
9616 chain.
9617 * dwarf2out.c (gen_subprogram_die): Emit
9618 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
9619 can't be emitted.
9620
a58a8e4b
JJ
9621 PR debug/45882
9622 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
9623 * rtl.h (ENTRY_VALUE_EXP): Define.
9624 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
9625 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9626 * print-rtl.c (print_rtx): Likewise.
9627 * gengtype.c (adjust_field_rtx_def): Likewise.
9628 * var-tracking.c (vt_add_function_parameter): Adjust
9629 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
9630 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
9631 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
9632 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
9633 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
9634
2b1c5433
JJ
9635 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
9636 Call var_location debug hook even on CALL_INSNs.
9637 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
9638 * rtl.def (ENTRY_VALUE): New.
9639 * dwarf2out.c: Include cfglayout.h.
9640 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
9641 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
9642 (struct call_arg_loc_node): New type.
9643 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
9644 tail_call_site_count): New variables.
9645 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
9646 DW_TAG_GNU_call_site_parameter.
9647 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
9648 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
9649 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
9650 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
9651 and DW_AT_GNU_all_source_call_sites.
9652 (mem_loc_descriptor): Handle ENTRY_VALUE.
9653 (add_src_coords_attributes): Don't add enything if
9654 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
9655 (dwarf2out_abstract_function): Save and clear call_arg_location,
9656 call_site_count and tail_call_site_count around dwarf2out_decl call.
9657 (gen_call_site_die): New function.
9658 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
9659 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
9660 (dwarf2out_function_decl): Clear call_arg_locations,
9661 call_arg_loc_last, set call_site_count and tail_call_site_count
9662 to -1 and free block_map.
9663 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
9664 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
9665 followed by any real instructions.
9666 (dwarf2out_begin_function): Set call_site_count and
9667 tail_call_site_count to 0.
9668 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
9669 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
9670 attempt to force a DIE for it and worst case remove the attribute.
9671 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
9672 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
9673 the decl itself.
9674 * var-tracking.c: Include tm_p.h.
9675 (vt_stack_adjustments): For calls call note_register_arguments.
9676 (argument_reg_set): New variable.
9677 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
9678 ensure the VALUE is resolved.
9679 (call_arguments): New variable.
9680 (prepare_call_arguments): New function.
9681 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
9682 (struct expand_loc_callback_data): Add ignore_cur_loc field.
9683 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
9684 always use the best expression.
9685 (vt_expand_loc): Add ignore_cur_loc argument.
9686 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
9687 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
9688 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
9689 note for all calls.
9690 (vt_add_function_parameter): Use cselib_lookup_from_insn.
9691 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
9692 argument. Don't call cselib_preserve_only_values and
9693 cselib_reset_table.
9694 (note_register_arguments): New function.
9695 (vt_initialize): Compute argument_reg_set. Call
9696 vt_add_function_parameters before processing basic blocks instead of
9697 afterwards. For calls call prepare_call_arguments before calling
9698 cselib_process_insn.
9699 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
9700 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
9701 (var-tracking.o): Depend on $(TM_P_H).
9702 * cfglayout.h (insn_scope): New prototype.
9703 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
9704 * cfglayout.c (insn_scope): No longer static.
9705 * insn-notes.def (CALL_ARG_LOCATION): New.
9706 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
9707 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
9708 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
9709 nothing for DECL_EXTERNAL BLOCK_VARS.
9710
9ef13bd0
AM
97112011-03-16 Alan Modra <amodra@gmail.com>
9712
9713 PR target/45844
9714 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
9715 create invalid offset address for vsx splat insn.
9716 * config/rs6000/predicates.md (splat_input_operand): New.
9717 * config/rs6000/vsx.md (vsx_splat_*): Use it.
9718
56b67510
XDL
97192011-03-15 Xinliang David Li <davidxl@google.com>
9720
9721 PR c/47837
9722 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
9723 (normalize_preds): New function.
9724 (is_use_properly_guarded): Normalize def predicates.
9725
80fffdef
RR
97262011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9727
732f37c6 9728 PR target/46788
80fffdef
RR
9729 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
9730 in the output template.
9731
930672ad
RG
97322011-03-15 Richard Guenther <rguenther@suse.de>
9733
9734 PR middle-end/47650
9735 * tree-pretty-print.c (dump_function_declaration): Properly
9736 dump unprototyped and varargs function types.
9737
c7ee7b45
RG
97382011-03-15 Richard Guenther <rguenther@suse.de>
9739
9740 PR tree-optimization/13954
9741 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
9742 and friends.
9743
b2ad5e37
RG
97442011-03-15 Richard Guenther <rguenther@suse.de>
9745
9746 PR tree-optimization/48037
9747 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
9748 selects into BIT_FIELD_REFs.
9749 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
9750 vector select.
9751
7ee93d4e
JJ
97522011-03-15 Jakub Jelinek <jakub@redhat.com>
9753
9754 PR tree-optimization/48129
9755 * builtins.c (fold_builtin_snprintf): Convert to type of
9756 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
9757 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
9758
e106efc7
RG
97592011-03-15 Richard Guenther <rguenther@suse.de>
9760
9761 PR tree-optimization/41490
9762 * tree-ssa-dce.c (propagate_necessity): Handle returns without
9763 value but with VUSE.
9764 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
9765 return statements.
9766 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
9767 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
9768 * tree-tailcall.c (find_tail_calls): Ignore returns.
9769
17dea42f
RG
97702011-03-15 Richard Guenther <rguenther@suse.de>
9771
9772 PR middle-end/48031
9773 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
9774 or variable-indexed array accesses when in gimple form.
9775
01c77a60
RG
97762011-03-15 Richard Guenther <rguenther@suse.de>
9777
16cc4440 9778 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 9779
77b0791e
AM
97802011-03-15 Alan Modra <amodra@gmail.com>
9781
9782 PR target/48032
9783 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
9784 presume symbol_refs without a symbol_ref_decl are suitably
9785 aligned, nor other trees we may see here. Handle anchor symbols.
9786 (legitimate_constant_pool_address_p): Comment. Add mode param.
9787 Check cmodel=medium addresses. Adjust all calls.
9788 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
9789 creating cmodel=medium optimized access to locals.
9790 * config/rs6000/constraints.md (R): Pass QImode to
9791 legitimate_constant_pool_address_p.
9792 * config/rs6000/predicates.md (input_operand): Pass mode to
9793 legitimate_constant_pool_address_p.
9794 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
9795 Update prototype.
9796
35f61ba4
MM
97972011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9798
9799 PR target/48053
9800 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
9801 64-bit constants being loaded into registers other than GPRs such
9802 as loading 0 into a VSX register.
9803
07332e6d
RO
98042011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9805
16cc4440 9806 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 9807
de888d90
JJ
98082011-03-14 Jakub Jelinek <jakub@redhat.com>
9809
ba3ceb2d
JJ
9810 PR middle-end/47917
9811 * builtins.c (fold_builtin_snprintf): New function.
9812 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
9813 (fold_builtin_4): Likewise.
9814
2e64f8b8
JJ
9815 PR middle-end/38878
9816 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
9817 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
9818 and C - X == X also strip nops from +/-/p+ operand.
9819 When optimizing -X == C, fold C to arg0's type.
9820
de888d90
JJ
9821 PR debug/47946
9822 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
9823 emit it as add_AT_int instead of add_AT_unsigned.
9824
98252011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
9826
9827 * unwind-dw2.c: Include sys/sdt.h if it exists.
9828 (_Unwind_DebugHook): Use STAP_PROBE2.
9829 * config.in, configure: Rebuild.
9830 * configure.ac: Check for sys/sdt.h.
9831
d34abfd2
UB
98322011-03-14 Uros Bizjak <ubizjak@gmail.com>
9833
9834 * config/i386/i386.md (ROUND_FLOOR): New constant.
9835 (ROUND_CEIL): Ditto.
9836 (ROUND_TRUNC): Ditto.
9837 (ROUND_MXCSR): Ditto.
9838 (ROUND_NO_EXC): Ditto.
9839 (rint<mode>2): Use new defines instead of numerical constants.
9840 (floor<mode>2): Ditto.
9841 (ceil<mode>2): Ditto.
9842 (btrunc<mode>2): Ditto.
9843 * config/i386/i386-builtin-types.def: Define ROUND function type
9844 aliases.
9845 * config/i386/i386.c (enum ix86_builtins): Add
9846 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
9847 (struct builtin_description): Add
9848 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
9849 (ix86_expand_sse_round): New static function.
9850 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
9851 function types.
9852 (ix86_builtin_vectorized_function): Handle
9853 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
9854
87f9e23d
TT
98552011-03-14 Tom Tromey <tromey@redhat.com>
9856
9857 * c-parser.c (c_parser_asm_string_literal): Clear
9858 warn_overlength_strings.
9859
b3ab9ea2
TT
98602011-03-14 Tom Tromey <tromey@redhat.com>
9861
9862 * c-parser.c (disable_extension_diagnostics): Save
9863 warn_overlength_strings.
9864 (restore_extension_diagnostics): Restore warn_overlength_strings.
9865
6bd73dd8
JJ
98662011-03-14 Jakub Jelinek <jakub@redhat.com>
9867
9868 * BASE-VER: Change to 4.7.0.
9869
7f4d6e1b
RG
98702011-03-14 Richard Guenther <rguenther@suse.de>
9871
9872 PR middle-end/48098
9873 * tree.c (build_vector_from_val): Adjust assert to requirements
9874 and reality.
9875
c6104ef1
JJ
98762011-03-14 Jakub Jelinek <jakub@redhat.com>
9877
9878 PR bootstrap/48102
d34abfd2 9879 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 9880
dfa95e19
AT
98812011-03-14 Andreas Tobler <andreast@fgznet.ch>
9882
f60c2554 9883 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
9884 terms of target_flags_explicit. Adjust copyright year.
9885
9886 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
9887 * config/rs6000/t-freebsd: New file. Add override for
9888 LIB2FUNCS_EXTRA.
9889
bb322018
CD
98902011-03-13 Chris Demetriou <cgd@google.com>
9891
9892 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
9893 (-fno-diagnostics-show-option): this, to reflect current default.
9894 (-Werror=): Update text about -fno-diagnostics-show-option.
9895
12b1c80b
PB
98962011-03-12 Peter Bergner <bergner@vnet.ibm.com>
9897
9898 PR target/48053
9899 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9900 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
9901 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
9902 mode is not V2DImode or V2DFmode.
9903 (vspltis_constant): Do not handle V2DImode and V2DFmode.
9904 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
9905 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
9906 registers to 0.
9907 (movdi_internal64): Likewise.
9908
57d598f7
SP
99092011-03-12 Sebastian Pop <sebastian.pop@amd.com>
9910
9911 PR tree-optimization/47127
9912 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
9913 parameter.
9914 (set_cloog_options): Same.
9915 (scop_to_clast): Same.
9916 (print_clast_stmt): Do not call cloog_state_malloc and
9917 cloog_state_free.
9918 (print_generated_program): Same.
9919 (gloog): Same.
9920 * graphite-clast-to-gimple.h (cloog_state): Declared.
9921 (scop_to_clast): Adjust declaration.
9922 * graphite.c (cloog_state): Defined here.
9923 (graphite_initialize): Call cloog_state_malloc.
9924 (graphite_finalize): Call cloog_state_free.
9925
f231b5ff
JM
99262011-03-11 Jason Merrill <jason@redhat.com>
9927
9928 * attribs.c (lookup_attribute_spec): Take const_tree.
9929 * tree.h: Adjust.
9930
6a4e2bd5
JM
99312011-03-11 Joseph Myers <joseph@codesourcery.com>
9932
9933 * config/sparc/sparc.c (sparc_option_override): Use
9934 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
9935
a758fd67
RG
99362011-03-11 Richard Guenther <rguenther@suse.de>
9937
9938 PR tree-optimization/48067
9939 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
9940 multiplication result will be only used once on the target
9941 stmt.
9942
03dfda54
RG
99432011-03-11 Richard Guenther <rguenther@suse.de>
9944
9945 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
9946
5f11a50a
RG
99472011-03-11 Richard Guenther <rguenther@suse.de>
9948
9949 PR lto/48073
9950 * tree.c (find_decls_types_r): Do not walk types only reachable
9951 from IDENTIFIER_NODEs.
9952
4074f163
JJ
99532011-03-11 Jakub Jelinek <jakub@redhat.com>
9954
9955 PR middle-end/48044
9956 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
9957 all vnode->force_output nodes as needed.
9958
30f7cdcd
JM
99592011-03-11 Jason Merrill <jason@redhat.com>
9960
9961 PR c++/48069
9962 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
9963 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
9964
62ecfeb8
MJ
99652011-03-11 Martin Jambor <mjambor@suse.cz>
9966
9967 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
9968 cgraph_node.
9969
e89e03ab
JJ
99702011-03-11 Jakub Jelinek <jakub@redhat.com>
9971
9972 PR tree-optimization/48063
9973 * ipa-inline.c (cgraph_decide_inlining): Don't try to
9974 inline functions called once if !tree_can_inline_p (node->callers).
9975
efbe978b 99762011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 9977
efbe978b
EB
9978 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
9979 extra_objs.
9d6193a7
CL
9980 * config/score/score3.c: Delete.
9981 * config/score/score3.h: Delete.
9982 * config/score/mul-div.S: Delete.
9983 * config/score/sfp-machine.h: Add new file.
9984 * config/score/constraints.md: Add new file.
9985 * config/score/t-score-softfp: Add new file.
efbe978b 9986 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
9987 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
9988 (score7_extra_constraint): Delete.
efbe978b 9989 (score7_option_override): Remove unused code.
9d6193a7
CL
9990 * config/score/score.c: Remove score3 and score5 define and code.
9991 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 9992 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
9993 * config/score/score.opt: Remove score3 and score5 options.
9994
5de27cca
JDA
99952011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9996
9997 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
9998 when _HPUX_SOURCE is defined.
9999 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
10000
18d92053
JM
100012011-03-10 Jason Merrill <jason@redhat.com>
10002
10003 PR c++/48029
10004 * stor-layout.c (layout_type): Don't set structural equality
10005 on arrays of incomplete type.
10006 * tree.c (type_hash_eq): Handle comparing them properly.
10007
67a2f76d
JJ
100082011-03-10 Jakub Jelinek <jakub@redhat.com>
10009
10010 PR debug/48043
18d92053 10011 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
10012 result mode matches original rtl mode.
10013
d845b2f9
NC
100142011-03-10 Nick Clifton <nickc@redhat.com>
10015
10016 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 10017 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 10018
db7ec035
JJ
100192011-03-09 Jakub Jelinek <jakub@redhat.com>
10020
10021 PR rtl-optimization/47866
10022 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
10023 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
10024 if target wasn't scalar.
10025 * function.c (assign_stack_temp_for_type): Assert that neither
10026 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
10027 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
10028 macro.
10029 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
10030
5d304e47
AK
100312011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10032
10033 * config/s390/s390-protos.h (s390_label_align): New prototype.
10034 * config/s390/s390.c (s390_label_align): New function.
10035 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
10036
93b826f0
MM
100372011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
10038
10039 PR target/47755
10040 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
10041 V2DI/V2DF constants. Only all 0's or all 1's are easy.
10042 (output_vec_const_move): Ditto.
10043
ef78aed6
AS
100442011-03-08 Anatoly Sokolov <aesok@post.ru>
10045
10046 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
10047 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
10048 * config/mips/mips.c (mips_preferred_reload_class): Make static.
10049 Change 'rclass' argument and result type to reg_class_t.
10050 (TARGET_PREFERRED_RELOAD_CLASS): Define.
10051
5f892aa0
GJL
100522011-03-08 Georg-Johann Lay <avr@gjlay.de>
10053
9e43ad68
UB
10054 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10055 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
10056 (TARGET_MEMORY_MOVE_COST): Define.
10057 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 10058
32bd2409
JJ
100592011-03-08 Jakub Jelinek <jakub@redhat.com>
10060
530a4800
JJ
10061 PR debug/47881
10062 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
10063 removed anything.
10064
32bd2409
JJ
10065 PR tree-optimization/48022
10066 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
10067 for EQ/NE_EXPR.
10068
c7148991
JJ
100692011-03-07 Jakub Jelinek <jakub@redhat.com>
10070
10071 PR debug/47991
10072 * var-tracking.c (find_use_val): Return NULL for
10073 cui->sets && cui->store_p BLKmode MEMs.
10074
43070a6e
AS
100752011-03-07 Anatoly Sokolov <aesok@post.ru>
10076
10077 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
10078 Remove.
10079 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
10080 xstormy16_print_operand_address): Remove.
10081 * config/stormy16/stormy16.c (xstormy16_print_operand,
10082 xstormy16_print_operand_address): Make static.
10083 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10084
efbe978b 100852011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
10086
10087 PR target/47862
10088 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10089 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
10090 before definition.
10091
cec8ac0b
ZD
100922011-03-07 Zdenek Dvorak <ook@ucw.cz>
10093
10094 PR bootstrap/48000
10095 * cfgloopmanip.c (fix_bb_placements): Return immediately
10096 if FROM is BASE_LOOP's header.
10097
59527282
PW
100982011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
10099
10100 * gimplify.c (gimplify_function_tree): Fix building calls
10101 to __builtin_return_address.
10102
617718f7
AM
101032011-03-07 Alan Modra <amodra@gmail.com>
10104
10105 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
10106 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
10107 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
10108 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
10109 return_mode args.
10110 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
10111 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
10112 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
10113 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
10114 * config/rs6000/rs6000.c
10115 (rs6000_elf_end_indicate_exec_stack): Rename to..
10116 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
10117 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
10118 (rs6000_file_start): ..here.
10119 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
10120 file scope variables.
10121 (call_ABI_of_interest): New function.
10122 (init_cumulative_args): Set above vars when function return value
10123 is a float, vector, or small struct.
10124 (rs6000_function_arg_advance_1): Likewise for function args.
10125 (rs6000_va_start): Set rs6000_passes_float if variable arg function
10126 references float args.
10127
38528d50
MX
101282011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
10129
10130 * doc/cfg.texi: Remove "See" before @ref.
10131 * doc/invoke.texi: Likewise.
10132
f42cf4f4
JM
101332011-03-05 Jason Merrill <jason@redhat.com>
10134
10135 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
10136
804a304d
AG
101372011-03-05 Anthony Green <green@moxielogic.com>
10138
10139 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
10140
634ee309
ZD
101412011-03-05 Zdenek Dvorak <ook@ucw.cz>
10142
10143 PR rtl-optimization/47899
10144 * cfgloopmanip.c (fix_bb_placements): Fix first argument
10145 to flow_loop_nested_p when moving the loop upward.
10146
6fe471c8
RE
101472011-03-05 Richard Earnshaw <rearnsha@arm.com>
10148
10149 PR target/47719
10150 * arm.md (movhi_insn_arch4): Accept any immediate constant.
10151
cc58ceee
JJ
101522011-03-05 Jakub Jelinek <jakub@redhat.com>
10153
10154 PR tree-optimization/47967
10155 * ipa-cp.c (build_const_val): Return NULL instead of creating
10156 VIEW_CONVERT_EXPR for mismatching sizes.
10157 (ipcp_create_replace_map): Return NULL if build_const_val failed.
10158 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
10159 give up on versioning.
10160
ea868305
AM
101612011-03-05 Alan Modra <amodra@gmail.com>
10162
10163 PR target/47986
10164 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10165 full cmodel medium/large lo_sum + high addresses.
10166
bc6ce334
AK
101672011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10168
10169 * config/s390/s390.c (s390_decompose_address): Reject non-literal
10170 pool references in UNSPEC_LTREL_OFFSET.
10171
87e7b310
JH
101722011-03-04 Jan Hubicka <jh@suse.cz>
10173
10174 PR lto/47497
10175 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
10176 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
10177 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
10178 Add node pointers.
87e7b310
JH
10179 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
10180 cgraph_add_thunk): Add node pointers.
10181 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
10182 associated to right node.
10183 (input_node): Update use of cgraph_same_body_alias
10184 and cgraph_add_thunk.
10185
d9c64246
CF
101862011-03-04 Changpeng Fang <changpeng.fang@amd.com>
10187
10188 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
10189 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
10190 modes when the flag -mprefer-avx128 is on.
d9c64246 10191
08707076
RS
101922011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
10193
10194 * dwarf2out.c (compare_loc_operands): Fix address handling.
10195
52517c81
AM
101962011-03-04 Alan Modra <amodra@gmail.com>
10197
10198 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
10199
b147c5b9
RG
102002011-03-04 Richard Guenther <rguenther@suse.de>
10201
10202 PR middle-end/47968
10203 * expmed.c (extract_bit_field_1): Prefer vector modes that
10204 vec_extract patterns can handle.
10205
8750672f
RG
102062011-03-04 Richard Guenther <rguenther@suse.de>
10207
10208 PR middle-end/47975
10209 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
10210
9eac0f2a
RH
102112011-03-04 Richard Henderson <rth@redhat.com>
10212
10213 * explow.c (emit_stack_save): Remove 'after' parameter.
10214 (emit_stack_restore): Likewise.
10215 * expr.h: Update to match.
10216 * builtins.c, calls.c, stmt.c: Likewise.
10217 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
10218 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
10219 * function.c (expand_function_end): Insert the emit_stack_save
10220 sequence before parm_birth_insn instead of after.
10221
dfee1406
UB
102222011-03-03 Uros Bizjak <ubizjak@gmail.com>
10223
10224 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
10225 (ssse3_pmaddubsw128): Ditto.
10226 (ssse3_pmaddubsw): Ditto.
10227
f1d4c3de
SE
102282011-03-03 Steve Ellcey <sje@cup.hp.com>
10229
10230 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
10231
71f3a3f5
JJ
102322011-03-03 Jakub Jelinek <jakub@redhat.com>
10233
423ed416
JJ
10234 PR c/47963
10235 * gimplify.c (omp_add_variable): Only call omp_notice_variable
10236 on TYPE_SIZE_UNIT if it is a DECL.
10237
71f3a3f5
JJ
10238 PR debug/47283
10239 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
10240 first operand is not is_gimple_mem_ref_addr, try to fold it.
10241 If the operand still isn't is_gimple_mem_ref_addr, clear
10242 MEM_EXPR on op0.
10243
4b1a5c0d
RG
102442011-03-03 Richard Guenther <rguenther@suse.de>
10245
10246 PR middle-end/47283
10247 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
10248 match comment.
10249 (refs_may_alias_p_1): For release branches return true if
10250 we are confused by our input.
10251
b46616fd
AK
102522011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10253
10254 * config/s390/s390.c (s390_function_value): Rename to ...
10255 (s390_function_and_libcall_value): ... this.
10256 (s390_function_value): New function.
10257 (s390_libcall_value): New function.
dfee1406 10258 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
10259 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
10260 target macro definitions.
10261 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
10262
46d8fabb
JM
102632011-03-02 Joseph Myers <joseph@codesourcery.com>
10264
10265 * config/i386/freebsd64.h (CC1_SPEC): Define.
10266 * config/i386/linux64.h (CC1_SPEC): Define.
10267 * config/i386/x86-64.h (CC1_SPEC): Don't define.
10268
6b1ce545
AS
102692011-03-02 Anatoly Sokolov <aesok@post.ru>
10270
10271 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
10272 Remove.
10273 * config/stormy16/stormy16.c: Include reload.h.
10274 (xstormy16_memory_move_cost): New function.
10275 (TARGET_MEMORY_MOVE_COST): Define.
10276
34161e98
RS
102772011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
10278
10279 PR rtl-optimization/47925
10280 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
10281 with side effects. Remove the more-specific check for volatile asms.
10282
f60a97cf
AM
102832011-03-02 Alan Modra <amodra@gmail.com>
10284
10285 PR target/47935
10286 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
10287 toc relative addresses for valid offsets.
10288
f2ca11ca
RG
102892011-03-01 Richard Guenther <rguenther@suse.de>
10290
10291 PR tree-optimization/47890
10292 * tree-vect-loop.c (get_initial_def_for_induction): Set
10293 related stmt properly.
10294
7a00d9ea
RG
102952011-03-01 Richard Guenther <rguenther@suse.de>
10296
10297 PR lto/47924
10298 * lto-streamer.c (lto_record_common_node): Also register
10299 the canonical type.
10300
06c7edcc
RG
103012011-03-01 Richard Guenther <rguenther@suse.de>
10302
10303 PR lto/46911
10304 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10305 Do not stream DECL_ABSTRACT_ORIGIN.
10306 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10307 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10308 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10309 Do not stream DECL_ABSTRACT_ORIGIN.
10310 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
10311 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
10312
998871e9
AS
103132011-02-28 Anatoly Sokolov <aesok@post.ru>
10314
10315 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
10316 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 10317 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
10318 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
10319 Add 'outgoing' argument.
10320 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
10321 function.
10322 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10323 TARGET_FUNCTION_VALUE_REGNO_P): Define.
10324
94369251
KT
103252011-02-28 Kai Tietz <kai.tietz@onevision.com>
10326
10327 PR debug/28047
10328 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
10329 (lookup_filename): Likewise.
b2e2ea67 10330 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 10331
80a832cd
JJ
103322011-02-28 Bernd Schmidt <bernds@codesourcery.com>
10333 Jakub Jelinek <jakub@redhat.com>
10334
10335 PR middle-end/47893
10336 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
10337 (assign_stack_local_1): Change last argument type to int.
10338 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
10339 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 10340 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
10341 (assign_stack_local): Adjust caller.
10342 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
10343 of assign_stack_local, pass 0 as last argument.
10344 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
10345 callers.
10346
1b500976
JJ
103472011-02-28 Jakub Jelinek <jakub@redhat.com>
10348
f61c6f34
JJ
10349 PR debug/47283
10350 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
10351 Use target address_mode and pointer_mode hooks instead of hardcoded
10352 Pmode and ptr_mode. Handle some simple cases of extending if
10353 POINTERS_EXTEND_UNSIGNED < 0.
10354 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
10355 Call convert_debug_memory_address.
10356 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
10357 convert_debug_memory_address.
10358
1b500976
JJ
10359 PR middle-end/46790
10360 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
10361 * configure: Regenerated.
10362 * config.in: Regenerated.
10363 * varasm.c (default_function_section): Return NULL
b2e2ea67 10364 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 10365
2f2935b6
MJ
103662011-02-28 Martin Jambor <mjambor@suse.cz>
10367
10368 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
10369 the description to match the printed values.
10370
474086eb
RG
103712011-02-28 Richard Guenther <rguenther@suse.de>
10372
10373 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
10374 of the copied scope tree.
10375
15bf6f3a
RW
103762011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10377
10378 * doc/extend.texi (Function Attributes): Avoid deeply (and
10379 wrongly) nested tables.
10380
f6b439c9
JJ
103812011-02-27 Jakub Jelinek <jakub@redhat.com>
10382
10383 PR middle-end/47903
10384 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
10385 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
10386 r isn't op0 nor op1.
10387
1d8ca2c7
GJL
103882011-02-23 Georg-Johann Lay <avr@gjlay.de>
10389
10390 * config/avr/avr.md: Remove magic comment for emacs.
10391
593fca4b
GJL
103922011-02-23 Georg-Johann Lay <avr@gjlay.de>
10393
10394 PR target/45261
10395 * config/avr/avr.c (avr_option_override): Use error on bad options.
10396 (avr_help): New function.
10397 (TARGET_HELP): Define.
10398
6609216e
GJL
103992011-02-22 Georg-Johann Lay <avr@gjlay.de>
10400
10401 PR target/42240
10402 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
10403 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
10404
03d458af
GP
104052011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
10406
10407 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
10408 (ARM Options): Ditto.
10409 (i386 and x86-64 Options): Ditto.
10410 (RX Options): Ditto.
10411 (SPARC Options): Ditto.
10412
1c379b78
TC
104132011-02-26 Tijl Coosemans <tijl@coosemans.org>
10414
10415 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
10416 FreeBSD 6 and later. Generally use cpu generic.
10417
d5ed058c 104182011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 10419
d5ed058c
GP
10420 * doc/cpp.texi: Update copyright years.
10421
509d65dd 104222011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 10423
509d65dd 10424 PR target/46898
308d39cd
SB
10425 * config/lm32/lm32.md (ashrsi3): Added needed variable.
10426
509d65dd 104272011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 10428
509d65dd 10429 PR target/46898
308d39cd
SB
10430 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
10431 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
10432 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
10433 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 10434 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
10435 (gen_int_relational): Move declarations to start of function.
10436
822ba6d7
EB
104372011-02-25 Eric Botcazou <ebotcazou@adacore.com>
10438
10439 PR tree-optimization/45470
10440 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
10441 can throw internally only.
10442 * tree-vect-stmts.c (vectorizable_call): Likewise.
10443
ef795fc2
AS
104442011-02-24 Anatoly Sokolov <aesok@post.ru>
10445
10446 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
10447 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10448 * config/stormy16/stormy16-protos.h
10449 (xstormy16_preferred_reload_class): Remove.
10450 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
10451 static. Change 'rclass' argument and return type to reg_class_t.
10452 (TARGET_PREFERRED_RELOAD_CLASS,
10453 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10454
1c3277ee
RG
104552011-02-24 Richard Guenther <rguenther@suse.de>
10456
10457 * lto-streamer-in.c (input_bb): Do not find referenced vars
10458 in debug statements.
10459
67e18edb
JM
104602011-02-23 Jason Merrill <jason@redhat.com>
10461
10462 * common.opt (fabi-version): Document v5 and v6.
10463
b14fad9d
RG
104642011-02-23 Richard Guenther <rguenther@suse.de>
10465
10466 PR tree-optimization/47849
10467 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
10468
7fcf46f5
JZ
104692011-02-23 Jie Zhang <jie@codesourcery.com>
10470
10471 * opts-common.c (decode_cmdline_option): Print empty string
10472 argument as "" in decoded->orig_option_with_args_text.
10473 * gcc.c (execute): Print empty string argument as ""
10474 in the verbose output.
10475 (do_spec_1): Keep empty string argument.
10476
f85b70fd
NF
104772011-02-23 Nathan Froyd <froydnj@codesourcery.com>
10478
10479 * config.gcc: Declare score-* and crx-* obsolete.
10480
b152a615
JZ
104812011-02-23 Jie Zhang <jie@codesourcery.com>
10482
10483 PR rtl-optimization/47763
10484 * web.c (web_main): Ignore naked clobber when replacing register.
10485
bb6e77bc
AS
104862011-02-22 Anatoly Sokolov <aesok@post.ru>
10487
10488 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
10489 Remove.
10490
68bf6491
SP
104912011-02-22 Sebastian Pop <sebastian.pop@amd.com>
10492
10493 PR doc/47848
10494 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
10495
88ee1fc7
MS
104962011-02-22 Mike Stump <mikestump@comcast.net>
10497
10498 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
10499 assembler.
10500 * configure: Regenerate.
10501
6042d1dd
CLT
105022011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
10503
10504 PR rtl-optimization/46002
10505 * ira-color.c (update_copy_costs): Change class intersection
10506 test to reg_class_contents[] test of 'hard_regno'.
10507
7de97f9e
JM
105082011-02-21 Joseph Myers <joseph@codesourcery.com>
10509
10510 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
10511 than Driver option.
10512 * config/hpux11.opt (mt): Likewise.
10513 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
10514 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
10515 * config/vax/elf.opt (mno-asm-pic): Likewise.
10516 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
10517
d1d46f9f
MS
105182011-02-21 Mike Stump <mikestump@comcast.net>
10519
10520 PR target/47822
10521 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
10522 tree so we can get save the type.
10523 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
10524 for CFString instead of trying to use past the end of the builtins.
10525 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
10526 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
10527 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
10528 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
10529 Rename to darwin_builtin_cfstring.
10530 (darwin_init_cfstring_builtins): Return the built type.
10531
23e0d930
UB
105322011-02-21 Uros Bizjak <ubizjak@gmail.com>
10533
10534 PR target/47840
10535 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
10536 (_mm256_insert_epi64): Use _mm_insert_epi64.
10537
192997cf
AS
105382011-02-21 Anatoly Sokolov <aesok@post.ru>
10539
10540 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10541 * config/stormy16/stormy16-protos.h
10542 (xstormy16_mode_dependent_address_p): Remove.
10543 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
10544 Make static. Change return type to bool. Change argument type to
10545 const_rtx. Remove dead code.
10546 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10547
e292d003
RG
105482011-02-21 Richard Guenther <rguenther@suse.de>
10549
10550 PR lto/47820
10551 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10552 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10553 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
10554 TUs context.
23e0d930 10555 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
10556 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
10557
77f846e9
RG
105582011-02-20 Richard Guenther <rguenther@suse.de>
10559
10560 PR lto/47822
10561 * tree.c (free_lang_data_in_decl): Clean builtins from
10562 the TU decl BLOCK_VARS.
23e0d930 10563
b2cddfc8
AO
105642011-02-19 Alexandre Oliva <aoliva@redhat.com>
10565
10566 PR debug/47620
10567 PR debug/47630
10568 * haifa-sched.c (fix_tick_ready): Skip tick computation
10569 for debug insns.
10570
becf4c11
RG
105712011-02-19 Richard Guenther <rguenther@suse.de>
10572
10573 PR lto/47647
10574 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10575 Remove lazy BLOCK_VARS streaming.
10576 (lto_input_ts_block_tree_pointers): Likewise.
10577 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10578
27f98305
JM
105792011-02-19 Joseph Myers <joseph@codesourcery.com>
10580
10581 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
10582
064bf3f4
JM
105832011-02-19 Joseph Myers <joseph@codesourcery.com>
10584
10585 * config/i386/biarch32.h, config/i386/mach.h,
10586 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
10587
9215ddc3
JJ
105882011-02-19 Jakub Jelinek <jakub@redhat.com>
10589
10590 PR target/47800
10591 * config/i386/i386.md (peephole2 for shift and plus): Use
10592 operands[1] original mode in the first insn.
10593
8b021004
MS
105942011-02-18 Mike Stump <mikestump@comcast.net>
10595
65ded153 10596 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 10597
f84ae14c
JH
105982011-02-18 Jan Hubicka <jh@suse.cz>
10599
10600 PR middle-end/47788
65ded153
EB
10601 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
10602 to zero when the function is not inlinable at all.
f84ae14c 10603
eddabc80
JDA
106042011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10605
10606 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
10607 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10608 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
10609 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
10610 * config/pa/t-pa64: Likewise.
10611 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
10612
ca3da783
JJ
106132011-02-18 Jakub Jelinek <jakub@redhat.com>
10614
10615 PR driver/47787
10616 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
10617
430aa868
JDA
106182011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10619
10620 PR target/47792
10621 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
10622
4bf7ff7e
AS
106232011-02-18 Anatoly Sokolov <aesok@post.ru>
10624
10625 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
10626 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
10627 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
10628 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
10629 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
10630 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
10631 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
10632 m32r_load_postinc_p, m32r_store_preinc_predec_p,
10633 m32r_legitimate_address_p): New functions.
10634 * config/m32r/constraints.md (constraint "S"): Don't use
10635 STORE_PREINC_PREDEC_P.
10636 (constraint "U"): Don't use LOAD_POSTINC_P.
10637
7efcf910
CLT
106382011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
10639
10640 PR rtl-optimization/46178
10641 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
10642 compute ira_hard_regno_cover_class[].
10643
237d6259
RG
106442011-02-18 Richard Guenther <rguenther@suse.de>
10645
10646 PR lto/47798
10647 * lto-streamer.h (lto_global_var_decls): Declare.
10648 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
10649 statics for global var processing.
10650
12d80acc
RG
106512011-02-18 Richard Guenther <rguenther@suse.de>
10652
10653 PR tree-optimization/47737
10654 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
10655 edge dominance check.
10656
abfea58d
JJ
106572011-02-18 Jakub Jelinek <jakub@redhat.com>
10658
10659 PR debug/47780
10660 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
10661 avoid invalid rtx sharing.
10662
f73c8882
GP
106632011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
10664
10665 * doc/cpp.texi (Obsolete Features): Add background on the
10666 origin of assertions.
10667
d764a8e6
IS
106682011-02-17 Iain Sandoe <iains@gcc.gnu.org>
10669
10670 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 10671 objc_abi == 2.
d764a8e6
IS
10672 * config/darwin.c (output_objc_section_asm_op): Added support for
10673 ABI v1 and v2.
10674 (is_objc_metadata): New.
10675 (darwin_objc2_section): New.
10676 (darwin_objc1_section): New.
10677 (machopic_select_section): Added support for ABI v1 and v2.
10678 (darwin_emit_objc_zeroed): New.
10679 (darwin_output_aligned_bss): Detect objc metadata and treat it
10680 appropriately.
10681 (darwin_asm_output_aligned_decl_common): Same.
10682 (darwin_asm_output_aligned_decl_local): Same.
10683 * config/darwin-sections.def: Updated for ABI v1 and v2.
10684 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
10685 compiling Objective-C code for the NeXT runtime, default to using
10686 ABI version 0 for 32-bit, and version 2 for 64-bit.
10687
0a8134ca
JM
106882011-02-17 Joseph Myers <joseph@codesourcery.com>
10689
10690 * common.opt (optimize_fast): New Variable.
10691 * opts.c (default_options_optimization): Use opts->x_optimize_fast
10692 instead of local variable ofast.
10693
0a256240
NP
106942011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
10695
10696 * doc/invoke.texi (fobjc-abi-version): Documented.
10697 (fobjc-nilcheck): Documented.
10698 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
10699 version.
10700
fa381cb2
JM
107012011-02-17 Joseph Myers <joseph@codesourcery.com>
10702
10703 PR driver/47390
10704 * common.opt (export-dynamic): New Driver option.
10705 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
10706
5437eaa6
JM
107072011-02-17 Joseph Myers <joseph@codesourcery.com>
10708
10709 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
10710
bb7e6d55
AO
107112011-02-17 Alexandre Oliva <aoliva@redhat.com>
10712 Jan Hubicka <jh@suse.cz>
10713
10714 PR debug/47106
10715 PR debug/47402
10716 * cfgexpand.c (account_used_vars_for_block): Remove.
10717 (estimated_stack_frame_size): Use referenced vars.
10718 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
10719 that were referenced in the original function. Test src_fn
10720 rather than cfun. Drop redundant get_var_ann.
10721 (setup_one_parameter): Drop redundant get_var_ann.
10722 (declare_return_variable): Likewise.
10723 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
10724 (copy_arguments_for_versioning): Drop redundant get_var_ann.
10725 * ipa-inline.c (compute_inline_parameters): Do not compute
10726 disregard_inline_limits here.
bb7e6d55
AO
10727 (compute_inlinable_for_current, pass_inlinable): New.
10728 (pass_inline_parameters): Require PROP_referenced_vars.
10729 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 10730 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
10731 (cgraph_analyze_function): Set .disregard_inline_limits.
10732 * tree-sra.c (convert_callers): Compute inliner parameters
10733 only for functions already in SSA form.
10734
f181a8a7
JM
107352011-02-17 Joseph Myers <joseph@codesourcery.com>
10736
10737 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
10738 -mlittle-endian-data.
10739
c6869789
JM
107402011-02-17 Joseph Myers <joseph@codesourcery.com>
10741
10742 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
10743 -mno-fpu, not -fpu and -no-fpu.
10744 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
10745 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
10746
fbf4bfd3
UB
107472011-02-17 Uros Bizjak <ubizjak@gmail.com>
10748
10749 PR target/43653
10750 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
10751 input reload with PLUS RTX.
10752
70be5dc7
JM
107532011-02-16 Joseph Myers <joseph@codesourcery.com>
10754
10755 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
10756 of InverseVar(MDMX).
10757
30b1646e
JM
107582011-02-16 Joseph Myers <joseph@codesourcery.com>
10759
10760 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
10761 --m4-340.
10762
ab7b71e9
JM
107632011-02-16 Joseph Myers <joseph@codesourcery.com>
10764
10765 * config/mn10300/mn10300.opt (mno-crt0): New.
10766
466f3f08
JM
107672011-02-16 Joseph Myers <joseph@codesourcery.com>
10768
10769 * config/m68k/uclinux.opt (static-libc): New Driver option.
10770
8226cd7b
JM
107712011-02-16 Joseph Myers <joseph@codesourcery.com>
10772
10773 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
10774
45cab1d7
JM
107752011-02-16 Joseph Myers <joseph@codesourcery.com>
10776
10777 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
10778 %{muser-extend-enabled}.
10779
65aab64f
RG
107802011-02-16 Richard Guenther <rguenther@suse.de>
10781
10782 PR tree-optimization/47738
10783 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
10784 the TODO from tree_predictive_commoning.
10785
fc2fa4fb
JL
107862011-02-15 Jeff Law <law@redhat.com>
10787
10788 Revert
10789 2011-01-25 Jeff Law <law@redhat.com>
10790
10791 PR rtl-optimization/37273
10792 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10793 handle them like argument loads from stack slots. Do not double
10794 count memory for memory constants and argument loads from stack slots.
10795
4e380b8e
L
107962011-02-15 H.J. Lu <hongjiu.lu@intel.com>
10797
10798 PR middle-end/47725
10799 * combine.c (cant_combine_insn_p): Revert the last change.
10800
e3a69bb4
MM
108012011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10802
10803 PR target/47755
10804 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
10805 mode for vector constants. Remove code that checks for TImode.
10806
de650422
AO
108072011-02-15 Alexandre Oliva <aoliva@redhat.com>
10808
10809 PR debug/47106
10810 PR debug/47402
10811 * cgraph.h (compute_inline_parameters): Return void.
10812 * ipa-inline.c (compute_inline_parameters): Adjust.
10813
30925d94
AO
108142011-02-15 Alexandre Oliva <aoliva@redhat.com>
10815
10816 PR debug/47106
10817 PR debug/47402
10818 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
10819 rather than decl.
10820 * cfgexpand.c (estimated_stack_frame_size): Likewise.
10821 * ipa-inline.c (compute_inline_parameters): Adjust.
10822
1b9a784a
AO
108232011-02-15 Alexandre Oliva <aoliva@redhat.com>
10824
10825 PR debug/47106
10826 PR debug/47402
10827 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
10828 Adjust all users. Pass FN to...
10829 * tree-flow-inline.h (first_referenced_var): ... this. Add
10830 fn argument.
10831 * ipa-struct-reorg.c: Adjust.
10832 * tree-dfa.c: Adjust.
10833 * tree-into-ssa.c: Adjust.
10834 * tree-sra.c: Adjust.
10835 * tree-ssa-alias.c: Adjust.
10836 * tree-ssa-live.c: Adjust.
10837 * tree-ssa.c: Adjust.
10838 * tree-ssanames.c: Adjust.
10839 * tree-tailcall.c: Adjust.
10840
27c6b086
AO
108412011-02-15 Alexandre Oliva <aoliva@redhat.com>
10842
10843 PR debug/47106
10844 PR debug/47402
10845 * tree-flow.h (referenced_var_lookup): Add fn parameter.
10846 Adjust all callers.
10847 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
10848 * tree-flow-inline.h: Adjust.
10849 * gimple-pretty-print.c: Adjust.
10850 * tree-into-ssa.c: Adjust.
10851 * tree-ssa.c: Adjust.
10852 * cfgexpand.c: Adjust.
10853
679e8183
NF
108542011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10855
fbf4bfd3
UB
10856 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
10857 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10858 (EXTRA_CONSTRAINT): Delete.
10859 * config/iq2000/constraints.md: New file.
10860 * config/iq2000/iq2000.md: Include it.
679e8183
NF
10861 (define_insn ""): Delete.
10862 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
10863 unsupported constraint letters from patterns.
10864 (call_value, call_value_internal1): Likewise.
10865 (call_value_multiple_internal1): Likewise.
10866
a45d420a
NC
108672011-02-15 Nick Clifton <nickc@redhat.com>
10868
10869 * config/mn10300/mn10300.c: Include tm-constrs.h.
10870 (struct liw_data): New data structure describing an LIW candidate
10871 instruction.
10872 (extract_bundle): Use struct liw_data. Allow small integer
10873 operands for some instructions.
10874 (check_liw_constraints): Use struct liw_data. Remove swapped
10875 parameter. Add comments describing the checks. Fix bug when
10876 assigning the source of liw1 to the source of liw2.
10877 (liw_candidate): Delete. Code moved into extract_bundle.
10878 (mn10300_bundle_liw): Use struct liw_data. Check constraints
10879 before swapping.
10880 * config/mn10300/predicates.md (liw_operand): New predicate.
10881 Allows registers and small integer constants.
10882 * config/mn10300/constraints.md (O): New constraint. Accetps
10883 integers in the range -8 to +7 inclusive.
10884 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
10885 for moving a small integer into a register. Give this alternative
10886 LIW attributes.
10887 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
10888 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
10889 using the J,K,L and M constraints,
10890 (liw): Remove SI mode on second operands to allow for HI and QI
10891 mode values.
10892 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
10893 instruction.
10894
8a73faf1
L
108952011-02-15 H.J. Lu <hongjiu.lu@intel.com>
10896
10897 PR middle-end/47725
10898 * combine.c (cant_combine_insn_p): Check zero/sign extended
10899 hard registers.
10900
48feba28
RG
109012011-02-15 Richard Guenther <rguenther@suse.de>
10902
10903 PR tree-optimization/47743
10904 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
10905 for a non-type-compatible VN lookup bail out.
10906
ad1c1eeb
NF
109072011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10908
10909 * config/fr30/constraints.md: New file.
10910 * config/fr30/fr30.md: Include it.
10911 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
10912 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10913 (EXTRA_CONSTRAINT): Delete.
10914
49ac143d
NF
109152011-02-15 Nathan Froyd <froydnj@codesourcery.com>
10916
10917 * config/frv/constraints.md: New file.
10918 * config/frv/predicates.md: Include it.
10919 * config/frv/frv.c (reg_class_from_letter): Delete.
10920 (frv_option_override): Don't initialize it.
10921 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
10922 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
10923 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
10924 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10925 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
10926 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10927 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
10928 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
10929 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
10930 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
10931 (REG_CLASS_FROM_CONSTRAINT): Delete.
10932
c95f9494
JJ
109332011-02-15 Jakub Jelinek <jakub@redhat.com>
10934
10935 PR middle-end/47581
10936 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
10937 if frame size is 0 in a leaf function.
10938
13aed611
RO
109392011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10940
10941 PR pch/14940
10942 * config/alpha/host-osf.c: New file.
10943 * config/alpha/x-osf: New file.
10944 * config.host (alpha*-dec-osf*): Use it.
10945
b09c3081
AS
109462011-02-14 Anatoly Sokolov <aesok@post.ru>
10947
10948 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10949 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
10950 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
10951 (rx_mode_dependent_address_p): ...this. Make static. Change argument
10952 type to const_rtx.
10953 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10954
d634083b
NF
109552011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10956
10957 * config/stormy16/constraints.md: New file.
10958 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
10959 Use satisfies_constraint_Q and satisfies_constraint_R.
10960 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
10961 Delete.
10962 (xstormy16_legitiamte_address_p): Declare.
10963 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
10964 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
10965 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 10966 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
10967 Un-staticize.
10968 (xstormy16_extra_constraint_p): Delete.
10969
c7dd803e
EB
109702011-02-14 Eric Botcazou <ebotcazou@adacore.com>
10971
10972 PR tree-optimization/46494
10973 * loop-unroll.c (split_edge_and_insert): Adjust comment.
10974 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
10975 (pass_rtl_loop_done): Add TODO_verify_flow.
10976 * fwprop.c (pass_rtl_fwprop): Likewise.
10977 * modulo-sched.c (pass_sms): Likewise.
10978 * tree-ssa-dom.c (pass_dominator): Likewise.
10979 * tree-ssa-loop-ch.c (pass_ch): Likewise.
10980 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
10981 (pass_tree_loop_done): Likewise.
10982 * tree-ssa-pre.c (execute_pre): Likewise.
10983 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10984 * tree-ssa-sink.c (pass_sink_code): Likewise.
10985 * tree-vrp.c (pass_vrp): Likewise.
10986
c6150df6
NF
109872011-02-14 Nathan Froyd <froydnj@codesourcery.com>
10988
c7dd803e
EB
10989 * config/v850/constraints.md: New file.
10990 * config/v850/v850.md: Include it.
10991 * config/v850/predicates.md (reg_or_0_operand): Use
10992 satisfies_constraint_G.
10993 (special_symbolref_operand): Use satisfies_constraint_K.
10994 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
10995 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10996 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
10997 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
10998 (EXTRA_CONSTRAINT): Delete.
10999 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
11000 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
11001 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 11002
30dd1ea3
AS
110032011-02-14 Anatoly Sokolov <aesok@post.ru>
11004
11005 PR target/47696
11006 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
11007 description.
11008
944f4bb3
NF
110092011-02-14 Nathan Froyd <froydnj@codesourcery.com>
11010
11011 * config/mcore/constraints.md: New file.
11012 * config/mcore/mcore.md: Include it.
11013 * config/mcore/mcore.c (reg_class_from_letter): Delete.
11014 * config/mcore/mcore.h (reg_class_from_letter): Delete.
11015 (REG_CLASS_FROM_LETTER): Delete.
11016 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
11017 insn_const_int_ok_for_constraint.
11018 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
11019 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
11020 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
11021 (EXTRA_CONSTRAINT): Delete.
11022
ad56a54c
RO
110232011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11024
11025 PR ada/41929
11026 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
11027 (IS_SIGHANDLER): Define.
11028 (sparc64_is_sighandler): New function, split off from
11029 sparc64_fallback_frame_state.
11030 (sparc_is_sighandler): New function, split off from
11031 sparc_fallback_frame_state.
11032 (sparc64_fallback_frame_state): Merge with ...
11033 (sparc_fallback_frame_state): ... this into ...
11034 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
11035 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
11036 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
11037 stack instead of hardcoded offsets.
ad56a54c 11038
fbf4bfd3 110392011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
11040
11041 PR target/45808
11042 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
11043
029c8f3e
RW
110442011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11045
11046 * configure: Regenerate.
11047
a016dc83
JM
110482011-02-12 Joseph Myers <joseph@codesourcery.com>
11049
11050 PR driver/45731
11051 * gcc.c (asm_options): Correct spec matching --target-help.
11052
8957a0ec
MJ
110532011-02-12 Martin Jambor <mjambor@suse.cz>
11054
11055 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
11056 to gimple call error.
11057
6ef828bc
MS
110582011-02-12 Mike Stump <mikestump@comcast.net>
11059
11060 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
11061 comments in backslash regions.
11062
a4015be5
MS
110632011-02-12 Mike Stump <mikestump@comcast.net>
11064 Jakub Jelinek <jakub@redhat.com>
11065 Iain Sandoe <iains@gcc.gnu.org>
11066
11067 PR target/47324
11068 * dwarf2out.c (output_cfa_loc): When required, apply the
11069 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
11070 (output_loc_sequence): Likewise.
11071 (output_loc_operands_raw): Likewise.
11072 (output_loc_sequence_raw): Likewise.
11073 (output_cfa_loc): Likewise.
11074 (output_loc_list): Suppress register number adjustment when
11075 calling output_loc_sequence()
11076 (output_die): Likewise.
11077
5378dda2
AS
110782011-02-12 Anatoly Sokolov <aesok@post.ru>
11079
11080 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11081 Remove macros.
11082 * config/xtensa/xtensa.c (xtensa_register_move_cost,
11083 xtensa_memory_move_cost): New functions.
11084 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
11085
f3d533d3
AO
110862011-02-12 Alexandre Oliva <aoliva@redhat.com>
11087
11088 PR lto/47225
11089 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
11090 in the current directory.
11091 * configure: Rebuilt.
11092
9d53403c
IS
110932011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11094
11095 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 11096 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
11097 correct indents of the preceding block.
11098
a350a6c8
IS
110992011-02-12 Iain Sandoe <iains@gcc.gnu.org>
11100
11101 * gcc.c (driver_handle_option): Concatenate the argument to -F with
11102 the switch.
11103
bab79a40
JM
111042011-02-11 Joseph Myers <joseph@codesourcery.com>
11105
11106 * common.opt (nostartfiles): New Driver option.
11107
1bbc6693
XDL
111082011-02-11 Xinliang David Li <davidxl@google.com>
11109
11110 PR tree-optimization/47707
11111 * tree-chrec.c (convert_affine_scev): Keep type precision.
11112
1da7d8c0
EB
111132011-02-11 Eric Botcazou <ebotcazou@adacore.com>
11114
11115 PR tree-optimization/47420
11116 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
11117
111182011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
11119
11120 PR rtl-optimization/47614
11121 * rtl.h (check_for_inc_dec): Declare.
11122 * dse.c (check_for_inc_dec): Externalize...
11123 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
11124 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
11125
4df47bca
JM
111262011-02-11 Joseph Myers <joseph@codesourcery.com>
11127
11128 PR driver/47678
11129 * gcc.c (main): Do not compile inputs if there were errors in
11130 option handling.
11131 * opts-common.c (read_cmdline_option): Check for wrong language
11132 after other error checks.
11133
61502ca8
NF
111342011-02-11 Nathan Froyd <froydnj@codesourcery.com>
11135
11136 * cgraph.c: Fix comment typos.
11137 * cgraph.h: Likewise.
11138 * cgraphunit.c: Likewise.
11139 * ipa-cp.c: Likewise.
11140 * ipa-inline.c: Likewise.
11141 * ipa-prop.c: Likewise.
11142 * ipa-pure-const.c: Likewise.
11143 * ipa-ref.c: Likewise.
11144 * ipa-reference.c: Likewise.
11145
b63f974e
JJ
111462011-02-11 Jakub Jelinek <jakub@redhat.com>
11147
d50c5e0c
JJ
11148 PR debug/47684
11149 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 11150
6dd2a13c
RO
111512011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11152
11153 PR testsuite/47400
11154 * doc/sourcebuild.texi (Require Support): Document
11155 dg-require-ascii-locale.
11156
4a087ccf
MX
111572011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
11158
11159 * doc/lto.texi (Write summary): Fix missing parentheses.
11160
a4403164
DD
111612011-02-10 DJ Delorie <dj@redhat.com>
11162
11163 * config/m32c/m32c.c (m32c_option_override): Disable
11164 -fcombine-stack-adjustments until flag value tracking and compare
11165 optimization can be rewritten.
11166
4fac45bd
PB
111672011-02-10 Peter Bergner <bergner@vnet.ibm.com>
11168
11169 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
11170 PROCESSOR_POWER7.
11171 (PROCESSOR_DEFAULT64): Likewise.
11172
72602cd1
RH
111732011-02-10 Richard Henderson <rth@redhat.com>
11174
11175 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
11176 change from 2011-02-03.
11177 * config/rx/rx.c (flags_from_code): Likewise.
11178 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
11179 is valid, n/pz otherwise.
11180 (rx_select_cc_mode): Return CCmode if Y is not zero.
11181
ea57f573
RG
111822011-02-10 Richard Guenther <rguenther@suse.de>
11183
ea4c3e65 11184 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 11185
92b1d23b
RG
111862011-02-10 Richard Guenther <rguenther@suse.de>
11187
11188 PR tree-optimization/47677
11189 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
11190
525a2d06
JJ
111912011-02-10 Jakub Jelinek <jakub@redhat.com>
11192
11193 PR target/47665
11194 * combine.c (make_compound_operation): Only change shifts into
11195 multiplication for SCALAR_INT_MODE_P.
11196
06c969bd
JZ
111972011-02-10 Jie Zhang <jie@codesourcery.com>
11198
11199 PR testsuite/47622
11200 Revert
11201 2011-02-05 Jie Zhang <jie@codesourcery.com>
11202 PR debug/42631
11203 * web.c (entry_register): Don't clobber the number of the
11204 first uninitialized reference in used[].
11205
282ec48e
RG
112062011-02-09 Richard Guenther <rguenther@suse.de>
11207
11208 PR tree-optimization/47664
11209 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
11210 all edges again.
11211
df98c3e8
DE
112122011-02-09 David Edelsohn <dje.gcc@gmail.com>
11213
d0f21cd6
DE
11214 PR target/46481
11215 PR target/47032
df98c3e8
DE
11216 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
11217 PROCESSOR_POWER7.
11218 (PROCESSOR_DEFAULT64): Same.
11219 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
11220
67b6839f
RO
112212011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11222
11223 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
11224
4fd73214
MJ
112252011-02-09 Martin Jambor <mjambor@suse.cz>
11226
11227 PR middle-end/45505
11228 * tree-sra.c (struct access): New flags grp_scalar_read and
11229 grp_scalar_write. Changed description of assignment read and write
11230 flags.
11231 (dump_access): Dump new flags, reorder all of them.
11232 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
11233 to detect multiple scalar reads.
11234 (analyze_access_subtree): Use the new scalar read write flags instead
11235 of the old flags. Adjusted comments.
11236
91140cd3
DD
112372011-02-08 DJ Delorie <dj@redhat.com>
11238
11239 PR target/47548
11240 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
11241 patterns.
11242
4254bbfe
JM
112432011-02-08 Joseph Myers <joseph@codesourcery.com>
11244
11245 * config/m68k/uclinux.opt: New.
11246 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
11247
f1fda84e
JM
112482011-02-08 Joseph Myers <joseph@codesourcery.com>
11249
11250 * config/cris/elf.opt (sim): New Driver option.
11251
4933ae74
JM
112522011-02-08 Joseph Myers <joseph@codesourcery.com>
11253
11254 * config/xtensa/elf.opt: New.
11255 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
11256
4ad70280
JM
112572011-02-08 Joseph Myers <joseph@codesourcery.com>
11258
11259 * config/vax/elf.opt: New.
11260 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
11261
20893707
JM
112622011-02-08 Joseph Myers <joseph@codesourcery.com>
11263
11264 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
11265
b8e7038e
JM
112662011-02-08 Joseph Myers <joseph@codesourcery.com>
11267
11268 * config/gnu-user.opt: New.
11269 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
11270 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
11271 *-*-uclinux*): Use gnu-user.opt.
11272
e1c5225a
TS
112732011-02-08 Thomas Schwinge <thomas@schwinge.name>
11274
11275 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
11276 * config/i386/gnu.h (CPP_SPEC): Likewise.
11277
5e46b0c6
ILT
112782011-02-08 Ian Lance Taylor <iant@google.com>
11279
11280 * common.opt (fcx-limited-range): Add SetByCombined flag.
11281 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
11282 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
11283 (fassociative-math, freciprocal-math): Likewise.
11284 (funsafe-math-optimizations): Likewise.
11285 * opth-gen.awk: Handle SetByCombined.
11286 * optc-gen.awk: Likewise.
ea4c3e65 11287 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
11288 (set_unsafe_math_optimizations_flags): Likewise.
11289 * doc/options.texi (Option properties): Document SetByCombined.
11290
32243d46
JM
112912011-02-08 Joseph Myers <joseph@codesourcery.com>
11292
11293 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
11294 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
11295 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
11296 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
11297 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
11298
479c1fb3
SP
112992011-02-08 Sebastian Pop <sebastian.pop@amd.com>
11300
11301 PR tree-optimization/46834
11302 PR tree-optimization/46994
11303 PR tree-optimization/46995
11304 * graphite-sese-to-poly.c (used_outside_reduction): New.
11305 (detect_commutative_reduction): Call used_outside_reduction.
11306 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
11307 translate_scalar_reduction_to_array only when at least one
11308 loop-phi/close-phi tuple has been detected.
11309
3865a06f
RG
113102011-02-08 Richard Guenther <rguenther@suse.de>
11311
11312 PR middle-end/47639
11313 * tree-vect-generic.c (expand_vector_operations_1): Update
11314 stmts here ...
11315 (expand_vector_operations): ... not here. Cleanup EH info
11316 and the CFG if required.
11317
62902f3f
RG
113182011-02-08 Richard Guenther <rguenther@suse.de>
11319
11320 PR tree-optimization/47641
11321 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
11322 require type compatibility.
11323
0efb9d64
AK
113242011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11325
11326 * gimple-low.c (lower_function_body): Don't remove the location of
11327 the return statement here.
11328 (lower_gimple_return): Do it here instead but only if the return
11329 statement is actually used twice.
11330
034b8ae4
RG
113312011-02-08 Richard Guenther <rguenther@suse.de>
11332
11333 PR tree-optimization/47632
11334 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
11335 unused up_to_stmt parameter, return whether cfg-cleanup is
11336 necessary, remove EH info properly.
11337 (forward_propagate_into_gimple_cond): Adjust caller.
11338 (forward_propagate_into_cond): Likewise.
11339 (forward_propagate_comparison): Likewise.
11340 (tree_ssa_forward_propagate_single_use_vars): Make
11341 forward_propagate_comparison case similar to the two others.
11342
298362c8
NC
113432011-02-08 Nick Clifton <nickc@redhat.com>
11344
11345 * config/mn10300/mn10300.opt (mliw): New command line option.
11346 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
11347 (liw_bundling): New automaton.
11348 (liw): New attribute.
11349 (liw_op): New attribute.
11350 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
11351 (movsi_internal): Add LIW attributes.
11352 (andsi3): Likewise.
11353 (iorsi3): Likewise.
11354 (xorsi3): Likewise.
11355 (addsi3): Separate register and immediate alternatives.
11356 Add LIW attributes.
11357 (subsi3): Likewise.
11358 (cmpsi): Likewise.
11359 (aslsi3): Likewise.
11360 (lshrsi3): Likewise.
11361 (ashrsi3): Likewise.
11362 (liw): New pattern.
11363 * config/mn10300/mn10300.c (liw_op_names): New
11364 (mn10300_print_operand): Handle 'W' operand descriptor.
11365 (extract_bundle): New function.
11366 (check_liw_constraints): New function.
11367 (liw_candidate): New function.
11368 (mn10300_bundle_liw): New function.
11369 (mn10300_reorg): New function.
11370 (TARGET_MACHINE_DEPENDENT_REORG): Define.
11371 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
11372 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
11373 __LIW__ or __NO_LIW__.
11374 * doc/invoke.texi: Describe the -mliw command line option.
11375
90488014
JDA
113762011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11377
11378 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
11379 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11380 pthread_mutex_unlock): Remove.
11381 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
11382 * config/pa/t-pa64: Likewise.
11383 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
11384 shared libc if not linking against libpthread.
11385 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11386
689ff841
IS
113872011-02-07 Iain Sandoe <iains@gcc.gnu.org>
11388
11389 PR target/47558
11390 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
11391 on 10.6 and later to ensure that we always use the unwinder from
11392 the system. Only add -no_compact_unwind when tarteting darwin
11393 10.6 or later.
11394
821014aa
SE
113952011-02-07 Steve Ellcey <sje@cup.hp.com>
11396
11397 PR target/46997
11398 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
11399 (vec_interleave_lowv2sf): Ditto.
11400 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
11401 (vec_extract_oddv2sf): Ditto.
11402
41cf94fb
MS
114032011-02-07 Mike Stump <mikestump@comcast.net>
11404
62dea57d 11405 PR target/42333
41cf94fb
MS
11406 Add __ieee_divdc3 entry point.
11407 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
11408 entry point.
11409 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
11410 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
11411 * config/darwin.c (darwin_rename_builtins): Add.
11412 * config/darwin-protos.h (darwin_rename_builtins): Add.
11413
ee09a3dd
MM
114142011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
11415
11416 PR target/47636
11417 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
11418 for the condition.
11419
83296cd0
MS
114202011-02-07 Mike Stump <mikestump@comcast.net>
11421
ea4c3e65 11422 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 11423
0f4e946f
DC
114242011-02-07 Denis Chertykov <chertykov@gmail.com>
11425
11426 PR target/47534
11427 * config/avr/libgcc.S (exit): Move .endfunc
11428
1ec87690
RG
114292011-02-07 Richard Guenther <rguenther@suse.de>
11430
11431 PR tree-optimization/47615
11432 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
11433 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
11434 (run_scc_vn): Initialize it.
11435 (visit_reference_op_load): Use it.
11436 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
11437
b46ae6da
UW
114382011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11439
11440 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
11441 DImode trapping arithmetic libfuncs.
11442
c0aae19c
RG
114432011-02-07 Richard Guenther <rguenther@suse.de>
11444
11445 PR tree-optimization/47621
11446 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
11447 two duplicates ...
11448 (execute_update_addresses_taken): ... here. Make it more
11449 conservative in what we accept.
11450
295d926b
JM
114512011-02-06 Joseph Myers <joseph@codesourcery.com>
11452
11453 * config/sparc/freebsd.h (ASM_SPEC): Define.
11454 * config/sparc/vxworks.h (ASM_SPEC): Define.
11455
bdeb2471
JM
114562011-02-06 Joseph Myers <joseph@codesourcery.com>
11457
11458 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11459
d5d3781a
SB
114602011-02-06 Steven Bosscher <steven@gcc.gnu.org>
11461
11462 * doc/invoke.texi: Remove reference to compiler internals from
11463 user documentation.
11464
11465 * reg-notes.def: Remove REG_VALUE_PROFILE.
11466 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
11467
c42c09fc
JJ
114682011-02-05 Jakub Jelinek <jakub@redhat.com>
11469
11470 PR middle-end/47610
11471 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 11472 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 11473
beea2755
JZ
114742011-02-05 Jie Zhang <jie@codesourcery.com>
11475
11476 PR debug/42631
11477 * web.c (entry_register): Don't clobber the number of the
11478 first uninitialized reference in used[].
11479
a130584a
SP
114802011-02-04 Sebastian Pop <sebastian.pop@amd.com>
11481
11482 PR tree-optimization/46194
11483 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
11484 (build_classic_dist_vector_1): Do not represent classic distance
11485 vectors when the access functions are variating in different loops.
11486
962101ac
JM
114872011-02-04 Joseph Myers <joseph@codesourcery.com>
11488
11489 * config/mips/iris6.opt: New.
11490 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
11491
55eaaa5b
RH
114922011-02-04 Richard Henderson <rth@redhat.com>
11493 Steve Ellcey <sje@cup.hp.com>
11494
11495 PR target/46997
11496 * config/ia64/predicates.md (mux1_brcst_element): New.
11497 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
11498 * config/ia64/ia64.c (ia64_unpack_assemble): New.
11499 (ia64_unpack_sign): New.
11500 (ia64_expand_unpack): Rewrite using new routines.
11501 (ia64_expand_widen_sum): Ditto.
11502 (ia64_expand_dot_prod_v8qi): Ditto.
11503 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
11504 routines, add endian check.
11505 (pmpy2_even): Rename from pmpy2_r, add endian check.
11506 (pmpy2_odd): Rename from pmpy2_l, add endian check.
11507 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
11508 (vec_widen_smult_hi_v4hi): Ditto.
11509 (vec_widen_umult_lo_v4hi): Ditto.
11510 (vec_widen_umult_hi_v4hi): Ditto.
11511 (mulv2si3): Change endian checks.
11512 (sdot_prodv4hi): Rewrite with new calls.
11513 (udot_prodv4hi): New.
11514 (vec_pack_ssat_v4hi): Add endian check.
11515 (vec_pack_usat_v4hi): Ditto.
11516 (vec_pack_ssat_v2si): Ditto.
11517 (max1_even): Rename from max1_r, add endian check.
11518 (max1_odd): Rename from max1_l, add endian check.
11519 (*mux1_rev): Format change.
11520 (*mux1_mix): Ditto.
11521 (*mux1_shuf): Ditto.
11522 (*mux1_alt): Ditto.
11523 (*mux1_brcst_v8qi): Use new predicate.
11524 (vec_extract_evenv8qi): Remove endian check.
11525 (vec_extract_oddv8qi): Ditto.
11526 (vec_interleave_lowv4hi): Format change.
11527 (vec_interleave_highv4hi): Ditto.
11528 (mix2_even): Rename from mix2_r, add endian check.
11529 (mix2_odd): Rename from mux2_l, add endian check.
11530 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
11531 (vec_extract_evenodd_helper): Format change.
11532 (vec_extract_evenv4hi): Remove endian check.
11533 (vec_extract_oddv4hi): Remove endian check.
11534 (vec_interleave_lowv2si): Format change.
11535 (vec_interleave_highv2si): Format change.
11536 (vec_initv2si): Remove endian check.
11537 (vecinit_v2si): Add endian check.
11538 (reduc_splus_v2sf): Add endian check.
11539 (reduc_smax_v2sf): Ditto.
11540 (reduc_smin_v2sf): Ditto.
11541 (vec_initv2sf): Remove endian check.
11542 (fpack): Add endian check.
11543 (fswap): Add endian check.
11544 (vec_interleave_highv2sf): Add endian check.
11545 (vec_interleave_lowv2sf): Add endian check.
11546 (fmix_lr): Add endian check.
11547 (vec_setv2sf): Format change.
11548 (*vec_extractv2sf_0_be): Use shift to extract operand.
11549 (*vec_extractv2sf_1_be): New.
11550 (vec_pack_trunc_v4hi): Add endian check.
11551 (vec_pack_trunc_v2si): Format change.
11552
dcde5957
JJ
115532011-02-04 Jakub Jelinek <jakub@redhat.com>
11554
11555 PR inline-asm/23200
11556 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 11557 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
11558 (stmt_is_replaceable_p): New function.
11559 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
11560 callers.
11561 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
11562 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
11563 SSA_NAME_DEF_STMT.
11564 * tree-flow.h (stmt_is_replaceable_p): New prototype.
11565
a64a8e5a
JM
115662011-02-04 Joseph Myers <joseph@codesourcery.com>
11567
11568 * config/rs6000/xilinx.opt: New.
11569 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
11570
4da2ed2f
JM
115712011-02-04 Joseph Myers <joseph@codesourcery.com>
11572
11573 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
11574
a6e508f9
AS
115752011-02-03 Anatoly Sokolov <aesok@post.ru>
11576
11577 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
11578 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
11579 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
11580 secondary_reload_info, xtensa_secondary_reload): Remove.
11581 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
11582 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
11583 (xtensa_preferred_reload_class): Make static. Change return and
11584 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
11585 Use CONST_DOUBLE_P predicate.
11586 (xtensa_preferred_output_reload_class): New function.
11587 (xtensa_secondary_reload): Make static.
11588
82dc0de3
JM
115892011-02-03 Joseph Myers <joseph@codesourcery.com>
11590
11591 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
11592 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
11593 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
11594
7fece979
JJ
115952011-02-03 Jakub Jelinek <jakub@redhat.com>
11596
11597 PR middle-end/31490
11598 * output.h (SECTION_RELRO): Define.
11599 (SECTION_MACH_DEP): Adjust.
11600 (get_variable_section): New prototype.
11601 * varpool.c (varpool_finalize_named_section_flags): New function.
11602 (varpool_assemble_pending_decls): Call it.
11603 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
11604 * cgraphunit.c (cgraph_output_in_order): Call
11605 varpool_finalize_named_section_flags.
11606 * varasm.c (get_section): Allow section flags conflicts between
11607 relro and read-only sections if the section hasn't been declared yet.
11608 Set SECTION_OVERRIDE after diagnosing section type conflict.
11609 (get_variable_section): No longer static.
11610 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
11611 readonly sections that need relocations.
11612 (decl_readonly_section_1): New function.
11613 (decl_readonly_section): Use it.
11614
11615 Revert:
509d65dd 11616 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
11617 Steve Ellcey <sje@cup.hp.com>
11618
11619 PR middle-end/31490
11620 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
11621 if section attribute used.
11622
d18d5478
JJ
116232011-02-03 Jakub Jelinek <jakub@redhat.com>
11624
11625 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
11626 * config/darwin.c (SECTION_NO_ANCHOR): Define.
11627 (darwin_init_sections): Remove assertion.
11628
6479ed4b
NC
116292011-02-03 Nick Clifton <nickc@redhat.com>
11630
11631 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
11632 lt and ge.
38be4072 11633 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
11634 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
11635 instead of "n" and "pz".
11636 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
11637 CC_FLAG_S.
11638
89843f5d
JJ
116392011-02-03 Jakub Jelinek <jakub@redhat.com>
11640
65450d64
JJ
11641 PR target/47312
11642 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
11643 fma, expand FMA_EXPR as fma{,f,l} call.
11644
7d58701c
JJ
11645 PR lto/47274
11646 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
11647 copy them into a unsigned char variable and pass address of it to
11648 lto_output_data_stream.
11649
89843f5d
JJ
11650 PR target/47564
11651 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
11652 around backend_init_target and lang_dependent_init_target calls.
11653 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
11654 (verify_cgraph_node): Don't call set_cfun here. Use
11655 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
11656 Set error_found for incorrectly represented calls to thunks.
11657
4deef538
AO
116582011-02-03 Alexandre Oliva <aoliva@redhat.com>
11659
11660 PR debug/43092
11661 PR rtl-optimization/43494
11662 * rtl.h (for_each_inc_dec_fn): New type.
11663 (for_each_inc_dec): Declare.
11664 * rtlanal.c (struct for_each_inc_dec_ops): New type.
11665 (for_each_inc_dec_find_inc_dec): New fn.
11666 (for_each_inc_dec_find_mem): New fn.
11667 (for_each_inc_dec): New fn.
11668 * dse.c (struct insn_size): Remove.
11669 (replace_inc_dec, replace_inc_dec_mem): Remove.
11670 (emit_inc_dec_insn_before): New fn.
11671 (check_for_inc_dec): Use it, along with for_each_inc_dec.
11672 (canon_address): Pass mem modes to cselib_lookup.
11673 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
11674 (cselib_lookup_from_insn): Likewise.
11675 (cselib_subst_to_values): Likewise.
11676 * cselib.c (find_slot_memmode): New var.
11677 (cselib_find_slot): New fn. Use it instead of
11678 htab_find_slot_with_hash everywhere.
11679 (entry_and_rtx_equal_p): Use find_slot_memmode.
11680 (autoinc_split): New fn.
11681 (rtx_equal_for_cselib_p): Rename and implement in terms of...
11682 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
11683 Deal with autoinc. Special-case recursion into MEMs.
11684 (cselib_hash_rtx): Likewise.
11685 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
11686 address and MEM modes.
11687 (cselib_subst_to_values): Add memmode, pass it on.
11688 Deal with autoinc.
11689 (cselib_lookup): Add memmode argument, pass it on.
11690 (cselib_lookup_from_insn): Add memmode.
11691 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
11692 (struct cselib_record_autoinc_data): New.
11693 (cselib_record_autoinc_cb): New fn.
11694 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
11695 mode to cselib_lookup. Reset autoinced REGs here instead of...
11696 (cselib_process_insn): ... here.
11697 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
11698 to cselib_lookup.
11699 (add_uses): Likewise, also to cselib_subst_to_values.
11700 (add_stores): Likewise.
11701 * sched-deps.c (add_insn_mem_dependence): Pass mode to
11702 cselib_subst_to_values.
11703 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
11704 * gcse.c (do_local_cprop): Adjusted.
11705 * postreload.c (reload_cse_simplify_set): Adjusted.
11706 (reload_cse_simplify_operands): Adjusted.
11707 * sel-sched-dump (debug_mem_addr_value): Pass mode.
11708
1551d44a
AO
117092011-02-03 Alexandre Oliva <aoliva@redhat.com>
11710
11711 PR tree-optimization/45122
11712 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
11713 unsafe assumptions when there's more than one loop exit.
11714
c9485473
MM
117152011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11716
11717 PR target/47272
11718 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
11719 Document using vector double with the load/store builtins, and
11720 that the load/store builtins always use Altivec instructions.
11721
11722 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
11723 to use altivec memory instructions, even on VSX.
11724 (vector_altivec_store_<mode>): Ditto.
11725
11726 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
11727 function.
11728
11729 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11730 V2DF, V2DI support to load/store overloaded builtins.
11731
11732 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
11733 altivec load/store builtins for V2DF/V2DI types.
11734
11735 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11736 set avoid indexed addresses on power6 if -maltivec.
11737 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
11738 vector_altivec_load/vector_altivec_store builtins.
11739 (altivec_expand_st_builtin): Ditto.
11740 (altivec_expand_builtin): Add VSX memory builtins.
11741 (rs6000_init_builtins): Add V2DI types to internal types.
11742 (altivec_init_builtins): Add support for V2DF/V2DI altivec
11743 load/store builtins.
11744 (rs6000_address_for_altivec): Insure memory address is appropriate
11745 for Altivec.
11746
11747 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
11748 vec_vsx_ld and vec_vsx_st.
11749 (vsx_store_<mode>): Ditto.
11750
11751 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
11752 variables to hold long long types for VSX vector memory builtins.
11753 (RS6000_BTI_unsigned_long_long): Ditto.
11754 (long_long_integer_type_internal_node): Ditti.
11755 (long_long_unsigned_type_internal_node): Ditti.
11756
11757 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
11758 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
11759 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
11760
11761 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
11762 short cuts.
11763 (vec_vsx_st): Ditto.
11764
b24d1acf
JM
117652011-02-02 Joseph Myers <joseph@codesourcery.com>
11766
11767 * config/pa/pa-hpux10.opt: New.
11768 * config/hpux11.opt (pthread): New Driver option.
11769 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
11770 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
11771
aa18dd0f
JM
117722011-02-02 Joseph Myers <joseph@codesourcery.com>
11773
11774 * config/ia64/vms.opt: New.
11775 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
11776
28fc3eee
MM
117772011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11778
11779 PR target/47580
11780 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
11781 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
11782 generator functions.
11783 (vsx_floatuns<VSi><mode>2): Ditto.
11784 (vsx_fix_trunc<mode><VSi>2): Ditto.
11785 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
11786
b5838b1f
JM
117872011-02-02 Joseph Myers <joseph@codesourcery.com>
11788
11789 * config/i386/djgpp.opt (posix): New Driver option.
11790
0db8fa89
GP
117912011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
11792
11793 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
11794 Move to the unsupported targets list.
11795
9cd4f22a
PB
117962011-02-02 Peter Bergner <bergner@vnet.ibm.com>
11797
11798 PR rtl-optimization/47525
11799 * df-scan.c: Update copyright years.
11800 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
11801 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
11802
9ed8059c
RO
118032011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11804
11805 * config/i386/sysv4.h (TARGET_VERSION): Remove.
11806 (SUBTARGET_RETURN_IN_MEMORY): Remove.
11807 (ASM_OUTPUT_ASCII): Remove.
11808 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
11809
2a737389
JL
118102011-02-02 Jeff Law <law@redhat.com>
11811
11812 PR middle-end/47543
11813 * reload.c (find_reloads_address): Handle reg+d address where both
11814 components are invalid by reloading the entire address.
11815
9dac82c4
SP
118162011-02-02 Sebastian Pop <sebastian.pop@amd.com>
11817 Richard Guenther <rguenther@suse.de>
11818
11819 PR tree-optimization/40979
11820 PR bootstrap/47044
11821 * passes.c (init_optimization_passes): After LIM call copy_prop
11822 and DCE to clean up.
11823 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
11824
14dd9aab
SP
118252011-02-02 Sebastian Pop <sebastian.pop@amd.com>
11826
11827 PR tree-optimization/47576
11828 PR tree-optimization/47555
11829 * doc/invoke.texi (scev-max-expr-complexity): Documented.
11830 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11831 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
11832 * tree-scalar-evolution.c (follow_ssa_edge): Use
11833 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
11834
5cbf5c20
RG
118352011-02-02 Richard Guenther <rguenther@suse.de>
11836
11837 PR tree-optimization/47566
11838 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
11839
83d70792
AO
118402011-02-02 Alexandre Oliva <aoliva@redhat.com>
11841
e829c321
AO
11842 PR debug/47106
11843 PR debug/47402
11844 * tree-inline.c (declare_return_variable): Remove unused caller
11845 variable.
11846
83d70792
AO
11847 PR debug/47106
11848 PR debug/47402
11849 * tree-flow-inline.h (clear_is_used, is_used_p): New.
11850 * cfgexpand.c (account_used_vars_for_block): Use them.
11851 * tree-nrv.c (tree_nrv): Likewise.
11852 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
11853 (dump_scope_block): Likewise.
11854 (remove_unused_locals): Likewise.
11855
aaa2ac93
AO
11856 PR debug/47106
11857 PR debug/47402
11858 * tree-inline.c (declare_return_variable): Add result decl to
11859 local decls only once.
11860 * gimple-low.c (record_vars_into): Mark newly-created variables
11861 as referenced.
11862
a59d15cf
AO
118632011-02-02 Alexandre Oliva <aoliva@redhat.com>
11864
11865 PR debug/47498
11866 PR debug/47501
11867 PR debug/45136
11868 PR debug/45130
11869 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11870 debug insns.
11871 (no_real_insns_p, schedule_block, set_priorities): Drop special
11872 treatment of boundary debug insns.
38be4072 11873 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
11874 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
11875 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11876 (BOUNDARY_DEBUG_INSN_P): Likewise.
11877 (SCHEDULE_DEBUG_INSN_P): Likewise.
11878 * sched-rgn.c (init_ready_list): Drop special treatment of
11879 boundary debug insns.
11880 * final.c (rest_of_clean_state): Clear notes' BB.
11881
6fc2f091
JM
118822011-02-01 Joseph Myers <joseph@codesourcery.com>
11883
11884 * config/openbsd.opt (assert=): New Driver option.
11885
fc523387
JM
118862011-02-01 Joseph Myers <joseph@codesourcery.com>
11887
11888 * config/i386/nto.opt: New.
11889 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
11890
6d9821e5
JM
118912011-02-01 Joseph Myers <joseph@codesourcery.com>
11892
11893 * config/i386/netware.opt: New.
11894 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
11895
cef932d4
JM
118962011-02-01 Joseph Myers <joseph@codesourcery.com>
11897
11898 * config/interix.opt (posix): New Driver option.
11899
22843acd
DD
119002011-02-01 DJ Delorie <dj@redhat.com>
11901
56490b74
DD
11902 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
11903
22843acd
DD
11904 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
11905 class for A0/A1.
11906
199c8f2f
SP
119072011-02-01 Sebastian Pop <sebastian.pop@amd.com>
11908
11909 PR tree-optimization/47561
11910 * toplev.c (process_options): Print the Graphite flags. Add
11911 flag_loop_flatten to the list of options requiring Graphite.
11912
926bcf22
JM
119132011-02-01 Joseph Myers <joseph@codesourcery.com>
11914
11915 * config/i386/cygming.opt (posix): New Driver option.
11916
59793c51
JM
119172011-02-01 Joseph Myers <joseph@codesourcery.com>
11918
11919 * config/arm/vxworks.opt: New.
11920 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
11921
183c38a4
JM
119222011-02-01 Joseph Myers <joseph@codesourcery.com>
11923
11924 * config/alpha/elf.opt: New.
11925 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
11926 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
11927
9939e416
RG
119282011-02-01 Richard Guenther <rguenther@suse.de>
11929
11930 PR tree-optimization/47559
11931 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
11932 store-motion on references that can throw.
11933
4a3c9687
BS
119342011-02-01 Bernd Schmidt <bernds@codesourcery.com>
11935
11936 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
11937 * tree-pass.h (TDF_CSELIB): New macro.
11938 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
11939 cselib_lookup): Check for it rather than for TDF_DETAILS.
11940
dd3b31fb
L
119412011-02-01 H.J. Lu <hongjiu.lu@intel.com>
11942
11943 PR driver/47547
11944 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
11945 is HOST_BIT_BUCKET.
11946
11947 * opts.c (finish_options): Don't add x_aux_base_name if it is
11948 HOST_BIT_BUCKET.
11949
34c1de79
RG
119502011-02-01 Richard Guenther <rguenther@suse.de>
11951
11952 PR tree-optimization/47555
11953 Revert
11954 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
11955
11956 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
11957
dd2804d2
SB
119582011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
11959
11960 PR gcc/46692
11961 * config/lm32/t-lm32: Add multilib for all CPU options.
11962
3fd3b156
RG
119632011-02-01 Richard Guenther <rguenther@suse.de>
11964
11965 PR tree-optimization/47541
11966 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
11967 sure to have a field at offset zero.
11968
f16072b6
JM
119692011-01-31 Joseph Myers <joseph@codesourcery.com>
11970
11971 * config/arc/arc.opt (EB, EL): New Driver options.
11972
6456cf2e
JM
119732011-01-31 Joseph Myers <joseph@codesourcery.com>
11974
11975 * config/alpha/osf5.opt: New.
11976 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
11977
cdde6ab4
JM
119782011-01-31 Joseph Myers <joseph@codesourcery.com>
11979
11980 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
11981
7633415c
SP
119822011-01-31 Sebastian Pop <sebastian.pop@amd.com>
11983
11984 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
11985 -floop-interchange.
11986 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
11987 is an alias of -floop-interchange and that it requires the
11988 Graphite infrastructure.
11989 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
11990 flag_loop_interchange based on the value of flag_tree_loop_linear.
11991
0425d6f5
JJ
119922011-01-31 Jakub Jelinek <jakub@redhat.com>
11993 Richard Guenther <rguenther@suse.de>
11994
11995 PR tree-optimization/47538
11996 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
11997 type instead of r1type, except for comparisons. For right
11998 shifts and comparisons punt if there are mismatches in
11999 sizetype vs. non-sizetype types.
12000
500b16c3
RO
120012011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12002
12003 * doc/sourcebuild.texi (Effective-Target Keywords): Document
12004 avx_runtime.
12005
e279edb0
RO
120062011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12007
12008 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
12009 version number.
12010 * configure: Regenerate.
12011
c6092243
RO
120122011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12013
12014 * configure.ac (gcc_cv_ld_static_option): Define.
12015 (gcc_cv_ld_dynamic_option): Define.
12016 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
12017 instead.
12018 (HAVE_LD_STATIC_DYNAMIC): Update message.
12019 (LD_STATIC_OPTION): Define.
12020 (LD_DYNAMIC_OPTION): Define.
12021 * configure: Regenerate.
12022 * config.in: Regenerate.
12023 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
12024 HAVE_LD_STATIC_DYNAMIC]: Use them.
12025
d7862be3
NC
120262011-01-31 Nick Clifton <nickc@redhat.com>
12027
12028 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
12029 registers inside interrupt handlers if the handler is not a leaf
12030 function.
12031
ba4ec0e0
NC
120322011-01-31 Nick Clifton <nickc@redhat.com>
12033
12034 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
12035 reg_renumber returning an INVALID_REGNUM.
12036
29a63921
AO
120372011-01-31 Alexandre Oliva <aoliva@redhat.com>
12038
12039 PR libgcj/44341
12040 * doc/install.texi: Document host options discarded when cross
12041 configuring target libraries.
12042
ef591d3f
AO
120432011-01-31 Alexandre Oliva <aoliva@redhat.com>
12044
12045 Reverted:
12046 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
12047 PR debug/45136
12048 PR debug/45130
12049 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12050 debug insns.
12051 (no_real_insns_p, schedule_block, set_priorities): Drop special
12052 treatment of boundary debug insns.
38be4072 12053 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
12054 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12055 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12056 (BOUNDARY_DEBUG_INSN_P): Likewise.
12057 (SCHEDULE_DEBUG_INSN_P): Likewise.
12058 * sched-rgn.c (init_ready_list): Drop special treatment of
12059 boundary debug insns.
12060 * final.c (rest_of_clean-state): Clear notes' BB.
12061
61052244
AM
120622011-01-31 Alan Modra <amodra@gmail.com>
12063
12064 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
12065 toc relative expressions as we do in print_operand_address.
12066
c4c8962b
KH
120672011-01-30 Kazu Hirata <kazu@codesourcery.com>
12068
12069 * doc/extend.texi: Follow spelling conventions.
12070 * doc/invoke.texi: Fix a typo.
12071
e543b94c
JM
120722011-01-30 Joseph Myers <joseph@codesourcery.com>
12073
12074 * config/hpux11.opt: New.
12075 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
12076 ia64*-*-hpux*): Use hpux11.opt.
12077
509d65dd 120782011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
12079
12080 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
12081 to tmake_file.
12082
7be03a0e
GP
120832011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12084
12085 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
12086 support sites.
12087
419d1d37
GP
120882011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
12089
b596ed64
GP
12090 * doc/install.texi (Binaries): Remove outdated reference for
12091 Motorola 68HC11/68HC12 downloads.
12092
120932011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 12094
419d1d37
GP
12095 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
12096 Drepper's paper.
12097
4406d0e9
JW
120982011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
12099
12100 PR bootstrap/47147
12101 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
12102 used by NetBSD.
12103
38be4072 121042011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
12105
12106 * value-prof.c (check_counter): Corrected error message.
12107
0cd98787
JZ
121082011-01-29 Jie Zhang <jie@codesourcery.com>
12109
12110 * config/arm/arm.c (arm_legitimize_reload_address): New.
12111 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
12112 arm_legitimize_reload_address.
38be4072 12113 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 12114
9b798ac5
ILT
121152011-01-28 Ian Lance Taylor <iant@google.com>
12116
12117 * godump.c (go_define): Ignore macros whose definitions include
12118 two adjacent operands.
12119
591e29d9
JJ
121202011-01-28 Jakub Jelinek <jakub@redhat.com>
12121
12122 PR target/42894
12123 * varasm.c (force_const_mem): Store copy of x in desc->constant
12124 instead of x itself.
12125 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
12126 itself into REG_EQUAL note.
12127
62dcc44a
JM
121282011-01-28 Joseph Myers <joseph@codesourcery.com>
12129
12130 * config/freebsd.opt (posix, rdynamic): New Driver options.
12131
c9f58b9a
RO
121322011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12133
12134 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
12135 -Bstatic/-Bdynamic.
12136 * configure: Regenerate.
12137
5f02b9db
JM
121382011-01-27 Joseph Myers <joseph@codesourcery.com>
12139
12140 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
12141 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
12142
5df97412
AS
121432011-01-27 Anatoly Sokolov <aesok@post.ru>
12144
12145 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
12146 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
12147 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12148 (s390_preferred_reload_class): Make static. Change return and
12149 'rclass' argument type to reg_class_t.
12150
779d4b91
JH
121512011-01-27 Jan Hubicka <jh@suse.cz>
12152
12153 PR middle-end/46949
12154 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
12155 (process_function_and_variable_attributes): Check defined weakrefs.
12156
e80b21ed
MJ
121572011-01-27 Martin Jambor <mjambor@suse.cz>
12158
12159 PR tree-optimization/47228
12160 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
12161 build_ref_for_offset.
12162
6dcc4f31
UW
121632011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12164
12165 * config/spu/spu-elf.h (ASM_SPEC): Remove.
12166
509d65dd 121672011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
12168
12169 PR rtl-optimization/46856
12170 * postreload.c (reload_combine_recognize_const_pattern): Do not
12171 separate cc0 setter and user on cc0 targets.
12172
04af8788
NP
121732011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
12174
12175 PR c/43082
12176 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
12177 passed a VOID_TYPE expression, immediately emit an error and
12178 return error_mark_node.
12179
f7a60085
JL
121802011-01-26 Jeff Law <law@redhat.com>
12181
12182 PR rtl-optimization/47464
12183 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
12184 rather than may_trap_p as needed.
12185
5c2917ec
DD
121862011-01-26 DJ Delorie <dj@redhat.com>
12187
12188 PR rtl-optimization/46878
12189 * combine.c (insn_a_feeds_b): Check for the implicit cc0
12190 setter/user dependency as well.
12191
bef16e87
EB
121922011-01-26 Eric Botcazou <ebotcazou@adacore.com>
12193
12194 PR rtl-optimization/44469
12195 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
12196 after removing trivially dead basic blocks.
12197
c75d884b
JM
121982011-01-26 Joseph Myers <joseph@codesourcery.com>
12199
12200 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
12201 * config/frv/frv.h (LINK_SPEC): Likewise.
12202 * config/i386/netware.h (LINK_SPEC): Likewise.
12203 * config/m68k/linux.h (ASM_SPEC): Likewise.
12204 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
12205 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12206 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12207 * config/sparc/linux.h (ASM_SPEC): Likewise.
12208 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12209 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12210
d3153553
JM
122112011-01-26 Joseph Myers <joseph@codesourcery.com>
12212
12213 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
12214 * config/frv/frv.h (ASM_SPEC): Likewise.
12215 * config/m68k/linux.h (ASM_SPEC): Likewise.
12216 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12217 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
12218 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12219 * config/sparc/linux.h (ASM_SPEC): Likewise.
12220 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12221 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12222
b89b1e9d
JM
122232011-01-26 Joseph Myers <joseph@codesourcery.com>
12224
12225 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
12226 * config/frv/frv.h (LINK_SPEC): Likewise.
12227 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
12228
12eb1a9c
JM
122292011-01-26 Joseph Myers <joseph@codesourcery.com>
12230
12231 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
12232 * config/frv/frv.h (ASM_SPEC): Likewise.
12233 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
12234 * config/m68k/linux.h (ASM_SPEC): Likewise.
12235 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
12236 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
12237 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
12238 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
12239 * config/sparc/linux.h (ASM_SPEC): Likewise.
12240 * config/sparc/linux64.h (ASM_SPEC): Likewise.
12241 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
12242 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
12243
e435f098
SE
122442011-01-26 Steve Ellcey <sje@cup.hp.com>
12245
12246 PR target/46997
12247 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
12248 (*mux2): Ditto.
12249 (vec_extract_evenodd_help): Ditto.
12250 (vec_extract_evenv4hi): Ditto.
12251 (vec_extract_oddv4hi): Ditto.
12252 (vec_interleave_lowv2si): Ditto.
12253 (vec_interleave_highv2si): Ditto.
12254 (vec_extract_evenv2si): Ditto.
12255 (vec_extract_oddv2si: Ditto.
12256 (vec_pack_trunc_v2si): Ditto.
12257
34f0eee0
JH
122582011-01-22 Jan Hubicka <jh@suse.cz>
12259
12260 PR target/47237
12261 * cgraph.h (cgraph_local_info): New field can_change_signature.
12262 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
12263 signature can change.
12264 (ipcp_estimate_growth): Call sequence simplify only if calle signature
12265 can change.
12266 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
12267 (cgraph_function_versioning): We can not change signature of functions
12268 that don't allow that.
12269 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
12270 (lto_input_node): Likewise.
38be4072
UB
12271 * ipa-inline.c (compute_inline_parameters): Compute
12272 local.can_change_signature.
34f0eee0 12273 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
12274 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
12275 functions that can not change signature.
34f0eee0 12276 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
12277 init_cumulative_args): Do not use local calling conventions
12278 for functions that can not change signature.
34f0eee0 12279
980ca891
JH
122802011-01-22 Jan Hubicka <jh@suse.cz>
12281
12282 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
12283
768e3c60
RG
122842011-01-26 Richard Guenther <rguenther@suse.de>
12285
12286 PR tree-optimization/47190
61052244
AM
12287 * cgraphunit.c (process_common_attributes): New function.
12288 (process_function_and_variable_attributes): Use it.
768e3c60 12289
21d6a1c7
RG
122902011-01-26 Richard Guenther <rguenther@suse.de>
12291
12292 PR lto/47423
12293 * cgraphbuild.c (record_eh_tables): Record reference to personality
12294 function.
12295
48bb58b1
AO
122962011-01-26 Alexandre Oliva <aoliva@redhat.com>
12297
12298 PR debug/45454
12299 * sel-sched.c (moveup_expr): Don't let debug insns prevent
12300 non-debug insns from moving up.
12301
58c741a6
DK
123022011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12303
12304 PR target/40125
12305 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
12306 t-dlldir{,-x} fragment for build and add it to tmake_file.
12307 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12308 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
12309 * config/i386/t-dlldir: New file.
12310 (SHLIB_DLLDIR): Define.
12311 * config/i386/t-dlldir-x: New file.
12312 (SHLIB_DLLDIR): Define.
12313 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
12314 (SHLIB_INSTALL): Use it.
12315
bff99262
CLT
123162011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
12317
12318 PR target/47246
12319 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
12320 lower bound of the allowed Thumb-2 coprocessor load/store
12321 index range to -256. Add explaining comment.
12322
82c03907
ILT
123232011-01-25 Ian Lance Taylor <iant@google.com>
12324
12325 * godump.c (go_define): Improve lexing of macro expansion to only
12326 accept expressions which match Go spec.
12327
47ea1edf
DK
123282011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
12329
d4dba752 12330 PR c++/43601
47ea1edf
DK
12331 * tree.c (handle_dll_attribute): Handle it.
12332 * doc/extend.texi (@item dllexport): Mention it.
12333 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
12334
744f0946
ILT
123352011-01-25 Ian Lance Taylor <iant@google.com>
12336
12337 PR tree-optimization/26854
12338 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
12339 (decl_jump_unsafe): Move higher in file, with no other change.
12340 (bind): Set has_jump_unsafe_decl if appropriate.
12341 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
12342 (check_earlier_gotos): Likewise.
12343 (c_check_switch_jump_warnings): Likewise.
12344
5734f2b3
JW
123452011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
12346
12347 * doc/invoke.texi (Warning Options): Add missing hyphen.
12348 (-fprofile-dir): Minor grammatical fixes.
12349 (-fbranch-probabilities): Likewise.
12350
9bdbdcef
AO
123512011-01-25 Alexandre Oliva <aoliva@redhat.com>
12352
12353 PR debug/45136
12354 PR debug/45130
12355 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
12356 debug insns.
12357 (no_real_insns_p, schedule_block, set_priorities): Drop special
12358 treatment of boundary debug insns.
38be4072 12359 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
12360 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
12361 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
12362 (BOUNDARY_DEBUG_INSN_P): Likewise.
12363 (SCHEDULE_DEBUG_INSN_P): Likewise.
12364 * sched-rgn.c (init_ready_list): Drop special treatment of
12365 boundary debug insns.
12366 * final.c (rest_of_clean-state): Clear notes' BB.
12367
b305e3da
SP
123682011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12369
12370 * Makefile.in (LAMBDA_H): Removed.
12371 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
12372 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
12373 lambda-trans.o, and tree-loop-linear.o.
12374 (lto-symtab.o): Remove dependence on LAMBDA_H.
12375 (tree-loop-linear.o): Remove rule.
12376 (lambda-mat.o): Same.
12377 (lambda-trans.o): Same.
12378 (lambda-code.o): Same.
12379 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
12380 (tree-vect-slp.o): Same.
12381 * hwint.h (gcd): Moved here.
12382 (least_common_multiple): Same.
12383 * lambda-code.c: Removed.
12384 * lambda-mat.c: Removed.
12385 * lambda-trans.c: Removed.
12386 * lambda.h: Removed.
12387 * tree-loop-linear.c: Removed.
12388 * lto-symtab.c: Do not include lambda.h.
12389 * omega.c (gcd): Removed.
12390 * passes.c (init_optimization_passes): Remove pass_linear_transform.
12391 * tree-data-ref.c (print_lambda_vector): Moved here.
12392 (lambda_vector_copy): Same.
12393 (lambda_matrix_copy): Same.
12394 (lambda_matrix_id): Same.
12395 (lambda_vector_first_nz): Same.
12396 (lambda_matrix_row_add): Same.
12397 (lambda_matrix_row_exchange): Same.
12398 (lambda_vector_mult_const): Same.
12399 (lambda_vector_negate): Same.
12400 (lambda_matrix_row_negate): Same.
12401 (lambda_vector_equal): Same.
12402 (lambda_matrix_right_hermite): Same.
12403 * tree-data-ref.h: Do not include lambda.h.
12404 (lambda_vector): Moved here.
12405 (lambda_matrix): Same.
12406 (dependence_level): Same.
12407 (lambda_transform_legal_p): Removed declaration.
12408 (lambda_collect_parameters): Same.
12409 (lambda_compute_access_matrices): Same.
12410 (lambda_vector_gcd): Same.
12411 (lambda_vector_new): Same.
12412 (lambda_vector_clear): Same.
12413 (lambda_vector_lexico_pos): Same.
12414 (lambda_vector_zerop): Same.
12415 (lambda_matrix_new): Same.
12416 * tree-flow.h (least_common_multiple): Removed declaration.
12417 * tree-parloops.c (lambda_trans_matrix): Moved here.
12418 (LTM_MATRIX): Same.
12419 (LTM_ROWSIZE): Same.
12420 (LTM_COLSIZE): Same.
12421 (LTM_DENOMINATOR): Same.
12422 (lambda_trans_matrix_new): Same.
12423 (lambda_matrix_vector_mult): Same.
12424 (lambda_transform_legal_p): Same.
12425 * tree-pass.h (pass_linear_transform): Removed declaration.
12426 * tree-ssa-loop.c (tree_linear_transform): Removed.
12427 (gate_tree_linear_transform): Removed.
12428 (pass_linear_transform): Removed.
12429 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
12430 flag_loop_interchange.
12431
6bdfdb96
JJ
124322011-01-25 Jakub Jelinek <jakub@redhat.com>
12433
12434 PR tree-optimization/47265
12435 PR tree-optimization/47443
12436 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
12437 if name still has some uses.
12438
e4cba915
MJ
124392011-01-25 Martin Jambor <mjambor@suse.cz>
12440
12441 PR tree-optimization/47382
12442 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
12443 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
12444
509d65dd 124452011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
12446
12447 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
12448 sjlj_except_unwind_info.
12449
194313e2
RG
124502011-01-25 Richard Guenther <rguenther@suse.de>
12451
12452 PR tree-optimization/47426
12453 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
12454 visible functions results escape.
12455
147a0bcf
JJ
124562011-01-25 Jakub Jelinek <jakub@redhat.com>
12457
12458 PR target/45701
12459 * config/arm/arm.c (any_sibcall_uses_r3): New function.
12460 (arm_get_frame_offsets): Use it.
12461
db963b52
SP
124622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12463 Jakub Jelinek <jakub@redhat.com>
12464
12465 PR tree-optimization/47271
12466 * tree-if-conv.c (bb_postdominates_preds): New.
12467 (if_convertible_bb_p): Call bb_postdominates_preds.
12468 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
12469 (predicate_scalar_phi): Call bb_postdominates_preds.
12470
bcddd3b9
NC
124712011-01-25 Nick Clifton <nickc@redhat.com>
12472
12473 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
12474 * config/rx/rx.c (rx_function_value): Likewise.
12475 (rx_promote_function_mode): Likewise.
12476 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
12477 in order to make it legitimate.
38be4072
UB
12478 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
12479 make sure that the first operand is the same as the result register.
bcddd3b9
NC
12480 (addsi3_unspec): Delete.
12481 (subdi3): Do not accept immediate operands.
12482 (subdi3_internal): Likewise.
12483
7e6cb022
JL
124842011-01-25 Jeff Law <law@redhat.com>
12485
12486 PR rtl-optimization/37273
12487 * ira-costs.c (scan_one_insn): Detect constants living in memory and
12488 handle them like argument loads from stack slots. Do not double
12489 count memory for memory constants and argument loads from stack slots.
12490
9ffa621e
JJ
124912011-01-25 Jakub Jelinek <jakub@redhat.com>
12492
12493 PR tree-optimization/47427
12494 PR tree-optimization/47428
12495 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
12496 coalesce if the new root var would be TREE_READONLY.
12497
5bd6e652
RG
124982011-01-25 Richard Guenther <rguenther@suse.de>
12499
12500 PR middle-end/47414
12501 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
12502 correct type for TBAA.
12503
7c48ea69
SP
125042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12505
12506 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
12507 (close_phi_written_to_memory): Call for_each_index with
12508 dr_indices_valid_in_loop.
12509
38013f25
SP
125102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12511
12512 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
12513 when it is initialized.
12514
5c640e29
SP
125152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12516
12517 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
12518 call to graphite_find_data_references_in_stmt.
12519 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
12520 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
12521 call to graphite_find_data_references_in_stmt.
12522 (analyze_drs_in_stmts): Same.
12523 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
12524 in which the scalar analysis of indices is performed.
12525 (create_data_ref): Same. Update call to dr_analyze_indices.
12526 (find_data_references_in_stmt): Update call to create_data_ref.
12527 (graphite_find_data_references_in_stmt): Same.
12528 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
12529 declaration.
12530 (create_data_ref): Same.
12531 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
12532 call to create_data_ref.
12533
ac53c069
SP
125342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12535
12536 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 12537 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 12538
3d17df15
SP
125392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12540
12541 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
12542 VAR_DECL, PARM_DECL, and RESULT_DECL.
12543
c513da01
SP
125442011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12545
12546 * graphite-dependences.c (reduction_dr_1): Allow several reductions
12547 in a reduction PBB.
12548 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
12549 that have already been marked as PBB_IS_REDUCTION.
12550
3a292d59
SP
125512011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12552
12553 * graphite-scop-detection.c (same_close_phi_node): New.
12554 (remove_duplicate_close_phi): New.
12555 (make_close_phi_nodes_unique): New.
12556 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
12557
ba858447
SP
125582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12559
12560 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
12561 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
12562 of both data references to be the same.
12563
8d865c56
SP
125642011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12565
38be4072
UB
12566 * graphite-dependences.c (build_lexicographical_constraint): Remove
12567 the gdim parameter.
12568 (build_lexicographical_constraint): Adjust call to
12569 ppl_powerset_is_empty.
8d865c56
SP
12570 (dependence_polyhedron): Same.
12571 (graphite_legal_transform_dr): Same.
12572 (graphite_carried_dependence_level_k): Same.
38be4072
UB
12573 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
12574 parameter.
8d865c56
SP
12575 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
12576
50034a36
SP
125772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12578
12579 * graphite-sese-to-poly.c
12580 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
12581 (close_phi_written_to_memory): New.
12582 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
12583 and unshare_expr.
12584
0deada9e
SP
125852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12586
12587 * doc/install.texi: Update the expected version number of PPL to 0.11.
12588 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
12589 #if PPL_VERSION_MINOR < 11.
12590
d7d3d6af
SP
125912011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12592
12593 * graphite-dependences.c: Include graphite-cloog-util.h.
12594 (new_poly_ddr): Inlined into dependence_polyhedron.
12595 (free_poly_ddr): Moved close by new_poly_ddr.
12596 (dependence_polyhedron_1): Renamed dependence_polyhedron.
12597 Early return NULL when ppl_powerset_is_empty returns true.
12598 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
12599 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
12600 (graphite_legal_transform_dr): Call new_poly_ddr.
12601 (graphite_carried_dependence_level_k): Same.
12602 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
12603 (dot_transformed_deps_stmt_1): Removed.
12604 (dot_deps_stmt_1): Call dot_deps_stmt_2.
12605 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
12606 (dot_deps_1): Call dot_deps_2.
12607 * Makefile.in (graphite-dependences.o): Add missing dependence on
12608 graphite-cloog-util.h.
12609
28c5db57
SP
126102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12611
12612 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
12613 (build_lexicographical_constraint): Same.
12614 (dependence_polyhedron_1): Same.
12615 (graphite_legal_transform_dr): Same.
12616 (graphite_carried_dependence_level_k): Same.
12617 * graphite-ppl.c (ppl_powerset_is_empty): New.
12618 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
12619 * tree-data-ref.c (dump_data_reference): Print the basic block index.
12620
5168d98f
SP
126212011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12622
12623 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
12624 the "a followed by b" relation and document it.
12625
4a40293a
SP
126262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12627
12628 * graphite-dependences.c (build_lexicographical_constraint): Stop the
12629 iteration when the bag of constraints is empty.
12630
271fb6fa
SP
126312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12632
12633 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
12634
92d23680
SP
126352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12636
12637 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
12638 nest and two loop depths as parameters.
12639 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
12640 lst_perfect_nestify.
12641
2f51deff
SP
126422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12643
12644 * graphite-dependences.c (print_pddr): Call
12645 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
12646
07f3593c
SP
126472011-01-25 Sebastian Pop <sebastian.pop@amd.com>
12648
12649 * graphite-ppl.c (debug_gmp_value): New.
12650 * graphite-ppl.h (debug_gmp_value): Declared.
12651
3fae6099
TG
126522011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
12653
12654 * doc/install.texi: Document availability of cloog-0.16.
12655
1c3ba85b
SP
126562011-01-25 Vladimir Kargov <kargov@gmail.com>
12657
12658 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
12659 invalid postdominance info.
12660
e8ba94fc
JH
126612011-01-24 Jan Hubicka <jh@suse.cz>
12662
12663 PR c/21659
12664 * doc/extend.texi (weak pragma): Drop claim that it must
12665 appear before definition.
12666 * varasm.c (merge_weak, declare_weak): Only sanity check
12667 that DECL is not output at a time it is declared weak.
12668
2b6e2d13
KZ
126692011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
12670
12671 * machmode.def: Fixed comments.
1c3ba85b 12672
9841210f
KT
126732011-01-24 Kai Tietz <kai.tietz@onevision.com>
12674
12675 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
12676
126772011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
12678
12679 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 12680 WORDS_BIG_ENDIAN.
e046112d 12681
a6c5070a
L
126822011-01-24 H.J. Lu <hongjiu.lu@intel.com>
12683
12684 PR target/46519
12685 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
12686 (block_info): Add scanned and prev.
12687 (move_or_delete_vzeroupper_2): Return if the basic block
12688 has been scanned and the upper 128bit state is unchanged
12689 from the last scan.
12690 (move_or_delete_vzeroupper_1): Return true if the exit
12691 state is changed.
12692 (move_or_delete_vzeroupper): Visit basic blocks using the
12693 work-list based algorithm based on vt_find_locations in
12694 var-tracking.c.
12695
12696 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
12697
a40d79d7
NC
126982011-01-24 Nick Clifton <nickc@redhat.com>
12699
12700 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
12701 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
12702 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
12703 then define __v850e1__.
12704 * doc/invoke.texi: Document -mv850es.
12705
440eb8de
RH
127062011-01-24 Richard Henderson <rth@redhat.com>
12707
12708 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
12709 compound unordered comparisons.
12710 * config/rx/rx.c (rx_split_fp_compare): Remove.
12711 * config/rx/rx-protos.h: Update.
12712 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
12713 (cbranchsf4): Don't call rx_split_fp_compare.
12714 (*cbranchsf4): Use rx_split_cbranch.
12715 (*cmpsf): Don't accept "i" constraint.
12716 (*conditional_branch): Only valid after reload.
12717 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
12718
3ff79f99
MM
127192011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12720
12721 PR target/47385
12722 * config/rs6000/altivec.md (vector constant splitters): Add
12723 support for creating vector single precision constants if -mvsx is
12724 used and we would create the constant using Altivec primitives.
12725
ff3d9d08
BS
127262011-01-23 Bernd Schmidt <bernds@codesourcery.com>
12727 Richard Sandiford <rdsandiford@googlemail.com>
12728
12729 PR rtl-optimization/47166
12730 * reload1.c (emit_reload_insns): Disable the spill_reg_store
12731 mechanism for PRE_MODIFY and POST_MODIFY.
12732 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
12733 reloadreg.
12734
7fcaf152
AS
127352011-01-23 Andreas Schwab <schwab@linux-m68k.org>
12736
8788adb6 12737 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 12738
d09b58c4
JH
127392011-01-22 Jan Hubicka <jh@suse.cz>
12740
12741 PR lto/47333
12742 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
12743
e8ff8c5a
JH
127442011-01-22 Jan Hubicka <jh@suse.cz>
12745
12746 PR tree-optimization/43884
12747 PR lto/44334
8788adb6 12748 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
12749 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
12750
ccaed3ba
AS
127512011-01-22 Anatoly Sokolov <aesok@post.ru>
12752
12753 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12754 * config/s390/s390.c (s390_register_move_cost,
12755 s390_memory_move_cost): New.
12756 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12757
0cecee06
UW
127582011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12759
12760 PR middle-end/47401
12761 * except.c (sjlj_assign_call_site_values): Move setting the
12762 crtl->uses_eh_lsda flag to ...
12763 (sjlj_mark_call_sites): ... here.
12764 (sjlj_emit_function_enter): Support NULL dispatch label.
12765 (sjlj_build_landing_pads): In a function with no landing pads
12766 that still has must-not-throw regions, generate code to register
12767 a personality function with empty LSDA.
12768
e692f276
RH
127692011-01-21 Richard Henderson <rth@redhat.com>
12770
1b7ae0b7
RH
12771 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
12772
3843787f
RH
12773 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
12774
e692f276
RH
12775 * compare-elim.c: New file.
12776 * Makefile.in (OBJS-common): Add it.
12777 (compare-elim.o): New.
12778 * common.opt (fcompare-elim): New.
12779 * opts.c (default_options_table): Add OPT_fcompare_elim.
12780 * tree-pass.h (pass_compare_elim_after_reload): New.
12781 * passes.c (init_optimization_passes): Add it.
12782 * recog.h: Protect against re-inclusion.
12783 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
12784 * doc/invoke.texi (-fcompare-elim): Document it.
12785 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
12786 * doc/tm.texi: Rebuild.
12787
9a7c2050
NC
127882011-01-22 Nick Clifton <nickc@redhat.com>
12789
12790 * config/rx/rx.md (cstoresf4): Pass comparison operator to
12791 rx_split_fp_compare.
12792
15ba5696
NC
127932011-01-22 Nick Clifton <nickc@redhat.com>
12794
12795 * config/rx/rx.md (UNSPEC_CONST): New.
12796 (deallocate_and_return): Wrap the amount popped off the stack in
12797 an UNSPEC_CONST in order to stop it being rejected by
12798 -mmax-constant-size.
12799 (pop_and_return): Add a "(return)" rtx.
12800 (call): Drop the immediate operand.
12801 (call_internal): Likewise.
12802 (call_value): Likewise.
12803 (call_value_internal): Likewise.
12804 (sibcall_internal): Likewise.
12805 (sibcall_value_internal): Likewise.
12806 (sibcall): Likewise. Generate an explicit call using
12807 sibcall_internal.
12808 (sibcall_value): Likewise.
12809 (mov<>): FAIL if a constant operand is not legitimate.
12810 (addsi3_unpsec): New pattern.
9a7c2050 12811
38be4072 12812 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
12813 (ok_for_max_constant): New function.
12814 (gen_safe_add): New function.
12815 (rx_expand_prologue): Use gen_safe_add.
12816 (rx_expand_epilogue): Likewise.
12817 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
12818 UNSPEC CONSTs.
12819
caaf13d3
JL
128202011-01-21 Jeff Law <law@redhat.com>
12821
12822 PR tree-optimization/47053
12823 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
12824 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
12825 statements are deleted.
12826 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
12827 is nonempty, then purge dead edges and cleanup the CFG.
12828
12c30f2f
AO
128292011-01-21 Alexandre Oliva <aoliva@redhat.com>
12830
12831 PR debug/47402
12832 Temporarily revert:
12833 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
12834 PR debug/47106
12835 * tree-dfa.c (create_var_ann): Mark variable as used.
12836
7360d2ac
JJ
128372011-01-21 Jakub Jelinek <jakub@redhat.com>
12838
aaa52a96
JJ
12839 PR middle-end/45566
12840 * except.c (convert_to_eh_region_ranges): Emit queued no-region
12841 notes from other section in hot/cold partitioning even if
12842 last_action is -3. Increment call_site_base.
12843
7360d2ac
JJ
12844 PR rtl-optimization/47366
12845 * fwprop.c (forward_propagate_into): Return bool. If
12846 any changes are made, -fnon-call-exceptions is used and
12847 REG_EH_REGION note is present, call purge_dead_edges
12848 and return true if it purged anything.
12849 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
12850 any EH edges were purged.
12851
e90b336f
JL
128522011-01-21 Jeff Law <law@redhat.com>
12853
12854 PR rtl-optimization/41619
12855 * caller-save.c (setup_save_areas): Break out code to determine
12856 which hard regs are live across calls by examining the reload chains
12857 so that it is always used.
12858 Eliminate code which checked REG_N_CALLS_CROSSED.
12859
3ffe07e1
JJ
128602011-01-21 Jakub Jelinek <jakub@redhat.com>
12861
12862 PR tree-optimization/47355
12863 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
12864 NOP has non-debug uses beyond PHIs in new_bb.
12865
1c7d0b34
AO
128662011-01-21 Alexandre Oliva <aoliva@redhat.com>
12867
12868 PR debug/47106
12869 * cfgexpand.c (account_used_vars_for_block): Only account vars
12870 that are annotated as used.
12871 (estimated_stack_frame_size): Don't set TREE_USED.
12872 * tree-dfa.c (create_var_ann): Mark variable as used.
12873
f99cc488
RG
128742011-01-21 Richard Guenther <rguenther@suse.de>
12875
12876 PR middle-end/47395
12877 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
12878
3bc27de7
RG
128792011-01-21 Richard Guenther <rguenther@suse.de>
12880
12881 PR tree-optimization/47365
12882 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
12883 (vn_reference_lookup_pieces): Adjust.
12884 (vn_reference_lookup): Likewise.
12885 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
12886 (vn_reference_lookup_3): Only look through kills if in
12887 VN_WALKREWRITE mode.
12888 (vn_reference_lookup_pieces): Adjust.
12889 (vn_reference_lookup): Likewise.
12890 (visit_reference_op_load): Likewise.
12891 (visit_reference_op_store): Likewise.
12892 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
12893 (compute_avail): Likewise.
12894 (eliminate): Likewise.
12895
d8debb1d
JJ
128962011-01-21 Jakub Jelinek <jakub@redhat.com>
12897
12898 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
12899 DECL_IGNORED_P non-reg vars if they are used.
12900
3a2df831
JJ
12901 PR tree-optimization/47391
12902 * varpool.c (const_value_known_p): Return false if
12903 decl is volatile.
12904
1dd584a2
KT
129052011-01-21 Kai Tietz <kai.tietz@onevision.com>
12906
12907 PR bootstrap/47215
12908 * config/i386/i386.c (ix86_local_alignment): Handle
12909 case for va_list_type_node is nil.
12910 (ix86_canonical_va_list_type): Likewise.
12911
7f9f095e
AM
129122011-01-21 Alan Modra <amodra@gmail.com>
12913
12914 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
12915 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
12916
837b01f6
RR
129172011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12918
12919 * config/arm/arm.md (define_attr type): Rename f_load
12920 and f_store to f_fpa_load and f_fpa_store. Update.
12921 (write_conflict): Deal with rename fallout.
12922 (*push_fp_multi): Likewise.
12923 * config/arm/fpa.md (f_load): Use f_fpa_load.
12924 (f_store): Use f_fpa_store.
12925 (*movsf_fpa): Likewise.
12926 (*movdf_fpa): Likewise.
12927 (*movxf_fpa): Likewise.
12928 (*thumb2_movsf_fpa): Likewise.
12929 (*thumb2_movdf_fpa): Likewise.
12930 (*thumb2_movxf_fpa): Likewise.
12931 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
12932 f_loadd and f_stored.
12933 (*thumb2_movdi_vfp): Likewise.
12934 (*thumb2_movsf_vfp): Fix attribute to f_loads.
12935 (*thumb2_movsi_vfp): Likewise.
12936 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
12937 Use f_loads instead of f_load.
12938 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
12939
a1a79768
AS
129402011-01-20 Anatoly Sokolov <aesok@post.ru>
12941
12942 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12943 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
12944 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12945 (xtensa_mode_dependent_address_p): New function.
12946 (constantpool_address_p): Make static. Change return type to bool.
12947 Change argument type to const_rtx. Use CONST_INT_P predicate.
12948
427f6cec
AO
129492011-01-20 Alexandre Oliva <aoliva@redhat.com>
12950
12951 PR debug/46583
12952 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
12953
583ac69c
JJ
129542011-01-20 Jakub Jelinek <jakub@redhat.com>
12955
12956 PR debug/47283
12957 * cfgexpand.c (expand_debug_expr): Instead of generating
12958 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
12959 etc. handling.
12960
93e452ed
RG
129612011-01-20 Richard Guenther <rguenther@suse.de>
12962
12963 PR middle-end/47370
12964 * tree-inline.c (remap_gimple_op_r): Recurse manually for
12965 the pointer operand of MEM_REFs.
12966
28fc44f3
JJ
129672011-01-20 Jakub Jelinek <jakub@redhat.com>
12968
12969 PR tree-optimization/46130
12970 * ipa-split.c (consider_split): If return_bb contains non-virtual
12971 PHIs other than for retval or if split_function would not adjust it,
12972 refuse to split.
12973
ddd268f2
RG
129742011-01-20 Richard Guenther <rguenther@suse.de>
12975
12976 PR tree-optimization/47167
12977 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12978 Revert previous change, only avoid enumeral type changes.
12979
882020aa
MS
129802011-01-19 Mike Stump <mikestump@comcast.net>
12981
12982 * doc/tm.texi.in (BRANCH_COST): Englishify.
12983 * doc/tm.texi (BRANCH_COST): Likewise.
12984
7edb6247
DS
129852011-01-19 Dodji Seketeli <dodji@redhat.com>
12986
12987 PR c++/47291
12988 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
12989 (gen_scheduled_generic_parms_dies): New functions.
12990 (gen_struct_or_union_type_die): Schedule template parameters DIEs
12991 generation for the end of CU compilation.
12992 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 12993
23d5ed5d
AO
129942011-01-19 Alexandre Oliva <aoliva@redhat.com>
12995
12996 PR debug/46240
12997 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
12998 debug bind stmt on merge edges.
12999
37d6a488
AO
130002011-01-19 Alexandre Oliva <aoliva@redhat.com>
13001
13002 PR debug/47079
13003 PR debug/46724
13004 * function.c (instantiate_expr): Instantiate incoming rtl of
13005 implicit arguments, and recurse on VALUE_EXPRs.
13006 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
13007 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
13008
689f2c82
AO
130092011-01-19 Alexandre Oliva <aoliva@redhat.com>
13010
13011 * c-parser.c (c_parser_for_statement): Initialize
13012 collection_expression.
13013
03029de4
JM
130142011-01-19 Joseph Myers <joseph@codesourcery.com>
13015
13016 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
13017
3e03217e
JM
130182011-01-19 Joseph Myers <joseph@codesourcery.com>
13019
13020 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
13021 (LINK_SHLIB_SPEC): Don't use %(link_path).
13022 (SUBTARGET_EXTRA_SPECS): Remove link_path.
13023
5bbe9b3f
JM
130242011-01-19 Joseph Myers <joseph@codesourcery.com>
13025
13026 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
13027 (NO_SHARED_LIB_SUPPORT): Remove.
13028 (LINK_SHLIB_SPEC): Remove one conditional definition.
13029
368e0b39
JM
130302011-01-19 Joseph Myers <joseph@codesourcery.com>
13031
13032 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
13033 %{call_shared}.
13034 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
13035 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
13036 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
13037 %{call_shared} and conditionals on these options not being passed.
13038 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
13039 %{call_shared}.
13040
ed7656f6
JJ
130412011-01-19 Jakub Jelinek <jakub@redhat.com>
13042
68457901
JJ
13043 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
13044 simplify.
13045
ed7656f6
JJ
13046 * ipa-split.c: Spelling fixes.
13047
e0d1958f
RH
130482011-01-19 Richard Henderson <rth@redhat.com>
13049
13050 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
13051 (*mulsi3): Likewise.
13052
27098b6b
RH
13053 * longlong.h [__mn10300__] (count_leading_zeros): New.
13054 [__mn10300__] (umul_ppmm, smul_ppmm): New.
13055 [__mn10300__] (add_ssaaaa, subddmmss): New.
13056 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
13057 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
13058
d6be7c36
UW
130592011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13060
13061 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
13062
b1efde2a
RH
130632011-01-19 Richard Henderson <rth@redhat.com>
13064
44217823
RH
13065 * config/mn10300/mn10300.md (addsi3_flags): New.
13066 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
13067 (subsi3_flags, subc_internal, subdi3): New.
13068 (subdi3_internal, *subdi3_degenerate): New.
13069 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
13070
37a185d7
RH
13071 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
13072 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
13073 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
13074 * config/mn10300/mn10300-protos.h: Update.
13075 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
13076 (return_ret): Likewise. Rename from return_internal_regs.
13077 (return_internal): Remove.
13078
040c5757
RH
13079 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
13080 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
13081 (mn10300_legitimate_constant_p): Likewise.
13082 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
13083 (mn10300_frame_size): New.
13084 (mn10300_expand_prologue): Use it.
13085 (mn10300_expand_epilogue): Likewise.
13086 (mn10300_initial_offset): Likewise.
13087 * config/mn10300/mn10300-protos.h: Update.
13088 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
13089 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
13090 (prologue, epilogue, return_internal): Tidy output code.
13091 (mn10300_store_multiple_operation, return): Likewise.
13092 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
13093 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
13094 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
13095 (load_pic, am33_load_pic): New.
13096 (mn10300_load_pic0, mn10300_load_pic1): New.
13097
bad41521
RH
13098 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
13099 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
13100 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
13101 (cc_flags_for_mode, cc_flags_for_code): New.
13102 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
13103 overflow flag is not valid. Validate that the flags we need
13104 for the comparison are valid.
13105 (mn10300_output_cmp): Remove.
13106 (mn10300_output_add): New.
13107 (mn10300_select_cc_mode): Use cc_flags_for_code.
13108 (mn10300_split_cbranch): New.
13109 (mn10300_match_ccmode): New.
13110 (mn10300_split_and_operand_count): New.
13111 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
13112 to the function.
13113 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
13114 (addsi3): ... here. Use mn10300_output_add.
13115 (*addsi3_flags): New.
13116 (*am33_subsi3, *mn10300_subsi3): Merge...
13117 (subsi3): ... here. Use attribute isa.
13118 (*subsi3_flags): New.
13119 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
13120 when possible.
13121 (*am33_andsi3, *mn10300_andsi3): Merge...
13122 (andsi3): ... here.
13123 (*andsi3_flags): New.
13124 (andsi3 splitters): New.
13125 (*am33_iorsi3, *mn10300_iorsi3): Merge...
13126 (iorsi3): ... here.
13127 (*iorsi3_flags): New.
13128 (*am33_xorsi3, *mn10300_xorsi3): Merge...
13129 (xorsi3): ... here.
13130 (*xorsi3_flags): New.
13131 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
13132 (one_cmplsi2): ... here.
13133 (*one_cmplsi2_flags): New.
13134 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
13135 instead of "dax" in constraints. Use mn10300_split_cbranch.
13136 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
13137 use matching constraints to eliminate a self-comparison.
13138 (*integer_conditional_branch): Rename from integer_conditional_branch.
13139 Use int_mode_flags to match CC_REG.
13140 (*cbranchsi4_btst, *btstsi): New.
13141 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
13142 mn10300_split_cbranch.
13143 (*am33_cmpsf): Rename from am33_cmpsf.
13144 (*float_conditional_branch): Rename from float_conditional_branch.
13145 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
13146 (zero_extendqisi2): ... here.
13147 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
13148 (zero_extendhisi2): ... here.
13149 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
13150 (extendqisi2): ... here.
13151 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
13152 (extendhisi2): ... here.
13153 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
13154 (ashlsi3): ... here.
13155 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
13156 (lshrsi3): ... here.
13157 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
13158 (ashrsi3): ... here.
13159 (consecutive add peephole): Remove.
13160 * config/mn10300/predicates.md (label_ref_operand): New.
13161 (int_mode_flags): New.
13162 (CCZN_comparison_operator): New.
13163
9efb4993
RH
13164 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
13165 (throughput_42_latency_43): New reservation.
13166 (mulsidi3, umulsidi3): New expanders.
13167 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
13168 the MDR register to allocation; separately allocate the low and
13169 high parts of the DImode result.
13170 (umulsidi3_internal): Similarly.
13171 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
13172 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
13173 (udivsi3, umodsi3): Remove.
13174 (udivmodsi4, divmodsi4): New expanders.
13175 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
13176 (*divmodsi4): Simiarly.
13177 (ext_internal): New.
13178
c25a21f5
RH
13179 * config/mn10300/constraints.md ("z"): New constraint.
13180 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
13181 (FIXED_REGISTERS): Don't fix MDR.
13182 (CALL_USED_REGSITERS): Reformat nicely.
13183 (REG_ALLOC_ORDER): Add MDR.
13184 (enum regclass): Add MDR_REGS.
13185 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
13186 (IRA_COVER_CLASSES): Add MDR_REGS.
13187 (REGNO_REG_CLASS): Handle MDR_REG.
13188 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
13189 (mn10300_register_move_cost): Likewise.
13190 * config/mn10300/mn10300.md (MDR_REG): New.
13191 (*movsi_internal): Handle moves to/from MDR_REGS.
13192
36846b26
RH
13193 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
13194 POST_MODIFY.
13195 (mn10300_secondary_reload): Tidy combination reload classes.
13196 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
13197 addresses for AM33. Allow symbolic offsets for reg+imm.
13198 (mn10300_regno_in_class_p): New.
13199 (mn10300_legitimize_reload_address): New.
13200 * config/mn10300/mn10300.h (enum reg_class): Remove
13201 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
13202 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
13203 SP_OR_GENERAL_REGS.
13204 (REG_CLASS_NAMES): Update to match.
13205 (REG_CLASS_CONTENTS): Likewise.
13206 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
13207 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
13208 (REGNO_IN_RANGE_P): Remove.
13209 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
13210 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
13211 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
13212 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
13213 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
13214 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
13215 (REGNO_GENERAL_P): New.
13216 (HAVE_POST_MODIFY_DISP): New.
13217 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
13218 (LEGITIMIZE_RELOAD_ADDRESS): New.
13219 * config/mn10300/mn10300-protos.h: Update.
13220
8b119bb6
RH
13221 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
13222 DATA_REGS for AM33 stack-pointer destination.
13223 (mn10300_preferred_output_reload_class): Likewise.
13224 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
13225 into a form appropriate for ...
13226 (TARGET_SECONDARY_RELOAD): New.
13227 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
13228 * config/mn10300/mn10300-protos.h: Update.
13229 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
13230 reload_insi; use the "A" constraint for the scratch; handle AM33
13231 moves of sp to non-address registers.
13232
b1efde2a
RH
13233 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
13234 (*movqi_internal): ... here.
13235 (*am33_movhi, *mn10300_movhi): Merge into...
13236 (*movhi_internal): ... here.
13237 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
13238 as the source/destination of moves from/to SP.
13239 (movsf): Only allow for AM33-2.
1c3ba85b 13240 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
13241 any integer constant constraint. Only allow for AM33-2. Tidy
13242 all of the alternative outputs.
13243 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
13244 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
13245 for MN103.
13246 (udivsi3, umodsi3): New patterns for MN103 only.
13247
b899fd78
JR
132482011-01-19 Joern Rennecke <amylaar@spamcop.net>
13249
13250 * doc/tm.texi.in: Spell out that a lack of register class unions
13251 can lead to ICEs.
13252 * doc/tm.texi: Regenerate.
13253
afaaa67d
JJ
132542011-01-19 Jakub Jelinek <jakub@redhat.com>
13255
2e0642cd
JJ
13256 PR rtl-optimization/47337
13257 * dce.c (check_argument_store): New function.
13258 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
13259
afaaa67d
JJ
13260 PR tree-optimization/47290
13261 * tree-eh.c (infinite_empty_loop_p): New function.
13262 (cleanup_empty_eh): Use it.
13263
d2cd871f
SE
132642011-01-18 Steve Ellcey <sje@cup.hp.com>
13265
13266 PR target/46997
13267 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
13268 (a64_expand_widen_sum): Ditto.
13269 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
13270 (vec_extract_evenodd_help): Ditto.
13271 (vec_extract_evenv4hi): Ditto.
13272 (vec_extract_oddv4hi): Ditto.
13273 (vec_extract_evenv2si): Ditto.
13274 (vec_extract_oddv2si): Ditto.
13275 (vec_extract_evenv2sf): Ditto.
13276 (vec_extract_oddv2sf): Ditto.
13277 (vec_pack_trunc_v4hi: Ditto.
13278 (vec_pack_trunc_v2si): Ditto.
13279 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
13280 (vec_interleave_highv8qi): Ditto.
13281 (mix1_r): Ditto.
13282 (vec_extract_oddv8qi): Ditto.
13283 (vec_interleave_lowv4hi): Ditto.
13284 (vec_interleave_highv4hi): Ditto.
13285 (vec_interleave_lowv2si): Ditto.
13286 (vec_interleave_highv2si): Ditto.
13287
41a1208a
JDA
132882011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13289
13290 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
13291 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
13292 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
13293 (pa_c_mode_for_suffix): New.
13294 (TARGET_EXPAND_BUILTIN): Define.
13295 (TARGET_C_MODE_FOR_SUFFIX): Define.
13296 (pa_builtins): Define.
13297 (pa_init_builtins): Register __float128 type and init new support
13298 builtins.
13299 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
13300 * config/pa/quadlib.c (_U_Qfcopysign): New.
13301
1ecad98e
EB
133022011-01-18 Eric Botcazou <ebotcazou@adacore.com>
13303
13304 PR middle-end/46894
13305 * explow.c (allocate_dynamic_stack_space): Do not assume more than
13306 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
13307 are defined.
13308
d4f2460a
UW
133092011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13310
13311 PR tree-optimization/47179
13312 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
13313 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
13314
4994da65
RG
133152011-01-18 Richard Guenther <rguenther@suse.de>
13316
13317 PR rtl-optimization/47216
13318 * emit-rtl.c: Include tree-flow.h.
13319 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
13320 of replicating it with different semantics.
13321 * Makefile.in (emit-rtl.o): Adjust.
13322
1eb458d1
RR
133232011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13324
38be4072 13325 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 13326 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 13327
e7ef91dc
JJ
133282011-01-18 Jakub Jelinek <jakub@redhat.com>
13329
13330 PR rtl-optimization/47299
13331 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 13332 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
13333 * expmed.c (expand_widening_mult): Don't try to optimize constant
13334 multiplication if op0 has VOIDmode. Convert op1 constant to mode
13335 before using it.
13336
535b7874
RW
133372011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13338
13339 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
13340 spacing after 'e.g.', typos, comma, hyphenation.
13341
27bf36f3
RH
133422011-01-17 Richard Henderson <rth@redhat.com>
13343
8a5b5449
RH
13344 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
13345 (rx_restricted_mem_operand): New.
13346 (rx_shift_operand): Use register_operand.
13347 (rx_source_operand, rx_compare_operand): Likewise.
13348 * config/rx/rx.md (addsi3_flags): New expander.
13349 (adddi3): Rewrite as expander.
13350 (adc_internal, *adc_flags, adddi3_internal): New patterns.
13351 (subsi3_flags): New expander.
13352 (subdi3): Rewrite as expander.
13353 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
13354
784f69be
RH
13355 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
13356 (rx_init_builtins): Remove sat builtin.
13357 (rx_expand_builtin): Likewise.
13358 * config/rx/rx.md (ssaddsi3): New.
13359 (*sat): Rename from sat. Represent the CC_REG input.
13360
f033541c
RH
13361 * config/rx/predicates.md (rshift_operator): New.
13362 * config/rx/rx.c (rx_expand_insv): Remove.
13363 * config/rx/rx-protos.h: Update.
13364 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
13365 operand to the canonical position.
13366 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
13367 (*bitclr, *bitclr_in_memory): Similarly.
13368 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
13369 (insv): Retain the zero_extract in the expansion.
13370
34fee389
RH
13371 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
13372 (bswaphi2, bitinvert, revw): Likewise.
13373
265c835f
RH
13374 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
13375 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13376 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
13377 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
13378 (bitset, bitset_in_memory): Likewise.
13379 (bitinvert, bitinvert_in_memory): Likewise.
13380 (bitclr, bitclr_in_memory): Likewise.
13381 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
13382 (rx_strend, rx_cmpstrn): Likewise.
13383 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
13384 (bitop peep2 patterns): Remove.
13385
b4d83be3
RH
13386 * config/rx/rx.c (rx_match_ccmode): New.
13387 * config/rx/rx-protos.h: Update.
13388 * config/rx/rx.md (abssi2): Clobber, don't set flags.
13389 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
13390 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
13391 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
13392 (fix_truncsfsi2, floatsisf2): Likewise.
13393 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
13394 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
13395 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
13396 (*subsi3_flags, *xorsi3_flags): New.
13397
d0acb939
RH
13398 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
13399
c06fc3d9
RH
13400 * config/rx/rx.c (rx_print_operand): Remove workaround for
13401 unsplit comparison operations.
13402
2882702b
RH
13403 * config/rx/rx.md (movsicc): Split after reload.
13404 (*movsicc): Merge *movsieq and *movsine via match_operator.
13405 (*stcc): New pattern.
13406
6f7310f2
RH
13407 * config/rx/rx.c (rx_float_compare_mode): Remove.
13408 * config/rx/rx.h (rx_float_compare_mode): Remove.
13409 * config/rx/rx.md (cstoresi4): Split after reload.
13410 (*sccc): New pattern.
13411
e963cb1a
RH
13412 * config/rx/predicates.md (label_ref_operand): New.
13413 (rx_z_comparison_operator): New.
13414 (rx_zs_comparison_operator): New.
13415 (rx_fp_comparison_operator): New.
13416 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
13417 Validate that the flags are set properly for the comparison.
13418 (rx_gen_cond_branch_template): Remove.
13419 (rx_cc_modes_compatible): Remove.
13420 (mode_from_flags): New.
13421 (flags_from_code): Rename from flags_needed_for_conditional.
13422 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
13423 (rx_select_cc_mode): Likewise.
13424 (rx_split_fp_compare): New.
13425 (rx_split_cbranch): New.
13426 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
13427 (*cbranchsi4): Use match_operator and rx_split_cbranch.
13428 (*cbranchsf4): Similarly.
13429 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
13430 match_operator and rx_split_cbranch.
13431 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
13432 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
13433 (*cmpsi): Rename from cmpsi.
13434 (*tstsi): Rename from tstsi.
13435 (*cmpsf): Rename from cmpsf; use CC_Fmode.
13436 (*conditional_branch): Rename from conditional_branch.
13437 (*reveresed_conditional_branch): Remove.
13438 (b<code>): Remove expander.
13439 * config/rx/rx-protos.h: Update.
13440
af530bb4
RH
13441 * config/rx/rx.c (rx_compare_redundant): Remove.
13442 * config/rx/rx.md (cmpsi): Don't use it.
13443 * config/rx/rx-protos.h: Update.
13444
27bf36f3
RH
13445 * config/rx/rx-modes.def (CC_F): New mode.
13446 * config/rx/rx.c (rx_select_cc_mode): New.
13447 * config/rx/rx.h (SELECT_CC_MODE): Use it.
13448 * config/rx/rx-protos.h: Update.
13449
d7fde127
RH
134502011-01-17 Richard Henderson <rth@redhat.com>
13451
13452 * except.c (dump_eh_tree): Fix stray ; after for statement.
13453
6ff38230
RG
134542011-01-17 Richard Guenther <rguenther@suse.de>
13455
13456 PR tree-optimization/47313
13457 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
13458 handling before copying the body. Properly deal with
13459 by-reference result in SSA form.
13460
114ce554
ILT
134612011-01-17 Ian Lance Taylor <iant@google.com>
13462
bf5cd92b 13463 PR target/47219
114ce554
ILT
13464 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
13465 (struct_value_alias_set): Don't define.
13466 (sparc_option_override): Don't set sparc_sr_alias_set and
13467 struct_value_alias_set.
13468 (save_or_restore_regs): Use gen_frame_mem rather than calling
13469 set_mem_alias_set.
13470 (sparc_struct_value_rtx): Likewise.
13471
98c6d93c
L
134722011-01-17 H.J. Lu <hongjiu.lu@intel.com>
13473
13474 PR target/47318
7a81008b 13475 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
13476 (_mm_maskstore_pd): Likewise.
13477 (_mm_maskload_ps): Likewise.
13478 (_mm_maskstore_ps): Likewise.
13479 (_mm256_maskload_pd): Change mask to __m256i.
13480 (_mm256_maskstore_pd): Likewise.
13481 (_mm256_maskload_ps): Likewise.
13482 (_mm256_maskstore_ps): Likewise.
13483
13484 * config/i386/i386-builtin-types.def: Updated.
13485 (ix86_expand_special_args_builtin): Likewise.
13486
13487 * config/i386/i386.c (bdesc_special_args): Update
13488 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
13489 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
13490 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
13491 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
13492
13493 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
13494 Use <avxpermvecmode> on mask register.
13495 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
13496
b9361af2 134972011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
13498 Michael Haubenwallner <michael.haubenwallner@salomon.at>
13499 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
13500
13501 PR target/46655
13502 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
13503 if <= USHRT_MAX in 32-bit mode.
13504
b7ae9eb5
RW
135052011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13506
13507 * doc/install.texi (Configuration, Specific): Wrap long
13508 lines in examples. Allow line wrapping in long options
13509 and URLs where beneficial for PDF output.
13510
4377fad9
RS
135112011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
13512
13513 * config/mips/mips.c (mips_classify_symbol): Don't return
13514 SYMBOL_PC_RELATIVE for nonlocal labels.
13515
55959ffa 135162011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 13517
55959ffa
EB
13518 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
13519
135202011-01-15 Jan Hubicka <jh@suse.cz>
13521
13522 PR tree-optimization/47276
be46831f
JH
13523 * ipa.c (function_and_variable_visibility): Do not try to mark alias
13524 declarations as needed.
13525
05842ff5
MJ
135262011-01-15 Martin Jambor <mjambor@suse.cz>
13527
13528 * common.opt (fdevirtualize): New flag.
13529 * doc/invoke.texi (Option Summary): Document it.
13530 * opts.c (default_options_table): Add devirtualize flag.
13531 * ipa-prop.c (detect_type_change): Return immediately if
13532 devirtualize flag is not set.
13533 (detect_type_change_ssa): Likewise.
13534 (compute_known_type_jump_func): Likewise.
13535 (ipa_analyze_virtual_call_uses): Likewise.
13536
f65cf2b7
MJ
135372011-01-14 Martin Jambor <mjambor@suse.cz>
13538
13539 PR tree-optimization/45934
13540 PR tree-optimization/46302
13541 * ipa-prop.c (type_change_info): New type.
13542 (stmt_may_be_vtbl_ptr_store): New function.
13543 (check_stmt_for_type_change): Likewise.
13544 (detect_type_change): Likewise.
13545 (detect_type_change_ssa): Likewise.
13546 (compute_complex_assign_jump_func): Check for dynamic type change.
13547 (compute_complex_ancestor_jump_func): Likewise.
13548 (compute_known_type_jump_func): Likewise.
13549 (compute_scalar_jump_functions): Likewise.
13550 (ipa_analyze_virtual_call_uses): Likewise.
13551 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
13552
eb5bb0fd
JM
135532011-01-14 Joseph Myers <joseph@codesourcery.com>
13554
13555 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
13556 * config/i386/i386.opt (msse5): New Alias.
13557
f2060fbe
JM
135582011-01-14 Joseph Myers <joseph@codesourcery.com>
13559
13560 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
13561 * config/sparc/linux64.h (CC1_SPEC): Likewise.
13562 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13563 * config/sparc/sparc.h (CC1_SPEC): Likewise.
13564
3a7b4385
JM
135652011-01-14 Joseph Myers <joseph@codesourcery.com>
13566
13567 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
13568 -mcpu options.
13569 * config/sparc/linux64.h (CC1_SPEC): Likewise.
13570 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
13571 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
13572 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
13573 Likewise.
13574 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
13575
a7b778f8
JM
135762011-01-14 Joseph Myers <joseph@codesourcery.com>
13577
38be4072 13578 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 13579
a7edae0a
MS
135802011-01-14 Mike Stump <mikestump@comcast.net>
13581
13582 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
13583 * config/fr30/fr30.md: Likweise
13584 (movsi_push): Likewise.
13585 (movsi_pop): Likewise.
13586 (enter_func): Likewise.
13587 * config/moxie/moxie.md (movsi_push): Likewise.
13588 (movsi_pop): Likewise.
13589
cbabf03f
JM
135902011-01-14 Joseph Myers <joseph@codesourcery.com>
13591
13592 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
13593 %{no_archive} %{exact_version}.
13594 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
13595 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
13596 %{no_archive} %{exact_version}.
13597 * config/mips/openbsd.h (LINK_SPEC): Likewise.
13598 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
13599 * config/mips/vxworks.h: Likewise.
13600
438da41a
JM
136012011-01-14 Joseph Myers <joseph@codesourcery.com>
13602
38be4072 13603 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 13604
da290a42
JM
136052011-01-14 Joseph Myers <joseph@codesourcery.com>
13606
13607 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
13608 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
13609
8989d00e
JM
136102011-01-14 Joseph Myers <joseph@codesourcery.com>
13611
13612 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
13613 -nodefaultlib.
13614
a3010a69
JM
136152011-01-14 Joseph Myers <joseph@codesourcery.com>
13616
13617 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
13618 for mcpu not cpu.
13619 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
13620 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
13621 not cpu.
13622 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
13623 Don't handle -shlib.
13624
e7f2f537
JM
136252011-01-14 Joseph Myers <joseph@codesourcery.com>
13626
13627 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
13628 (CC1_SPEC): Don't handle -profile.
13629
34830bfd
JM
136302011-01-14 Joseph Myers <joseph@codesourcery.com>
13631
13632 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
13633 * config/mips/mips.h (CC1_SPEC): Likewise.
13634
b2d36e74
JM
136352011-01-14 Joseph Myers <joseph@codesourcery.com>
13636
13637 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
13638 * config/mips/mips.h (CC1_SPEC): Likewise.
13639
dabadc52
JM
136402011-01-14 Joseph Myers <joseph@codesourcery.com>
13641
13642 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
13643 * config/m32r/linux.h (LINK_SPEC): Likewise.
13644 * config/mips/linux.h (LINK_SPEC): Likewise.
13645 * config/mips/linux64.h (LINK_SPEC): Likewise.
13646 * config/sparc/linux.h (LINK_SPEC): Likewise.
13647 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
13648 LINK_SPEC): Likewise.
13649 * config/xtensa/linux.h (LINK_SPEC): Likewise.
13650
43ee6785
JM
136512011-01-14 Joseph Myers <joseph@codesourcery.com>
13652
13653 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
13654 %{version:-v}.
13655 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
13656
45e79dfd
JM
136572011-01-14 Joseph Myers <joseph@codesourcery.com>
13658
13659 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
13660 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13661
37e9e71d
JM
136622011-01-14 Joseph Myers <joseph@codesourcery.com>
13663
13664 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
13665
bb127cd8
RO
136662011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13667
13668 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
13669 supports -Bstatic/-Bdynamic.
13670 * configure: Regenerate.
13671
89a012ea 136722011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 13673 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
13674
13675 PR target/46037
13676 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
13677 when checking debug_info_level. Test write_symbols instead of
13678 debug_hooks->var_location when setting flag_var_tracking_uninit.
13679
7352c013
RG
136802011-01-14 Richard Guenther <rguenther@suse.de>
13681
13682 PR tree-optimization/47179
13683 * target.def (ref_may_alias_errno): New target hook.
13684 * targhooks.h (default_ref_may_alias_errno): Declare.
13685 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
13686 (default_ref_may_alias_errno): New function.
13687 * target.h (struct ao_ref_s): Declare.
13688 * tree-ssa-alias.c: Include target.h.
13689 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
13690 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
13691 (targhooks.o): Likewise.
13692 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
13693 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
13694
9a6c9288
RG
136952011-01-14 Richard Guenther <rguenther@suse.de>
13696
13697 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
13698
0fdb0d27
RG
136992011-01-14 Richard Guenther <rguenther@suse.de>
13700
13701 PR tree-optimization/47280
13702 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
13703 return CFG changes.
13704 (tree_ssa_forward_propagate_single_use_vars): Deal with
13705 CFG changes from associate_plusminus.
13706
8f66db3b
RG
137072011-01-14 Richard Guenther <rguenther@suse.de>
13708
13709 PR middle-end/47281
13710 Revert
13711 2011-01-11 Richard Guenther <rguenther@suse.de>
13712
280d9630
EB
13713 PR tree-optimization/46076
13714 * tree-ssa.c (useless_type_conversion_p): Conversions from
13715 unprototyped to empty argument list function types are useless.
8f66db3b 13716
6c0c92e6
RG
137172011-01-14 Richard Guenther <rguenther@suse.de>
13718
13719 PR tree-optimization/47286
280d9630 13720 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 13721
db09f943
MJ
137222011-01-14 Martin Jambor <mjambor@suse.cz>
13723
13724 PR middle-end/46823
13725 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
13726
dde8a3a4
AS
137272011-01-13 Anatoly Sokolov <aesok@post.ru>
13728
13729 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
13730 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13731 * config/xtensa/xtensa.c (xtensa_libcall_value,
13732 xtensa_function_value_regno_p): New functions.
13733 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13734
a2b63a20
KT
137352011-01-13 Kai Tietz <kai.tietz@onevision.com>
13736
13737 PR c++/47213
13738 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
13739 PE specific hook.
13740 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
13741 New function prototype.
13742 * config/i386/winnt.c (i386_pe_assemble_visibility):
13743 Warn only if attribute was specified by user.
13744
b41f0b34
MM
137452011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
13746
13747 PR target/47251
13748 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
13749 floating point.
13750 (floatunsdidf2_fcfidu): Ditto.
13751
3f3c098d
AK
137522011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13753
13754 * config/s390/s390.c (print_operand_address): Replace 'error' with
13755 'output_operand_lossage'.
13756 (print_operand): Likewise.
13757
29fa95ed
JL
137582011-01-13 Jeff Law <law@redhat.com>
13759
280d9630 13760 PR rtl-optimization/39077
29fa95ed
JL
13761 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
13762 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
13763 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
13764 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
13765 * gcse.c (prune_insertions_deletions): New function.
13766 (compute_pre_data): Use it.
13767
71d12276
DS
137682011-01-13 Dodji Seketeli <dodji@redhat.com>
13769
13770 PR debug/PR46973
13771 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
13772 static function.
61052244 13773 (prune_unused_types_mark): Use it.
71d12276 13774
9b0f04e7
AB
137752011-01-13 Andrey Belevantsev <abel@ispras.ru>
13776
13777 PR rtl-optimization/45352
1c3ba85b 13778 * sel-sched.c: Update copyright years.
9b0f04e7 13779 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 13780 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 13781
d6a3e264
RH
137822011-01-12 Richard Henderson <rth@redhat.com>
13783
a49b692a
RH
13784 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
13785 (TARGET_MD_ASM_CLOBBERS): New.
13786
126b1483
RH
13787 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
13788 (TARGET_DELEGITIMIZE_ADDRESS): New.
13789
f3d9d2e0
RH
13790 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
13791 (clzsi2, *bsch): New patterns.
13792
d84760c9
RH
13793 * config/mn10300/mn10300.md (INT): New mode iterator.
13794 (*mov<INT>_clr): New pattern, and peep2 to generate it.
13795
ec815d65
RH
13796 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
13797 flag_split_wide_types.
13798
d6a3e264
RH
13799 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
13800 (mn10300_trampoline_init): Rewrite without a template, an immediate
13801 load and a direct branch.
13802 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
13803
0f8ab434
AS
138042011-01-12 Anatoly Sokolov <aesok@post.ru>
13805
13806 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13807 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
13808 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
13809 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13810
d8a24b65
KT
138112011-01-12 Kai Tietz <kai.tietz@onevision.com>
13812
13813 PR debug/47209
13814 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
13815 of type.
13816
56e22cab
JH
138172011-01-12 Jan Hubicka <jh@suse.cz>
13818
13819 PR driver/47244
13820 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
13821 (PLUGIN_COND_CLOSE): New macro.
13822 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
13823
4b18b3c2
RG
138242011-01-12 Richard Guenther <rguenther@suse.de>
13825
13826 PR lto/47259
13827 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
13828 register variables in a MEM_REF.
13829
8e38461c
JM
138302011-01-12 Joseph Myers <joseph@codesourcery.com>
13831
13832 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
13833 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
13834 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
13835 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13836 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13837 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
13838 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
13839 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
13840 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
13841 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
13842 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
13843 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
13844 * config/gnu-user.h: New. Copied from linux.h.
13845 (LINUX_TARGET_STARTFILE_SPEC): Rename to
13846 GNU_USER_TARGET_STARTFILE_SPEC.
13847 (LINUX_TARGET_ENDFILE_SPEC): Rename to
13848 GNU_USER_TARGET_ENDFILE_SPEC.
13849 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
13850 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
13851 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
13852 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
13853 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
13854 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
13855 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
13856 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
13857 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
13858 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
13859 * config/arm/linux-eabi.h (CC1_SPEC): Use
13860 GNU_USER_TARGET_CC1_SPEC.
13861 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
13862 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
13863 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
13864 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
13865 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
13866 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
13867 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
13868 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
13869
a570fc16
RG
138702011-01-12 Richard Guenther <rguenther@suse.de>
13871
13872 PR other/46946
13873 * doc/invoke.texi (ffast-math): Document it is turned on
13874 with -Ofast.
13875
b0223c3e
JH
138762011-01-12 Jan Hubicka <jh@suse.cz>
13877
13878 PR tree-optimization/47233
ca1e00b3
EB
13879 * opts.c (common_handle_option): Disable ipa-reference with profile
13880 feedback.
b0223c3e 13881
1c3ba85b 138822011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
13883
13884 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
13885 error message.
13886
d853ee42
NP
138872011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
13888
13889 * c-parser.c (c_lex_one_token): Updated and reindented some
13890 comments. No changes in code.
13891
4053a5a0
ILT
138922011-01-11 Ian Lance Taylor <iant@google.com>
13893
13894 * godump.c (go_output_var): Don't output the variable if there is
13895 already a type with the same name.
13896
fa3e04d2
ILT
138972011-01-11 Ian Lance Taylor <iant@google.com>
13898
13899 * godump.c (go_format_type): Don't generate float80.
13900
885fe07c
RH
139012011-01-11 Richard Henderson <rth@redhat.com>
13902
72d6e3c5
RH
13903 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
13904 declaration. Rewrite for both speed and size.
13905 (mn10300_address_cost_1): Remove.
13906 (mn10300_register_move_cost): New.
13907 (mn10300_memory_move_cost): New.
13908 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
13909 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
13910 extensions, shifts, BSWAP, CLZ.
13911 (mn10300_wide_const_load_uses_clr): Remove.
13912 (TARGET_REGISTER_MOVE_COST): New.
13913 (TARGET_MEMORY_MOVE_COST): New.
13914 * config/mn10300/mn10300-protos.h: Update.
13915 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
13916
df37c023
RH
13917 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
13918 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
13919 * config/mn10300/mn10300-protos.h: Update.
13920 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
13921 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
13922 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
13923 (*test_int_bitfield, *test_byte_bitfield): Remove.
13924 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 13925 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 13926
85a337b5
RH
13927 * config/mn10300/constraints.md ("c"): Rename from "A".
13928 ("A", "D"): New constraint letters.
13929 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
13930 (fmssf4, fnmasf4, fnmssf4): Likewise.
13931
a5c727e3
RH
13932 * config/mn10300/mn10300.md (isa): New attribute.
13933 (enabled): New attribute.
13934
0d9e23f4
RH
13935 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
13936 (abssf2, negsf2): Define only for hardware fp.
13937 (sqrtsf2): Reformat.
13938 (addsf3, subsf3, mulsf3): Merge expander and insn.
13939
c157b3f0
RH
13940 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
13941 (DEBUGGER_AUTO_OFFSET): Remove.
13942 (DEBUGGER_ARG_OFFSET): Remove.
13943
cc909bba
RH
13944 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
13945 Emit register stores with the same offsets as the hardware.
13946 (mn10300_store_multiple_operation): Don't check that the register
13947 save offsets are monotonic.
13948 * config/mn10300/mn10300-protos.h: Update.
13949
e3b5c2f3
RH
13950 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
13951
885fe07c
RH
13952 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
13953 in terms of the value on the stack, not the MDR register.
13954
6e701822
JH
139552011-01-11 Jan Hubicka <jh@suse.cz>
13956
13957 PR lto/45721
13958 PR lto/45375
13959 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
13960 (symbol_alias_set_destroy, symbol_alias_set_contains,
13961 propagate_aliases_backward): Declare.
13962 * lto-streamer-out.c (struct sets): New sturcture.
13963 (trivally_defined_alias): New function.
13964 (output_alias_pair_p): Rewrite.
13965 (output_unreferenced_globals): Fix output of alias pairs.
13966 (produce_symtab): Likewise.
13967 * ipa.c (function_and_variable_visibility): Set weak alias destination
13968 as needed in lto.
13969 * varasm.c (symbol_alias_set_t): Remove.
13970 (symbol_alias_set_destroy): Export.
13971 (propagate_aliases_forward, propagate_aliases_backward): New functions
13972 based on ...
13973 (compute_visible_aliases): ... this one; remove.
13974 (trivially_visible_alias): New
13975 (trivially_defined_alias): New.
13976 (remove_unreachable_alias_pairs): Rewrite.
13977 (finish_aliases_1): Reorganize code checking if alias is defined.
13978 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
13979 in LTO mode.
13980
1b248907
RG
139812011-01-11 Richard Guenther <rguenther@suse.de>
13982
13983 PR tree-optimization/46076
13984 * tree-ssa.c (useless_type_conversion_p): Conversions from
13985 unprototyped to empty argument list function types are useless.
13986
b1923f0a
RG
139872011-01-11 Richard Guenther <rguenther@suse.de>
13988
13989 PR middle-end/45235
13990 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
13991 volatile MEMs as MEM_READONLY_P.
13992
e98965af
RG
139932011-01-11 Richard Guenther <rguenther@suse.de>
13994
13995 PR tree-optimization/47239
13996 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
13997
9f9ca914
JL
139982011-01-11 Jeff Law <law@redhat.com>
13999
1ee3ea05 14000 PR tree-optimization/47086
9f9ca914
JL
14001 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
14002 IVs from statements that might throw.
14003
345fdcb7
JH
140042011-01-10 Jan Hubicka <jh@suse.cz>
14005
14006 PR lto/45375
14007 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
14008
c459c97b
JH
140092011-01-10 Jan Hubicka <jh@suse.cz>
14010
14011 PR lto/45375
14012 * profile.c (read_profile_edge_counts): Ignore profile inconistency
14013 when correcting profile.
14014
06c9eb51
JH
140152011-01-10 Jan Hubicka <jh@suse.cz>
14016
14017 PR lto/46083
14018 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
14019 DECL_FINI_PRIORITY.
14020 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
14021 Restore DECL_FINI_PRIORITY.
14022
ae9fd815
RW
140232011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14024
14025 * doc/gimple.texi: Fix quoting of multi-word return values in
14026 @deftypefn statements. Ensure presence of return value. Wrap
14027 overlong @deftypefn lines.
14028 (is_gimple_operand, is_gimple_min_invariant_address): Remove
14029 descriptions of removed functions.
14030 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
14031 of multi-word return value in @deftypefn statement.
14032
0ecb4a7c
RW
140332011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14034
14035 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
14036 (Conditional Expressions, Logical Operators)
14037 (Statement and operand traversals): Do not indent smallexample
14038 code. Fix duplicate function argument in example.
14039
2e5e346d
JL
140402011-01-10 Jeff Law <law@redhat.com>
14041
1ee3ea05 14042 PR tree-optimization/47141
2e5e346d
JL
14043 * ipa-split.c (split_function): Handle case where we are
14044 returning a value and the return block has a virtual operand phi.
14045
cf9712cc
JH
140462011-01-10 Jan Hubicka <jh@suse.cz>
14047
1c3ba85b 14048 PR tree-optimization/47234
cf9712cc
JH
14049 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
14050 (pass_feedback_split_functions): Declare.
14051 * passes.c (init_optimization_passes): Add ipa-split as subpass of
14052 tree-profile.
14053 * ipa-split.c (gate_split_functions): Update comments; disable
14054 split-functions for profile_arc_flag and branch_probabilities.
14055 (gate_feedback_split_functions): New function.
14056 (execute_feedback_split_functions): New function.
14057 (pass_feedback_split_functions): New global var.
14058
94cd932c
L
140592011-01-10 H.J. Lu <hongjiu.lu@intel.com>
14060
14061 PR lto/46760
14062 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
14063 calling gimple_call_set_cannot_inline.
14064
fbbfcaf1
IS
140652011-01-10 Iain Sandoe <iains@gcc.gnu.org>
14066
14067 * config/darwin-sections.def: Remove unused section.
14068
d06865bf
DK
140692011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
14070
14071 PR c++/47218
14072 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
14073
96bbfbac
NP
140742011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
14075
14076 PR objc/47232
14077 * c-parser.c (c_parser_declaration_or_fndef): Improved
14078 error message.
14079
1ba6516f
KT
140802011-01-09 Kai Tietz <kai.tietz@onevision.com>
14081
14082 * config/i386/winnt.c (i386_pe_start_function): Make sure
14083 to switch back to function's section.
14084
0c5d770e
IS
140852011-01-09 Iain Sandoe <iains@gcc.gnu.org>
14086
14087 PR gcc/46902
14088 PR testsuite/46912
14089 * plugin.c: Move include of dlfcn.h from here...
14090 * system.h: ... to here.
14091
140922011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
14093
14094 * doc/cpp.texi (C++ Named Operators): Fix markup for header
14095 file name.
14096 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
14097 two extra empty pages in PDF output.
14098
046608a3
NP
140992011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
14100
14101 PR objc/47078
14102 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
14103 for error recovery purposes behave as if it was not specified so
14104 that the default type is usd.
14105
8cb114b9
JH
141062011-01-07 Jan Hubicka <jh@suse.cz>
14107
14108 PR tree-optmization/46469
14109 * ipa.c (function_and_variable_visibility): Clear needed flags on
14110 nodes with external decls; handle weakrefs merging correctly.
14111
b294a75e
JM
141122011-01-07 Joseph Myers <joseph@codesourcery.com>
14113
14114 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
14115 not false.
14116
96bdf9b4
JH
141172011-01-07 Jan Hubicka <jh@suse.cz>
14118
f60c2554 14119 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
14120 and no longer claim that gold is required for linker plugin.
14121 * configure: Regenerate.
14122 * gcc.c (PLUGIN_COND): New macro.
14123 (LINK_COMMAND_SPEC): Use it.
14124 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
14125 * config.in (HAVE_LTO_PLUGIN): New.
14126 * configure.ac (--with-lto-plugin): New parameter; autodetect
14127 HAVE_LTO_PLUGIN.
14128
17afc0fe
JH
141292011-01-07 Jan Hubicka <jh@suse.cz>
14130
14131 PR tree-optimization/46367
14132 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
14133 when we can update original.
14134 (cgraph_mark_inline_edge): Sanity check.
14135 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
14136
d4c48c0f
UW
141372011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14138
14139 * config/spu/spu.h (ASM_COMMENT_START): Define.
14140
96f5b137
L
141412011-01-07 H.J. Lu <hongjiu.lu@intel.com>
14142
14143 PR driver/42445
14144 * gcc.c (%>S): New.
14145 (SWITCH_KEEP_FOR_GCC): Likewise.
14146 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
14147 (do_spec_1): Handle "%>".
14148
14149 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
14150
c6a8f6de
JJ
141512011-01-07 Jakub Jelinek <jakub@redhat.com>
14152
c21bbd7a
JJ
14153 PR target/47201
14154 * config/i386/i386.c (ix86_delegitimize_address): If
14155 simplify_gen_subreg fails, return orig_x.
14156
c6a8f6de
JJ
14157 PR bootstrap/47187
14158 * value-prof.c (gimple_stringop_fixed_value): Handle
14159 lhs of the call properly.
14160
fe95fbf9
JH
141612011-01-07 Jan Hubicka <jh@suse.cz>
14162
14163 PR lto/45375
14164 * lto-opt.c (lto_reissue_options): Set flag_shlib.
14165
14d11d40
IS
141662011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14167
72e961c8
EB
14168 * target.def (function_switched_text_sections): New hook.
14169 * doc/tm.texi: Regenerated.
14170 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14171 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
14172 (final_scan_insn): Call function_switched_text_sections when a
14173 mid-function section change occurs.
14d11d40 14174 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
14175 * config/darwin-protos.h (darwin_function_switched_text_sections):
14176 Likewise.
14d11d40 14177 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 14178 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 14179
0b764288
IS
141802011-01-07 Iain Sandoe <iains@gcc.gnu.org>
14181
14182 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
14183 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
14184 the secondary code fragment when outputting for DWARF == 2.
14185
2ac6bb04
AS
141862011-01-07 Anatoly Sokolov <aesok@post.ru>
14187
14188 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
14189 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
14190 Remove.
14191 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
14192 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
14193
9f82de11
EB
141942011-01-06 Eric Botcazou <ebotcazou@adacore.com>
14195
14196 PR debug/46704
280d9630
EB
14197 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
14198 when it is not empty.
9f82de11
EB
14199
142002011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 14201
1ed72abf 14202 Bobcat Enablement
14b52538 14203 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 14204 (case ${target}): Add btver1.
14b52538 14205 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 14206 -march=native recognize btver1 processors.
14b52538 14207 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 14208 btver1 def_and_undef
14b52538 14209 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
14210 btver1 cost table.
14211 (m_BTVER1): New definition.
14212 (m_AMD_MULTIPLE): Includes m_BTVER1.
14213 (initial_ix86_tune_features): Add btver1 tune.
14214 (processor_target_table): Add btver1 entry.
14215 (static const char *const cpu_names): Add btver1 entry.
14216 (software_prefetching_beneficial_p): Add btver1.
14217 (ix86_option_override_internal): Add btver1 instruction sets.
14218 (ix86_issue_rate): Add btver1.
14219 (ix86_adjust_cost): Add btver1.
14b52538 14220 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
14221 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
14222 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
14223 * config/i386/i386.md (define_attr "cpu"): Add btver1.
14224
e1a973d8
RO
142252011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14226
14227 PR target/43309
14228 * config/i386/i386.c (legitimize_tls_address)
14229 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
14230 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
14231 (tls_initial_exec_64_sun): New pattern.
14232
c73f67c5
GP
142332011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14234
14235 * doc/invoke.texi (Overall Options): Improve wording and markup
14236 of the description of -wrapper.
14237
bc4c6f9c
JM
142382011-01-06 Joseph Myers <joseph@codesourcery.com>
14239
14240 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
14241 rdynamic, threads): New Driver options.
14242
adb75db0
RO
142432011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14244
14245 PR target/38118
14246 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
14247 if coming from .tdata.
14248 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14249
402c1cb4
JH
142502011-01-06 Jan Hubicka <jh@suse.cz>
14251
14252 PR lto/47188
14253 * collect2.c (main): Do not enable LTOmode when plugin is active.
14254
a4da6485
RO
142552011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14256
14257 PR other/45915
14258 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
14259 --version output if supported.
14260 * configure: Regenerate.
14261
028dbdf4
JM
142622011-01-06 Joseph Myers <joseph@codesourcery.com>
14263
14264 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
14265 Driver options.
14266
dfe776dd
JJ
142672011-01-06 Jakub Jelinek <jakub@redhat.com>
14268
14269 PR c/47150
14270 * c-convert.c (convert): When converting a complex expression
14271 other than COMPLEX_EXPR to a different complex type, ensure
14272 c_save_expr is called instead of save_expr, unless in_late_binary_op.
14273 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
14274 when converting COMPLEX_TYPE.
14275
210dedfe
IR
142762011-01-06 Ira Rosen <irar@il.ibm.com>
14277
14278 PR tree-optimization/47139
14279 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
14280 only the last reduction value is used outside the loop. Update
14281 documentation.
14282
cd33a412
JM
142832011-01-05 Joseph Myers <joseph@codesourcery.com>
14284
14285 * config/rtems.opt: New.
14286 * config.gcc (*-*-rtems*): Use rtems.opt.
14287
819edd94
CF
142882011-01-05 Changpeng Fang <changpeng.fang@amd.com>
14289
14290 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
14291 processors do not support 3DNow instructions.
14292
dc242c4a
UW
142932011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14294
14295 * config/spu/spu.c (spu_option_override): Set parameter
14296 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
14297
be286227
JH
142982011-01-05 Jan Hubicka <jh@suse.cz>
14299
14300 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
14301 at the command line.
14302
644e637f
MJ
143032011-01-05 Martin Jambor <mjambor@suse.cz>
14304
14305 PR lto/47162
14306 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
14307 deltas on streamed outgoing edges.
14308 (output_node_opt_summary): Output info for outgoing edges only when
14309 the node is in new parameter set.
14310 (output_cgraph_opt_summary): New parameter set, passed to the two
14311 aforementioned functions. Update its forward declaration and its
14312 callee too.
14313
7bd11157
TT
143142011-01-05 Tom Tromey <tromey@redhat.com>
14315
14316 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
14317 operator to c_finish_omp_atomic.
14318 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
14319 (build_unary_op): Update.
14320 (build_modify_expr): Update.
14321 (build_asm_expr): Update.
14322
f626b979
UW
143232011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14324
14325 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
14326 newly inserted insns.
14327 (pad_bb): Likewise.
14328 (spu_emit_branch_hint): Likewise.
14329 (insert_hbrp_for_ilb_runout): Likewise.
14330 (spu_machine_dependent_reorg): Call df_finish_pass after
14331 schedule_insns returns.
14332
4c825c02
UW
143332011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14334
14335 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
14336
5e9fba51
EB
143372011-01-05 Eric Botcazou <ebotcazou@adacore.com>
14338
14339 PR tree-optimization/47005
14340 * tree-sra.c (struct access): Add 'non_addressable' bit.
14341 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
14342 (decide_one_param_reduction): Return 0 if the parameter is passed by
14343 reference and one of the accesses in the group is non_addressable.
14344
3ebb5ca6
EB
143452011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14346
14347 PR tree-optimization/47056
14348 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
14349 (mark_load): Likewise. Handle FUNCTION_DECL specially.
14350 (mark_store): Likewise. Pass STMT to ipa_record_reference.
14351
d5d4d14e
EB
143522011-01-04 Eric Botcazou <ebotcazou@adacore.com>
14353
14354 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
14355 initializer. Skip view conversions from aggregate types.
14356
d996ef70
KT
143572011-01-04 Kai Tietz <kai.tietz@onevision.com>
14358
14359 PR bootstrap/47055
14360 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
14361
509d65dd 143622011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
14363
14364 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
14365 obvious typo.
14366
55c623b5
UW
143672011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14368
14369 * function.c (thread_prologue_and_epilogue_insns): Do not crash
14370 on empty epilogue sequences.
14371
b98d6b35
JM
143722011-01-04 Joseph Myers <joseph@codesourcery.com>
14373
14374 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
14375 non-static): New Driver options.
14376
a0d43bac
JZ
143772011-01-04 Jie Zhang <jie@codesourcery.com>
14378
14379 PR driver/47137
14380 * gcc.c (default_compilers[]): Set combinable field to 0
14381 for all assembly languages.
14382
2b18eb32
MX
143832011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
14384
14385 * config/mips/loongson3a.md: New file.
14386 * config/mips/mips.md: Include loongson3a.md.
14387 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
14388 TUNE_LOONGSON_3A.
14389
42a48c4f
EB
143902011-01-03 Eric Botcazou <ebotcazou@adacore.com>
14391
14392 PR middle-end/47017
14393 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
14394 instead of convert_memory_address_addr_space on the base expression.
14395
9c1732c4
UW
143962011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14397
14398 * config/spu/spu.c (spu_option_override): Update error text
14399 for bad -march= / -mtune= values.
14400
aa474365
UW
144012011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14402
14403 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
14404 if branch-hint optimization will be performed.
14405
9766135b
JJ
144062011-01-03 Jakub Jelinek <jakub@redhat.com>
14407
371556ee
JJ
14408 PR tree-optimization/47148
14409 * ipa-split.c (split_function): Convert arguments to
14410 DECL_ARG_TYPE if possible.
14411
1ac12fa2
JJ
14412 PR tree-optimization/47155
14413 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
14414 when computing uns.
14415
9766135b
JJ
14416 PR rtl-optimization/47157
14417 * combine.c (try_combine): If undobuf.other_insn becomes
14418 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
14419 and set *new_direct_jump_p too.
14420
f4a2e571
SP
144212011-01-03 Sebastian Pop <sebastian.pop@amd.com>
14422
14423 PR tree-optimization/47021
14424 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
14425
9f8e43c0
JJ
144262011-01-03 Jakub Jelinek <jakub@redhat.com>
14427
14428 * gcc.c (process_command): Update copyright notice dates.
14429 * gcov.c (print_version): Likewise.
14430 * gcov-dump.c (print_version): Likewise.
14431 * mips-tfile.c (main): Likewise.
14432 * mips-tdump.c (main): Likewise.
14433
1a2e38f3
MJ
144342011-01-03 Martin Jambor <mjambor@suse.cz>
14435
14436 PR tree-optimization/46801
14437 * tree-sra.c (type_internals_preclude_sra_p): Check whether
14438 aggregate fields start at byte boundary instead of the bit-field flag.
14439
56b721c5
L
144402011-01-03 H.J. Lu <hongjiu.lu@intel.com>
14441
14442 PR driver/47137
14443 * gcc.c (main): Revert revision 168407.
14444
839d549b
MJ
144452011-01-03 Martin Jambor <mjambor@suse.cz>
14446
14447 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
14448
4ce99a20 144492011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
14450
14451 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
14452 vector optab to expand vector/scalar shift, update gimple to vector.
14453
76df0ae6
MJ
144542011-01-03 Martin Jambor <mjambor@suse.cz>
14455
14456 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
14457 a thunk.
14458
ce47fda3
MJ
144592011-01-03 Martin Jambor <mjambor@suse.cz>
14460
14461 PR tree-optimization/46984
14462 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
14463 HOST_WIDE_INT.
14464 (cgraph_create_indirect_edge): Fixed line length.
14465 (cgraph_indirect_call_info): Declare.
14466 (cgraph_make_edge_direct) Update declaration.
14467 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
14468 (cgraph_create_indirect_edge): Use it.
14469 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
14470 callees.
14471 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
14472 the new thunk_delta representation.
14473 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
14474 HOST_WIDE_INT.
14475 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
14476 (ipa_read_indirect_edge_info): Likewise.
14477 * lto-cgraph.c (output_edge_opt_summary): New function.
14478 (output_node_opt_summary): Call it on all outgoing edges.
14479 (input_edge_opt_summary): New function.
14480 (input_node_opt_summary): Call it on all outgoing edges.
14481
1e67fa1f
L
144822011-01-02 H.J. Lu <hongjiu.lu@intel.com>
14483
14484 PR driver/47137
14485 * gcc.c (main): Don't check have_o when settting combine_inputs.
14486
6656b2ac
EB
144872011-01-02 Eric Botcazou <ebotcazou@adacore.com>
14488
14489 * regrename.c: Add general comment describing the pass.
14490 (struct du_head): Remove 'length' field.
14491 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
14492 (regrename_optimize): Do not sort chains. Rework comments, add others.
14493 Force renaming to the preferred class (if any) in the first pass and do
14494 not consider registers that belong to it in the second pass.
14495 (create_new_chain): Do not set 'length' field.
14496 (scan_rtx_reg): Likewise.
14497
bc470c24
JJ
144982011-01-02 Jakub Jelinek <jakub@redhat.com>
14499
4e996296
JJ
14500 PR tree-optimization/47140
14501 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
14502 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
14503 to bit_value_binop.
14504
bc470c24 14505 PR rtl-optimization/47028
6656b2ac
EB
14506 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
14507 parm_birth_insn instead of at the beginning of first bb.
bc470c24 14508
5af62fcd 145092011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
14510
14511 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
14512 Remove the word "see" before "@pxref".
14513 * doc/rtl.texi: Remove the word "see" before "@pxref".
14514
0e20c89f
JH
145152011-01-01 Jan Hubicka <jh@suse.cz>
14516
6656b2ac
EB
14517 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
14518 memory.
0e20c89f 14519
220e83ca
KT
145202011-01-01 Kai Tietz <kai.tietz@onevision.com>
14521
14522 PR target/38662
6656b2ac 14523 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 14524
ad41bd84 14525\f
797103eb 14526Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
14527
14528Copying and distribution of this file, with or without modification,
14529are permitted in any medium without royalty provided the copyright
14530notice and this notice are preserved.