]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f40751dd
JH
12008-08-30 Jan Hubicka <jh@suse.cz>
2
3 * fwprop.c (should_replace_address): Add speed attribute.
4 (PR_OPTIMIZE_FOR_SPEED): New flag.
5 (propagate_rtx_1): Use it.
6 (propagate_rtx): Set it.
7 (try_fwprop_subst): Update call of rtx_costs.
8 (forward_propagate_and_simplify): LIkewise.
9 * hooks.c (hook_int_rtx_bool_0): New
10 (hook_bool_rtx_int_int_intp_false): Replace by ...
11 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
12 * hooks.h (hook_int_rtx_bool_0): New
13 (hook_bool_rtx_int_int_intp_false): Replace by ...
14 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
15 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
16 (prepare_cmp_insn): UPdate call of rtx_cost.
17 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
18 (reload_cse_simplify_operands): Update call of rtx_cost.
19 (reload_cse_move2add): call of rtx_cost.
20 * target.h (struct gcc_target): Update rtx_costs and address_costs.
21 * rtlanal.c (rtx_cost): Add speed argument.
22 (address_cost): Add speed argument
23 (default_address_cost): Likewise.
24 (insn_rtx_cost): Likewise.
25 * cfgloopanal.c (seq_cost): Add speed argument.
26 (target_reg_cost, target_spill_cost): Turn to array.
27 (init_set_costs): Update for speed.
28 (estimate_reg_pressure_cost): Add speed argument.
29 * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
30 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
31 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
32 (seq_cost): Add speed argument.
33 (computation_cost): Add speed arugment.
34 (add_cost, multiply_by_const, get_address_cost): add speed argument.
35 (force_expr_to_var_cost): Update for profile info.
36 (force_var_cost): Likewise.
37 (split_address_cost): Likewise.
38 (ptr_difference_cost): Likewise.
39 (difference_cost): Likewise.
40 (get_computation_cost_at): Likewise.
41 (determine_iv_cost): Likewise.
42 (ivopts_global_cost_for_size): Likewise.
43 (rewrite_use_address): Likewise.
44 (tree_ssa_iv_optimize_loop): Initialize speed field.
45 * cse.c (optimize_this_for_speed_p): New static var.
46 (notreg_cost): Update call of rtx_cost.
47 (cse_extended_basic_block): set optimize_this_for_speed_p.
48 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
49 (noce_try_cmove_arith): Likewise.
50 (noce_try_sign_mask): LIkewise.
51 * expr.c (compress_float_constant): Update rtx_cost calls.
52 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
53 (addr_to_parts): Likewise.
54 (create_mem_ref): Likewise.
55 * dse.c (find_shift_sequence): Add speed argument.
56 (replace_read): Update call.
57 * calls.c (precompute_register_parameters): Update call of rtx_cost.
58 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
59 * neg_cost, shift_cost, shiftadd_cost,
60 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
61 mul_highpart_cost): Increase dimension.
62 (init_expmed): Initialize for both size and speed.
63 (expand_shift): Use profile.
64 (synth_mult): Use profile.
65 (choose_mult_variant): Use profile.
66 (expand_mult): Use profile.
67 (expand_mult_highpart_optab): Use profile.
68 (expand_mult_highpart): Use profile.
69 (expand_smod_pow2): Use profile.
70 (expand_divmod): Use profile.
71 * simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
72 * loop-invariant.c (create_new_invariant): Use profile.
73 (gain_for_invariant): Add speed parameter.
74 (best_gain_for_invariant): Likewise.
75 (find_invariants_to_move): Likewise.
76 (move_single_loop_invariants): Set it.
77 * target-def.h (TARGET_RTX_COSTS): Use hook.
78 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
79 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
80 * output.h (default_address_cost): Update prototype.
81 * combine.c (optimize_this_for_speed_p): New static var.
82 (combine_validate_cost): Update call of rtx_cost.
83 (combine_instructions): Set optimize_this_for_speed_p.
84 (expand_compound_operation): Update call of rtx_cost.
85 (make_extraction):Update call of rtx_cost.
86 (force_to_mode):Update call of rtx_cost.
87 (distribute_and_simplify_rtx):Update call of rtx_cost.
88 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
89 (estimate_reg_pressure_cost): Update prototype.
90 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
91 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
92 Remove.
93 * config/alpha/alpha.c (alpha_rtx_costs): Update.
94 (alpha_rtx_costs): Update.
95 * config/frv/frv.c (frv_rtx_costs): Update.
96 * config/s390/s390.c (s390_rtx_costs): Update.
97 * config/m32c/m32c.c (m32c_memory_move_cost): Update.
98 (m32c_rtx_costs): Update.
99 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
100 (spu_rtx_costs): Update.
101 * config/sparc/sparc.c (sparc_rtx_costs): Update.
102 * config/m32r/m32r.c (m32r_rtx_costs): Update.
103 * config/i386/i386.c (:ix86_address_cost): Update.
104 (ix86_rtx_costs): Update.
105 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
106 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
107 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
108 * config/crx/crx.c (crx_address_cost): Update.
109 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
110 * config/stormy16/stormy16.c
111 (xstormy16_address_cost, xstormy16_rtx_costs): Update.
112 * config/m68hc11/m68hc11.c
113 (m68hc11_address_cost, m68hc11_rtx_costs): Update.
114 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
115 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
116 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
117 * config/ia64/ia64.c (ia64_rtx_costs): Update.
118 * config/m68k/m68k.c (m68k_rtx_costs): Update.
119 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
120 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
121 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
122 (mcore_rtx_costs): update.
123 * config/score/score3.c (score3_rtx_costs): Update.
124 * config/score/score7.c (score7_rtx_costs): Update.
125 * config/score/score3.h (score3_rtx_costs):Update.
126 * config/score/score7.h (score7_rtx_costs): Update.
127 * config/score/score.c (score_rtx_costs): Update.
128 * config/arm/arm.c (arm_address_cost): Update.
129 (arm_rtx_costs_1): Update.
130 (arm_rtx_costs_1): Update.
131 (arm_size_rtx_costs): Update.
132 (arm_size_rtx_costs): Update.
133 (arm_size_rtx_costs): Update.
134 (arm_xscale_rtx_costs): Update.
135 (arm_thumb_address_cost): Update.
136 * config/pa/pa.c (hppa_address_cost): Update.
137 * config/mips/mips.c (mips_rtx_costs): Update.
138 * config/vax/vax.c (vax_address_cost): Update.
139 * config/h8300/h8300.c (h8300_shift_costs): Update.
140 (h8300_rtx_costs): Update.
141 * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
142 (v850_rtx_costs): Update.
143 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
144 * config/bfin/bfin.c
145 (bfin_address_cost): Update.
146 (bfin_rtx_costs): Update.
147 * stmt.c (lshift_cheap_p): Update.
148
6aebac53
AP
1492008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
150
151 PR middle-end/36444
152 * expmed.c (extract_bit_field_1): Check the mode size to make
153 sure the vector modes have the same size.
154
a4cbe62d
MM
1552008-08-29 Michael Meissner <gnu@the-meissners.org>
156
157 * dojump.c (top level): Include basic-block.h to declare
158 optimize_insn_for_speed_p
159
160 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
161
5779e713
MM
162 * opts.h (CL_SAVE): New option class for marking options that are
163 target specific options usable in the target attribute.
164 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
165
166 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
167 can easily find the target specific options that are safe to use
168 in the attribute or pragma.
169
170 * attribs.c (decl_attributes): Change #pragma GCC option to
171 #pragma GCC target, and attribute((option(...))) to
172 attribute((target(...))).
173
174 * doc/extend.texi (target attribute): Change from option
175 attribute. Delete push/pop/reset.
176 (#pragma GCC target): Change from #pragma GCC option. Delete
177 push/pop/reset.
178 (#pragma GCC push_options): Document new pragma.
179 (#pragma GCC pop_options): Document new pragma.
180 (#pragma GCC reset_options): Document new pragma.
181
182 * targhooks.c (default_target_option_valid_attribute_p): Add
183 warning about port not supporting target attributes.
184 (default_target_option_pragma_parse): New function, warn about
185 #pragma GCC target not being supported.
186
187 * targhooks.h (default_target_option_pragma_parse): Add
188 declaration.
189
190 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
191 TI_CURRENT_OPTION_PRAGMA.
192 (current_target_pragma): Rename from current_option_pragma.
193
194 * target.h: (struct target_option): Delete booleans for changing
195 the optimization level on hot/cold functions. Change signature of
196 pragma_parse hook to take a second tree.
197
198 * c-tree.h (c_builtin_function_ext_scope): Add declaration.
199
200 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
201 that the declaration is done at global scope.
202
203 * langhooks.c (add_builtin_function_common): Move most of the code
204 from add_builtin_function here, calling the hook passed in.
205 (add_builtin_function): Call add_builtin_function_common with
206 standard builtin hook.
207 (add_builtin_function_ext_scope): New function to add builtins to
208 global scope.
209
210 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
211 hook.
212 (add_builtin_function_ext_scope): Add declaration.
213
214 * c-pragma.c (handle_pragma_target): Rename from
215 handle_pragma_option, #pragma GCC option is now #pragma GCC
216 target. Move warning about port not supporting target options to
217 default pragma parse hook. Remove push/pop/reset from this
218 pragma.
219 (handle_pragma_optimize): Remove push/pop/reset from this pragma.
220 (option_stack): Delete static variable.
221 (optimize_stack): Ditto.
222 (optons_stack): New stack of saved target and optimization
223 options.
224 (handle_pragma_push_options): New function to handle pushing both
225 target and optimization options.
226 (handle_pragma_pop_options): New function to handle popping both
227 target and optimization options.
228 (handle_pragma_reset_options): New function to handle resetting
229 both target and optimization options to their initial state.
230 (init_pragma): Rename handle_pragma_option to
231 handle_pragma_target. Add support for push_options, pop_options,
232 and reset_options pragmas.
233
234 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
235 default_target_option_pragma_parse.
236 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
237 default_target_option_valid_attribute_p.
238 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
239 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
240 (TARGET_OPTION_HOOKS): Delete the fields for whether to change
241 optimization level on hot/cold functions.
242
243 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
244 if the caller and callee have different optimization levels.
245
246 * c-common.c (handle_target_attribute): Rename from
247 handle_option_attribute, attribute((option(...))) is now
248 attribute((target(...))). Move warning if the port does not
249 support target attributes to the default hook.
250 (handle_hot_attribute): Delete code to change the optimization
251 level of hot functions.
252 (handle_cold_attribute): Ditto.
253
254 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
255 argument that is the binary tree options to use if there are no
256 arguments. Call ix86_valid_target_attribute_tree instead of
257 ix86_valid_option_attribute_tree.
258 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
259 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
260 ix86_pragma_option_parse.
261
262 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
263 Rename from ix86_valid_option_attribute_tree.
264
265 * config/i386/i386.c (ix86_add_new_builtins): New function to add
266 new builtins when the ISA changes.
267 (ix86_valid_target_attribute_tree): Rename from
268 ix86_valid_option_attribute_tree. Change callers. If the
269 function specified optimization options, use those as the starting
270 point before setting up the target attributes. If the
271 optimization options were changed in the course of setting the
272 target attributes, record the new optimization options.
273 (ix86_valid_target_attribute_tree_inner_p): Rename from
274 ix86_valid_option_attribute_tree_inner_p. Change callers. Call
275 ix86_add_new_builtins if the ISA changed.
276 (ix86_valid_target_attribute_p): Rename from
277 ix86_valid_option_attribute_p. Change callers.
278 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
279 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
280 as delayed builtin functions.
281 (struct builtin_isa): New structure to record builtin functions
282 that should be delayed until the ISA for that function is used.
283 (ix86_builtins_isa): Change from int to struct to track builtin
284 functions we want to declare at some point.
285 (def_builtin): If the front end can delay defining the builtin
286 functions, don't create builtins for ISAs not part of the default
287 options.
288 (def_builtin_const): Ditto.
289 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
290 __builtin_ia32_pcmov_v2di to be different builtin functions.
291 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
292 a structure instead of an int.
293 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
294 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
295 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
296 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
297
298 * config/ia64/ia64.h
299 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
300 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
301
302 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
303 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
304 (LANG_HOOKS_INITIALIZER): Add
305 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
306
06b322fa
KK
3072008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
308
309 PR target/37270
310 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
311 the reload address with the index register for SFmode
312 access with a displacement.
313
3a4fd356
JH
3142008-08-30 Jan Hubicka <jh@suse.cz>
315
316 * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
317 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
318 * dojump.c (do_jump): Likewise.
319 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
320 (note-if_info): Add BRANCH_COST.
321 (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
322 noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
323 noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
324 branch cost.
325 * expr.h (BRANCH_COST): Update default.
326 * predict.c (predictable_edge_p): New function.
327 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
328 Update BRANCH_COST call.
329 * basic-block.h (predictable_edge_p): Declare.
330 * config/alpha/alpha.h (BRANCH_COST): Update.
331 * config/frv/frv.h (BRANCH_COST): Update.
332 * config/s390/s390.h (BRANCH_COST): Update.
333 * config/spu/spu.h (BRANCH_COST): Update.
334 * config/sparc/sparc.h (BRANCH_COST): Update.
335 * config/m32r/m32r.h (BRANCH_COST): Update.
336 * config/i386/i386.h (BRANCH_COST): Update.
337 * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
338 * config/sh/sh.h (BRANCH_COST): Update.
339 * config/pdp11/pdp11.h (BRANCH_COST): Update.
340 * config/avr/avr.h (BRANCH_COST): Update.
341 * config/crx/crx.h (BRANCH_COST): Update.
342 * config/xtensa/xtensa.h (BRANCH_COST): Update.
343 * config/stormy16/stormy16.h (BRANCH_COST): Update.
344 * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
345 * config/iq2000/iq2000.h (BRANCH_COST): Update.
346 * config/ia64/ia64.h (BRANCH_COST): Update.
347 * config/rs6000/rs6000.h (BRANCH_COST): Update.
348 * config/arc/arc.h (BRANCH_COST): Update.
349 * config/score/score.h (BRANCH_COST): Update.
350 * config/arm/arm.h (BRANCH_COST): Update.
351 * config/pa/pa.h (BRANCH_COST): Update.
352 * config/mips/mips.h (BRANCH_COST): Update.
353 * config/vax/vax.h (BRANCH_COST): Update.
354 * config/h8300/h8300.h (BRANCH_COST): Update.
355 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
356 * doc/invoke.texi (predictable-branch-cost-outcome): Document.
357 * doc/tm.texi (BRANCH_COST): Update.
358
b1bdaf40
ST
3592008-08-30 Samuel Tardieu <sam@rfc1149.net>
360
361 PR target/37283
362 * config/arm/arm.c (arm_optimization_options): Set
363 flag_section_anchors to 2 instead of 1 to distinguish it from
364 -fsection-anchors given explicitely on the command line.
365
a2a92083
RS
3662008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
367
368 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
369 final insn of a split.
370
8bcf15f6
JH
3712008-08-30 Jan Hubicka <jh@suse.cz>
372
373 * postreload-gcse.c (gate_handle_gcse2): Disable for functions
374 optimized for speed.
375 * final.c (compute_alignments): Use optimize_bb_for_size_p.
376 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
377 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
378 flag_gcse_after_reload_set): New static vars.
379 (common_handle_option): Enable those flags for profile-use.
380 (decode_options): Remove optimize_size flags that are handled
381 on higher granuality.
382 * tree-vectorizer.c (vectorize_loops): Use
383 optimize_loop_nest_for_speed_p.
384 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
385 * tree-predcom.c (tree_predictive_commoning): Use
386 optimize_loop_for_speed_p.
387 * varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
388 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
389 * predict.c (optimize_loop_for_speed_p): Fix walk.
390
76718c16
JH
3912008-08-30 Jan Hubicka <jh@suse.cz>
392
393 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
394 functions.
395 (cgraph_decide_inlining_of_small_function): Use edge->count to detect
396 profile presence locally.
397
109e637b
JM
3982008-08-29 Joseph Myers <joseph@codesourcery.com>
399
400 PR bootstrap/37086
401 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
402 versions before 4.0.
403
e7119705
JH
4042008-08-29 Jan Hubicka <jh@suse.cz>
405
406 * tree-inline.c (insert_init_stmt): Insert sequence even when
407 not in SSA form.
408
6528281d
JL
4092008-08-29 Jeff Law <law@redhat.com>
410
411 * mn10300.c (mn10300_secondary_reload_class): We need secondary
412 reloads for AM33-2 if IN is a pseudo with an equivalent memory
413 location and class is an FP register.
414
041f300d
JH
4152008-08-29 Jan Hubicka <jh@suse.cz>
416
6528281d
JL
417 * see.c (see_merge_one_def_extension): Silence used uninitialized
418 warning.
041f300d
JH
419 * matrix-reorg.c (check_allocation_function): Likewise.
420 * config/i386/driver-i386.c (detect_caches_amd): Likewise.
421
a64f5186
JJ
4222008-08-29 Jakub Jelinek <jakub@redhat.com>
423
bf09f0e0
JJ
424 PR c/37261
425 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
426 compute new & and | in type rather than TREE_TYPE (arg0).
427
98c0cbd3
JJ
428 * dwarf2out.c (fortran_common): Update comment.
429 (gen_variable_die): Swap com_die and var_die variables in Fortran
430 COMMON block handling code.
431
de870512
JJ
432 * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
433
bd11e37d
JJ
434 * dwarf2out.c (gen_const_die): New function.
435 (size_of_die, value_format, output_die): Output larger
436 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
437 (native_encode_initializer): New function.
438 (tree_add_const_value_attribute): Call it.
439 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
440
f51d8f1a
JJ
441 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
442 DECL_BY_REFERENCE decls don't pass TREE_READONLY and
443 TREE_THIS_VOLATILE to add_type_attribute.
444
b6b904bd
JJ
445 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
446 types.
447 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
448 types.
449
2599ed92
JJ
450 * dwarf2out.c (loc_by_reference): New function.
451 (add_location_or_const_value_attribute): Use it.
452
04e74e02
JJ
453 PR fortran/23057
454 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
455 as DW_TAG_variable children of DW_TAG_common_block rather than
456 DW_TAG_member children. Put DW_AT_external to individual
457 DW_TAG_variable DIEs, not to DW_TAG_common_block.
458
25c29c56
JJ
459 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
460 loc_descriptor_from_tree_1.
461
a64f5186
JJ
462 PR fortran/29635
463 PR fortran/23057
464 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
465 arguments to imported_module_or_decl.
466 (debug_nothing_tree_tree): Removed.
467 (debug_nothing_tree_tree_tree_bool): New prototype.
468 * debug.c (do_nothing_debug_hooks): Adjust.
469 (debug_nothing_tree_tree): Removed.
470 (debug_nothing_tree_tree_tree_bool): New function.
471 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
472 (gen_variable_die): Put all common vars for the
473 same COMMON block under one DW_TAG_common_block.
474 (declare_in_namespace): Return new context_die, for Fortran
475 return the module DIE instead of adding extra declarations into
476 the namespace.
477 (gen_type_die_with_usage): Adjust declare_in_namespace caller.
478 (gen_namespace_die): If is_fortran (), generate DW_TAG_module
479 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
480 DW_AT_declaration.
481 (dwarf2out_global_decl): Don't skip Fortran global vars.
482 (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
483 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
484 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
485 DW_TAG_imported_declaration as child of previous
486 DW_TAG_imported_module.
487 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
488 * sdbout.c (sdb_debug_hooks): Likewise.
489 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
490
ca30a539
JH
4912008-08-29 Jan Hubicka <jh@suse.cz>
492
493 * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
494
495 * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
496 * ipa-cp.c (n_cloning_candidates): New static variable.
497 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
498 (ipcp_print_all_lattices): Improve debug output.
499 (ipcp_cloning_candidate_p): New function.
500 (ipcp_initialize_node_lattices): Use it.
501 (ipcp_init_stage): Do only analyzis here; prettier debug output.
502 (ipcp_propagate_stage): Prettier debug output.
503 (ipcp_iterate_stage): Initialize latices here; prettier debug output.
504 (ipcp_print_all_structures): Remove.
505 (ipcp_need_redirect_p): Test !n_cloning_candidates.
506 (ipcp_insert_stage): Prettier debug output; call
507 cgraph_remove_unreachable_nodes before propagating.
508 (pass_ipa_cp): Schedule function removal pass.
509 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
510 debug output.
511 (cgraph_maybe_hot_edge_p): Move to ...
512 * predict.c (cgraph_maybe_hot_edge_p) ... here.
513 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
514 (common_handle_option): Set them; enable ipa-cp when profiling.
515 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
516 (ipa_print_all_jump_functions): Likewise.
517 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
518 (ipa_print_node_params, ipa_print_all_params): New.
519 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
520 ipa_print_all_param_flags): Remove.
521 (ipa_print_node_params, ipa_print_all_params): New.
522
a1f626ad
BW
5232008-08-29 Bob Wilson <bob.wilson@acm.org>
524
525 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
526 change from 2008-04-03.
527 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
528
d7f2c74e
VM
5292008-08-29 Vladimir Makarov <vmakarov@redhat.com>
530
531 PR rtl-opt/37251
532
533 * ira-color.c (push_allocnos_to_stack): Truncate
534 removed_splay_allocno_vec.
535
03dd10d8
VM
5362008-08-29 Vladimir Makarov <vmakarov@redhat.com>
537
538 PR rtl-opt/37243
539 * ira-color (ira_fast_allocation): Don't assign hard registers to
540 global allocnos.
541
c16eb95f
JH
5422008-08-29 Jan Hubicka <jh@suse.cz>
543
544 PR middle-end/37278
545 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
546 for cold internal loops.
547
13c6bff4
RG
5482008-08-29 Richard Guenther <rguenther@suse.de>
549
550 * tree-ssa-structalias.c (create_variable_info_for): Do not
551 create fields for heap vars or vars with a noalias state.
552 For NO_ALIAS_ANYTHING variables add a self-constraint, not one
553 from ESCAPED.
554
dce2b2f6
RG
5552008-08-29 Richard Guenther <rguenther@suse.de>
556
557 * common.opt (ftree-store-ccp): Mark as preserved for
558 backward compatibility.
559 * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
560 * tree-pass.h (pass_store_ccp): Remove.
561 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
562 (first_vdef): Remove declaration.
563 (get_value_loaded_by): Likewise.
564 * tree-ssa-ccp.c (do_store_ccp): Remove.
565 (get_default_value): Simplify as do_store_ccp is always false
566 now. Do not initialize mem_ref.
567 (set_value_varying): Likewise.
568 (canonicalize_float_value): Likewise.
569 (set_lattice_value): Likewise.
570 (likely_value): Likewise.
571 (surely_varying_stmt_p): Likewise.
572 (ccp_initialize): Likewise.
573 (ccp_lattice_meet): Likewise.
574 (ccp_visit_phi_node): Likewise.
575 (ccp_fold): Likewise.
576 (evaluate_stmt): Likewise.
577 (visit_assignment): Likewise.
578 (ccp_visit_stmt): Likewise.
579 (execute_ssa_ccp): Fold into ...
580 (do_ssa_ccp): ... this.
581 (do_ssa_store_ccp): Remove.
582 (gate_store_ccp): Likewise.
583 (pass_store_ccp): Likewise.
584 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
585 initialize mem_ref.
586 * tree-ssa-propagate.c (first_vdef): Remove.
587 (get_value_loaded_by): Likewise.
588 (replace_vuses_in): Likewise.
589 (substitute_and_fold): Do not call replace_vuses_in.
590 * opts.c (decode_options): Do not set flag_tree_store_ccp.
591
443aa7d5
RG
5922008-08-29 Richard Guenther <rguenther@suse.de>
593
594 PR middle-end/37236
595 * tree-ssa-structalias.c (intra_create_variable_infos): Mark
596 PARAM_NOALIAS tags with is_heapvar.
597 * tree-ssa-operands.c (access_can_touch_variable): Offset
598 based tests do not apply for heapvars. Fix offset test.
599
fcbe056b
JH
6002008-08-29 Jan Hubicka <jh@suse.cz>
601
602 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
603 (-fipa-cp-clone): Enabled by default at -O3.
604 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
605 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
606
c6f7cfc1
JH
6072008-08-29 Jan Hubicka <jh@suse.cz>
608
609 * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
610 New functions.
611 * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
612 Declare.
613 * gimple.c (giple_copy_call_skip_args): New function.
614 (giple_copy_call_skip_args): Declare.
615
616 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
617 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
618 (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
619 (ipcp_create_replace_map): Improve debug output.
620 (ipcp_need_redirect_p): Return false when not clonning.
621 (ipcp_update_callgraph): Skip args.
622 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
623 skip args.
624 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
625 (save_inline_function_body): Update call of tree_function_versioning.
626 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
627 * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
628 (tree_function_versioning): Likewise.
629 * tree-inline.h (tree_function_versioning): Update prototype.
630
efd8f750
JH
6312008-08-29 Jan Hubicka <jh@suse.cz>
632
633 * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
634 * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
635 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
636 * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
637 * value-prof.c (gimple_divmod_fixed_value_transform,
638 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
639 gimple_stringops_transform): Use optimize_bb_for_size_p.
640 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
641 * final.c (compute_alignments): Use optimize_function_for_size_p.
642 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
643 (fold_builtin_strcpy, fold_builtin_fputs): Use
644 optimize_function_for_size_p.
645 * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
646 * recog.c (relax_delay_slots): Likewise.
647 * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
648 (execute_cse_reciprocals): Use optimize_bb_for_size_p.
649 * ipa-inline.c (cgraph_decide_recursive_inlining): Use
650 optimize_function_for_size_p.
651 (cgraph_decide_inlining_of_small_function): Use
652 optimize_function_for_size_p.
653 * global.c (find_reg): Use optimize_function_for_size_p.
654 * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
655 flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
656 flag_prefetch_loop_arrays. Those can work it out from profile.
657 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
658 optimize_loop_for_speed_p.
659 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
660 argument.
661 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
662 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
663 * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
664 * local-alloc.c (block_alloc): Pass BB pointer.
665 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
666 * gcse.c (gcse_main): Use optimize_function_for_size_p.
667 * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
668 (decide_peel_completely): Likewise.
669 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
670 optimize_loop_for_size_p.
671 (vect_enhance_data_refs_alignment): Likewise.
672 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
673 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
674 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
675 (try_crossjump_bb): Use optimize_bb_for_size_p.
676 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
677 optimize_loop_for_speed_p.
678 * bb-reorder.c (find_traces_1_round): Likewise.
679 (copy_bb): Use optimize_bb_for_speed_p.
680 (duplicate_computed_gotos): Likewise.
681 * basic-block.h (optimize_loop_nest_for_size_p,
682 optimize_loop_nest_for_speed_p): New.
683 * stmt.c (expand_case): Use optimize_insn_for_size_p.
684
e3536b82
TG
6852008-08-29 Tristan Gingold <gingold@adacore.com>
686
687 * gcov.c (main): Call expandargv.
688
cc870036
JH
6892008-08-29 Jan Hubicka <jh@suse.cz>
690
691 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
692 is not cold.
693 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
694 Constify arguments.
695 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
696 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
697 Constify.
698 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
699
7299cb99
JH
7002008-08-29 Jan Hubicka <jh@suse.cz>
701
702 * tree-pass.h (pass_strip_predict_hints): Declare.
703 * predict.c (strip_builtin_expect): Rename to ...
704 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
705 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
706 (tree_estimate_probability): Do not strip builtin_expect.
707 (pass_strip_predict_hints): New pass.
708 * tree-inline.c (expand_call_inline): When inlining cold function, predict
709 it as unlikely.
710 * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
711
a4b93060
RG
7122008-08-29 Richard Guenther <rguenther@suse.de>
713
714 PR tree-optimization/37207
715 * tree-vrp.c (extract_range_from_binary_expr): Also try
716 to constant fold if only one of the operands is a constant.
717
a0491ba7
NC
7182008-08-29 Nick Clifton <nickc@redhat.com>
719
720 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
721 the same way as SYMBOL_REFs.
722
1d29a58d
BW
7232008-08-28 Bob Wilson <bob.wilson@acm.org>
724
725 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
726
95f6fc60
AN
7272008-08-28 Adam Nemet <anemet@caviumnetworks.com>
728
729 * config/mips/mips.h (ISA_HAS_BBIT): New macro.
730 * config/mips/mips.md (branch_likely): Remove const. Fix
731 comment formatting.
732 (define_delay for type "branch"): Change to only apply for branch
733 with likely variant.
734 (define_delay for type "branch" and "branch_likely" no). New delay
735 definition.
736 (equality_op): New code iterator.
737 (bbv, bbinv): New code attributes.
738 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
739 patterns.
740
528c22f4
MLI
7412008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
742 Andrew Pinski <pinskia@gcc.gnu.org>
743
744 PR 18050
745 * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
746
1cd8b853
PC
7472008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
748
749 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
750 rule that a symbolic constant must be defined and >= 0 for the
751 corresponding facility to be present at compile-time.
752 * gthr-posix.c: Likewise.
753
d6d3e623
AN
7542008-08-28 Adam Nemet <anemet@caviumnetworks.com>
755
756 * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
757 * config/mips/mips.md (D): New mode attribute.
758 (mulsi3, muldi3): Merge it into ...
759 (mul<mode>3): ... new template. Use _mul3 ending for 3-op
760 patterns.
761 (muldi3_mul3): New pattern.
762 (mulsi3_mult3): Rename to mulsi3_mul3.
763
3debdc1e
JH
7642008-08-28 Jan Hubicka <jh@suse.cz>
765
d6d3e623
AN
766 * expmed.c (store_bit_field_1): Be prepared for movstrict expander
767 to fail.
3debdc1e
JH
768 * predict.c (always_optimize_for_size_p): Rename to ...
769 (optimize_function_for_size): ... this one; make extern.
770 (optimize_function_for_speed_p): New.
771 (optimize_bb_for_size_p, optimize_bb_for_size_p,
772 optimize_edge_for_size_p,optimize_edge_for_size_p,
773 optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
774 * basic-block.h (optimize_function_for_size_p,
775 optimize_function_for_speed_p): Declare.
d6d3e623
AN
776 * i386.md (optimize_size checks): Replace them by appropriate
777 predicate.
3debdc1e
JH
778 (standard_80387_constant_p, ix86_compute_frame_layout,
779 ix86_expand_epilogue, ix86_decompose_address,
780 print_operand, emit_i387_cw_initialization,
781 inline_memory_move_cost, ix86_pad_returns,
782 ix86_reorg): Replace optimize_size checks.
783
eef302d2
RS
7842008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
785
786 * rtl.h (simplify_subreg_regno): Declare.
787 * rtlanal.c (simplify_subreg_regno): New function, split out from...
788 * simplify-rtx.c (simplify_subreg): ...here.
789 * reload.c (find_reloads): Use simplify_subreg_regno instead of
790 subreg_offset_representable_p.
791
1e053dfe
MLI
7922008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
793
794 PR c/30949
795 * c-typeck.c (convert_for_assignment): Give a note describing what
796 was passed and what was expected.
797
31cb596a
JY
7982008-08-28 Joey Ye <joey.ye@intel.com>
799
800 * doc/extend.texi: Document AVX built-in functions.
801 * doc/invoke.texi: Document -mavx.
802
95879c72
L
8032008-08-28 H.J. Lu <hongjiu.lu@intel.com>
804 Joey Ye <joey.ye@intel.com>
805 Xuepeng Guo <xuepeng.guo@intel.com>
806
807 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
808
809 * config/i386/cpuid.h (bit_FMA): New.
810 (bit_XSAVE): Likewise.
811 (bit_OSXSAVE): Likewise.
812 (bit_AVX): Likewise.
813
814 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
815 define. Use ASM_OUTPUT_AVX_PREFIX.
816
817 * config/i386/gmmintrin.h: New.
818
819 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
820 (OPTION_MASK_ISA_AVX_SET): New.
821 (OPTION_MASK_ISA_FMA_SET): Likewise.
822 (OPTION_MASK_ISA_AVX_UNSET): Likewise.
823 (OPTION_MASK_ISA_FMA_SET): Likewise.
824 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
825 (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
826 (pta_flags): Add PTA_AVX and PTA_FMA.
827 (override_options): Handle PTA_AVX and PTA_FMA.
828 (init_cumulative_args): Handle warn_avx.
829 (classify_argument): Return 0 for COImode and OImode. Return
830 1 and X86_64_AVX_CLASS for 256bit vector types.
831 (examine_argument): Handle X86_64_AVX_CLASS.
832 (construct_container): Likewise.
833 (function_arg_advance_32): Pass OImode and 256bit vector types
834 in AVX register.
835 (function_arg_advance_64): Take a new argument to indicate if a
836 parameter is named. Handle 256bit vector types. Return
837 immediately for unnamed 256bit vector mode parameters.
838 (function_arg_advance): Updated.
839 (function_arg_32): Add comments for TImode. Handle OImode
840 and 256bit vector types.
841 (function_arg_64): Take a new argument to indicate if a
842 parameter is named. Handle 256bit vector types. Return NULL
843 for unnamed 256bit vector mode parameters.
844 (function_arg): Updated.
845 (setup_incoming_varargs_64): Support
846 AVX encoding for *sse_prologue_save_insn.
847 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
848 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
849 enabled. For all 1s in 256bit vector modes, return 3 if AVX is
850 enabled, otherwise return -3.
851 (standard_sse_constant_opcode): Handle AVX and 256bit vector
852 modes.
853 (print_reg): Support AVX registers. Handle 'x' and 't'.
854 Handle 'd' to duplicate the operand.
855 (print_operand): Likewise. Also support AVX vector compare
856 instructions.
857 (output_387_binary_op): Support AVX.
858 (output_fp_compare): Likewise.
859 (ix86_expand_vector_move_misalign): Likewise.
860 (ix86_attr_length_vex_default): New.
861 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
862 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
863 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
864 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
865 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
866 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
867 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
868 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
869 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
870 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
871 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
872 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
873 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
874 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
875 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
876 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
877 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
878 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
879 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
880 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
881 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
882 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
883 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
884 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
885 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
886 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
887 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
888 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
889 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
890 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
891 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
892 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
893 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
894 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
895 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
896 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
897 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
898 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
899 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
900 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
901 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
902 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
903 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
904 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
905 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
906 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
907 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
908 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
909 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
910 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
911 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
912 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
913 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
914 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
915 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
916 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
917 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
918 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
919 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
920 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
921 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
922 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
923 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
924 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
925 and IX86_BUILTIN_MOVMSKPS256,
926 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
927 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
928 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
929 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
930 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
931 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
932 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
933 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
934 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
935 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
936 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
937 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
938 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
939 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
940 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
941 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
942 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
943 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
944 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
945 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
946 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
947 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
948 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
949 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
950 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
951 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
952 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
953 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
954 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
955 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
956 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
957 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
958 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
959 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
960 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
961 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
962 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
963 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
964 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
965 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
966 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
967 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
968 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
969 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
970 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
971 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
972 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
973 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
974 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
975 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
976 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
977 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
978 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
979 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
980 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
981 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
982 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
983 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
984 IX86_BUILTIN_CMPPS,
985 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
986 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
987 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
988 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
989 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
990 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
991 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
992 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
993 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
994 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
995 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
996 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
997 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
998 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
999 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
1000 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
1001 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
1002 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
1003 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
1004 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
1005 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
1006 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
1007 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
1008 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
1009 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
1010 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
1011 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
1012 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
1013 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
1014 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
1015 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
1016 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
1017 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
1018 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
1019 IX86_BUILTIN_MOVMSKPS256.
1020 (ix86_init_mmx_sse_builtins): Support AVX builtins.
1021 (ix86_expand_args_builtin): Likewise.
1022 (ix86_expand_special_args_builtin): Likewise.
1023 (ix86_hard_regno_mode_ok): Handle AVX modes.
1024 (ix86_expand_vector_init_duplicate): Likewise.
1025 (ix86_expand_vector_init_one_nonzero): Likewise.
1026 (ix86_expand_vector_init_one_var): Likewise.
1027 (ix86_expand_vector_init_concat): Likewise.
1028 (ix86_expand_vector_init_general): Likewise.
1029 (ix86_expand_vector_set): Likewise.
1030 (ix86_vector_mode_supported_p): Likewise.
1031 (x86_extended_reg_mentioned_p): Check INSN_P before using
1032 PATTERN.
1033
1034 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
1035 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
1036
1037 * config/i386/i386.h (TARGET_AVX): New.
1038 (TARGET_FMA): Likewise.
1039 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
1040 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
1041 (VALID_AVX256_REG_MODE): New.
1042 (AVX256_VEC_FLOAT_MODE_P): Likewise.
1043 (AVX_FLOAT_MODE_P): Likewise.
1044 (AVX128_VEC_FLOAT_MODE_P): Likewise.
1045 (AVX256_VEC_FLOAT_MODE_P): Likewise.
1046 (AVX_VEC_FLOAT_MODE_P): Likewise.
1047 (ASM_OUTPUT_AVX_PREFIX): Likewise.
1048 (ASM_OUTPUT_OPCODE): Likewise.
1049 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
1050 support.
1051 (SSE_REG_MODE_P): Allow 256bit vector modes.
1052 (ix86_args): Add a warn_avx field.
1053
1054 * config/i386/i386.md (UNSPEC_PCMP): New.
1055 (UNSPEC_VPERMIL): Likewise.
1056 (UNSPEC_VPERMIL2): Likewise.
1057 (UNSPEC_VPERMIL2F128): Likewise.
1058 (UNSPEC_MASKLOAD): Likewise.
1059 (UNSPEC_MASKSTORE): Likewise.
1060 (UNSPEC_CAST): Likewise.
1061 (UNSPEC_VTESTP): Likewise.
1062 (UNSPECV_VZEROALL): Likewise.
1063 (UNSPECV_VZEROUPPER): Likewise.
1064 (XMM0_REG): Likewise.
1065 (XMM1_REG): Likewise.
1066 (XMM2_REG): Likewise.
1067 (XMM3_REG): Likewise.
1068 (XMM4_REG): Likewise.
1069 (XMM5_REG): Likewise.
1070 (XMM6_REG): Likewise.
1071 (XMM8_REG): Likewise.
1072 (XMM9_REG): Likewise.
1073 (XMM10_REG): Likewise.
1074 (XMM11_REG): Likewise.
1075 (XMM12_REG): Likewise.
1076 (XMM13_REG): Likewise.
1077 (XMM14_REG): Likewise.
1078 (XMM15_REG): Likewise.
1079 (prefix): Likewise.
1080 (prefix_vex_imm8): Likewise.
1081 (prefix_vex_w): Likewise.
1082 (length_vex): Likewise.
1083 (maxmin): Likewise.
1084 (movoi): Likewise.
1085 (*avx_ashlti3): Likewise.
1086 (*avx_lshrti3): Likewise.
1087 (*avx_setcc<mode>): Likewise.
1088 (*fop_<mode>_comm_mixed_avx): Likewise.
1089 (*fop_<mode>_comm_avx): Likewise.
1090 (*fop_<mode>_1_mixed_avx): Likewise.
1091 (*fop_<mode>_1_avx): Likewise.
1092 (*avx_<code><mode>3): Likewise.
1093 (*avx_ieee_smin<mode>3): Likewise.
1094 (*avx_ieee_smax<mode>3): Likewise.
1095 (mode): Add OI, V8SF and V4DF.
1096 (length): Support VEX prefix.
1097 (*cmpfp_i_mixed): Set prefix attribute.
1098 (*cmpfp_i_sse): Likewise.
1099 (*cmpfp_iu_mixed): Likewise.
1100 (*cmpfp_iu_sse): Likewise.
1101 (*movsi_1): Support AVX.
1102 (*movdi_2): Likewise.
1103 (*movdi_1_rex64): Likewise.
1104 (*movti_internal): Likewise.
1105 (*movti_rex64): Likewise.
1106 (*movsf_1): Likewise.
1107 (*movdf_nointeger): Likewise.
1108 (*movdf_integer_rex64): Likewise.
1109 (*movtf_internal): Likewise.
1110 (zero_extendsidi2_32): Likewise.
1111 (zero_extendsidi2_rex64): Likewise.
1112 (*extendsfdf2_mixed): Likewise.
1113 (*extendsfdf2_sse): Likewise.
1114 (*truncdfsf_fast_mixed): Likewise.
1115 (*truncdfsf_fast_sse): Likewise.
1116 (*truncdfsf_mixed): Likewise.
1117 (fix_trunc<mode>di_sse): Likewise.
1118 (fix_trunc<mode>si_sse): Likewise.
1119 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
1120 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
1121 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
1122 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
1123 (*rcpsf2_sse): Likewise.
1124 (*rsqrtsf2_sse): Likewise.
1125 (*sqrt<mode>2_sse): Likewise.
1126 (sse4_1_round<mode>2): Likewise.
1127 (*sse_prologue_save_insn): Disallow REX prefix for AVX.
1128 Support AVX. Set length attribute properly for AVX.
1129
1130 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
1131 (VECTOR_MODES (FLOAT, 32)): Likewise.
1132 (VECTOR_MODE (INT, DI, 8)): Likewise.
1133 (VECTOR_MODE (INT, HI, 32)): Likewise.
1134 (VECTOR_MODE (INT, QI, 64)): Likewise.
1135 (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
1136 (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
1137 (VECTOR_MODE (INT, DI, 4)): Removed.
1138 (VECTOR_MODE (INT, SI, 8)): Likewise.
1139 (VECTOR_MODE (INT, HI, 16)): Likewise.
1140 (VECTOR_MODE (INT, QI, 32)): Likewise.
1141 (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
1142 (INT_MODE (OI, 32)): Likewise.
1143
1144 * config/i386/i386.opt (mavx): New.
1145 (mfma): Likewise.
1146
1147 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
1148
1149 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
1150 (*mov<mode>_internal_avx): New.
1151 (*movv2sf_internal_rex64_avx): Likewise.
1152 (*movv2sf_internal_avx): Likewise.
1153
1154 * config/i386/predicates.md (const_4_to_5_operand): New.
1155 (const_6_to_7_operand): Likewise.
1156 (const_8_to_11_operand): Likewise.
1157 (const_12_to_15_operand): Likewise.
1158 (avx_comparison_float_operator): Likewise.
1159
1160 * config/i386/sse.md (AVX256MODEI): New.
1161 (AVX256MODE): Likewise.
1162 (AVXMODEQI): Likewise.
1163 (AVXMODE): Likewise.
1164 (AVX256MODEF2P): Likewise.
1165 (AVX256MODE2P): Likewise.
1166 (AVX256MODE4P): Likewise.
1167 (AVX256MODE8P): Likewise.
1168 (AVXMODEF2P): Likewise.
1169 (AVXMODEF4P): Likewise.
1170 (AVXMODEDCVTDQ2PS): Likewise.
1171 (AVXMODEDCVTPS2DQ): Likewise.
1172 (avxvecmode): Likewise.
1173 (avxvecpsmode): Likewise.
1174 (avxhalfvecmode): Likewise.
1175 (avxscalarmode): Likewise.
1176 (avxcvtvecmode): Likewise.
1177 (avxpermvecmode): Likewise.
1178 (avxmodesuffixf2c): Likewise.
1179 (avxmodesuffixp): Likewise.
1180 (avxmodesuffixs): Likewise.
1181 (avxmodesuffix): Likewise.
1182 (vpermilbits): Likewise.
1183 (pinsrbits): Likewise.
1184 (mov<mode>): Likewise.
1185 (*mov<mode>_internal): Likewise.
1186 (push<mode>1): Likewise.
1187 (movmisalign<mode>): Likewise.
1188 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1189 (avx_movdqu<avxmodesuffix>): Likewise.
1190 (avx_lddqu<avxmodesuffix>): Likewise.
1191 (<plusminus_insn><mode>3): Likewise.
1192 (*avx_<plusminus_insn><mode>3): Likewise.
1193 (*avx_vm<plusminus_insn><mode>3): Likewise.
1194 (mul<mode>3): Likewise.
1195 (*avx_mul<mode>3): Likewise.
1196 (*avx_vmmul<mode>3): Likewise.
1197 (divv8sf3): Likewise.
1198 (divv4df3): Likewise.
1199 (avx_div<mode>3): Likewise.
1200 (*avx_div<mode>3): Likewise.
1201 (*avx_vmdiv<mode>3): Likewise.
1202 (avx_rcpv8sf2): Likewise.
1203 (*avx_vmrcpv4sf2): Likewise.
1204 (sqrtv8sf2): Likewise.
1205 (avx_sqrtv8sf2): Likewise.
1206 (*avx_vmsqrt<mode>2): Likewise.
1207 (rsqrtv8sf2): Likewise.
1208 (avx_rsqrtv8sf2): Likewise.
1209 (*avx_vmrsqrtv4sf2): Likewise.
1210 (<code><mode>3): Likewise.
1211 (*avx_<code><mode>3_finite): Likewise.
1212 (*avx_<code><mode>3): Likewise.
1213 (*avx_vm<code><mode>3): Likewise.
1214 (*avx_ieee_smin<mode>3): Likewise.
1215 (*avx_ieee_smax<mode>3): Likewise.
1216 (avx_addsubv8sf3): Likewise.
1217 (avx_addsubv4df3): Likewise.
1218 (*avx_addsubv4sf3): Likewise.
1219 (*avx_addsubv2df3): Likewise.
1220 (avx_h<plusminus_insn>v4df3): Likewise.
1221 (avx_h<plusminus_insn>v8sf3): Likewise.
1222 (*avx_h<plusminus_insn>v4sf3): Likewise.
1223 (*avx_h<plusminus_insn>v2df3): Likewise.
1224 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
1225 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
1226 (*avx_maskcmp<mode>3): Likewise.
1227 (avx_nand<mode>3): Likewise.
1228 (*avx_<code><mode>3): Likewise.
1229 (*avx_nand<mode>3): Likewise.
1230 (*avx_<code><mode>3): Likewise.
1231 (*avx_cvtsi2ss): Likewise.
1232 (*avx_cvtsi2ssq): Likewise.
1233 (*avx_cvtsi2sd): Likewise.
1234 (*avx_cvtsi2sdq): Likewise.
1235 (*avx_cvtsd2ss): Likewise.
1236 (avx_cvtss2sd): Likewise.
1237 (avx_cvtdq2ps<avxmodesuffix>): Likewise.
1238 (avx_cvtps2dq<avxmodesuffix>): Likewise.
1239 (avx_cvttps2dq<avxmodesuffix>): Likewise.
1240 (*avx_cvtsi2sd): Likewise.
1241 (*avx_cvtsi2sdq): Likewise.
1242 (avx_cvtdq2pd256): Likewise.
1243 (avx_cvtpd2dq256): Likewise.
1244 (avx_cvttpd2dq256): Likewise.
1245 (*avx_cvtsd2ss): Likewise.
1246 (*avx_cvtss2sd): Likewise.
1247 (avx_cvtpd2ps256): Likewise.
1248 (avx_cvtps2pd256): Likewise.
1249 (*avx_movhlps): Likewise.
1250 (*avx_movlhps): Likewise.
1251 (avx_unpckhps256): Likewise.
1252 (*avx_unpckhps): Likewise.
1253 (avx_unpcklps256): Likewise.
1254 (*avx_unpcklps): Likewise.
1255 (avx_movshdup256): Likewise.
1256 (avx_movsldup256): Likewise.
1257 (avx_shufps256): Likewise.
1258 (avx_shufps256_1): Likewise.
1259 (*avx_shufps_<mode>): Likewise.
1260 (*avx_loadhps): Likewise.
1261 (*avx_storelps): Likewise.
1262 (*avx_loadlps): Likewise.
1263 (*avx_movss): Likewise.
1264 (*vec_dupv4sf_avx): Likewise.
1265 (*vec_concatv2sf_avx): Likewise.
1266 (*vec_concatv4sf_avx): Likewise.
1267 (*vec_setv4sf_0_avx): Likewise.
1268 (*vec_setv4sf_avx): Likewise.
1269 (*avx_insertps): Likewise.
1270 (avx_vextractf128<mode>): Likewise.
1271 (vec_extract_lo_<mode>): Likewise.
1272 (vec_extract_hi_<mode>): Likewise.
1273 (vec_extract_lo_<mode>): Likewise.
1274 (vec_extract_hi_<mode>): Likewise.
1275 (vec_extract_lo_v16hi): Likewise.
1276 (vec_extract_hi_v16hi): Likewise.
1277 (vec_extract_lo_v32qi): Likewise.
1278 (vec_extract_hi_v32qi): Likewise.
1279 (avx_unpckhpd256): Likewise.
1280 (*avx_unpckhpd): Likewise.
1281 (avx_movddup256): Likewise.
1282 (*avx_movddup): Likewise.
1283 (avx_unpcklpd256): Likewise.
1284 (*avx_unpcklpd): Likewise.
1285 (avx_shufpd256): Likewise.
1286 (avx_shufpd256_1): Likewise.
1287 (*avx_punpckhqdq): Likewise.
1288 (*avx_punpcklqdq): Likewise.
1289 (*avx_shufpd_<mode>): Likewise.
1290 (*avx_storehpd): Likewise.
1291 (*avx_loadhpd): Likewise.
1292 (*avx_loadlpd): Likewise.
1293 (*avx_movsd): Likewise.
1294 (*vec_concatv2df_avx): Likewise.
1295 (*avx_<plusminus_insn><mode>3): Likewise.
1296 (*avx_<plusminus_insn><mode>3): Likewise.
1297 (*avx_mulv8hi3): Likewise.
1298 (*avxv8hi3_highpart): Likewise.
1299 (*avx_umulv8hi3_highpart): Likewise.
1300 (*avx_umulv2siv2di3): Likewise.
1301 (*avx_mulv2siv2di3): Likewise.
1302 (*avx_pmaddwd): Likewise.
1303 (*avx_mulv4si3): Likewise.
1304 (*avx_ashr<mode>3): Likewise.
1305 (*avx_lshr<mode>3): Likewise.
1306 (*avx_ashl<mode>3): Likewise.
1307 (*avx_<code><mode>3): Likewise.
1308 (*avx_eq<mode>3): Likewise.
1309 (*avx_gt<mode>3): Likewise.
1310 (*avx_nand<mode>3): Likewise.
1311 (*avx_nand<mode>3): Likewise.
1312 (*avx_<code><mode>3): Likewise.
1313 (*avx_<code><mode>3): Likewise.
1314 (*avx_packsswb): Likewise.
1315 (*avx_packssdw): Likewise.
1316 (*avx_packuswb): Likewise.
1317 (*avx_punpckhbw): Likewise.
1318 (*avx_punpcklbw): Likewise.
1319 (*avx_punpckhwd): Likewise.
1320 (*avx_punpcklwd): Likewise.
1321 (*avx_punpckhdq): Likewise.
1322 (*avx_punpckldq): Likewise.
1323 (*avx_pinsr<avxmodesuffixs>): Likewise.
1324 (*avx_pinsrq): Likewise.
1325 (*avx_loadld): Likewise.
1326 (*vec_extractv2di_1_rex64_avx): Likewise.
1327 (*vec_extractv2di_1_avx): Likewise.
1328 (*vec_dupv2di_avx): Likewise.
1329 (*vec_concatv2si_avx): Likewise.
1330 (*vec_concatv4si_1_avx): Likewise.
1331 (*vec_concatv2di_avx): Likewise.
1332 (*vec_concatv2di_rex64_avx): Likewise.
1333 (*avx_uavgv16qi3): Likewise.
1334 (*avx_uavgv8hi3): Likewise.
1335 (*avx_psadbw): Likewise.
1336 (avx_movmskp<avxmodesuffixf2c>256): Likewise.
1337 (*avx_phaddwv8hi3): Likewise.
1338 (*avx_phadddv4si3): Likewise.
1339 (*avx_phaddswv8hi3): Likewise.
1340 (*avx_phsubwv8hi3): Likewise.
1341 (*avx_phsubdv4si3): Likewise.
1342 (*avx_phsubswv8hi3): Likewise.
1343 (*avx_pmaddubsw128): Likewise.
1344 (*avx_pmulhrswv8hi3): Likewise.
1345 (*avx_pshufbv16qi3): Likewise.
1346 (*avx_psign<mode>3): Likewise.
1347 (*avx_palignrti): Likewise.
1348 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1349 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1350 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1351 (*avx_mpsadbw): Likewise.
1352 (*avx_packusdw): Likewise.
1353 (*avx_pblendvb): Likewise.
1354 (*avx_pblendw): Likewise.
1355 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1356 (avx_ptest256): Likewise.
1357 (avx_roundp<avxmodesuffixf2c>256): Likewise.
1358 (*avx_rounds<ssemodesuffixf2c>): Likewise.
1359 (*avx_aesenc): Likewise.
1360 (*avx_aesenclast): Likewise.
1361 (*avx_aesdec): Likewise.
1362 (*avx_aesdeclast): Likewise.
1363 (avx_vzeroupper): Likewise.
1364 (avx_vzeroupper_rex64): Likewise.
1365 (avx_vpermil<mode>): Likewise.
1366 (avx_vpermilvar<mode>3): Likewise.
1367 (avx_vpermil2<mode>3): Likewise.
1368 (avx_vperm2f128<mode>3): Likewise.
1369 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1370 (avx_vbroadcastss256): Likewise.
1371 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
1372 (avx_vinsertf128<mode>): Likewise.
1373 (vec_set_lo_<mode>): Likewise.
1374 (vec_set_hi_<mode>): Likewise.
1375 (vec_set_lo_<mode>): Likewise.
1376 (vec_set_hi_<mode>): Likewise.
1377 (vec_set_lo_v16hi): Likewise.
1378 (vec_set_hi_v16hi): Likewise.
1379 (vec_set_lo_v32qi): Likewise.
1380 (vec_set_hi_v32qi): Likewise.
1381 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1382 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
1383 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
1384 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
1385 (vec_init<mode>): Likewise.
1386 (*vec_concat<mode>_avx): Likewise.
1387 (blendbits): Support V8SF and V4DF.
1388 (sse2_movq128): Support AVX.
1389 (<sse>_movnt<mode>): Likewise.
1390 (sse2_movntv2di): Likewise.
1391 (sse_rcpv4sf2): Likewise.
1392 (sse_sqrtv4sf2): Likewise.
1393 (sse_rsqrtv4sf2): Likewise.
1394 (<sse>_comi): Likewise.
1395 (<sse>_ucomi): Likewise.
1396 (sse_cvtss2si): Likewise.
1397 (sse_cvtss2si_2): Likewise.
1398 (sse_cvtss2siq): Likewise.
1399 (sse_cvtss2siq_2): Likewise.
1400 (sse_cvttss2si): Likewise.
1401 (sse_cvttss2siq): Likewise.
1402 (sse2_cvtsd2si): Likewise.
1403 (sse2_cvtsd2si_2): Likewise.
1404 (sse2_cvtsd2siq): Likewise.
1405 (sse2_cvtsd2siq_2): Likewise.
1406 (sse2_cvttsd2si): Likewise.
1407 (sse2_cvttsd2siq): Likewise.
1408 (sse2_cvtdq2pd): Likewise.
1409 (*sse2_cvtpd2dq): Likewise.
1410 (*sse2_cvttpd2dq): Likewise.
1411 (*sse2_cvtpd2ps): Likewise.
1412 (sse2_cvtps2pd): Likewise.
1413 (sse3_movshdup): Likewise.
1414 (sse3_movsldup): Likewise.
1415 (sse_storehps): Likewise.
1416 (*sse4_1_extractps): Likewise.
1417 (sse2_storelpd): Likewise.
1418 (vec_dupv2df_sse3): Likewise.
1419 (*vec_concatv2df_sse3): Likewise.
1420 (*sse4_1_pextrb): Likewise.
1421 (*sse4_1_pextrb_memory): Likewise.
1422 (*sse2_pextrw): Likewise.
1423 (*sse4_1_pextrw_memory): Likewise.
1424 (*sse4_1_pextrd): Likewise.
1425 (*sse4_1_pextrq): Likewise.
1426 (sse2_pshufd_1): Likewise.
1427 (sse2_pshuflw_1): Likewise.
1428 (sse2_pshufhw_1): Likewise.
1429 (*sse2_storeq_rex64): Likewise.
1430 (*vec_dupv4si): Likewise.
1431 (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
1432 (sse2_pmovmskb): Likewise.
1433 (*sse2_maskmovdqu): Likewise.
1434 (*sse2_maskmovdqu_rex64): Likewise.
1435 (sse_ldmxcsr): Likewise.
1436 (sse_stmxcsr): Likewise.
1437 (abs<mode>2): Likewise.
1438 (sse4_1_movntdqa): Likewise.
1439 (sse4_1_phminposuw): Likewise.
1440 (sse4_1_extendv8qiv8hi2): Likewise.
1441 (*sse4_1_extendv8qiv8hi2): Likewise.
1442 (sse4_1_extendv4qiv4si2): Likewise.
1443 (*sse4_1_extendv4qiv4si2): Likewise.
1444 (sse4_1_extendv2qiv2di2): Likewise.
1445 (*sse4_1_extendv2qiv2di2): Likewise.
1446 (sse4_1_extendv4hiv4si2): Likewise.
1447 (*sse4_1_extendv4hiv4si2): Likewise.
1448 (sse4_1_extendv2hiv2di2): Likewise.
1449 (*sse4_1_extendv2hiv2di2): Likewise.
1450 (sse4_1_extendv2siv2di2): Likewise.
1451 (*sse4_1_extendv2siv2di2): Likewise.
1452 (sse4_1_zero_extendv8qiv8hi2): Likewise.
1453 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
1454 (sse4_1_zero_extendv4qiv4si2): Likewise.
1455 (*sse4_1_zero_extendv4qiv4si2): Likewise.
1456 (sse4_1_zero_extendv2qiv2di2): Likewise.
1457 (*sse4_1_zero_extendv2qiv2di2): Likewise.
1458 (sse4_1_zero_extendv4hiv4si2): Likewise.
1459 (*sse4_1_zero_extendv4hiv4si2): Likewise.
1460 (sse4_1_zero_extendv2hiv2di2): Likewise.
1461 (*sse4_1_zero_extendv2hiv2di2): Likewise.
1462 (sse4_1_zero_extendv2siv2di2): Likewise.
1463 (*sse4_1_zero_extendv2siv2di2): Likewise.
1464 (sse4_1_ptest): Likewise.
1465 (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
1466 (sse4_2_pcmpestri): Likewise.
1467 (sse4_2_pcmpestrm): Likewise.
1468 (sse4_2_pcmpistri): Likewise.
1469 (sse4_2_pcmpistrm): Likewise.
1470 (aesimc): Likewise.
1471 (aeskeygenassist): Likewise.
1472
14732008-08-28 Uros Bizjak <ubizjak@gmail.com>
1474
1475 * config/i386/predicates.md (vzeroall_operation): New.
1476
1477 * config/i386/sse.md (avx_vzeroall): New.
1478 (*avx_vzeroall): Likewise.
1479
f67358da 14802008-08-28 Paul Brook <paul@codesourcery.com>
95879c72
L
1481 Mark Shinwell <shinwell@codesourcery.com>
1482 Richard Earnshaw <richard.earnshaw@arm.com>
f67358da
PB
1483
1484 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
1485 (TARGET_MIN_ANCHOR_OFFSET): New.
1486 (arm_override_options): Set correct anchor ranges for Thumb-1
1487 and Thumb-2 if required.
1488 (legitimize_pic_address): Handle case involving a TLS symbol
1489 reference with an addend.
1490 (arm_optimization_options): Enable section anchors at -O1 and
1491 above.
1492 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
1493 * config/arm/arm-protos.h (arm_optimization_options): New.
1494
728a0142
NC
14952008-08-28 Nick Clifton <nickc@redhat.com>
1496
cf7442bb
NC
1497 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
1498 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
1499 attribute.
1500
724df8d2
NC
1501 * config/v850/v850.h (IRA_COVER_CLASSES): Define.
1502 * config/v850/v850.md (return): Remove frame size restriction.
1503
d43b42f9
NC
1504 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
1505
888142a6
NC
1506 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
1507
b34126ed
NC
1508 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
1509
728a0142
NC
1510 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
1511
874101ec
PB
15122008-08-28 Paul Brook <paul@codesourcery.com>
1513
1514 * config/arm/vfp11.md: Update license notice.
1515 * config/arm/cortex-r4.md: Ditto.
1516
99781d25
RG
15172008-08-28 Richard Guenther <rguenther@suse.de>
1518
1519 PR tree-optimization/37207
1520 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
1521 tuplification bug.
1522
5bdc1946
DS
15232008-08-28 Dodji Seketeli <dodji@redhat.com>
1524
1525 PR c++/36741
1526 * tree.c (int_fits_type_p): Don't forget unsigned integers
1527 of type sizetype which higher end word equals -1.
1528
0fca40f5
IR
15292008-08-28 Ira Rosen <irar@il.ibm.com>
1530
1531 * target.h (struct vectorize): Add new target builtin.
1532 * tree-vectorizer.c (destroy_loop_vec_info): Call
1533 vect_free_slp_instance instead of vect_free_slp_node.
1534 * tree-vectorizer.h (enum slp_load_perm_type): New.
1535 (struct _slp_instance): Add new fields.
1536 (SLP_INSTANCE_LOAD_PERMUTATION): New.
1537 (SLP_INSTANCE_LOADS): New.
1538 (vect_free_slp_tree): Remove.
1539 (vect_free_slp_instance): Declare.
1540 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
1541 (vectorizable_load): Add argument.
1542 (vect_transform_slp_perm_load): New.
1543 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
1544 vectorizable_load.
1545 (vect_get_place_in_interleaving_chain): New function.
1546 (vect_free_slp_tree): Make static.
1547 (vect_free_slp_instance): New function.
1548 (vect_build_slp_tree): Add new arguments. Allow load permutations and
1549 collect the load location in the interleaving chain.
1550 (vect_supported_slp_permutation_p): New function.
1551 (vect_supported_load_permutation_p): Likewise.
1552 (vect_analyze_slp_instance): In case of loads permutation, call
1553 vect_supported_load_permutation_p to check that the permutation is
1554 supported.
1555 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
1556 * tree-vect-transform.c (vect_transform_stmt): Add new argument.
1557 (vect_create_mask_and_perm): New function.
1558 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
1559 (vectorizable_load): Add an argument. Don't keep the created vectors
1560 statements in the node if permutation is required. Call
1561 vect_transform_slp_perm_load to generate the permutation.
1562 (vect_transform_stmt): Add new argument. Call vectorizable_load with
1563 additional argument.
1564 (vect_schedule_slp_instance): In case of loads permutation, allocate
1565 vectorized statements structure for all the related SLP nodes. Call
1566 vect_transform_stmt with addditional argument.
1567 (vect_transform_loop): Call vect_transform_stmt with correct arguments.
1568 * config/spu/spu.c (spu_builtin_vec_perm): New.
1569 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1570 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
1571 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
1572 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
1573
a75150ae
CF
15742008-08-28 Chris Fairles <chris.fairles@gmail.com>
1575
95879c72 1576 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
a75150ae
CF
1577 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
1578 __gthread_cond_signal, __gthread_cond_timedwait,
1579 __gthread_cond_timedwait_recursive): New functions.
1580 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
1581 Likewise.
1582 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
1583 thread interfaces.
1584
0b45fd7a
RG
15852008-08-28 Richard Guenther <rguenther@suse.de>
1586
1587 PR middle-end/37005
1588 * fold-const.c (maybe_canonicalize_comparison_1): Require
1589 undefined overflow only for canonicalizing A +- CST cmp CST.
1590 Make sure to not generate new constants that are not inside
1591 their TYPE_MIN/MAX_VALUE range.
1592 (maybe_canonicalize_comparison): Remove undefined overflow
1593 checking from here.
1594 (fold_binary): Remove now duplicate folding.
1595
fd990e64
PC
15962008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
1597
1598 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
1599 use not updated in the last change.
1600
d4d46566
KK
16012008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
1602
1603 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
1604 (IRA_COVER_CLASSES): Add FPUL_REGS.
1605
1bfb8f51
MLI
16062008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1607
1608 PR 37217
843724f7 1609 * c-common.c (conversion_warning): Check for null operands.
1bfb8f51 1610
e9527cfd
MLI
16112008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1612
1613 PR c/31673
1614 * c-decl.c (check_for_loop_decls): Improve error message. Give
1615 hint.
1616
4ccd12e5
MLI
16172008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1618
1619 PR c/37186
1620 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
1621 (convert_for_assignment): Pass corrent OPT_W* parameter to
1622 WARN_FOR_ASSIGNMENT.
1623
8d5f60ac
PC
16242008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
1625
1626 PR c++/35321
1627 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
1628
a8221440
PB
16292008-08-27 Paul Brook <paul@codesourcery.com>
1630
1631 * config.gcc: Loosen checks for arm uclinux eabi targets.
1632
f5d09f36
PB
16332008-08-27 Paul Brook <paul@codesourcery.com>
1634
1635 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
1636 _clzsi2.
1637 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
1638
7cf1a11c
DG
16392008-08-26 Douglas Gregor <doug.gregor@gmail.com>
1640
1641 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
1642 the enumerators of an ENUMERAL_TYPE.
1643 * dbxout.c (dbxout_type): Ditto.
1644
24713e85
AP
16452008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
1646
1647 PR rtl-opt/37219
1648 * fwprop.c (fwprop): Check that the loop_father is the outer loop.
1649 (fwprop_addr): Check that the loop_father is not the outer loop.
1650
16512008-08-26 Paul Brook <paul@codesourcery.com>
a8e17e9e
PB
1652
1653 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
1654 Remove documentation entry for fmul type.
1655 Use fmuls to annotate single-precision multiplication patterns,
1656 fmuld to annotate double-precision multiplication patterns,
1657 fmacs to annotate single-precision multiply-accumulate patterns
1658 and fmacd to annotate double-precision multiply-accumulate patterns.
1659 * config/arm/vfp11.md: Update reservations accordingly.
1660 * config/arm/arm.md: Note that certain values of the "type"
1661 attribute are documented in vfp.md.
1662 * config/arm/arm1020e.md: Remove out of date duplicate comment.
1663 (v10_cvt): Use new fmul types.
1664
f08d75a9
PB
16652008-08-26 Paul Brook <paul@codesourcery.com>
1666
1667 * config/arm/vfp.md: Move pipeline description for VFP11 to...
1668 * config/arm/vfp11.md: ...here. New.
1669 * config/arm/arm.md: Include vfp11.md.
1670
69abac81
HPN
16712008-08-26 Hans-Peter Nilsson <hp@axis.com>
1672
1673 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
1674 parameter to inform call.
1675
5d2b84f8
JL
16762008-08-26 Jeff Law <law@redhat.com>
1677
1678 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
1679 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
1680 preferred class when copying a constant into a partial word register.
1681
4e9b57fa
BE
16822008-08-26 Ben Elliston <bje@au.ibm.com>
1683
1684 * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
1685 * cp/typeck.c: Likewise.
1686 * cp/tree.c: Likewise.
1687 * gimple-low.c: Likewise.
1688 * jump.c: Likewise.
1689
058e97ec
VM
16902008-08-26 Vladimir Makarov <vmakarov@redhat.com>
1691
1692 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
1693 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
1694
1695 * doc/passes.texi: Describe IRA.
1696
1697 * doc/tm.texi (IRA_COVER_CLASSES,
1698 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
1699
1700 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
1701 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
1702 -fira-propagate-cost, -fno-ira-share-save-slots,
1703 -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
1704
1705 * flags.h (ira_algorithm): New enumeration.
1706 (flag_ira_algorithm, flag_ira_verbose): New external variable
1707 declarations.
1708
1709 * postreload.c (gate_handle_postreload): Don't do post reload
1710 optimizations unless the reload is completed.
1711
1712 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
1713 IRA.
1714
1715 * tree-pass.h (pass_ira): New external variable declaration.
1716
1717 * reload.h: Add 2008 to the Copyright.
1718
1719 * cfgloopanal.c: Include params.h.
1720 (estimate_reg_pressure_cost): Decrease cost for IRA optimization
1721 mode.
1722
1723 * params.h (IRA_MAX_LOOPS_NUM): New macro.
1724
1725 * toplev.c (ira.h): New include.
1726 (flag_ira_algorithm, flag_ira_verbose): New external variables.
1727 (backend_init_target): Call ira_init.
1728 (backend_init): Call ira_init_once.
1729 (finalize): Call finish_ira_once.
1730
1731 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
1732 flag_ira_share_save_slots, flag_ira_share_spill_slots): New
1733 external variables.
1734
1735 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
1736 may_move_out_cost): New external variable declarations.
1737 (move_table): New typedef.
1738
1739 * caller-save.c: Include headers output.h and ira.h.
1740 (no_caller_save_reg_set): New global variable.
1741 (save_slots_num, save_slots): New variables.
1742 (reg_save_code, reg_restore_code, add_stored_regs): Add
1743 prototypes.
1744 (init_caller_save): Set up no_caller_save_reg_set.
1745 (init_save_areas): Reset save_slots_num.
1746 (saved_hard_reg): New structure.
1747 (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
1748 (initiate_saved_hard_regs, new_saved_hard_reg,
1749 finish_saved_hard_regs, saved_hard_reg_compare_func): New
1750 functions.
1751 (setup_save_areas): Add code for sharing stack slots.
1752 (all_blocks): New variable.
1753 (save_call_clobbered_regs): Process pseudo-register too.
1754 (mark_set_regs): Process pseudo-register too.
1755 (insert_one_insn): Put the insn after bb note in a empty basic
1756 block. Add insn check.
1757
1758 * global.c (eliminable_regset): Make it external.
1759 (mark_elimination): Use DF_LR_IN for IRA.
1760 (pseudo_for_reload_consideration_p): New.
1761 (build_insn_chain): Make it external. Don't ignore spilled
1762 pseudos for IRA. Use pseudo_for_reload_consideration_p.
1763 (gate_handle_global_alloc): New function.
1764 (pass_global_alloc): Add the gate function.
1765
1766 * opts.c (decode_options): Set up flag_ira. Print the warning for
1767 -fira.
1768 (common_handle_option): Process -fira-algorithm and -fira-verbose.
1769
1770 * timevar.def (TV_IRA, TV_RELOAD): New passes.
1771
1772 * regmove.c (regmove_optimize): Don't do replacement of output for
1773 IRA.
1774
1775 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
1776 New external variable declarations.
1777
1778 * local-alloc.c (update_equiv_regs): Make it external. Return
1779 true if jump label rebuilding should be done. Rescan new_insn for
1780 notes.
1781 (gate_handle_local_alloc): New function.
1782 (pass_local_alloc): Add the gate function.
1783
1784 * alias.c (value_addr_p, stack_addr_p): New functions.
1785 (nonoverlapping_memrefs_p): Use them for IRA.
1786
1787 * common.opt (fira, fira-algorithm, fira-coalesce,
1788 fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
1789 fira-verbose): New options.
1790
1791 * regclass.c (reg_class_subclasses, contains_reg_of_mode,
1792 move_cost, may_move_in_cost, may_move_out_cost): Make the
1793 variables external.
1794 (move_table): Remove typedef.
1795 (init_move_cost): Make it external.
1796 (allocate_reg_info, resize_reg_info, setup_reg_classes): New
1797 functions.
1798
1799 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
1800 setup_reg_classes): New function prototypes.
1801 (eliminable_regset): New external variable declaration.
1802 (build_insn_chain, update_equiv_regs): New function prototypes.
1803
1804 * Makefile.in (IRA_INT_H): New definition.
1805 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
1806 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
1807 (reload1.o, toplev.o): Add dependence on ira.h.
1808 (cfgloopanal.o): Add PARAMS_H.
1809 (caller-save.o): Add dependence on output.h and ira.h.
1810 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
1811 ira-emit.o, ira-lives.o): New entries.
1812
1813 * passes.c (pass_ira): New pass.
1814
1815 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
1816
1817 * reload1.c (ira.h): Include the header.
1818 (changed_allocation_pseudos): New bitmap.
1819 (init_reload): Initiate the bitmap.
1820 (compute_use_by_pseudos): Permits spilled registers in FROM.
1821 (temp_pseudo_reg_arr): New variable.
1822 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
1823 IRA. Call alter_reg with the additional parameter. Don't clear
1824 spilled_pseudos for IRA. Restore original insn chain for IRA.
1825 Clear changed_allocation_pseudos at the end of reload.
1826 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
1827 (hard_regno_to_pseudo_regno): New variable.
1828 (count_pseudo): Check spilled pseudos. Set up
1829 hard_regno_to_pseudo_regno.
1830 (count_spilled_pseudo): Check spilled pseudos. Update
1831 hard_regno_to_pseudo_regno.
1832 (find_reg): Use better_spill_reload_regno_p. Check
1833 hard_regno_to_pseudo_regno.
1834 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
1835 code for IRA.
1836 (eliminate_regs_1): Use additional parameter for alter_reg.
1837 (finish_spills): Set up pseudo_previous_regs only for spilled
1838 pseudos. Call reassign_pseudos once for all spilled pseudos, pass
1839 more arguments. Don't clear live_throughout and dead_or_set for
1840 spilled pseudos. Use additional parameter for alter_reg. Call
1841 mark_allocation_change. Set up changed_allocation_pseudos.
1842 Remove sanity check.
1843 (emit_input_reload_insns, delete_output_reload): Use additional
1844 parameter for alter_reg. Call mark_allocation_change.
1845 (substitute, gen_reload_chain_without_interm_reg_p): New
1846 functions.
1847 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
1848
1849 * testsuite/gcc.dg/20080410-1.c: New file.
1850
1851 * config/s390/s390.h (IRA_COVER_CLASSES,
1852 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
1853
1854 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
1855
1856 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
1857
1858 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1859
1860 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
1861
1862 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1863
1864 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
1865
1866 2008-08-24 Jeff Law <law@redhat.com>
1867 * ira.c (setup_reg_class_intersect_union): Prefer smallest class
1868 when ignoring unavailable registers.
1869
1870 2008-08-24 Jeff Law <law@redhat.com>
1871 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
1872 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
1873 * ira.c (setup_eliminable_regset): Check stack_realign_needed.
1874 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
1875
1876 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
1877 * ira-build.c (allocno_range_compare_func): Stabilize sort.
1878
1879 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
1880 * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
1881 * reload1.c (find_reg): Process registers in register allocation order.
1882
1883 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1884 * toplev.c (backend_init_target): Move ira_init call from
1885 here...
1886 (lang_dependent_init_target): ...to here.
1887
1888 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
1889 * ira.c (setup_class_subset_and_memory_move_costs): Don't
1890 calculate memory move costs for NO_REGS.
1891
1892 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
1893 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
1894 STACK_REGS is defined.
1895
1896 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
1897 * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
1898
1899 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
1900 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
1901
1902 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
1903 * config/sh/sh.h (IRA_COVER_CLASSES): Define.
1904 * config/sh/sh.md (movsicc_true+3): Check if emit returns a
1905 barrier.
1906
8ff27c24
VK
19072008-08-26 Victor Kaplansky <victork@il.ibm.com>
1908 Dorit Nuzman <dorit@il.ibm.com>
1909
1910 * gcc/config/spu/spu.md (vec_extract_evenv4si,
1911 vec_extract_evenv4sf, vec_extract_evenv8hi,
1912 vec_extract_evenv16qi, vec_extract_oddv4si,
1913 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1914 vec_interleave_highv4sf, vec_interleave_lowv4sf,
1915 vec_interleave_highv4si, vec_interleave_lowv4si,
1916 vec_interleave_highv8hi, vec_interleave_lowv8hi,
1917 vec_interleave_highv16qi, vec_interleave_lowv16qi,
1918 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
1919
e57903b8
JJ
19202008-08-25 Janis Johnson <janis187@us.ibm.com>
1921
1922 PR target/36756
1923 * config/rs6000/rs6000.c (optimization_options): Don't default to
1924 section anchors without toplevel reorder.
1925
b704f034
UW
19262008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1927
1928 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
1929 (mfc_end_critical_section): Likewise.
1930
4f538d42
UW
19312008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1932
1933 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
1934 all type qualifiers from element type to vector type.
1935
7cede643
DD
19362008-08-25 David Daney <ddaney@avtrex.com>
1937
1938 * config/mips/mips.md (immediate_insn): Move up in file, fix
1939 comment typo, reformat.
1940 (fetchop_bit, atomic_hiqi_op memory_barrier,
1941 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
1942 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
1943 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
1944 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
1945 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
1946 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
1947 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
1948 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
1949 sync_old_nand<mode>, sync_new_nand<mode>,
1950 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
1951 test_and_set_12): Moved to sync.md.
1952 (sync.md): Include.
1953 * config/mips/sync.md: New file.
1954
e02aa5ec
RH
19552008-08-25 Richard Henderson <rth@redhat.com>
1956
1957 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
1958 (regsave): Likewise.
1959 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
1960 (output_cfi_directive): Likewise.
1961 (div_data_align): New.
1962 (output_cfi): Use it.
1963
d97e6aca
AN
19642008-08-24 Adam Nemet <anemet@caviumnetworks.com>
1965
1966 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
1967 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
1968 (TARGET_OCTEON): New macro.
1969 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
1970 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
1971 (ISA_HAS_POP): New macro.
1972 * config/mips/driver-native.c (host_detect_local_cpu): Handle
1973 Octeon.
1974 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
1975 Handle Octeon.
1976 * config/mips/mips.md (cpu): Add octeon.
1977 (type): Add pop attribute value.
1978 (popcount<mode>2): New pattern.
1979 * doc/invoke.texi (-march=@var{arch}): Add octeon.
1980
5e45130d
JH
19812008-08-24 Jan Hubicka <jh@suse.cz>
1982
1983 * doc/invoke.texi (-fipa-cp-clone): New option.
1984 (-fipa-cp): Update docs.
1985 (--param ipcp-unit-growth):New.
1986 * ipa-cp.c: Include fibheap.h, params.h
1987 (ipcp_initialize_node_lattices): When not cloning, all externally
1988 visible functions are bottom.
1989 (ipcp_need_redirect_p): Accept clones.
1990 (ipcp_insert_stage): Use cost driven heuristics.
1991 (max_count, dead_nodes): New static vars.
1992 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
1993 ipcp_const_param_count): New functions.
1994 * common.opt (ipa-cp-clone): New command line option.
1995 * params.def (ipcp-unit-growth): New.
1996
657c0925
JH
19972008-08-24 Jan Hubicka <jh@suse.cz>
1998
1999 * tree-inline.c (tree_function_versioning): Look harder
2000 for referenced vars.
2001
692daa90
RL
20022008-08-24 Razya Ladelsky <razya@il.ibm.com>
2003
95879c72
L
2004 PR tree-optimization/37185
2005 * matrix-reorg.c (transform_access_sites): Update changed stmt.
692daa90 2006
0dbca537
JH
20072008-08-23 Jan Hubicka <jh@suse.cz>
2008
2009 * ipa-cp.c (ipcp_analyze_node): New function.
2010 (ipcp_update_cloned_node): Use it.
2011 (ipcp_init_stage): Likewise.
2012 * ipa-inline.c (function_insertion_hook_holder): New static var.
2013 (analyze_function): Break out from ....
2014 (inline_generate_summary): Here; register insertion hook.
2015 (cgraph_decide_inlining): Remove hook.
2016 (add_new_function): New function.
2017
5c69a0df
JH
20182008-08-23 Jan Hubicka <jh@suse.cz>
2019
2020 * opts.c (decode_options): Revert accidental change enabling ipa-cp.
2021
0f1961a2
JH
20222008-08-23 Jan Hubicka <jh@suse.cz>
2023
2024 * ipa-cp.c (constant_val_insert): Remove.
2025 (ipcp_propagate_one_const): Remove.
2026 (ipcp_create_replace_map): Always insert replacements to the map.
2027 (ipcp_insert_stage): Do not try to insert statements by hand.
2028 * tree-inline.c (insert_init_stmt): Break out from ...
2029 (setup_one_parameter): ... here; allow NULL BB pointer.
2030 (tree_function_versioning): Use setup_one_parameter to process
2031 replacement map.
2032
00fc2333
JH
20332008-08-23 Jan Hubicka <jh@suse.cz>
2034
2035 * tree.c (decl_address_ip_invariant_p): New function.
2036 * tree.h (decl_address_ip_invariant_p): Declare.
2037 * gimple.c (strip_invariant_refs): Break out from ...
2038 (is_gimple_invariant_address): ... here
2039 (is_gimple_ip_invariant_address): New function.
2040 (is_gimple_ip_invariant): New function.
2041 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
2042 Declare.
2043
2044 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
2045 (ipcp_lat_is_insertable): All constants are insertable.
2046 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
2047 IPA_CONST_VALUE_REF.
2048 (ipcp_initialize_node_lattices): Propagate all types of operands.
2049 (build_const_val): Do not handle IPA_CONST_VALUE_REF.
2050 (ipcp_create_replace_map): Reformat.
2051 (ipcp_need_redirect_p): Simplify.
2052 (ipcp_insert_stage): Check that argument is used before clonning.
2053 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
2054 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
2055 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
2056 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
2057 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
2058 (jump_func_type): Remove IPA_CONST_VALUE_REF.
2059 * tree-inline.c (tree_function_versioning): Add variables referenced by
2060 replacing trees.
2061
98e146ab
JH
20622008-08-23 Jan Hubicka <jh@suse.cz>
2063
2064 PR target/37094
2065 * i386.c (standard_80387_constant_p): Use optimize_size.
2066
8b7b9d66
IR
20672008-08-23 Ira Rosen <irar@il.ibm.com>
2068
2069 PR tree-optimization/37161
2070 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
2071 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
2072 (vect_determine_vectorization_factor): Move the scalar type
2073 retrieval to vect_get_smallest_scalar_type.
2074 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
2075 scalar type. Remove redundant computation.
2076 * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
2077 (vect_get_slp_defs): Take the type of RHS into account if
2078 necessary by calling vect_get_smallest_scalar_type. Call
2079 vect_get_constant_vectors with additional argument.
2080
f4185118
MLI
20812008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2082
2083 PR 35648
2084 * doc/invoke.texi (Wwrite-strings): Clarify description.
2085
f5d3c7e1
IR
20862008-08-23 Ira Rosen <irar@il.ibm.com>
2087
2088 PR tree-optimization/37174
2089 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
2090 def stmt is a part of the loop before accessing its stmt_vec_info.
2091
d3dd4dbd
AS
20922008-08-22 Anatoly Sokolov <aesok@post.ru>
2093
2094 PR target/11259
2095 * config/avr/avr.md (UNSPEC_SWAP): New constants.
2096 (*swap): New insn pattern.
2097 (*ashlqi3): Rename from ashlqi3 insn pattern.
2098 (ashlqi3): New expanders.
2099 (*lshrqi3): Rename from lshrqi3 insn pattern.
2100 (lshrqi3): New expanders.
2101 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
2102 lshrqi3_const5, lshrqi3_const6): New splitters.
2103 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
2104 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
2105 peephole2 patterns.
2106
36159cf8
RG
21072008-08-22 Richard Guenther <rguenther@suse.de>
2108
2109 PR tree-optimization/37078
2110 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
2111 [+INF, +INF] ranges.
2112
d3cbd7de
RG
21132008-08-22 Richard Guenther <rguenther@suse.de>
2114
2115 PR tree-optimization/37143
2116 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
2117 a conversion statement instead of a copy.
2118
a3d4a22b
UB
21192008-08-22 Uros Bizjak <ubizjak@gmail.com>
2120
2121 PR target/37184
2122 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
2123 CCCmode, CCOmode and CCSmode destination modes.
2124
2125 PR target/37191
2126 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
2127 from different units in a single alternative.
2128 (*vec_extractv2sf_1): Ditto.
2129 (*vec_extractv2si_0): Ditto.
2130 (*vec_extractv2si_1): Ditto.
2131 * config/i386/sse.md (sse2_storehpd): Ditto.
2132 (sse2_storelpd): Ditto.
2133 (sse2_loadhpd): Ditto.
2134 (sse2_loadlpd): Ditto.
2135
2136 PR target/37197
2137 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
2138 (popcountsi2): Ditto.
2139 (clzdi2_abm): Ditto.
2140 (popcountdi2): Ditto.
2141 (clzhi2_abm): Ditto.
2142 (popcounthi2): Ditto.
2143
beeab17c
RG
21442008-08-22 Richard Guenther <rguenther@suse.de>
2145
2146 PR middle-end/36548
2147 PR middle-end/37125
2148 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
2149 if the multiplication does not overflow.
2150
1a456b49
NS
21512008-08-21 Nathan Sidwell <nathan@codesourcery.com>
2152
2153 * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
2154
042628f9
RH
21552008-08-21 Richard Henderson <rth@redhat.com>
2156
2157 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
2158 spurrious comma from test.
2159 * configure: Rebuild.
2160
2985f531
MLI
21612008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2162
2163 PR 30457
2164 * builtins.c (fold_builtin_next_arg): Add warning about undefined
2165 behaviour.
2166
3d10ed6c
AH
21672008-08-21 Aldy Hernandez <aldyh@redhat.com>
2168
2169 * c-tree.h (grokfield): New argument.
2170 * c-decl.c (grokfield): Handle new location argument.
2171 * c-parser.c (c_parser_struct_declaration): Pass location to
2172 grokfield.
2173
c76a1f18
RG
21742008-08-21 Richard Guenther <rguenther@suse.de>
2175
2176 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
2177
129a37fc
JH
21782008-08-21 Jan Hubicka <jh@suse.cz>
2179
2180 * cgraph.c (first_cgraph_function_insertion_hook): New variable.
a3d4a22b
UB
2181 (cgraph_add_function_insertion_hook,
2182 cgraph_remove_function_insertion_hook,
129a37fc 2183 cgraph_call_function_insertion_hooks): New functions.
a3d4a22b
UB
2184 * cgraph.h (cgraph_add_function_insertion_hook,
2185 cgraph_remove_function_insertion_hook,
129a37fc
JH
2186 cgraph_call_function_insertion_hooks): Declare.
2187 * ipa-reference.c (function_insertion_hook_holder): New variable.
2188 (check_operand, look_for_address_of): When checking late, do not care
2189 about module bitmaps.
2190 (add_new_function): New function.
2191 (generate_summary): Register hooks; zero module bitmaps.
2192 (propagate): Unregister hooks.
2193 * ipa-pure-const.c (function_insertion_hook_holder): New variable.
2194 (add_new_function): New function.
2195 (generate_summary): Register hook.
2196 (propagate): Remove hook.
2197
2198 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
2199
2200 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
2201 * ipa-cp.c (ipcp_update_cloned_node): New function.
2202 (build_const_val): Handle functions correctly; bring type logic
2203 into sync with tree-inline.c
2204 (ipcp_init_stage): Take care of computing stuff needed by
2205 indirect inlining; update clones.
2206 (ipcp_generate_summary): Break out of ipcp_driver.
2207 (ipcp_driver): Do only execution and transformation.
2208 (pass_ipa_cp): Make IPA_PASS.
2209 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
2210 offset to address.
2211 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
2212 ipcp, some info is already available.
2213 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
2214 * tree-inline.c (remap_ssa_name): Unshare expression.
2215
1e52075c
RG
22162008-08-21 Richard Guenther <rguenther@suse.de>
2217
2218 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
2219 a PHI ask VN if it is already available.
2220 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
2221 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
2222
729edaa1
RG
22232008-08-21 Richard Guenther <rguenther@suse.de>
2224
2225 PR middle-end/36817
2226 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
2227 makes sure to produce a result of the correct type.
2228
812dbce5
JH
22292008-08-21 Jan Hubicka <jh@suse.cz>
2230 Backport from LTO branch:
2231
2232 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
2233 Jan Hubicka <jh@suse.cz>
2234
2235 * ipa-pure-const.c
2236 (init_state, finish_state, set_function_state, generate_summary):
2237 New functions.
2238 (scan_stmt): Renamed from scan_function. Changed to keep state in
2239 local static vars rather than cgraph aux field.
2240 (propagate): Renamed from static_execute. Changed to keep state in
2241 local static vars rather than cgraph aux field.
2242 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
2243 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
2244
2245 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2246
2247 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
2248 * ipa-reference.c (init_function_info, generate_summary,
2249 propagate): New functions.
2250 (analyze_function): Call init_function_info.
2251 (static_execute): Stripped into generate_summary and propagate.
2252 (pass_ipa_reference): Made into ipa_opt_pass.
2253
08298a8c
RG
22542008-08-21 Richard Guenther <rguenther@suse.de>
2255
2256 PR tree-optimization/37181
2257 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
2258 folding result.
2259 (extract_range_from_unary_expr): Likewise.
2260
509c9d60
MLI
22612008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2262
2263 * diagnostic.c (pedwarn_at): Rename as pedwarn.
2264 (pedwarn): Delete.
2265 * toplev.h (pedwarn_at): Likewise.
2266 * builtins.c: Update all calls to pedwarn.
2267 * c-lex.c: Likewise.
2268 * toplev.c: Likewise.
2269 * c-tree.h: Likewise.
2270 * c-decl.c: Likewise.
2271 * c-errors.c: Likewise.
2272 * c-typeck.c: Likewise.
2273 * c-common.c: Likewise.
2274 * c-parser.c: Likewise.
2275
0dd8c9bc
JM
22762008-08-20 Joseph Myers <joseph@codesourcery.com>
2277
2278 PR target/31070
2279 * config/sparc/sparc.c (function_arg_slotno): Handle structure
2280 with MODE_VECTOR_INT mode.
2281
87fe2bd0
MLI
22822008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2283
2284 PR middle-end/179
2285 * tree-ssa.c (warn_uninit): Do not warn for variables that can be
2286 initialized outside the current module.
2287 (warn_uninitialized_var): Ignore left-hand side when walking the
2288 trees. Ignore address expressions. Examine VUSE operands in gimple
2289 statements with a variable declaration on the right-hand side.
2290
05cee290
RS
22912008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
2292
7735154d 2293 PR bootstrap/37155
05cee290
RS
2294 * rtlanal.c (subreg_offset_representable_p): Revert last change.
2295
9c591bd0
MLI
22962008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2297
2298 PR 35701
2299 * c-common.c (conversion_warning): Do not warn if applying bit-and
2300 operator to unsigned constant that fits in the target type.
2301
0011dedb
MLI
23022008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2303
2304 PR c++/35602
2305 * c-common.c (conversion_warning): Do not warn for artificial
2306 expressions.
2307
73019a42
RG
23082008-08-20 Richard Guenther <rguenther@suse.de>
2309
2310 * tree-vrp.c (op_with_constant_singleton_value_range): New function.
2311 (extract_range_from_binary_expr): Fall back to constant propagation.
2312 (extract_range_from_unary_expr): Likewise.
2313
e2104f59
RG
23142008-08-20 Richard Guenther <rguenther@suse.de>
2315
2316 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
2317 with TREE_THIS_VOLATILE on shared nodes.
2318 (fold_stmt_r): Likewise.
2319
5dc4a7f4
JJ
23202008-08-20 Jakub Jelinek <jakub@redhat.com>
2321
2322 PR c/37171
2323 * c-parser.c (c_parser_attributes): For keywords use canonical
2324 spelling for attr_name.
2325
d3d28d26
MLI
23262008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2327
2328 * value-prof.c (check_counter): Revert wrong call to error.
2329
5b6148c5
MLI
23302008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2331
2332 * profile.c: Update calls to inform.
2333 * value-prof.c: Update calls to inform.
2334
1f5b3869
MLI
23352008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2336
2337 * diagnostic.c (inform): Add an explicit location_t parameter.
2338 * toplev.h (inform): Update declaration.
2339 * builtins.c: Update all calls to inform.
2340 * c-common.c: Likewise.
2341 * c-decl.c: Likewise.
2342 * c-opts.c: Likewise.
2343 * c-pch.c: Likewise.
2344 * c-pragma.c: Likewise.
2345 * c-typeck.c: Likewise.
2346 * coverage.c: Likewise.
2347 * opts.c: Likewise.
2348 * toplev.c: Likewise.
2349 * tree-cfg.c: Likewise.
2350 * tree-ssa.c: Likewise.
2351
89da39ee
L
23522008-08-20 H.J. Lu <hongjiu.lu@intel.com>
2353
2354 PR target/37169
2355 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
2356 V2DI mode, for SSE4.1, use movq instead of vector set if the
2357 second element is zero and inter-unit moves are OK.
2358
4fedf870
RG
23592008-08-20 Richard Guenther <rguenther@suse.de>
2360
2361 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
2362 properly handle conversion/copy chains after tuplification.
2363
e2081a1d
RG
23642008-08-20 Richard Guenther <rguenther@suse.de>
2365
2366 * passes.c (init_optimization_passes): Move the second
2367 forwprop pass before alias computation. Remove the second
2368 DCE pass. Remove the first dominator and phi copy/const
2369 prop passes.
2370
6e60703f
NC
23712008-08-20 Nick Clifton <nickc@redhat.com>
2372
2373 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
2374 support of this feature. Do not assume that a sufficiently new
2375 assembler will support the feature regardless of the target type.
2376 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
89da39ee 2377 * configure: Regenerate.
6e60703f 2378
c4ab2baa
RG
23792008-08-20 Richard Guenther <rguenther@suse.de>
2380
2381 * tree-vrp.c (found_in_subgraph): Remove.
2382 (live): New global static.
2383 (live_on_edge): New function.
2384 (blocks_visited): Remove.
2385 (register_edge_assert_for_2): Use live_on_edge.
2386 (find_conditional_asserts): Remove code dealing with
2387 found_in_subgraph. Do not walk the CFG.
2388 (find_switch_asserts): Likewise.
2389 (find_assert_locations_1): Renamed from find_assert_locations.
2390 Move finding assert locations for conditional and switch
2391 statements first. Update live bitmap. Do not walk the CFG.
2392 (find_assert_locations): New function.
2393 (insert_range_assertions): Remove entry of CFG walk.
2394 Adjust call to find_assert_locations.
2395 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
2396 that only can appear because of fake exit edges but assert we
2397 never try to insert on those.
2398 (fini_pre): Do not remove fake exit edges here...
2399 (execute_pre): ...but here, before committing edge inserts.
2400
a4b8a65f
RG
24012008-08-19 Richard Guenther <rguenther@suse.de>
2402
2403 * passes.c (init_optimization_passes): Exchange store-ccp
2404 with a ccp pass.
2405
21fe7edc
RAE
24062008-08-19 Rafael Espindola <espindola@google.com>
2407
a3d4a22b
UB
2408 * varasm.c (weak_decls): Move earlier in the file.
2409 (assemble_external): Add weak decls to the weak_decls list.
2410 (declare_weak): Don't add decls to the weak_decls list.
21fe7edc 2411
b8aaf506
L
24122008-08-19 H.J. Lu <hongjiu.lu@intel.com>
2413
2414 PR target/37157
2415 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
2416 before (sse2_shufpd_<mode>).
2417
e92cbe3a
JJ
24182008-08-19 Jakub Jelinek <jakub@redhat.com>
2419
2420 PR debug/37156
2421 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
2422 * tree.c (block_nonartificial_location): Likewise.
2423
53f3815c
RG
24242008-08-19 Richard Guenther <rguenther@suse.de>
2425
2426 PR tree-optimization/35972
2427 PR tree-optimization/23094
2428 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
2429 parameter.
2430 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
2431 handle MISALIGNED_INDIRECT_REF.
2432 (get_ref_from_reference_ops): New helper.
2433 (vn_reference_lookup_pieces): Walk the use-def chain using the
2434 alias-oracle if requested.
2435 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
2436 walking the use-def chain.
2437 (compute_avail): But not here.
2438 (create_component_ref_by_pieces_1): Properly handle
2439 MISALIGNED_INDIRECT_REF.
2440 (do_regular_insertion): Handle fully redundant
2441 expressions after PHI-translation also for SSA_NAME values, not
2442 only constants. Correctly use edoubleprime for that.
2443
5d593372
IR
24442008-08-19 Ira Rosen <irar@il.ibm.com>
2445
2446 * tree-vectorizer.c (supportable_widening_operation): Support
2447 multi-step conversion, return the number of steps in such conversion
2448 and the required intermediate types.
2449 (supportable_narrowing_operation): Likewise.
2450 * tree-vectorizer.h (vect_pow2): New function.
2451 (supportable_widening_operation): Change argument types.
2452 (supportable_narrowing_operation): Likewise.
2453 (vectorizable_type_promotion): Add an argument.
2454 (vectorizable_type_demotion): Likewise.
2455 * tree-vect-analyze.c (vect_analyze_operations): Call
2456 vectorizable_type_promotion and vectorizable_type_demotion with
2457 additional argument.
2458 (vect_get_and_check_slp_defs): Detect patterns.
2459 (vect_build_slp_tree): Add an argument, don't fail in case of multiple
2460 types.
2461 (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
2462 vect_build_slp_tree with correct arguments. Calculate unrolling factor
2463 according to the smallest type in the loop.
2464 (vect_detect_hybrid_slp_stmts): Include statements from patterns.
2465 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
2466 supportable_widening_operation with correct arguments.
2467 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
2468 operands lists according to the number of vector statements in left
2469 or right node, if exists.
2470 (vect_gen_widened_results_half): Remove unused argument.
2471 (vectorizable_conversion): Call supportable_widening_operation,
2472 supportable_narrowing_operation, and vect_gen_widened_results_half
2473 with correct arguments.
2474 (vectorizable_assignment): Change documentation, support multiple
2475 types in SLP.
2476 (vectorizable_operation): Likewise.
2477 (vect_get_loop_based_defs): New function.
2478 (vect_create_vectorized_demotion_stmts): Likewise.
2479 (vectorizable_type_demotion): Support loop-aware SLP and general
2480 multi-step conversion. Call vect_get_loop_based_defs and
2481 vect_create_vectorized_demotion_stmts for transformation.
2482 (vect_create_vectorized_promotion_stmts): New function.
2483 (vectorizable_type_promotion): Support loop-aware SLP and general
2484 multi-step conversion. Call vect_create_vectorized_promotion_stmts
2485 for transformation.
2486 (vectorizable_store): Change documentation, support multiple
2487 types in SLP.
2488 (vectorizable_load): Likewise.
2489 (vect_transform_stmt): Pass SLP_NODE to
2490 vectorizable_type_promotion and vectorizable_type_demotion.
2491 (vect_schedule_slp_instance): Move here the calculation of number
2492 of vectorized statements for each node from...
2493 (vect_schedule_slp): ... here.
2494 (vect_transform_loop): Call vect_schedule_slp without the last
2495 argument.
2496
45ea82c1
DN
24972008-08-19 Dorit Nuzman <dorit@il.ibm.com>
2498
2499 PR bootstrap/37152
2500 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
2501 to == in assert statement.
2502 (vectorizable_reduction): Fix typo.
2503
c3a4ca03
L
25042008-08-18 H.J. Lu <hongjiu.lu@intel.com>
2505
2506 PR bootstrap/37153
2507 * value-prof.c (check_counter): Dereference pointer to overall
2508 count when printing it.
2509
3aa71f9d
L
25102008-08-18 H.J. Lu <hongjiu.lu@intel.com>
2511
2512 * profile.h: Really add it.
2513
f7bc085c
L
25142008-08-18 H.J. Lu <hongjiu.lu@intel.com>
2515
2516 * mcf.c: Really add it.
2517
52c76998
PY
25182008-08-18 Paul Yuan <yingbo.com@gmail.com>
2519 Vinodha Ramasamy <vinodha@google.com>
2520
2521 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
2522 count_scale.
2523 * value-prof.c (check_counter): Fix the counter if
2524 flag_profile_correction is true.
2525 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
2526 tree_mod_subtract_transform):
2527 Follow check_counter parameter change.
2528 * common.opt (fprofile-correction): New option.
2529 * mcf.c: New file.
3aa71f9d 2530 * profile.h: Likewise.
52c76998
PY
2531 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
2532 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
2533 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
2534 functions.
2535 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
2536 flag_profile_correction is set.
2537
808cc417
RS
25382008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
2539
2540 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
2541
1a87cf0c
TB
25422008-08-18 Tomas Bily <tbily@suse.cz>
2543
2544 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
2545 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
2546 CONVERT_EXPR_P.
2547 * tree-data-ref.c (split_constant_offset_1): Likewise.
2548 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
2549 * tree-sra.c (sra_walk_expr): Likewise.
2550 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
2551 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
2552 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
2553 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
2554 Likewise.
2555 * gimple.c (gimple_assign_unary_nop_p): Likewise.
2556 * tree-vect-transform.c (vectorizable_type_demotion)
2557 (vectorizable_type_promotion): Likewise.
2558 * tree-inline.c (expand_call_inline):
2559 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
2560 (forward_propagate_addr_expr_1, forward_propagate_comparison)
2561 (tree_ssa_forward_propagate_single_use_vars): Likewise.
2562 * expr.c (expand_expr_real_1): Likewise.
2563 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
2564 (gimple_assign_unary_useless_conversion_p): Likewise.
2565 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2566 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
2567 * fold-const.c (fold_unary): Likewise.
2568 * tree.h (CONVERT_EXPR_P): Likewise.
2569 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
2570 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
2571 * tree-vrp.c:
2572 (register_edge_assert_for_2, extract_range_from_unary_expr)
2573 (register_edge_assert_for_1): Likewise.
2574
9c02cf68
MLI
25752008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2576
2577 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
2578 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
2579 (enum real_value_const): Delete.
2580 (get_real_const): Delete.
2581 * real.c (get_real_const): Delete.
2582 (dconst_e_ptr): Define.
2583 (dconst_third_ptr): Define.
2584 (dconst_sqrt2_ptr): Define.
2585 * builtins.c: Update all callers.
2586
e4658728
RG
25872008-08-18 Richard Guenther <rguenther@suse.de>
2588
2589 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
2590 statement iterator after statement removal.
2591
3b7abfda
AT
25922008-08-18 Andreas Tobler <a.tobler@schweiz.org>
2593
2594 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
2595 (detect_processor_freebsd): Likewise.
2596 (host_detect_local_cpu): Call newly added functions for FreeBSD.
2597
2f9864e6
RG
25982008-08-18 Richard Guenther <rguenther@suse.de>
2599
2600 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
2601 and loads have the correct types.
2602
d2e796ad
MLI
26032008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2604
2605 PR cpp/7263
2606 * c-opts.c (cpp_opts): Remove static.
2607 * c-parser.c (cpp_opts): Declare it extern.
2608 (disable_extension_diagnostics): Handle cpp options.
2609 (enable_extension_diagnostics): Likewise.
2610
cbe5f3b3
MLI
26112008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2612
2613 * diagnostics.c (permerror_at): Rename as permerror.
2614 (permerror): Delete.
2615 * toplev.h: Likewise.
2616
11b08ee9
RG
26172008-08-18 Richard Guenther <rguenther@suse.de>
2618
2619 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
2620 sdse1 and addressables2 passes. Replace dce1 with cddce1.
2621 Move call_cdce before build_alias. Move copyrename2,
2622 cunrolli and ccp2 beafore build_alias. Re-add addressable2
2623 right after final inlining.
2624 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
2625 (pass_build_cfg): But instead via TODO_dump_func.
2626
400196f1
RG
26272008-08-18 Richard Guenther <rguenther@suse.de>
2628
2629 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
2630 element index.
2631 (scalarize_init): If we failed to generate some initializers
2632 do not generate zeros for not instantiated members. Instead
2633 rely on the copy out.
2634 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
2635 about missing flow-sensitive alias info only if we have
2636 aliases computed.
2637
0859c412
NC
26382008-08-17 Nick Clifton <nickc@redhat.com>
2639
2640 * doc/extend.texi (Function Attributes): Fix typo in description
2641 if hot function attribute.
2642
e21d5757
DJ
26432008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
2644 Richard Sandiford <rdsandiford@googlemail.com>
2645
2646 * doc/install.texi (--with-mips-plt): Document.
2647 * doc/invoke.texi (-mplt, -mno-plt): Document.
2648 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
2649 and handle ${with_mips_plt}.
2650 * config/mips/mips.opt (mplt): New option.
2651 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
2652 (TARGET_ABICALLS_PIC2): Likewise.
2653 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
2654 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
2655 (ASM_SPEC): Use !mabi=* instead of !mabi*.
2656 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
2657 to decide whether to output ".option picX" directives.
2658 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
2659 Pass -call_nonpic rather than -KPIC for -mplt.
2660 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
2661 on the command line. Also remove it when -mabi=64 is used without
2662 -msym32.
2663 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
2664 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
2665 TARGET_ABICALLS_PIC0.
2666 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
2667 TARGET_ABICALLS.
2668 (mips16_build_function_stub): Only output ".option pic" directives
2669 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
2670 (mips16_build_call_stub): Fix comment and remove redundant
2671 ".set at"/"set .noat" directives.
2672 (mips_function_rodata_section): Use the default behaviour for
2673 TARGET_ABSOLUTE_ABICALLS.
2674 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
2675 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
2676 (mips_restore_gp): Do nothing if the current function doesn't use
2677 a global pointer.
2678 (mips_expand_prologue): Only save $gp if the current function uses it.
2679 Use a normal move for TARGET_ABICALLS_PIC0.
2680 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
2681
4817c43b
RS
26822008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
2683
2684 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
2685 of function when handling GLOBAL_POINTER_REGNUM.
2686
b38f3813
EB
26872008-08-16 Eric Botcazou <ebotcazou@adacore.com>
2688
2689 PR ada/20548
2690 * common.opt (-fstack-check): Do not declare the variable here.
2691 (-fstack-check=): New option variant.
2692 * doc/invoke.texi (Code Gen Options): Document it.
2693 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
2694 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
2695 (STACK_CHECK_STATIC_BUILTIN): New macro.
2696 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
2697 * opts.c: Include expr.h.
2698 (common_handle_option) <OPT_fold_stack_check_>: New case.
2699 <OPT_fstack_check>: Likewise.
2700 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
2701 consistently in the test for variable-sized types. Adjust for
2702 new behaviour of flag_stack_check.
2703 * explow.c: Include except.h.
2704 (allocate_dynamic_stack_space): Do not take into account
2705 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
2706 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
2707 for variable-sized parameters. Treat all parameters whose size is
2708 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
2709 stack checking is enabled.
2710 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
2711 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
2712 if generic stack checking is enabled.
2713 (expand_function_end): Adjust for new behaviour of flag_stack_check.
2714 * reload1.c (reload): Likewise.
2715 * stmt.c (expand_decl): Assert that all automatic variables have
2716 fixed size at this point and remove dead code.
2717 * flags.h (stack_check_type): New enumeration type.
2718 (flag_stack_check): Declare.
2719 * toplev.c (flag_stack_check): New global variable.
2720 * Makefile.in (opts.o): Add dependency on EXPR_H.
2721 (explow.o): Add dependency on except.h.
2722
3898bf50
AH
27232008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
2724
2725 * config/avr/avr.c (avr_override_options): Reduce value of
2726 PARAM_INLINE_CALL_COST.
2727
e675826d
EB
27282008-08-15 Eric Botcazou <ebotcazou@adacore.com>
2729
2730 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
2731 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
2732 lieu of TYPE_MODE (type) throughout.
2733
853ff9e2
JM
27342008-08-15 Joseph Myers <joseph@codesourcery.com>
2735
2736 * config/arm/arm.c (add_minipool_backward_ref): Check for
2737 8-byte-aligned entries in second case of forcing insertion after a
2738 particular entry. Change third case to avoid inserting
2739 non-8-byte-aligned entries before 8-byte-aligned ones.
2740
a214f4d6
RG
27412008-08-15 Richard Guenther <rguenther@suse.de>
2742
2743 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
2744 strip components for unknown size accesses.
2745
9381e3f1
WG
27462008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
2747
2748 * config/s390/2097.md New file.
2749 * config/s390/s390.md ("z10prop" attribute): Define none,
89da39ee
L
2750 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
2751 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
2752 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
2753 possible values and apply them to insns as appropriate.
2754 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
2755 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
2756 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
2757 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
2758 values.
9381e3f1
WG
2759 ("bfp" mode attribute): Removed. Every occurence replaced
2760 with <mode>.
2761 * config/s390/s390.c (struct "z10_cost"): Updated entries.
2762 * config/s390/2084.md (insn_reservation "x_itof"): Updated
89da39ee 2763 type attribute.
9381e3f1 2764
4265559a
MLI
27652008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2766
89da39ee 2767 PR c/28152
4265559a
MLI
2768 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
2769 for keywords.
2770
32ff1243
DN
27712008-08-14 Dorit Nuzman <dorit@il.ibm.com>
2772
2773 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
2774 additional argument. Support reduction when duplication is needed due
2775 to data-types of different sizes in the loop.
2776 (get_initial_def_for_induction): Fix printout.
2777 (vect_get_vec_def_for_stmt_copy): Support case where the
2778 vec_stmt_for_operand is a phi node.
2779 (vectorizable_reduction): Support reduction when duplication is needed
2780 due to data-types of different sizes in the loop.
2781 (vectorizable_call): Remove restriction to not vectorize in case we
2782 have data-types of different sizes in the loop.
2783 (vectorizable_conversion): Likewise.
2784 (vectorizable_operation): Likewise.
2785 (vectorizable_type_demotion): Likewise.
2786 (vectorizable_type_promotion): Likewise.
2787 (vectorizable_induction): Add restriction to not vectorize in case
2788 we have data-types of different sizes in the loop.
2789
ed6fa129
UB
27902008-08-14 Christophe Saout <christophe@saout.de>
2791 Uros Bizjak <ubizjak@gmail.com>
2792
2793 PR target/37101
2794 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
2795 (*vec_concatv2di_rex64_sse4_1): Ditto.
2796 (*vec_concatv2di_rex64_sse): Ditto.
2797
2e1d2474
JJ
27982008-08-14 Jakub Jelinek <jakub@redhat.com>
2799
2800 PR middle-end/37103
2801 * fold-const.c (fold_widened_comparison): Do not allow
2802 sign changes that change the result even if shorter type
2803 is wider than arg1_unw's type.
2804
e026fa18
KH
28052008-08-13 Kazu Hirata <kazu@codesourcery.com>
2806
2807 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
2808 Skip if the multilib testing specifies -march that does not
2809 agree with the one specified in the testcase.
2810
92693034
JM
28112008-08-13 Joseph Myers <joseph@codesourcery.com>
2812
2813 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
2814 zero extend SImode values being converted to TFmode before passing
2815 to libcalls.
2816
9f3c9256
UW
28172008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2818
2819 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
2820 __PPU__ when targeting the Cell/B.E. PPU processor.
2821
7aec7a38
EB
28222008-08-13 Eric Botcazou <ebotcazou@adacore.com>
2823
2824 * gimple.h (gimple_call_set_chain): Accept SSA variables.
2825 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
2826 Rematerialize the static chain, if any.
2827 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
2828 static chain.
2829
70a1c2f9
L
28302008-08-13 H.J. Lu <hongjiu.lu@intel.com>
2831
2832 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
2833 (new_loc_descr): Likewise.
2834 (add_loc_descr): Likewise.
2835 (size_of_loc_descr): Likewise.
2836 (size_of_locs): Likewise.
2837 (output_loc_operands): Likewise.
2838 (output_loc_sequence): Likewise.
2839 (new_reg_loc_descr): New.
2840 (build_cfa_loc): Use it.
2841 (build_cfa_aligned_loc): Likewise.
2842 (one_reg_loc_descriptor): Likewise.
2843 (based_loc_descr): Likewise.
2844
4003301d
MLI
28452008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2846
2847 PR 30551
2848 * doc/invoke.texi (Wmain): Update.
2849 * c-decl.c (start_decl): warn_main is only 0 or 1.
2850 (start_function): Likewise. Fix formatting.
2851 (finish_function): Delete redundant warning.
2852 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
2853 * c-opts (c_common_handle_option): -Wall only has effect if
2854 warn_main is uninitialized. OPT_Wmain is automatically
2855 handled. -pedantic also enables Wmain.
2856 (c_common_post_options): Handle all logic for Wmain here.
2857 * c-common.c (warn_main): Delete.
2858 (check_main_parameter_types): Make pedwarns conditional on
2859 OPT_Wmain.
2860 * c-common.h (warn_main): Delete.
2861
6cd7942d
L
28622008-08-13 H.J. Lu <hongjiu.lu@intel.com>
2863
2864 PR middle-end/36701
2865 * expr.c (emit_group_store): Allocate stack temp with the
2866 largest alignment when copying from register to stack.
2867
99f536cc
RG
28682008-08-13 Richard Guenther <rguenther@suse.de>
2869
2870 * tree.h (maybe_fold_offset_to_address): Declare.
2871 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
2872 (ccp_fold): Handle pointer conversions the same as fold_stmt.
2873 Likewise for POINTER_PLUS_EXPR.
2874 (maybe_fold_offset_to_reference): Enable disabled code.
2875 (maybe_fold_offset_to_address): New function.
2876 (fold_stmt_r): Use it.
2877 (fold_gimple_assign): Likewise.
2878 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
2879 (gimplify_expr): Likewise.
2880
e3f05c4e
MLI
28812008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2882
2883 * toplev.h (pedwarn_at): Fix declaration.
2884
c71cfaaf
JM
28852008-08-13 Joseph Myers <joseph@codesourcery.com>
2886
2887 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2888 LINK_SPEC): Use %R in -Y P argument.
2889
85790e66
MLI
28902008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2891
2892 PR c/15236
2893 * diagnostic.c (pedwarn_at): New.
2894 * toplev.h (pedwarn_at): Declare.
2895 * c-tree.h (build_enumerator): Update declaration.
2896 * c-decl.c (finish_enum): Update comment.
2897 (build_enumerator): Take a location parameter. Give a pedwarn but do
2898 not perform any conversion.
2899 * c-parser.c (c_parser_enum_specifier): Set correct location for
2900 enumerator.
2901
374035cb
MLI
29022008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2903
2904 PR 35635
2905 * c-common.c (conversion_warning): Use a switch. Ignore boolean
2906 expressions except for conversions to signed:1 bitfields. Handle
2907 COND_EXPR with constant operands.
2908
25c6036a
RG
29092008-08-13 Richard Guenther <rguenther@suse.de>
2910
2911 PR tree-optimization/15255
2912 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
2913 (struct oecount_s): New struct and VEC types.
2914 (cvec): New global.
2915 (oecount_hash): New function.
2916 (oecount_eq): Likewise.
2917 (oecount_cmp): Likewise.
2918 (zero_one_operation): New function.
2919 (build_and_add_sum): Likewise.
2920 (undistribute_ops_list): Perform un-distribution of multiplication
2921 and division on the chain of summands.
2922 (should_break_up_subtract): Also break up subtracts for factors.
2923 (reassociate_bb): Delete dead visited statements.
2924 Call undistribute_ops_list. Re-sort and optimize if it did something.
2925 * passes.c (init_optimization_passes): Move DSE before
2926 reassociation.
2927 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
2928 PHI nodes.
2929
e1765251
JJ
29302008-08-12 Janis Johnson <janis187@us.ibm.com>
2931
db79b0cd
JJ
2932 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
2933
e1765251
JJ
2934 * doc/invoke.texi: Revert unintended checkin.
2935
4d2b059d
NF
29362008-08-12 Nathan Froyd <froydnj@codesourcery.com>
2937
2938 PR libgomp/26165
4d2b059d
NF
2939 * gcc.c (include_spec_function): Tweak call to find_a_file.
2940
4c29307d
JJ
29412008-08-12 Jakub Jelinek <jakub@redhat.com>
2942
c0285905
JJ
2943 PR middle-end/37014
2944 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
2945 and TRUTH_ORIF_EXPR.
2946 * dojump.c (do_jump): Likewise.
2947
4c29307d
JJ
2948 PR tree-optimization/37084
2949 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
2950 if id->regimplify, don't assume stmt is a cast assignment.
2951
bad4f40b
AS
29522008-08-12 Anatoly Sokolov <aesok@post.ru>
2953
ed6fa129 2954 * final.c (final_scan_insn): Use app_enable/app_disable functions.
bad4f40b 2955
905cd1b9
UW
29562008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2957
2958 PR bootstrap/37097
2959 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
2960 by last change.
2961
b8972354
UW
29622008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2963
2964 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
2965 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
2966
2967 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
2968 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
2969 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
2970 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
2971 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
2972
2973 * doc/tm.texi (Storage Layout): Remove documentation for
2974 TARGET_FLOAT_FORMAT.
2975
2976 * simplify-rtx.c (simplify_binary_operation_1): Replace
2977 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
2978
4099e2c2
UW
29792008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2980
2981 * real.h (struct real_format): New member has_sign_dependent_rounding.
2982 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
2983 spu_single_format, ieee_double_format, mips_double_format,
2984 motorola_double_format, ieee_extended_motorola_format,
2985 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
2986 ieee_extended_intel_96_round_53_format, ibm_extended_format,
2987 mips_extended_format, ieee_quad_format, mips_quad_format,
2988 vax_f_format, vax_d_format, vax_g_format): Initialize it.
2989 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
2990
2991 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2992 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2993 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
2994 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
2995 (ROUND_TOWARDS_ZERO): Likewise.
2996
2997 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
2998 (FLOAT_MODE_FORMAT): New macro.
2999 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
3000 (MODE_COMPOSITE_P): ... this new macro.
3001 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
3002 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
3003 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
3004
3005 * flags.h: Include "real.h".
3006
3007 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
3008 REAL_MODE_FORMAT_COMPOSITE_P.
3009 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
3010
3011 * doc/tm.texi (Storage Layout): Remove documentation of
3012 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
3013 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
3014 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
3015 they only apply to libgcc2.a.
3016
e0bddf10
UW
30172008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3018
3019 * config/spu/float_disf.c: New file.
3020 * config/spu/float_unsdisf.c: New file.
3021 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
3022 (LIB2FUNCS_EXCLUDE): Define.
3023
3e479de3
UW
30242008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3025 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
3026
3027 * real.h (struct real_format): New member round_towards_zero.
3028 * real.c (round_for_format): Respect fmt->round_towards_zero.
3029 (ieee_single_format, mips_single_format, motorola_single_format,
3030 spu_single_format, ieee_double_format, mips_double_format,
3031 motorola_double_format, ieee_extended_motorola_format,
3032 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
3033 ieee_extended_intel_96_round_53_format, ibm_extended_format,
3034 mips_extended_format, ieee_quad_format, mips_quad_format,
3035 vax_f_format, vax_d_format, vax_g_format): Initialize it.
3036 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
3037
3038 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
3039 real_format to choose rounding mode when calling MPFR functions.
3040 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
3041 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
3042
3043 * real.h (real_to_decimal_for_mode): Add prototype.
3044 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
3045 Respect target rounding mode when generating decimal representation.
3046 (real_to_decimal): New stub for backwards compatibility.
3047 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
3048 real_to_decimal_for_mode instead of real_to_decimal.
3049
3050 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
3051
88f091f5
UW
30522008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3053 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
3054
3055 * real.c (spu_single_format): New variable.
3056 * real.h (spu_single_format): Declare.
3057
3058 * config/spu/spu.c (spu_override_options): Install SFmode format.
3059 (spu_split_immediate): Use integer mode to operate on pieces of
3060 floating-point values in all cases.
3061
3062 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
3063 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
3064 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
3065
4230d0fe
UW
30662008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3067
3068 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
3069
359e19d5
UW
30702008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3071
3072 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
3073
2d7231a3
JJ
30742008-08-12 Jakub Jelinek <jakub@redhat.com>
3075
3076 PR c++/36688
3077 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
3078 on the VAR_DECL instead of TYPE_READONLY on its type.
3079
ad2dd72a
IR
30802008-08-12 Ira Rosen <irar@il.ibm.com>
3081
3082 * tree-vectorizer.c: Depend on langhooks.h.
3083 (supportable_widening_operation): Add two arguments. Support double
3084 type conversions.
3085 (supportable_narrowing_operation): Likewise.
3086 * tree-vectorizer.h (supportable_widening_operation): Add two
3087 arguments.
3088 (supportable_narrowing_operation): Likewise.
3089 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
3090 supportable_widening_operation with correct arguments.
3091 * tree-vect-transform.c (vectorizable_conversion): Likewise.
3092 (vectorizable_type_demotion): Support double type conversions.
3093 (vectorizable_type_promotion): Likewise.
3094 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
3095
7edfb083
MM
30962008-08-11 Michael Matz <matz@suse.de>
3097
3098 * i386/i386.c (override_options): Move initialisation from
3099 flag_schedule_insns_after_reload to here from ...
3100 (optimization_options): ... here.
3101
6f21ff3e
JJ
31022008-08-11 Jakub Jelinek <jakub@redhat.com>
3103
3104 PR rtl-optimization/36998
3105 * dwarf2out.c (compute_barrier_args_size_1,
3106 compute_barrier_args_size): Temporarily remove assertions.
3107
de9a4397
MLI
31082008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3109
3110 PR middle-end/20644
3111 * tree-ssa.c (struct walk_data): Add new flag
3112 warn_possibly_uninitialized.
3113 (warn_uninitialized_var): Use it.
3114 (warn_uninitialized_vars): New.
3115 (execute_early_warn_uninitialized): Call it.
3116 (execute_late_warn_uninitialized): Likewise.
3117
d47c3b4e
AP
31182008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
3119
3120 PR middle-end/36238
3121 * reload1.c (gen_reload): Guard calls to get_secondary_mem
3122 for memory subregs.
3123
5e04ef8f
JH
31242008-08-09 Jan Hubicka <jh@suse.cz>
3125
3126 PR target/37055
3127 * optabs.c (maybe_emit_unop_insn): Remove produced code if
3128 expansion failed.
3129 (expand_fix): Be prepared for expansion to fail.
3130 (expand_sfix_optab): Remove instructions if expansion failed.
3131
708fa3b5
AS
31322008-08-09 Anatoly Sokolov <aesok@post.ru>
3133
3134 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
3135 avr31 architecture.
3136 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
3137 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3138
08d0963a
RS
31392008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
3140
3141 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
3142 mips/t-libgcc-mips16 to tmake_file.
3143 * config/mips/mips-protos.h (mips_call_type): New enum.
3144 (mips_pic_base_register, mips_got_load): Declare.
3145 (mips_restore_gp): Take an rtx argument.
3146 (mips_use_pic_fn_addr_reg_p): Declare.
3147 (mips_expand_call): Replace the sibcall_p argument with
3148 a mips_call_type argument. Add a lazy_p parameter.
3149 (mips_split_call): Declare.
3150 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
3151 (MIPS16_PIC_TEMP): Likewise.
3152 (reg_class): Delete M16_NA_REGS.
3153 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
3154 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
3155 (mips_split_hi_p): Declare.
3156 * config/mips/mips.c (mips_split_hi_p): New array.
3157 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
3158 (mips_got_symbol_type_p): New function.
3159 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
3160 (mips16_stub_function_p): New function.
3161 (mips16_local_function_p): Likewise.
3162 (mips_use_pic_fn_addr_reg_p): Likewise.
3163 (mips_cannot_force_const_mem): Return false for HIGHs.
3164 Extend CONST_INT and symbolic handling to MIPS16, using
3165 mips_symbol_insns to check that the base symbol type is a
3166 legitimate constant. Reject GOT-based constants if
3167 TARGET_MIPS16_PCREL_LOADS.
3168 (mips_const_insns): Check targetm.cannot_force_const_mem when
3169 decomposing a symbolic base and a large offset.
3170 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
3171 When calling a function that needs $25 from MIPS16 code,
3172 move the target address into $25 separately and add a USE
3173 to the call insn.
3174 (mips16_gp_pseudo_reg): Insert the initializer immediately
3175 before the first real insn.
3176 (mips_pic_base_register, mips_got_load): New functions.
3177 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
3178 parameter to LOW_OUT. Say that it can be any valid SET_SRC
3179 when splitting a load-address operation. Split SYMBOL_GOT_DISP
3180 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
3181 (mips_call_tls_get_addr): Update the call to mips_expand_call,
3182 also passing NULL_RTX rather than const0_rtx as the aux argument.
3183 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
3184 instead of TARGET_EXPLICIT_RELOCS.
3185 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
3186 (mips_load_call_address): Replace the sibcall_p argument with
3187 a mips_call_type argument. Use mips_got_load.
3188 (mips16_local_alias): New structure.
3189 (mips16_local_aliases): New variable.
3190 (mips16_local_aliases_hash): New function.
3191 (mips16_local_aliases_eq): Likewise.
3192 (mips16_local_alias): Likewise.
3193 (mips16_stub_function): Likewise.
3194 (mips16_build_function_stub): Create a local alias for the target
3195 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
3196 .cpload directive and an R_MIPS_NONE relocation for the target
3197 function, then load the alias rather than the function itself.
3198 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
3199 (mips16_copy_fpr_return_value): Use mips16_stub_function and
3200 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
3201 (mips16_build_call_stub): Replace the FN parameter with an
3202 FN_PTR parameter. Force the address into a register if it
3203 isn't a call_insn_operand; don't rely on the caller to do this.
3204 If a call to a locally-defined and locally-binding MIPS16
3205 function must be made indirectly, redirect the call to the
3206 function's local alias. Use mips16_stub_function_p,
3207 mips16_stub_function, mips_expand_call and use_reg.
3208 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
3209 Use explicit %hi and %lo accesses where possible.
3210 Use MIPS_CALL to generate the correct code form of a
3211 jal instruction. Add clobbers of $18 instead of uses.
3212 Update the call to mips_emit_call_insn.
3213 (mips_expand_call): Replace the SIBCALL_P argument with a
3214 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
3215 Take a LAZY_P parameter. Call mips16_build_call_stub first,
3216 allowing it to modify the call address. Update the calls to
3217 mips_load_call_address and mips_emit_call_insn.
3218 (mips_split_call): New function.
3219 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
3220 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
3221 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
3222 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
3223 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
3224 if TARGET_MIPS16.
3225 (mips_cprestore_slot): New function.
3226 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
3227 and use mips_cprestore_slot.
3228 (mips_output_function_prologue): Handle TARGET_MIPS16 for
3229 LOADGP_OLDABI.
3230 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
3231 then use a copygp_mips16 instruction to set up $28.
3232 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
3233 (mips16_lay_out_constants): Call split_all_insns_noflow.
3234 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
3235 false if TARGET_MIPS16.
3236 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
3237 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
3238 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
3239 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
3240 MIPS16 code. Allow MIPS16 o32 PIC.
3241 (mips_override_options): Allow MIPS16 o32 PIC.
3242 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
3243 after reload if TARGET_USE_GOT.
3244 (UNSPEC_COPYGP): New constant.
3245 (length): Use a default length of 8 for MIPS16 GOT loads.
3246 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
3247 (*got_page<mode>): Check mips_split_hi_p.
3248 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
3249 (unspec_got<mode>, unspec_call<mode>): New expanders.
3250 (load_got<mode>, load_call<mode>): Remove the length attributes.
3251 Use a got attribute instead of a type attribute.
3252 (copygp_mips16): New insn.
3253 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
3254 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
3255 (sibcall, sibcall_value, call, call_value): Update the calls
3256 to mips_expand_call.
3257 (call_internal, call_value_internal): Use mips_split_call.
3258 (call_value_multiple_internal): Likewise.
3259 (call_split): Move after call_internal (the insn it is split from).
3260 (call_internal_direct, call_value_internal_direct): Turn into
3261 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
3262 (call_direct_split, call_value_direct_split): New patterns.
3263 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
3264 and use M16_REGS instead of M16_NA_REGS.
3265 * config/mips/predicates.md (const_call_insn_operand): Replace
3266 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
3267 mips_use_pic_fn_addr_reg_p check.
3268 (move_operand): Reject HIGHs if mips_split_hi_p.
3269 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
3270 (__mips16_floatunsisf): Inline __mips16_floatsisf.
3271 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
3272 * config/mips/libgcc-mips16.ver: New file.
3273 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
3274 $(srcdir)/config/mips/libgcc-mips16.ver.
3275
7462a715
RS
32762008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
3277
3278 * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
3279 (mips_unspec_address, mips_unspec_offset_high): Likewise.
3280 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
3281 (mips16_cfun_returns_in_fpr_p): Likewise.
3282
57972505
RS
32832008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
3284
3285 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
3286 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
3287 rather than 4 to PC.
3288
e538e028
RS
32892008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
3290
3291 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
3292 (FUNCTION_PROFILER): Save the static chain pointer into $2
3293 beforehand and restore it aftewards.
3294 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
3295 address directly into $25 and call the function through $25;
3296 do not clobber $3. Pad the DImode version to cover the space
3297 left by the deleted $25 <- $3 move.
3298 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
3299 the removal of the $25 <- $3 move.
3300 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
3301 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
3302
b2b61607
RS
33032008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
3304 Daniel Jacobowitz <dan@codesourcery.com>
3305
3306 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
3307 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
3308 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
3309 * config/mips/mips.c (mips_start_function_definition): New function.
3310 (mips_end_function_definition): Likewise.
3311 (mips_output_function_prologue): Use mips_start_function_definition.
3312 (mips_output_function_epilogue): Use mips_end_function_definition.
3313 (build_mips16_function_stub): Use mips_start_function_definition
3314 and mips_end_function_definition.
3315 (build_mips16_call_stub): Likewise.
3316
7c9577be
RG
33172008-08-09 Richard Guenther <rguenther@suse.de>
3318
3319 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
3320 * gimple.h (gimple_call_fn): Adjust comment.
3321 (gimple_call_set_fndecl): New function.
3322 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
3323 longer having bare FUNCTION_DECL operand.
3324 (gimple_call_return_type): Likewise.
3325 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
3326
3327 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
3328 (gimple_mod_pow2): Likewise.
3329 (gimple_mod_subtract): Likewise.
3330 (gimple_ic): Likewise.
3331 (gimple_stringop_fixed_value): Likewise.
3332 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
3333 longer having bare FUNCTION_DECL operand.
3334 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
3335 * omp-low.c (optimize_omp_library_calls): Likewise.
3336 * cgraphunit.c (update_call_expr): Likewise.
3337 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
3338 (execute_convert_to_rsqrt): Likewise.
3339 * cfgexpand.c (gimple_to_tree): Simplify.
3340 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
3341 bare FUNCTION_DECL operand.
3342 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
3343 (convert_gimple_call): Use gimple_call_fndecl.
3344 * c-common.c (c_warn_unused_result): Likewise.
3345
ca085fd7
MLI
33462008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3347
3348 PR c/17880
3349 * c-typeck.c (digest_init): Call verify_sequence_points from here.
3350 (c_finish_return): Likewise.
3351 (c_start_case): Likewise.
3352 * c-common.c (warn_for_collisions_1): Use explicit location in
3353 warning.
3354 * c-parser.c (c_parser_condition): New. Call
3355 verify_sequence_points.
3356 (c_parser_paren_condition): Call c_parser_condition.
3357 (c_parser_for_statement): Call c_parser_condition.
3358
71205d17
MLI
33592008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3360
3361 PR 36901
3362 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
3363 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
3364 Moved from diagnostic.h
3365 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
3366 DK_PERMERROR.
3367 (emit_diagnostic): New.
3368 (warning0, pedwarn0): Delete.
3369 (warning, warning_at, pedwarn, permerror): Return bool.
3370 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
3371 Moved to diagnostic.c.
3372 (struct diagnostic_context): Use correct type for
3373 classify_diagnostic.
3374 (diagnostic_report_diagnostic): Update declaration.
3375 (emit_diagnostic): Declare.
3376 * errors.c (warning): Return bool.
3377 * errors.h (warning): Update declaration.
3378 * toplev.h (warning0, pedwarn0): Delete.
3379 (warning, warning_at, pedwarn, permerror): Return bool.
3380 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
3381 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
3382 inform. Update all calls.
3383 (diagnose_mismatched_decls): Check return value of warning/pedwarn
3384 before giving informative note.
3385 (implicit_decl_warning): Likewise.
3386 * c-typeck.c (build_function_call): Likewise.
3387 * tree-sssa.c (warn_uninit): Likewise.
3388 * builtins.c (gimplify_va_arg_expr): Likewise.
3389
c73d5dd9
MLI
33902008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3391
3392 PR 7651
3393 * doc/invoke.texi (-Wextra): Move warning from here...
3394 (-Wuninitialized): ... to here.
3395
e73f7547
MLI
33962008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3397
3398 PR 28875
3399 * flags.h (set_Wunused): Delete
3400 * toplev.c (process_options): Handle Wunused flags here.
3401 * opts.c (maybe_warn_unused_parameter): Delete.
3402 (common_handle_option): Replace set_Wunused by warn_unused.
3403 (set_Wextra): Do not handle Wunused-parameter here.
3404 (set_Wunused): Delete.
3405 * c-opts.c (c_common_handle_option): Replace set_Wunused by
3406 warn_unused.
3407 * common.opt (Wunused): Add Var and Init.
3408 (Wunused-function): Likewise.
3409 (Wunused-label): Likewise.
3410 (Wunused-parameter): Likewise.
3411 (Wunused-value): Likewise.
3412 (Wunused-variable): Likewise.
3413
d40c9e33
PB
34142008-08-08 Peter Bergner <bergner@vnet.ibm.com>
3415
e73f7547
MLI
3416 * doc/invoke.texi: Add cpu_type power7.
3417 * config.in (HAVE_AS_VSX): New.
3418 * config.gcc: Add cpu_type power7.
3419 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
3420 VSX instructions.
3421 * configure: Regenerate.
3422 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
3423 power5.
3424 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
3425 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
3426 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
3427
7910ae0c
DN
34282008-08-08 Dorit Nuzman <dorit@il.ibm.com>
3429
3430 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
3431 type to vectorize.builtin_conversion.
3432 (vectorizable_conversion): Likewise.
3433 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
3434 integral type as input.
3435 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
3436 FIX_TRUNC_EXPR.
3437 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
3438 and ALTIVEC_BUILTIN_VCTSXS.
3439 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
3440 formatting.
3441
174ef36d
RG
34422008-08-08 Richard Guenther <rguenther@suse.de>
3443
3444 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
3445 (surely_varying_stmt_p): Calls are varying only if they are
3446 non-builtin and not indirect or have no result.
3447 (ccp_fold): Re-instantiate code before the tuples merge.
3448
0f336c35
RG
34492008-08-08 Richard Guenther <rguenther@suse.de>
3450
3451 PR tree-optimization/37056
3452 * gimple.h (gimple_assign_rhs_class): New helper function.
3453 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
3454 unary operations properly.
3455
b2077fd2
JH
34562008-08-07 Jan Hubicka <jh@suse.cz>
3457
3458 * i386.h (ix86_size_cost): Declare.
3459 (ix86_cur_cost): New function macro.
3460 * i386.md (peepholes expanding size and splitters): Predicate by
3461 optimize_insn_for_speed_p.
3462 (peepholes reduce size and splitters): Predicate by
3463 optimize_insn_for_size_p.
3464 * i386.c (ix86_size_cost): Rename from ...
3465 (size_cost): This one.
3466 (override_options): Update.
3467 (decide_alg): Likewise.
3468 (ix86_expand_clear): Use RTL profile.
3469 (ix86_pad_returns): Use RTL profile.
3470
a8ba47cb
JH
34712008-08-07 Jan Hubicka <jh@suse.cz>
3472
3473 * recog.c (split_all_insns): Set RTL profile
3474 (peephole2_optimize): Likewise.
3475 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3476 * combine.c (combine_instructions): Likewise.
3477
03c3034e
KG
34782008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3479
3480 * c-common.c (c_common_reswords): Also warn about keyword "bool".
3481
b412869c
BW
34822008-08-07 Bob Wilson <bob.wilson@acm.org>
3483
ed6fa129
UB
3484 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
3485 value in a6 after the set_frame_ptr insn.
b412869c 3486
09828811
RH
34872008-08-07 Richard Henderson <rth@redhat.com>
3488
3489 PR debug/37033
3490 * gcc.c (cpp_options): Pass along -g*.
3491
874d42b9
JM
34922008-08-07 Joseph Myers <joseph@codesourcery.com>
3493
3494 * config/arm/arm.c (output_move_neon): Update comment describing
3495 big-endian vector layout.
3496 (arm_assemble_integer): Do not handle big-endian NEON vectors
3497 specially.
3498 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
3499 neon_vget_lane<mode>_sext_internal,
3500 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
3501 element indices for big-endian.
3502
058514b3
RH
35032008-08-07 Richard Henderson <rth@redhat.com>
3504
3505 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
3506 * configure, config.in: Rebuild.
3507 * debug.h (dwarf2out_do_cfi_asm): Declare.
3508 * c-cppbuiltin.c (c_cpp_builtins): Use it.
3509 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
3510 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
3511 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
3512
9940eebd
JM
35132008-08-07 Joseph Myers <joseph@codesourcery.com>
3514
3515 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
3516 movv2si_internal): Combine into mov<mode>_internal.
3517 (movv2si_internal_2): Remove.
3518
bdfd2026
JH
35192008-08-07 Jan Hubicka <jh@suse.cz>
3520
3521 PR target/37048
3522 * i386.md (single stringop patterns): Enable unconditionally.
3523
b53b23dc
L
35242008-08-07 H.J. Lu <hongjiu.lu@intel.com>
3525
3526 PR target/36992
3527 * config/i386/emmintrin.h (_mm_move_epi64): Use
3528 __builtin_ia32_movq128.
3529
3530 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
3531 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
3532
3533 * config/i386/sse.md (sse2_movq128): New.
3534
3535 * doc/extend.texi: Document __builtin_ia32_movq128.
3536
9aa4d3c1
RG
35372008-08-07 Richard Guenther <rguenther@suse.de>
3538
3539 PR middle-end/37042
3540 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
3541 pointers can access anything.
3542
18bd082d
JH
35432008-08-06 Jan Hubicka <jh@suse.cz>
3544
3545 * optabs.c (emit_unop_insn): Break out to ...
3546 (maybe_emit_unop_insn): ... this one.
3547 (expand_sfix_optab): Use maybe variant.
3548 * optabs.h (maybe_emit_unop_insn): Declare.
3549
3550 * i386.md (mov0 patterns): Enable by default.
3551 (FP conversion expanders): Disable expansion of code expanding
3552 sequences when instruction should be optimized for size.
3553 (single strinop patterns): Enable when optimizing for size.
3554 (string expanders): Disable expanding of code expanding sequences
3555 when optimizning instruction for size.
3556 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
3557 per BB basis.
3558 (ix86_fp_comparison_sahf_cost): Likewise.
3559 (ix86_expand_branch): Likewise.
3560 (ix86_expand_ashl_const): Likewise.
3561 (ix86_split_ashl): Likewise.
3562 (ix86_expand_strlen): Likewise.
3563 (ix86_emit_fp_unordered_jump): Likewie.
3564
2696a995
KG
35652008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3566
3567 * c-common.c: Fix typo.
3568 (c_common_reswords): Activate more C++ keyword warnings.
3569
3570 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
3571
7e99f74b 35722008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ed6fa129 3573
7e99f74b
MLI
3574 PR 26785
3575 * diagnostic.c (permerror_at): New.
3576 * toplev.h (permerror_at): Declare.
3577
4eee6569
VK
35782008-08-06 Victor Kaplansky <victork@il.ibm.com>
3579 Ira Rosen <irar@il.ibm.com>
3580
3581 * tree-vect-transform.c (vect_model_simple_cost): Return
3582 immediately if stmt is pure SLP.
3583 (vect_model_store_cost): Ditto.
3584 (vect_model_load_cost): Ditto.
3585 (vectorizable_store): Remove PURE_SLP check before call
3586 to vect_model_store_cost.
3587 (vect_model_store_cost): When checking whether stmt describe
3588 strided access, add a check that it is not slp_node.
3589
2d12797c
MLI
35902008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3591
3592 PR 8715
3593 * c-common.c (warn_for_sign_compare): New. Handle separately the
3594 case that 'constant' is zero.
3595 * c-typeck.c (build_binary_op): Move code to c-common.c
3596
0a2aaacc
KG
35972008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3598
3599 * config/alpha/alpha.c (alpha_preferred_reload_class,
3600 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
3601 alpha_output_mi_thunk_osf): Avoid C++ keywords.
3602 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
3603 * config/arm/arm.md: Likewise.
3604 * config/avr/avr-protos.h (preferred_reload_class,
3605 test_hard_reg_class, avr_simplify_comparison_p,
3606 out_shift_with_cnt, class_max_nregs): Likewise.
3607 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
3608 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
3609 preferred_reload_class, test_hard_reg_class): Likewise.
3610 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
3611 bfin_memory_move_cost, bfin_secondary_reload,
3612 bfin_output_mi_thunk): Likewise.
3613 * config/crx/crx.c (crx_secondary_reload_class,
3614 crx_memory_move_cost): Likewise.
3615 * config/frv/frv-protos.h (frv_secondary_reload_class,
3616 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
3617 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
3618 frv_secondary_reload_class, frv_class_likely_spilled_p,
3619 frv_class_max_nregs): Likewise.
3620 * config/h8300/h8300.c (h8300_classify_operand,
3621 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
3622 Likewise.
3623 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
3624 * config/ia64/ia64.c (ia64_preferred_reload_class,
3625 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
3626 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
3627 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
3628 Likewise.
3629 * config/m68hc11/m68hc11.c (preferred_reload_class,
3630 m68hc11_memory_move_cost): Likewise.
3631 * config/mcore/mcore.c (mcore_secondary_reload_class,
3632 mcore_reload_class): Likewise.
3633 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
3634 mips_class_max_nregs, mips_cannot_change_mode_class,
3635 mips_preferred_reload_class, mips_secondary_reload_class,
3636 mips_output_mi_thunk): Likewise.
3637 * config/mmix/mmix.c (mmix_preferred_reload_class,
3638 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
3639 Likewise.
3640 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
3641 Likewise.
3642 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
3643 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
3644 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3645 * config/rs6000/rs6000.c (paired_expand_vector_init,
3646 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
3647 compare_section_name, rs6000_memory_move_cost): Likewise.
3648 * config/s390/s390.c (s390_emit_compare_and_swap,
3649 s390_preferred_reload_class, s390_secondary_reload,
3650 legitimize_pic_address, legitimize_tls_address,
3651 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
3652 s390_class_max_nregs): Likewise.
3653 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3654 * config/s390/s390.md: Likewise.
3655 * config/score/score-protos.h (score_secondary_reload_class,
3656 score_preferred_reload_class): Likewise.
3657 * config/score/score.c (score_preferred_reload_class,
3658 score_secondary_reload_class): Likewise.
3659 * config/score/score3.c (score3_output_mi_thunk,
3660 score3_preferred_reload_class, score3_secondary_reload_class,
3661 score3_hard_regno_mode_ok): Likewise.
3662 * config/score/score3.h (score3_preferred_reload_class,
3663 score3_secondary_reload_class): Likewise.
3664 * config/score/score7.c (score7_output_mi_thunk,
3665 score7_preferred_reload_class, score7_secondary_reload_class,
3666 score7_hard_regno_mode_ok): Likewise.
3667 * config/score/score7.h (score7_preferred_reload_class,
3668 score7_secondary_reload_class): Likewise.
3669 * config/sh/sh.c (prepare_move_operands, output_far_jump,
3670 output_branchy_insn, add_constant, gen_block_redirect,
3671 sh_insn_length_adjustment, sh_cannot_change_mode_class,
3672 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
3673 Likewise.
3674 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3675 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
3676 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
3677 xstormy16_preferred_reload_class): Likewise.
3678 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
3679 xtensa_expand_atomic, override_options,
3680 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
3681 Likewise.
3682 * reorg.c (try_merge_delay_insns): Likewise.
3683 * tree.c (merge_dllimport_decl_attributes): Likewise.
3684
3685 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
3686
1b77ee03
MM
36872008-08-06 Michael Matz <matz@suse.de>
3688
3689 * Makefile.in (write_entries_to_file): Quote words.
3690 * gengtype.c: (read_input_line): Skip over leading white-space.
3691
6d656178
MG
36922008-08-06 Marc Gauthier <marc@tensilica.com>
3693
3694 * config.gcc: Match more processor names for Xtensa.
3695 * configure.ac: Likewise.
3696 * doc/install.texi (Specific): Likewise.
3697 * configure: Regenerate.
3698
82d6e6fc
KG
36992008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3700
3701 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
3702 * calls.c (avoid_likely_spilled_reg): Likewise.
3703 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
3704 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
3705 * config/i386/i386.c (ix86_expand_special_args_builtin,
3706 ix86_secondary_reload): Likewise.
3707 * except.c (struct eh_region, gen_eh_region_catch,
3708 remove_unreachable_regions, duplicate_eh_regions,
3709 assign_filter_values, build_post_landing_pads,
3710 sjlj_find_directly_reachable_regions, remove_eh_handler,
3711 reachable_next_level, foreach_reachable_handler,
3712 can_throw_internal_1, can_throw_external_1,
3713 collect_one_action_chain): Likewise.
3714 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
3715 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
3716 * function.c (update_temp_slot_address, instantiate_new_reg,
3717 instantiate_virtual_regs_in_rtx,
3718 instantiate_virtual_regs_in_insn): Likewise.
3719 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
3720 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
3721 gimplify_cleanup_point_expr): Likewise.
3722 * ipa-cp.c (ipcp_lattice_changed): Likewise.
3723 * passes.c (next_pass_1): Likewise.
3724 * print-tree.c (print_node_brief, print_node): Likewise.
3725 * profile.c (branch_prob): Likewise.
3726 * tree-dump.c (dump_register): Likewise.
3727 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
3728 Likewise.
3729 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
3730 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
3731 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
3732 copy_arguments_for_versioning, copy_static_chain): Likewise.
3733 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
3734 add_new_name_mapping, register_new_name_mapping): Likewise.
3735 * tree-mudflap.c (mf_xform_derefs): Likewise.
3736 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
3737 get_init_expr, combine_chains): Likewise.
3738 * tree-pretty-print.c (dump_generic_node): Likewise.
3739 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
3740 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
3741 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
3742 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
3743
01973e26
L
37442008-08-06 H.J. Lu <hongjiu.lu@intel.com>
3745
3746 PR middle-end/37010
3747 * calls.c (expand_call): Use the biggest preferred stack
3748 boundary.
3749
46662f25
MM
37502008-08-06 Michael Matz <matz@suse.de>
3751
3752 PR target/36613
3753 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
3754 for reused reload, instead of overwriting them.
3755
e94a448f
L
37562008-08-06 H.J. Lu <hongjiu.lu@intel.com>
3757
3758 PR middle-end/37009
3759 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
3760 for incoming stack boundary.
3761
3762 * function.c (assign_parm_find_entry_rtl): Update
3763 parm_stack_boundary.
3764
3765 * function.h (rtl_data): Add parm_stack_boundary.
3766
3767 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
3768 parm_stack_boundary for incoming stack boundary.
3769
e088f04b
JM
37702008-08-06 Joseph Myers <joseph@codesourcery.com>
3771
3772 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
3773 for unrepresentable subregs or treat them as equal to other regs
3774 or subregs with the same register number.
3775
753b34d7
AH
37762008-08-06 Aldy Hernandez <aldyh@redhat.com>
3777
3778 PR middle-end/35432
3779 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
3780 if want_value.
3781
c3702ff9
JH
37822008-08-06 Jan Hubicka <jh@suse.cz>
3783
3784 * predict.c (maybe_hot_frequency_p): When profile is absent, all
3785 frequencies might be hot.
3786
e0a17959
AK
37872008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
3788
3789 * reload.c (find_reloads): Force constants into literal pool
3790 also if they are wrapped in a SUBREG.
3791
c275297b
MK
37922008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3793
3794 PR target/35659
3795 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
3796 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
3797 Don't allow predicated instructions for data speculation.
3798 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
3799 declaration.
3800
a0d33ff8
MK
38012008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3802
3803 * haifa-sched.c (extend_global): Split to extend_global_data and
3804 extend_region_data. Update all uses.
3805 (extend_all): Rename to extend_block_data.
3806
07da1cfc
MK
38072008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3808
3809 * sched-rgn.c (new_ready): Check if instruction can be
3810 speculatively scheduled before attempting speculation.
3811 (debug_rgn_dependencies): Remove wrongful assert.
3812
c7133425
BW
38132008-08-05 Bob Wilson <bob.wilson@acm.org>
3814
3815 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
3816
fa1615d7
BW
38172008-08-05 Bob Wilson <bob.wilson@acm.org>
3818
3819 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
3820 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
3821 va_size, and type_size.
3822
8bd20621
JM
38232008-08-04 Jason Merrill <jason@redhat.com>
3824
3825 PR c++/37016
3826 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
3827 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
3828
8a24bf04
RH
38292008-08-05 Richard Henderson <rth@redhat.com>
3830
3831 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
3832 * configure: Rebuild.
3833
7352e27c
AP
38342008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
3835
3836 PR tree-opt/37024
3837 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
3838 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
3839 is a conversion.
3840
d4ea4622
RH
38412008-08-05 Richard Henderson <rth@redhat.com>
3842
3843 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
3844 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
3845 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
3846 * common.opt (fdwarf2-cfi-asm): New.
3847 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
3848 * config.in, configure: Rebuild.
3849 * dwarf2asm.c (dw2_asm_output_data_raw): New.
3850 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
3851 (dw2_force_const_mem): Externalize.
3852 * dwarf2asm.h: Update.
3853 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
3854 generate a real label.
3855 (output_cfi_directive): New.
3856 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
3857 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
3858 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
3859 and .cfi_lsda.
3860 (dwarf2out_end_epilogue): Emit .cfi_endproc.
3861 (output_loc_operands_raw, output_loc_sequence_raw): New.
3862 (output_cfa_loc_raw): New.
3863
302c3d8e
PB
38642008-08-05 Paul Brook <paul@codesourcery.com>
3865
3866 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
3867 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
3868 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
3869 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
3870 * config/arm/arm.h (TARGET_VFPD32): Define.
3871 (TARGET_VFP3): Use TARGET_VFPD32.
3872 (fputype): Add FPUTYPE_VFP3D16.
3873 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
3874 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
3875 * config/arm/arm-cores.def: Add cortex-r4f.
3876 * config/arm/arm-tune.md: Regenerate.
3877
e3834d38
UW
38782008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3879
3880 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
3881 Reword some comments throughout the file.
3882
3883 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
3884 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
3885 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
3886 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
3887
3888 (MFC_START_ENABLE): Remove PPU-only define.
3889 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
3890 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
3891
3892 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
3893 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
3894 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
3895 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
3896 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
3897 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
3898 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
3899
3900 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
3901 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
3902 (mfc_sdcrt, mfc_sdcrtst): Likewise.
3903 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
3904
3905 (spu_read_machine_status): Fix typo.
3906
9e071d06
UW
39072008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3908
3909 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
3910 SUBREG of multi-word hard register.
3911 * config/spu/spu.c (valid_subreg): Likewise.
3912 (adjust_operand): Handle SUBREGs of multi-word hard registers.
3913
7eeef08e
RG
39142008-08-04 Richard Guenther <rguenther@suse.de>
3915
3916 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
3917 the candidate with the stripped base if that base is different
3918 from the original base even for offset zero.
3919
8f45dcf8
RG
39202008-08-04 Richard Guenther <rguenther@suse.de>
3921
3922 PR middle-end/36691
3923 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
3924 check for no_overflow.
3925
26c86972
RG
39262008-08-04 Richard Guenther <rguenther@suse.de>
3927
3928 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
3929
795dc4fc
PB
39302008-08-04 Paul Brook <paul@codesourcery.com>
3931
3932 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
3933 (arm_order_regs_for_local_alloc): New function.
3934 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
3935 prototype.
3936 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
3937
6fc3c2b2
L
39382008-08-04 H.J. Lu <hongjiu.lu@intel.com>
3939
3940 PR target/37012
3941 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
3942 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
3943 (ix86_expand_epilogue): Likewise.
3944
5b2314f6
L
39452008-08-04 H.J. Lu <hongjiu.lu@intel.com>
3946
3947 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
3948 in comments.
3949
b7c9c5ab
UB
39502008-08-03 Uros Bizjak <ubizjak@gmail.com>
3951
3952 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
3953 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
3954 (*movv2sf_internal_rex64): Ditto.
3955
22660666
JH
39562008-08-03 Jan Hubicka <jh@suse.cz>
3957
3958 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
3959 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
3960 * expmed.c (expand_smod_pow2): Likewise.
3961
5617c135
UB
39622008-08-03 Uros Bizjak <ubizjak@gmail.com>
3963
3964 PR target/36992
3965 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
3966 alternative 0 of operand 1.
3967 (*vec_concatv2di_rex64_sse): Ditto.
3968 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
3969 of operand 1.
3970 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
3971 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
3972 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
3973 (*movv2sf_internal_rex64): Ditto.
3974
ba63dfb9
RG
39752008-08-02 Richard Guenther <rguenther@suse.de>
3976
3977 PR target/35252
3978 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
3979 (ssedoublesizemode): New mode attribute.
3980 (sse_shufps): Call gen_sse_shufps_v4sf.
3981 (sse_shufps_1): Macroize.
3982 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
3983 (sse2_shufpd_1): Macroize.
3984 (vec_extract_odd, vec_extract_even): New expanders.
3985 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
3986 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
3987 * i386.c (ix86_expand_vector_init_one_nonzero): Call
3988 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
3989 (ix86_expand_vector_set): Likewise.
3990 (ix86_expand_reduc_v4sf): Likewise.
3991
c9234c8d
DK
39922008-08-01 Doug Kwan <dougkwan@google.com>
3993
3994 * matrix-reorg.c: Re-enable all code.
3995 (struct malloc_call_data): Change CALL_STMT to gimple type.
3996 (collect_data_for_malloc_call): Tuplify.
5617c135 3997 (struct access_site_info): Change STMT to gimple type.
c9234c8d
DK
3998 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
3999 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
4000 (struct free_info): Change STMT to gimple type.
5617c135 4001 (struct matrix_access_phi_node): Change PHI to gimple type.
c9234c8d
DK
4002 (get_inner_of_cast_expr): Remove.
4003 (may_flatten_matrices_1): Tuplify.
4004 (may_flatten_matrices): Ditto.
4005 (mark_min_matrix_escape_level): Ditto.
5617c135 4006 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
c9234c8d
DK
4007 (ssa_accessed_in_call_rhs): New
4008 (ssa_accessed_in_assign_rhs): New
4009 (record_access_alloc_site_info): Tuplify.
4010 (add_allocation_site): Ditto.
4011 (analyze_matrix_allocation_site): Ditto.
4012 (analyze_transpose): Ditto.
4013 (get_index_from_offset): Ditto.
4014 (update_type_size): Ditto.
4015 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
4016 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
4017 (analyze_accesses_for_phi_node): Tuplify.
4018 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
4019 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
4020 (analyze_matrix_accesses): Tuplify.
4021 (check_var_data): New call-back type for check_var_notmodified_p.
4022 (check_var_notmodified_p): Tuplify and use call-back struct to
4023 return statement found.
4024 (can_calculate_expr_before_stmt): Factor out statement related code
4025 into ...
4026 (can_calculate_stmt_before_stmt): New.
5617c135 4027 (check_allocation_function): Tuplify.
c9234c8d
DK
4028 (find_sites_in_func): Ditto.
4029 (record_all_accesses_in_func): Ditto.
4030 (transform_access_sites): Ditto.
4031 (transform_allocation_sites): Ditto.
4032 (matrix_reorg): Re-enable.
4033 (gate_matrix_reorg): Re-enable.
4034
07b11a21
JJ
40352008-08-01 Jakub Jelinek <jakub@redhat.com>
4036
4037 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
4038 for labels for which it hasn't been set yet. If it has been set,
4039 stop walking insns and continue with next worklist item.
4040 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
4041 if the only BARRIER is at the very end of a function.
4042
d015f7cc
L
40432008-08-01 H.J. Lu <hongjiu.lu@intel.com>
4044
4045 * cfgexpand.c (expand_stack_alignment): Assert that
4046 stack_realign_drap and drap_rtx must match.
4047
4048 * function.c (instantiate_new_reg): If DRAP is used to realign
4049 stack, replace virtual_incoming_args_rtx with internal arg
4050 pointer.
4051
678e7c65
RG
40522008-08-01 Richard Guenther <rguenther@suse.de>
4053
4054 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
4055 loop information only if we initialized it.
4056 (execute_pre): Call fini_pre with in_fre.
4057 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
4058 if we do not unroll because we hit max-completely-peeled-insns.
4059 Use our estimation for consistency, do allow shrinking.
4060
2568f82a
L
40612008-08-01 H.J. Lu <hongjiu.lu@intel.com>
4062
4063 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
4064 with MIN_STACK_BOUNDARY.
4065 (ix86_update_stack_boundary): Likewise.
4066 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
4067 STACK_BOUNDARY.
4068
4069 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
4070 (MIN_STACK_BOUNDARY): This.
4071
df8fa700
RG
40722008-08-01 Richard Guenther <rguenther@suse.de>
4073
4074 PR middle-end/36997
4075 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
4076
5c3554b7
RG
40772008-08-01 Richard Guenther <rguenther@suse.de>
4078
4079 PR tree-optimization/36988
4080 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
4081 do not matter if that doesn't change volatile qualification.
4082
47ad7893
PB
40832008-08-01 Paolo Bonzini <bonzini@gnu.org>
4084
4085 * configure.ac: Do not generate libada-mk. Do not subst
4086 host_cc_for_libada.
4087 * libada-mk.in: Remove.
4088 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
4089 * configure: Regenerate.
4090
40912008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
4092
8e352cd3
BS
4093 * tree-pass.h: Added comment about not dumping passes with name
4094 starting with star in struct opt_pass.
4095 * passes.c (register_dump_files_1): Don't do dump for a pass with
4096 name starting with star.
4097 * doc/passes.texi (Pass manager): Mention pass names and special
4098 meaning of star prefix to avoid dump.
4099
f2d6ca50
AN
41002008-07-31 Adam Nemet <anemet@caviumnetworks.com>
4101
4102 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
4103 to MIPS64r2.
4104 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
4105 (ISA_MIPS64R2): New macro.
4106 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
4107 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
4108 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
4109 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
4110 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
4111 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
4112 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
4113 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
4114 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
4115 Move up to keep list alphabetically sorted.
4116 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
4117 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
4118 processor.
4119 * doc/invoke.texi (MIPS Options): Add -mips64r2.
4120 (-march=@var{arch}): Add mips64r2.
4121
24f9c418
L
41222008-07-31 H.J. Lu <hongjiu.lu@intel.com>
4123
4124 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
4125
90d245c5
SE
41262008-07-31 Steve Ellcey <sje@cup.hp.com>
4127
4128 * expr.c (expand_assignment): Check for complete type.
4129
d2d93c32
L
41302008-07-31 H.J. Lu <hongjiu.lu@intel.com>
4131
4132 PR debug/36977
4133 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
4134
4135 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
4136 for stack alignment.
4137
5617c135 4138 * function.h (rtl_data): Add stack_realign_tried. Update comments.
d2d93c32 4139
c983efce
KK
41402008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
4141
4142 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5617c135 4143 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
c983efce 4144
88e2c810
JJ
41452008-07-31 Jakub Jelinek <jakub@redhat.com>
4146
4147 PR rtl-optimization/36419
4148 * dwarf2out.c (barrier_args_size): New variable.
4149 (compute_barrier_args_size, compute_barrier_args_size_1): New
4150 functions.
4151 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
4152 if not called yet in the current function, use barrier_args_size
4153 array to find the new args_size value.
4154 (dwarf2out_frame_debug): Free and clear barrier_args_size.
4155
fc74cbc4
L
41562008-07-31 H.J. Lu <hongjiu.lu@intel.com>
4157
4158 PR debug/36980
4159 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
4160 rule 19.
4161
d7831fdb
L
41622008-07-31 H.J. Lu <hongjiu.lu@intel.com>
4163
4164 PR debug/36976
4165 * dwarf2out.c (dwarf2out_args_size_adjust): New.
4166 (dwarf2out_stack_adjust): Use it.
4167 (dwarf2out_frame_debug_expr): Likewise.
4168
12aea97a
RG
41692008-07-31 Richard Guenther <rguenther@suse.de>
4170
4171 PR tree-optimization/36978
4172 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
4173 the generated condition.
4174
2dc74010
RG
41752008-07-31 Richard Guenther <rguenther@suse.de>
4176
4177 * passes.c (init_optimization_passes): Always call
4178 pass_early_warn_uninitialized.
5617c135 4179 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2dc74010
RG
4180 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
4181 * doc/passes.texi (Warn for uninitialized variables): Adjust.
4182
b3e200e1
JJ
41832008-07-31 Jakub Jelinek <jakub@redhat.com>
4184
f9555f40
JJ
4185 PR c/36970
4186 * builtins.c (maybe_emit_free_warning): New function.
4187 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
4188 maybe_emit_free_warning for BUILT_IN_FREE.
4189
1e1d3887
JJ
4190 PR debug/36278
4191 * dwarf2out.c (get_context_die): New function.
4192 (force_decl_die, force_type_die): Use it.
4193 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
4194 returns NULL, force generation of DW_TAG_typedef and put that into
4195 DW_AT_import.
4196
b3e200e1
JJ
4197 PR preprocessor/36649
4198 * c-pch.c (c_common_read_pch): Save and restore
4199 line_table->trace_includes across PCH restore.
4200
01ddebf2
EB
42012008-07-30 Eric Botcazou <ebotcazou@adacore.com>
4202
4203 PR ada/36554
4204 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
4205
b8c71e40
RAE
42062008-07-30 Rafael Avila de Espindola <espindola@google.com>
4207
4208 PR 36974
b3e200e1 4209 * final.c (call_from_call_insn): Handle COND_EXEC.
b8c71e40 4210
90c700cd
L
42112008-07-30 H.J. Lu <hongjiu.lu@intel.com>
4212
4213 * builtins.c (std_gimplify_va_arg_expr): Replace
4214 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
4215 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
4216
2e3f842f
L
42172008-07-30 Joey Ye <joey.ye@intel.com>
4218 H.J. Lu <hongjiu.lu@intel.com>
4219
4220 * builtins.c (expand_builtin_setjmp_receiver): Replace
4221 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
4222 (expand_builtin_apply_args_1): Likewise.
4223 (expand_builtin_longjmp): Need DRAP for stack alignment.
4224 (expand_builtin_apply): Likewise.
4225
4226 * caller-save.c (setup_save_areas): Call assign_stack_local_1
4227 instead of assign_stack_local to allow alignment reduction.
4228
4229 * calls.c (emit_call_1): Need DRAP for stack alignment if
4230 return pops.
4231 (expand_call): Replace virtual_incoming_args_rtx with
4232 crtl->args.internal_arg_pointer.
4233 * stmt.c (expand_nl_goto_receiver): Likewise.
4234
4235 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
4236 alignment and store to stack_alignment_estimated and
4237 max_used_stack_slot_alignment.
4238 (expand_one_var): Likewise.
4239 (expand_stack_alignment): New function.
4240 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
4241 and stack_alignment_estimated fields in rtl_data. Call
4242 expand_stack_alignment at end.
4243
4244 * defaults.h (INCOMING_STACK_BOUNDARY): New.
4245 (MAX_STACK_ALIGNMENT): Likewise.
4246 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
4247 (SUPPORTS_STACK_ALIGNMENT): Likewise.
4248
4249 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
4250 stack alignment when generating virtual registers.
4251
4252 * function.c (assign_stack_local): Renamed to ...
4253 (assign_stack_local_1): This. Add a parameter to indicate
4254 if it is OK to reduce alignment.
4255 (assign_stack_local): Use it.
4256 (instantiate_new_reg): Instantiate virtual incoming args rtx
4257 to vDRAP if stack realignment and DRAP is needed.
4258 (assign_parms): Collect parameter/return type alignment and
4259 contribute to stack_alignment_estimated.
4260 (locate_and_pad_parm): Likewise.
4261 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
4262 with crtl->args.internal_arg_pointer.
4263
4264 * function.h (rtl_data): Add new field drap_reg,
4265 max_used_stack_slot_alignment, stack_alignment_estimated,
4266 stack_realign_needed, need_drap, stack_realign_processed and
4267 stack_realign_finalized.
4268 (stack_realign_fp): New macro.
4269 (stack_realign_drap): Likewise.
4270
4271 * global.c (compute_regsets): Frame pointer is needed when
4272 stack is realigned. Can eliminate frame pointer when stack is
4273 realigned and dynamic realigned argument pointer isn't used.
4274
4275 * reload1.c (update_eliminables): Frame pointer is needed
4276 when stack is realigned.
4277 (init_elim_table): Can eliminate frame pointer when stack is
4278 realigned and dynamic realigned argument pointer isn't used.
4279
4280 * rtl.h (assign_stack_local_1): Declare new funtion.
4281
4282 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
4283 (TARGET_GET_DRAP_RTX): Likewise.
4284 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
4285 TARGET_GET_DRAP_RTX.
4286
5617c135 4287 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2e3f842f
L
4288
4289 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
4290 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
4291
42922008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
4293 H.J. Lu <hongjiu.lu@intel.com>
4294
4295 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
4296 vdrap_reg, stack_realign and drap_reg_saved.
4297 (add_cfi): Don't allow redefining CFA when DRAP is used.
4298 (reg_save): Handle stack alignment.
4299 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
4300 alignment. Don't generate DWARF information for (set fp sp)
4301 when DRAP is used.
4302 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
4303 to INVALID_REGNUM.
4304 (int_loc_descriptor): Move prototype forward. Also define if
4305 DWARF2_UNWIND_INFO is true.
4306 (output_cfa_loc): Handle DW_CFA_expression.
4307 (build_cfa_aligned_loc): New.
4308 (based_loc_descr): Update assert for stack realign. For local
4309 variables, use sp+offset when stack is aligned without drap and
4310 fp+offset when stack is aligned with drap. For arguments, use
4311 cfa+offset when drap is used to align stack.
4312
43132008-07-30 Joey Ye <joey.ye@intel.com>
4314 H.J. Lu <hongjiu.lu@intel.com>
4315
4316 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
4317 Break long line.
4318 (ix86_gen_andsp): New.
4319 (ix86_user_incoming_stack_boundary): Likewise.
4320 (ix86_default_incoming_stack_boundary): Likewise.
4321 (ix86_incoming_stack_boundary): Likewise.
4322 (ix86_can_eliminate): Likewise.
4323 (find_drap_reg): Likewise.
4324 (ix86_update_stack_boundary): Likewise.
4325 (ix86_get_drap_rtx): Likewise.
4326 (ix86_finalize_stack_realign_flags): Likewise.
4327 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
4328 (TARGET_GET_DRAP_RTX): Likewise.
4329 (override_options): Overide option value for new options.
4330 (ix86_function_ok_for_sibcall): Remove check for
4331 force_align_arg_pointer.
4332 (ix86_handle_cconv_attribute): Likewise.
4333 (ix86_function_regparm): Likewise.
5617c135 4334 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2e3f842f
L
4335 (ix86_va_start): Replace virtual_incoming_args_rtx with
4336 crtl->args.internal_arg_pointer.
4337 (ix86_select_alt_pic_regnum): Check DRAP register.
4338 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
4339 (ix86_compute_frame_layout): Compute frame layout wrt stack
4340 realignment.
5617c135 4341 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2e3f842f
L
4342 (ix86_expand_prologue): Decide if stack realignment is needed
4343 and generate prologue code accordingly.
4344 (ix86_expand_epilogue): Generate epilogue code wrt stack
4345 realignment is really needed or not.
4346
4347 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
4348 (ABI_STACK_BOUNDARY): Likewise.
4349 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
4350 (STACK_REALIGN_DEFAULT): Likewise.
4351 (INCOMING_STACK_BOUNDARY): Likewise.
4352 (MAX_STACK_ALIGNMENT): Likewise.
4353 (ix86_incoming_stack_boundary): Likewise.
4354 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
4355 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
4356 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
4357 (machine_function): Remove force_align_arg_pointer.
4358
4359 * config/i386/i386.md (BX_REG): New.
4360 (R13_REG): Likewise.
4361
4362 * config/i386/i386.opt (mforce_drap): New.
4363 (mincoming-stack-boundary): Likewise.
4364 (mstackrealign): Add Init(-1).
4365
4366 * config/i386/i386-protos.h (ix86_can_eliminate): New
4367
43682008-07-30 H.J. Lu <hongjiu.lu@intel.com>
4369
4370 * doc/extend.texi: Update force_align_arg_pointer.
4371
4372 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
4373 -mstackrealign.
4374
4375 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
4376 (INCOMING_STACK_BOUNDARY): Likewise.
4377 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
4378 (TARGET_GET_DRAP_RTX): Likewise.
4379
22129589
AS
43802008-07-30 Andreas Schwab <schwab@suse.de>
4381
4382 PR rtl-optimization/36929
4383 * dse.c (replace_inc_dec): Use emit_insn_before instead of
4384 add_insn_before and fix argument order.
4385 (replace_inc_dec_mem): Handle NULL rtx.
4386
35596784
AJ
43872008-07-30 Andrew Jenner <andrew@codesourcery.com>
4388
4389 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
22129589 4390 function.
35596784
AJ
4391 (arm_compute_initial_elimination_offset): Use it.
4392 (arm_compute_save_reg_mask): Include static chain save slot when
4393 calculating alignment.
4394 (arm_get_frame_offsets): Ditto.
4395 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
4396 that we can use to decrement the stack when the stack decrement
4397 could be too big for an immediate value in a single insn.
4398 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
4399
5f8ecf45
RG
44002008-07-30 Richard Guenther <rguenther@suse.de>
4401
4402 PR tree-optimization/36967
4403 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
4404 Release defs of statements we remove.
4405
44bfa35b
NF
44062008-07-30 Nathan Froyd <froydnj@codesourcery.com>
4407
22129589
AS
4408 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
4409 instead of NULL_RTVEC.
44bfa35b 4410
54ce9cc2
NF
44112008-07-30 Nathan Froyd <froydnj@codesourcery.com>
4412
4413 PR target/35866
4414
4415 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
4416 vector modes.
4417
f410e1b3
RAE
44182008-07-30 Rafael Avila de Espindola <espindola@google.com>
4419
5617c135
UB
4420 * final.c (call_from_call_insn): New.
4421 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
f410e1b3 4422
00afcaa0
PB
44232008-07-30 Paolo Bonzini <bonzini@gnu.org>
4424
4425 * configure.ac: Substitute ADA_CFLAGS.
4426 * configure: Regenerate.
4427 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
4428 * Makefile.in: Remove mention of X_* variables.
4429 * config/pa/x-ada-hpux10: Remove.
4430 * config/pa/x-ada: Remove.
4431
4432 * doc/fragments.texi: Update.
4433
f90354fd 44342008-07-30 Olivier Hainque <hainque@adacore.com>
c67a9338
OH
4435
4436 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
4437 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
4438 __dso_handle explicitly here.
4439
6715192c
MLI
44402008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4441
4442 PR 34389
4443 * c-typeck.c (build_binary_op): Encapsulate code into...
4444 * c-common.c (shorten_binary_op): ...this new function.
4445 (conversion_warning): Use the new function. Handle non-negative
4446 constant in bitwise-and.
4447 * c-common.h (shorten_binary_op): Declare.
22129589 4448
473e1062
OH
44492008-07-30 Olivier Hainque <hainque@adacore.com>
4450
4451 * scan.c (make_sstring_space): Add explicit conversions of
4452 allocator's return value.
4453 * fix-header.c (recognized_function): Likewise.
4454
70b1e376
RW
44552008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4456
4457 * doc/cpp.texi: Update to GFDL 1.2.
4458 * doc/gcc.texi: Do not list GPL as Invariant Section.
4459 * doc/gccint.texi: Likewise. Update copyright years.
4460 * doc/install.texi: Update copyright years.
4461
d161cb2d
AM
44622008-07-30 Alan Modra <amodra@bigpond.net.au>
4463
4464 PR target/36955
4465 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
4466 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
4467
54dfd46b
JH
44682008-07-29 Jan Hubicka <jh@suse.cz>
4469
4470 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
4471 (grokdeclarator): Likewise.
4472 * langhooks.c (lhd_warn_unused_global_decl): Use
4473 DECL_DECLARED_INLINE_P.
4474 * print-tree.c (print_node): Remove DECL_INLINE check.
4475
ce94d354
RG
44762008-07-29 Richard Guenther <rguenther@suse.de>
4477
4478 PR tree-optimization/36945
4479 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
4480 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
4481 Record invariant addresses un-decomposed.
4482 (copy_reference_ops_from_call): Record reference call
4483 arguments properly. Simplify.
4484 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
4485 helper split out from ...
4486 (create_component_ref_by_pieces): ... here. Simplify.
4487 Prepare for recursive invocation for call arguments.
4488 (create_expression_by_pieces): Adjust call to
4489 create_component_ref_by_pieces.
4490 (compute_avail): Process operand 2 of reference ops.
4491
0f3a057a
RG
44922008-07-29 Richard Guenther <rguenther@suse.de>
4493
5617c135 4494 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
0f3a057a 4495
11cc4546
JJ
44962008-07-29 Jakub Jelinek <jakub@redhat.com>
4497
4498 * c-format.c (check_format_types): Revert unwanted checkin.
4499
e90acd93
JH
45002008-07-29 Jan Hubicka <jh@suse.cz>
4501
4502 * flags.h (flag_really_no_inline): Remove.
4503 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
4504 * toplev.c (flag_really_no_inline): Remove.
4505 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
4506 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
4507 (cgraph_decide_inlining_incrementally): Likewise.
4508 (compute_inline_parameters): Likewise.
4509 * opts.c (decode_options): Simplify.
4510 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
4511 * common.opt (finline): Initialize to 1.
4512 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
4513
45142008-07-29 Jan Hubicka <jh@suse.cz>
bf08ebeb
JH
4515
4516 * predict.c (always_optimize_for_size_p): New function.
4517 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
4518 optimize_edge_for_size_p, optimize_edge_for_speed_p,
4519 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
4520 functions.
4521 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
4522 * function.c (prepare_function_start): Set default profile.
4523 * function.h (rtl_data): Add maybe_hot_insn_p.
4524 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
4525 (construct_exit_block): Likewise.
4526 (tree_expand_cfg): Likewise.
4527 * basic-block.h
4528 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
4529 optimize_edge_for_size_p, optimize_edge_for_speed_p,
4530 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
4531 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
4532 Declare.
4533
e27fb29c
MLI
45342008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4535
4536 PR 34985
4537 * c-decl.c (merge_decls): Merge USED flags.
22129589 4538
8c54989a
KK
45392008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
4540
4541 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
4542 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
4543 next_stack, lab_false and lab_over trees.
4544
4d2ad64c
RG
45452008-07-28 Richard Guenther <rguenther@suse.de>
4546
4547 PR tree-optimization/36957
4548 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
4549 (useless_type_conversion_p): Remove.
4550 (types_compatible_p): Remove.
4551 * gimple.h (tree_ssa_useless_type_conversion): Declare.
4552 (useless_type_conversion_p): Declare.
4553 (types_compatible_p): Declare.
4554 (gimple_expr_type): Return the base type only if it is
4555 trivially convertible to the subtype.
4556
f6e377f8
AT
45572008-07-28 Andreas Tobler <a.tobler@schweiz.org>
4558
4559 * configure.ac: Use the m4_do macro to concatenate the warnings into
4560 one string in ACX_PROG_CC_WARNING_OPTS,
4561 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
4562 * configure: Regenerate.
4563
1961418e
RG
45642008-07-28 Richard Guenther <rguenther@suse.de>
4565
4566 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
4567 (insert_fake_stores): Remove.
4568 (realify_fake_stores): Likewise.
4569 (execute_pre): Remove dead code.
5617c135 4570 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1961418e
RG
4571 (find_func_aliases): Deal with it here instead.
4572 Re-enable gcc_unreachable call.
4573
726a989a
RB
45742008-07-28 Richard Guenther <rguenther@suse.de>
4575
4576 Merge from gimple-tuples-branch.
4577
4578 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
4579 * gimple.def: New file.
4580 * gsstruct.def: Likewise.
4581 * gimple-iterator.c: Likewise.
4582 * gimple-pretty-print.c: Likewise.
4583 * tree-gimple.c: Removed. Merged into ...
4584 * gimple.c: ... here. New file.
4585 * tree-gimple.h: Removed. Merged into ...
4586 * gimple.h: ... here. New file.
4587
4588 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
4589 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
4590 --enable-checking=gimple flag.
4591 * config.in: Likewise.
4592 * configure: Regenerated.
4593
4594 * tree-ssa-operands.h: Tuplified.
4595 * tree-vrp.c: Likewise.
4596 * tree-loop-linear.c: Likewise.
4597 * tree-into-ssa.c: Likewise.
4598 * tree-ssa-loop-im.c: Likewise.
4599 * tree-dump.c: Likewise.
4600 * tree-complex.c: Likewise.
4601 * cgraphbuild.c: Likewise.
4602 * tree-ssa-threadupdate.c: Likewise.
4603 * tree-ssa-loop-niter.c: Likewise.
4604 * tree-pretty-print.c: Likewise.
4605 * tracer.c: Likewise.
4606 * gengtype.c: Likewise.
4607 * tree-loop-distribution.c: Likewise.
4608 * tree-ssa-loop-unswitch.c: Likewise.
4609 * cgraph.c: Likewise.
4610 * cgraph.h: Likewise.
4611 * tree-ssa-loop-manip.c: Likewise.
4612 * value-prof.c: Likewise.
4613 * tree-ssa-loop-ch.c: Likewise.
4614 * tree-tailcall.c: Likewise.
4615 * value-prof.h: Likewise.
4616 * tree.c: Likewise.
4617 * tree.h: Likewise.
4618 * tree-pass.h: Likewise.
4619 * ipa-cp.c: Likewise.
4620 * tree-scalar-evolution.c: Likewise.
4621 * tree-scalar-evolution.h: Likewise.
4622 * target.h: Likewise.
4623 * lambda-mat.c: Likewise.
4624 * tree-phinodes.c: Likewise.
4625 * diagnostic.h: Likewise.
4626 * builtins.c: Likewise.
4627 * tree-ssa-alias-warnings.c: Likewise.
4628 * cfghooks.c: Likewise.
4629 * fold-const.c: Likewise.
4630 * cfghooks.h: Likewise.
4631 * omp-low.c: Likewise.
4632 * tree-ssa-dse.c: Likewise.
4633 * ipa-reference.c: Likewise.
4634 * tree-ssa-uncprop.c: Likewise.
4635 * toplev.c: Likewise.
4636 * tree-gimple.c: Likewise.
4637 * tree-gimple.h: Likewise.
4638 * tree-chrec.c: Likewise.
4639 * tree-chrec.h: Likewise.
4640 * tree-ssa-sccvn.c: Likewise.
4641 * tree-ssa-sccvn.h: Likewise.
4642 * cgraphunit.c: Likewise.
4643 * tree-ssa-copyrename.c: Likewise.
4644 * tree-ssa-ccp.c: Likewise.
4645 * tree-ssa-loop-ivopts.c: Likewise.
4646 * tree-nomudflap.c: Likewise.
4647 * tree-call-cdce.c: Likewise.
4648 * ipa-pure-const.c: Likewise.
4649 * c-format.c: Likewise.
4650 * tree-stdarg.c: Likewise.
4651 * tree-ssa-math-opts.c: Likewise.
4652 * tree-ssa-dom.c: Likewise.
4653 * tree-nrv.c: Likewise.
4654 * tree-ssa-propagate.c: Likewise.
4655 * ipa-utils.c: Likewise.
4656 * tree-ssa-propagate.h: Likewise.
4657 * tree-ssa-alias.c: Likewise.
4658 * gimple-low.c: Likewise.
4659 * tree-ssa-sink.c: Likewise.
4660 * ipa-inline.c: Likewise.
4661 * c-semantics.c: Likewise.
4662 * dwarf2out.c: Likewise.
4663 * expr.c: Likewise.
4664 * tree-ssa-loop-ivcanon.c: Likewise.
4665 * predict.c: Likewise.
4666 * tree-ssa-loop.c: Likewise.
4667 * tree-parloops.c: Likewise.
4668 * tree-ssa-address.c: Likewise.
4669 * tree-ssa-ifcombine.c: Likewise.
4670 * matrix-reorg.c: Likewise.
4671 * c-decl.c: Likewise.
4672 * tree-eh.c: Likewise.
4673 * c-pretty-print.c: Likewise.
4674 * lambda-trans.c: Likewise.
4675 * function.c: Likewise.
4676 * langhooks.c: Likewise.
4677 * ebitmap.h: Likewise.
4678 * tree-vectorizer.c: Likewise.
4679 * function.h: Likewise.
4680 * langhooks.h: Likewise.
4681 * tree-vectorizer.h: Likewise.
4682 * ipa-type-escape.c: Likewise.
4683 * ipa-type-escape.h: Likewise.
4684 * domwalk.c: Likewise.
4685 * tree-if-conv.c: Likewise.
4686 * profile.c: Likewise.
4687 * domwalk.h: Likewise.
4688 * tree-data-ref.c: Likewise.
4689 * tree-data-ref.h: Likewise.
4690 * tree-flow-inline.h: Likewise.
4691 * tree-affine.c: Likewise.
4692 * tree-vect-analyze.c: Likewise.
4693 * c-typeck.c: Likewise.
4694 * gimplify.c: Likewise.
4695 * coretypes.h: Likewise.
4696 * tree-ssa-phiopt.c: Likewise.
4697 * calls.c: Likewise.
4698 * tree-ssa-coalesce.c: Likewise.
4699 * tree.def: Likewise.
4700 * tree-dfa.c: Likewise.
4701 * except.c: Likewise.
4702 * except.h: Likewise.
4703 * cfgexpand.c: Likewise.
4704 * tree-cfgcleanup.c: Likewise.
4705 * tree-ssa-pre.c: Likewise.
4706 * tree-ssa-live.c: Likewise.
4707 * tree-sra.c: Likewise.
4708 * tree-ssa-live.h: Likewise.
4709 * tree-predcom.c: Likewise.
4710 * lambda.h: Likewise.
4711 * tree-mudflap.c: Likewise.
4712 * ipa-prop.c: Likewise.
4713 * print-tree.c: Likewise.
4714 * tree-ssa-copy.c: Likewise.
4715 * ipa-prop.h: Likewise.
4716 * tree-ssa-forwprop.c: Likewise.
4717 * ggc-page.c: Likewise.
4718 * c-omp.c: Likewise.
4719 * tree-ssa-dce.c: Likewise.
4720 * tree-vect-patterns.c: Likewise.
4721 * tree-ssa-ter.c: Likewise.
4722 * tree-nested.c: Likewise.
4723 * tree-ssa.c: Likewise.
4724 * lambda-code.c: Likewise.
4725 * tree-ssa-loop-prefetch.c: Likewise.
4726 * tree-inline.c: Likewise.
4727 * tree-inline.h: Likewise.
4728 * tree-iterator.c: Likewise.
4729 * tree-optimize.c: Likewise.
4730 * tree-ssa-phiprop.c: Likewise.
4731 * tree-vect-transform.c: Likewise.
4732 * tree-object-size.c: Likewise.
4733 * tree-outof-ssa.c: Likewise.
4734 * cfgloop.c: Likewise.
4735 * system.h: Likewise.
4736 * tree-profile.c: Likewise.
4737 * cfgloop.h: Likewise.
4738 * c-gimplify.c: Likewise.
4739 * c-common.c: Likewise.
4740 * tree-vect-generic.c: Likewise.
4741 * tree-flow.h: Likewise.
4742 * c-common.h: Likewise.
4743 * basic-block.h: Likewise.
4744 * tree-ssa-structalias.c: Likewise.
4745 * tree-switch-conversion.c: Likewise.
4746 * tree-ssa-structalias.h: Likewise.
4747 * tree-cfg.c: Likewise.
4748 * passes.c: Likewise.
4749 * ipa-struct-reorg.c: Likewise.
4750 * ipa-struct-reorg.h: Likewise.
4751 * tree-ssa-reassoc.c: Likewise.
4752 * cfgrtl.c: Likewise.
4753 * varpool.c: Likewise.
4754 * stmt.c: Likewise.
4755 * tree-ssanames.c: Likewise.
4756 * tree-ssa-threadedge.c: Likewise.
4757 * langhooks-def.h: Likewise.
4758 * tree-ssa-operands.c: Likewise.
4759 * config/alpha/alpha.c: Likewise.
4760 * config/frv/frv.c: Likewise.
4761 * config/s390/s390.c: Likewise.
4762 * config/m32c/m32c.c: Likewise.
4763 * config/m32c/m32c-protos.h: Likewise.
4764 * config/spu/spu.c: Likewise.
4765 * config/sparc/sparc.c: Likewise.
4766 * config/i386/i386.c: Likewise.
4767 * config/sh/sh.c: Likewise.
4768 * config/xtensa/xtensa.c: Likewise.
4769 * config/stormy16/stormy16.c: Likewise.
4770 * config/ia64/ia64.c: Likewise.
4771 * config/rs6000/rs6000.c: Likewise.
4772 * config/pa/pa.c: Likewise.
4773 * config/mips/mips.c: Likewise.
4774
0d48657d
SB
47752008-07-28 Simon Baldwin <simonb@google.com>
4776
4777 * c-pragma.c (handle_pragma_message): New function.
4778 (init_pragma): Register handle_pragma_message.
4779 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
4780 documentation.
4781
21e6dd8f
VK
47822008-07-27 Victor Kaplansky <victork@il.ibm.com>
4783
4784 PR tree-optimization/35252
4785 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
4786 REALPART_EXPR to be considered as same load operation.
4787
330e765e
EB
47882008-07-27 Eric Botcazou <ebotcazou@adacore.com>
4789
4790 PR tree-optimization/36830
4791 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
4792 (expressions_equal_p): Return false if only one operand is null.
4793
f0947430
GP
47942008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
4795
4796 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
4797 version requirements.
4798
4326ea40
OH
47992008-07-26 Olivier Hainque <hainque@adacore.com>
4800
4801 * collect2.c (symkind): New enum. Symbol kinds we care about.
4802 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
4803 code and head comment accordingly.
4804 (scan_prog_file): Use symkind names instead of bare integers.
22129589 4805
c37f4ba4
JH
48062008-07-25 Jan Hubicka <jh@suse.cz>
4807
5617c135
UB
4808 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
4809 DECL_INLINE.
c37f4ba4
JH
4810 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
4811 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
4812 * dojump.c (clear_pending_stack_adjust): Likewise.
4813 * print-tree.c (print_node): Ignore DECL_INLINE.
4814 * tree-inline.c (inlinable_function_p): Likewise.
22129589 4815
a51fa0f4
MM
48162008-07-25 Michael Meissner <gnu@the-meissners.org>
4817
4818 * doc/extend.texi (hot attribute): Document that the hot attribute
4819 turns on -O3 for some ports.
4820 (cold attribute): Document that the cold attribute turns on -Os
4821 for some ports
4822
4823 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
4824 reflect function specific option support.
4825
4826 * target.h (struct target_option_hooks): Add fields to say whether
4827 the cold attribute implies -Os and the hot attribute implies -O3.
4828
4829 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
4830 By default, do not turn on -Os for cold functions.
4831 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
4832 not turn on -O3 for hot functions.
4833
4834 * c-common.c (handle_hot_attribute): Use target hook to determine
4835 if hot functions should enable -O3.
4836 (handle_cold_attribute): Use target hook to determine if cold
4837 functions should enable -Os.
4838
4839 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
4840 (override_options): Move disable scheduling to
4841 optimization_options.
4842 (optimization_options): Disable scheduling here, not
4843 override_options.
4844 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4845 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4846
4847 * config/ia64/ia64.c (ia64_override_options): Move setting
4848 scheduling flags to ia64_optimization_options.
4849 (ia64_optimization_options): Disable scheduling options here, and
4850 not in ia64_override_options.
4851 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4852 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
4853
48542008-07-25 H.J. Lu <hongjiu.lu@intel.com>
4855
4856 PR target/36936
4857 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
4858
1fc8feb5
MJ
48592008-07-25 Martin Jambor <mjambor@suse.cz>
4860
4861 PR tree-optimization/36926
4862 * ipa-prop.c (ipa_analyze_call_uses): Call
4863 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
4864
42dec64c
JM
48652008-07-25 Joseph Myers <joseph@codesourcery.com>
4866
4867 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
4868 movv2si_internal): Add mem = reg alternative.
4869
7a946186
AT
48702008-07-25 Andreas Tobler <a.tobler@schweiz.org>
4871
4872 PR bootstrap/36918
4873 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
4874 DEFAULT_PCC_STRUCT_RETURN to 127.
4875
7e8b322a
JH
48762008-07-24 Jan Hubicka <jh@suse.cz>
4877
4878 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
4879 (build_cgraph_edges): Likewise.
4880 * cgraph.c (cgraph_node): Do not update assembler hash.
4881 (cgraph_remove_node): Drop non-unit-at-a-time code.
4882 * tree-pass.h (pass_O0_always_inline): Remove.
4883 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
4884 * toplev.c (process_options): Flag unit-at-a-time does not imply
4885 no section anchors.
4886 * cgraphunit.c: Update comments.
4887 (decide_is_function_needed): Drop non-unit-at-a-time mode.
4888 (cgraph_assemble_pending_functions): Remove.
4889 (cgraph_reset_node): Drop non-unit-at-a-time code.
4890 (cgraph_finalize_function): Likewise.
4891 (cgraph_analyze_function): Likewise.
4892 (cgraph_finalize_compilation_unit): Likewise.
4893 (cgraph_expand_function): Likewise.
4894 (cgraph_optimize): Likesise.
4895 (save_inline_function_body): Likewise.
4896 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
4897 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
4898 * ipa-inline.c: Update comments.
4899 (enum inlining_mode): remove INLINE_SPEED.
4900 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
4901 (cgraph_mark_inline_edge): Likewise.
4902 (try_inline): Likewise.
4903 (cgraph_decide_inlining_incrementally): Likewise.
4904 (cgraph_gate_inlining): Remove.
4905 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
4906 (cgraph_gate_early_inlining): Likewise.
4907 (gate_inline_passes): Remove.
4908 (pass_inline_parameters, pass_ipa_inline): Remove gates.
22129589 4909 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7e8b322a
JH
4910 pass_O0_always_inline): Remove.
4911 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
4912 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
4913 * opts.c (no_unit_at_a_time_default): Remove.
4914 (decode_options): Remove flag_unit_at_a_time reset and warning.
4915 * opts.h (no_unit_at_a_time_default): Remove.
4916 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
4917 early in GNU dialect.
4918 (merge_decls): Update comment; drop unit-at-a-time check.
4919 (finish_decl): Likewise.
4920 (grok_declaration): Remove flag_inline_trees code.
4921 (finish_functions): Return on function returning non-void on all
4922 statics.
4923 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
4924 * cfgexpand.c (expand_one_static_var): Remove.
4925 (expand_one_var): Remove expand_one_static_var call.
4926 (expand_used_vars_for_block): Remove flag_unit_a_time check.
4927 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
4928 and flag_unit_at_a-time compatibility checks.
4929 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
4930 * tree-inline.c (flag_inline_trees): Remove.
4931 (inlinable_function_p): Don't check it.
4932 (expand_call_inline): Remove non-unit-at-a-time code.
4933 * tree-inline.h (flag_inline_trees): Remove.
4934 * tree-optimize.c (execute_early_local_optimizations): Remove
4935 unit-at-a-time checks.
4936 (tree_rest_of_compilation): Likewise.
4937 * combine.c (setup_incoming_promotions): Likewise.
4938 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
4939 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
4940 * passes.c (pass_inline_parameters): Update comments; remove
4941 O0_alwaysinline pass.
4942 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
4943 (execute_one_pass): Likewise.
4944 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
4945 (ix86_function_sseregparm): Likewise.
4946 * arm.c (arm_function_in_section_p): Likewise.
4947 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
4948 * varpool.c: Update comments.
4949 (decide_is_variable_needed): Remove unit-at-a-time checks.
4950 (varpool_finalize_decl): Likewise.
4951
9ccd8574
KK
49522008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
4953
4954 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
4955 to 2 instead of -1.
5617c135 4956 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9ccd8574 4957
56b7e765
KT
49582008-07-24 Kai Tietz <kai.tietz@onevision.com>
4959
4960 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
4961 imp symbol extension.
4962
22129589 4963 2008-07-23 Ian Lance Taylor <iant@google.com>
11522353
ILT
4964
4965 * tree-vrp.c (infer_value_range): Ignore asm statements when
4966 looking for memory accesses for -fdelete-null-pointer-checks.
4967
e816b6b5
BE
49682008-07-24 Ben Elliston <bje@au.ibm.com>
4969
4970 * config/spu/spu-c.c (__vector_keyword): New variable.
4971 (vector_keyword): Likewise.
4972 (spu_categorize_keyword): New function.
4973 (spu_macro_to_expand): Likewise.
4974 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
4975 compiling an ISO C dialect.
4976
ce26ee21
BE
49772008-07-24 Ben Elliston <bje@au.ibm.com>
4978
4979 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
4980 conventional usage.
4981
7326a39e
AL
49822008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4983
4984 * configure: Regenerate.
4985 * configure.ac: Require texinfo 4.7.
4986 * doc/install.texi: Document texinfo 4.7 requirement.
4987
3e293154
MJ
49882008-07-23 Martin Jambor <mjambor@suse.cz>
4989
22129589 4990 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3e293154
MJ
4991 rather than for DECL_SAVED_TREE.
4992 * ipa-prop.c: Include diagnostic.h.
22129589 4993 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3e293154
MJ
4994 thoroughly.
4995 (ipa_detect_param_modifications): Function rewritten from scratch.
4996 (ipa_compute_jump_functions): Changed accesses to modification flags.
4997 (ipa_free_node_params_substructures): Update flags destruction.
4998 (ipa_node_duplication_hook): Update flags duplication.
4999 (ipa_print_all_params_modified): Updated flag access.
5000 * ipa-prop.h (struct ipa_param_flags): New structure.
22129589
AS
5001 (struct ipa_node_params): New field modification_analysis_done,
5002 modified_flags changed into param_flags.
5003 (ipa_is_ith_param_modified): Changed to use new flags.
3e293154
MJ
5004 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
5005
5006 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
5007 ipa-cp.c and split into two functions.
5008 (ipa_print_node_jump_functions): New function.
5009 (compute_scalar_jump_functions): New function.
5010 (type_like_member_ptr_p): New function.
5011 (compute_pass_through_member_ptrs): New function.
5012 (fill_member_ptr_cst_jump_function): New function.
5013 (determine_cst_member_ptr): New function.
5014 (compute_cst_member_ptr_arguments): New function.
5015 (ipa_compute_jump_functions): Complete rewrite.
5016 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
5017 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
5018 (struct ipa_member_ptr_cst): New structure.
5019 (union jump_func_value): New field member_cst.
5020 * ipa-cp.c (ipcp_lat_is_insertable): New function.
5021 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
5022 jump function types.
5023 (ipcp_print_all_lattices): Slight fprintf rearrangement.
5024 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
5025 instead of ipcp_print_all_jump_functions.
5026 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
5027 only for replacable scalars.
5028
5029 * doc/invoke.texi (Optimize options): Add description of
5030 -findirect-inlining.
5031 * common.opt (flag_indirect_inlining): New flag.
22129589 5032 * opts.c (decode_options): Set flag_indirect_inlining when
3e293154
MJ
5033 optimize >= 3.
5034
5035 * ipa-inline.c: Include ipa-prop.h.
5036 (inline_indirect_intraprocedural_analysis): New function.
5037 (inline_generate_summary): Allocate parameter and argument info
5038 structures, call inline_indirect_intraprocedural_analysis on each
22129589 5039 node when doing indirect inlining and deallocate indirect inlining
3e293154
MJ
5040 data structures in the end.
5041 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
5042 (free_all_ipa_structures_after_iinln): New function.
22129589 5043 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3e293154
MJ
5044 done.
5045 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
5046
5047 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
5048 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
5049 of computing the frequency separately.
5050 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
5051 of computing the frequency separately.
22129589 5052 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3e293154
MJ
5053 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
5054 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
5055 (ipa_get_stmt_member_ptr_load_param): New function.
5056 (ipa_is_ssa_with_stmt_def): New function.
5057 (ipa_note_param_call): New function.
5058 (ipa_analyze_call_uses): New function.
5059 (ipa_analyze_stmt_uses): New function.
5060 (ipa_analyze_params_uses): New function.
5061 (ipa_free_node_params_substructures): Also free the param_calls linked
5062 list.
5063 (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
5064 (ipa_print_node_param_flags): New function.
5065 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
5066 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
5067 * ipa-prop.h (struct ipa_param_flags): New field called.
5068 (struct ipa_param_call_note): New structure.
5069 (struct ipa_node_params): New fields param_calls and
5070 uses_analysis_done.
5071 (ipa_is_ith_param_called): New function.
5072 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5073 ipa_analyze_params_uses and dump parameter flags.
5074
5075 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
5076 ipa_propagate_indirect_call_infos if performing indirect inlining,
5077 pass a new parameter new_edges to it.
5078 (add_new_edges_to_heap): New fucntion.
5079 (cgraph_decide_inlining_of_small_functions): New vector
5080 new_indirect_edges for newly found indirect edges , call
5081 ipa_propagate_indirect_call_infos after inlining.
5082 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
5083 inlining if performing indirect inlining. Call
5084 free_all_ipa_structures_after_iinln when doing so too.
5085 (inline_generate_summary): Do not call
5086 free_all_ipa_structures_after_iinln here.
5087 * ipa-prop.c (update_jump_functions_after_inlining): New function.
5088 (print_edge_addition_message): New function.
5089 (update_call_notes_after_inlining): New function.
5090 (propagate_info_to_inlined_callees): New function.
5091 (ipa_propagate_indirect_call_infos): New function.
5092 * ipa-prop.h: Include cgraph.h
5093 (struct ipa_param_call_note): Fields reordered, new field processed.
5094 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
5095 flag indirect_call.
5096 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
5097 rediscovered call statements.
5098 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
5099 (dump_cgraph_node): Dump also the indirect_call flag.
5100 (cgraph_clone_edge): Copy also the indirect_call flag.
5101 * tree-inline.c (copy_bb): Do not check for fndecls from call
5102 expressions, check for edge availability when moving clones.
5103 (get_indirect_callee_fndecl): New function.
5104 (expand_call_inline): If callee declaration is not apprent from
5105 the statement, try calling get_indirect_callee_fndecl. Do not
5106 issue warnings or call sorry when not inlinings an indirect edge.
5107 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
5108
5109 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
5110 bit more frandly to matching.
5111 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
5112 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
5113 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
22129589 5114
e62fe68a
MM
51152008-07-23 Michael Meissner <gnu@the-meissners.org>
5116
5117 PR 36907
5118 * opth-gen.awk: Suppress function specific features when building
5119 target libraries.
5120 * optc-gen.awk: Ditto.
5121
fcf73884
MLI
51222008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5123
5124 PR 35058
5125 * diagnostic.c (pedwarn): Add opt parameter.
5126 (pedwarn0): New.
5127 * c-tree.h (pedwarn_init): Add opt parameter.
5128 (pedwarn_c90): Likewise.
5129 (pedwarn_c99): Likewise.
5130 * c-errors.c (pedwarn_c99): Likewise.
5131 (pedwarn_c90): Likewise.
5132 * toplev.h (pedwarn): Update declaration.
5133 (pedwarn0): Declare.
5134 * c-lex.c: All calls to pedwarn changed.
5135 * builtins.c: All calls to pedwarn changed.
5136 * toplev.c: All calls to pedwarn changed.
5137 * c-decl.c: All calls to pedwarn changed.
5138 * c-typeck.c: All calls to pedwarn changed.
5139 * c-common.c: All calls to pedwarn changed.
5140 * c-parser.c: All calls to pedwarn changed.
22129589 5141
f5ae72a9
MM
51422008-07-23 Michael Meissner <gnu@the-meissners.org>
5143 Karthik Kumar <karthikkumar@gmail.com>
5144
5145 * attribs.c (file scope): Include c-common.h.
5146 (decl_attributes): Add support for #pragma GCC optimize and
5147 #pragma GCC option.
5148
5149 * targhooks.c (default_can_inline_p): New function that is the
5150 default for the TARGET_CAN_INLINE_P target hook.
5151
5152 * targhooks.h (default_can_inline_p): Add declaration.
5153
5154 * tree.c (cl_optimization_node): New static tree for building
5155 OPTIMIZATION_NODE tree.
5156 (cl_target_option_node): New static tree for building
5157 TARGET_OPTION_NODE tree.
5158 (cl_option_hash_table): New hash table for hashing
5159 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
5160 (cl_option_hash_hash): New function to provide the hash value for
5161 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
5162 (cl_option_hash_eq): New function to provide an equality test for
5163 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
5164 (tree_code_size): Add support for OPTIMIZATION_NODE and
5165 TARGET_OPTION_NODE trees.
5166 (tree_code_structure): Add support for OPTIMIZATION_NODE and
5167 TARGET_OPTION_NODE trees.
5168 (build_optimization_node): Build a tree that has all of the
5169 current optimization options.
5170 (build_target_option_node): Build a tree that has the target
5171 options that might be changed on a per function basis.
5172
5173 * tree.h (file scope): Include options.h.
5174 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
5175 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
5176 (TREE_OPTIMIZATION): Ditto.
5177 (TREE_TARGET_SPECIFIC): Ditto.
5178 (struct tree_function_decl): Add fields for remembering the
5179 current optimization options and target specific options.
5180 (struct tree_optimization_option): New tree variant that remembers
5181 the optimization options.
5182 (struct tree_target_option): New tree variant that remembers the
5183 target specific flags that might change for compiling a particular
5184 function.
5185 (union tree_node): Include tree_optimization_option and
5186 tree_target_option fields.
5187 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
5188 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
5189 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
5190 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
5191 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
5192 optimization and target options.
5193 (optimization_default_node): New macro to refer to global_trees
5194 field.
5195 (optimization_current_node): Ditto.
5196 (optimization_cold_node): Ditto.
5197 (optimization_hot_node): Ditto.
5198 (target_option_default_node): Ditto.
5199 (target_option_current_node): Ditto.
5200 (current_option_pragma): Ditto.
5201 (current_optimize_pragma): Ditto.
5202
5203 * target.h (struct gcc_target): Add valid_option_attribute_p,
5204 target_option_save, target_option_restore, target_option_print,
5205 target_option_pragma_parse, and can_inline_p hooks.
5206
5207 * toplev.h (parse_optimize_options): Add declaration.
5208 (fast_math_flags_struct_set_p): Ditto.
5209
5210 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
5211 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
5212 optimize is used.
5213
5214 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
5215 tree_can_inline_p hook to see if one function can inline another.
5216 (cgraph_decide_inlining): Ditto.
5217 (cgraph_decide_inlining_incrementally): Ditto.
5218
5219 * opts.c (decode_options): Add support for running multiple times
5220 to allow functions with different target or optimization options
5221 than was specified on the command line.
5222 (fast_math_flags_struct_set_p): New function that is similar to
5223 fast_math_flags_set_p, except it uses the values in the
5224 cl_optimization structure instead of global variables.
5225
5226 * optc-gen.awk: Add support for TargetSave to allow a back end to
5227 declare new fields that need to be saved when using function
5228 specific options. Include flags.h and target.h in the options.c
5229 source. Add support for Save to indicate which options can be set
5230 for individual functions. Generate cl_optimize_save,
5231 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
5232 cl_target_option_restore, cl_target_option_print functions to
5233 allow functions to use different optimization or target options.
5234
5235 * opt-functions.awk (var_type_struct): Return the type used for
5236 storing the field in a structure.
5237
5238 * opth-gen.awk: Add support for TargetSave to allow a back end to
5239 declare new fields that need to be saved when using function
5240 specific options. Add support for Save to indicate which options
5241 can be set for individual functions. Only generate one extern for
5242 Mask fields. Generate cl_optimization and cl_target_option
5243 structures to remember optimization and target options.
5244
5245 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
5246 collecting new tree nodes.
5247 (TS_TARGET_OPTION): Ditto.
5248
5249 * c-decl.c (merge_decls): Merge function specific target and
5250 optimization options.
5251
5252 * function.c (invoke_set_current_function_hook): If the function
5253 uses different optimization options, change the global variables
5254 to reflect this.
5255
5256 * coretypes.h (struct cl_optimization): Add forward reference.
5257 (struct cl_target_option): Ditto.
5258
5259 * c-pragma.c (option_stack): New static vector to remember the
5260 current #pragma GCC option stack.
5261 (handle_pragma_option): New function to support #pragma GCC option
5262 to change target options.
5263 (optimize_stack): New static vector to remember the current
5264 #pragma GCC optimize stack.
5265 (handle_pragma_optimize): New function to support #pragma GCC
5266 optimize to change optimization options.
5267 (init_pragma): Add support for #pragma GCC optimize and #pragma
5268 GCC option.
5269
5270 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
5271 optimization options.
5272 (TARGET_OPTION_NODE): New tree code for remembering certain target
5273 options.
5274
5275 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
5276 TARGET_OPTION_NODE trees.
5277
5278 * common.opt (-O): Add Optimization flag.
5279 (-Os): Ditto.
5280 (-fmath-errno): Ditto.
5281 (-falign-functions): Add UInteger flag to make sure flag gets full
5282 int in cl_optimization structure.
5283 (-falign-jumps): Ditto.
5284 (-falign-labels): Ditto.
5285 (-falign-loops): Ditto.
5286 (-fsched-stalled-insns): Ditto.
5287 (-fsched-stalled-insns-dep): Ditto.
5288
5289 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
5290 definition.
5291 (TARGET_OPTION_SAVE): Ditto.
5292 (TARGET_OPTION_RESTORE): Ditto.
5293 (TARGET_OPTION_PRINT): Ditto.
5294 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
5295 (TARGET_CAN_INLINE_P): Ditto.
5296 (TARGET_INITIALIZER): Add new hooks.
5297
5298 * tree-inline.c (tree_can_inline_p): New function to determine
5299 whether one function can inline another. Check if the functions
5300 use compatible optimization options, and also call the backend
5301 can_inline_p hook.
5302
5303 * tree-inline.h (tree_can_inline_p): Add declaration.
5304
5305 * c-common.c (c_common_attribute): Add support for option and
5306 optimize attributes.
5307 (handle_option_attribute): Add support for the option attribute to
5308 allow the user to specify different target options for compiling a
5309 specific function.
5310 (handle_optimize_attribute): Add support for the optimize
5311 attribute to allow the user to specify different optimization
5312 options for compiling a specific function.
5313 (handle_hot_attribute): Turn on -O3 optimization for this one
5314 function if it isn't the default optimization level.
5315 (handle_cold_attribute): Turn on -Os optimization for this one
5316 function if it insn't the default optimization.
5317 (const_char_p): New const char * typedef.
5318 (optimize_args): New static vector to remember the optimization
5319 arguments.
5320 (parse_optimize_options): New function to set up the optimization
5617c135 5321 arguments from either the optimize attribute or #pragma GCC optimize.
f5ae72a9
MM
5322
5323 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
5324 (builtin_define_std): Ditto.
5325
5326 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
5617c135 5327 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
f5ae72a9
MM
5328 (x86_64-*-*): Ditto.
5329
5330 * Makefile.in (TREE_H): Add options.h.
5331 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
5332
5333 * doc/extend.texi (option attribute): Document new attribute.
5334 (optimize attribute): Ditto.
5335 (hot attribute): Document hot attribute sets -O3.
5336 (cold attribute): Document cold attribute sets -Os.
5337 (#pragma GCC option): Document new pragma.
5338 (#pragma GCC optimize): Ditto.
5339
5340 * doc/options.texi (TargetSave): Document TargetSave syntax.
5341 (UInteger): Document UInteger must be used for certain flags.
5342 (Save): Document Save option to create target specific options
5343 that can be saved/restored on a function specific context.
5344
5617c135 5345 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
f5ae72a9
MM
5346 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
5347
5617c135 5348 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
f5ae72a9
MM
5349 (TARGET_OPTION_SAVE): Ditto.
5350 (TARGET_OPTION_RESTORE): Ditto.
5351 (TARGET_OPTION_PRINT): Ditto.
5352 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
5353 (TARGET_CAN_INLINE_P): Ditto.
5354
5355 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
5356 -mfpmath=sse,387.
5357 (-mfpmath=both): Ditto.
5358
53592008-07-23 Michael Meissner <gnu@the-meissners.org>
5360 Karthik Kumar <karthikkumar@gmail.com>
5361
5617c135 5362 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
f5ae72a9
MM
5363 (TARGET_POPCNT): Ditto.
5364 (TARGET_SAHF): Ditto.
5365 (TARGET_AES): Ditto.
5366 (TARGET_PCLMUL): Ditto.
5367 (TARGET_CMPXCHG16B): Ditto.
5368 (TARGET_RECIP): Move switch into target_flags.
5369 (TARGET_FUSED_MADD): Ditto.
5370 (ix86_arch_features): Make an unsigned char type.
5371 (ix86_tune_features): Ditto.
5372 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
5373 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
5374 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
5375
5376 * config/i386/i386.opt (arch): New TargetSave field to define
5617c135 5377 fields that need to be saved for function specific option support.
f5ae72a9
MM
5378 (tune): Ditto.
5379 (fpmath): Ditto.
5380 (branch_cost): Ditto.
5381 (ix86_isa_flags_explicit): Ditto.
5382 (tune_defaulted): Ditto.
5383 (arch_specified): Ditto.
5384 (-m128-long-double): Add Save flag to save option for target
5385 specific option support.
5386 (-m80387): Ditto.
5387 (-maccumulate-outgoing-args): Ditto.
5388 (-malign-double): Ditto.
5389 (-malign-stringops): Ditto.
5390 (-mfancy-math-387): Ditto.
5391 (-mhard-float): Ditto.
5392 (-mieee-fp): Ditto.
5393 (-minline-all-stringops): Ditto.
5394 (-minline-stringops-dynamically): Ditto.
5395 (-mms-bitfields): Ditto.
5396 (-mno-align-stringops): Ditto.
5397 (-mno-fancy-math-387): Ditto.
5398 (-mno-push-args): Ditto.
5399 (-mno-red-zone): Ditto.
5400 (-mpush-args): Ditto.
5401 (-mred-zone): Ditto.
5402 (-mrtd): Ditto.
5403 (-msseregparm): Ditto.
5404 (-mstack-arg-probe): Ditto.
5405 (-m32): Ditto.
5406 (-m64): Ditto.
5407 (-mmmx): Ditto.
5408 (-m3dnow): Ditto.
5409 (-m3dnowa): Ditto.
5410 (-msse): Ditto.
5411 (-msse2): Ditto.
5412 (-msse3): Ditto.
5413 (-msse4.1): Ditto.
5414 (-msse4.2): Ditto.
5415 (-msse4): Ditto.
5416 (-mno-sse4): Ditto.
5417 (-msse4a): Ditto.
5418 (-msse5): Ditto.
5419 (-mrecip): Move flag into target_flags.
5420 (-mcld): Ditto.
5421 (-mno-fused-madd): Ditto.
5422 (-mfused-madd): Ditto.
5423 (-mabm): Move flag into ix86_isa_flags.
5424 (-mcx16): Ditto.
5425 (-mpopcnt): Ditto.
5426 (-msahf): Ditto.
5427 (-maes): Ditto.
5428 (-mpclmul): Ditto.
5429
5430 * config/i386/i386-c.c: New file for #pragma support.
5431 (ix86_target_macros_internal): New function to #define or #undef
5432 target macros based when the user uses the #pragma GCC option to
5433 change target options.
5434 (ix86_pragma_option_parse): New function to add #pragma GCC option
5435 support.
5436 (ix86_target_macros): Move defining the target macros here from
5437 TARGET_CPU_CPP_BUILTINS in i386.h.
5438 (ix86_register_pragmas): Register the #pragma GCC option hook. If
5439 defined, initialize any subtarget #pragmas.
5440
5441 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
5442 REGISTER_TARGET_PRAGMAS.
5443
5444 * config/i386/t-i386: New file for x86 dependencies.
5445 (i386.o): Make dependencies mirror the include files used.
5446 (i386-c.o): New file, add dependencies.
5447
5617c135 5448 * config/i386/i386-protos.h (override_options): Add bool argument.
f5ae72a9
MM
5449 (ix86_valid_option_attribute_tree): Add declaration.
5450 (ix86_target_macros): Ditto.
5451 (ix86_register_macros): Ditto.
5452
5453 * config/i386/i386.c (ix86_tune_features): Move initialization of
5454 the target masks to initial_ix86_tune_features to allow functions
5455 to have different target options. Make type unsigned char,
5456 instead of unsigned int.
5457 (initial_ix86_tune_features): New static vector to hold processor
5458 masks for the tune variables.
5459 (ix86_arch_features): Move initialization of the target masks to
5460 initial_ix86_arch_features to allow functions to have different
5617c135 5461 target options. Make type unsigned char, instead of unsigned int.
f5ae72a9
MM
5462 (initial_ix86_arch_features): New static vector to hold processor
5463 masks for the arch variables.
5464 (enum ix86_function_specific_strings): New enum to describe the
5465 string options used for attribute((option(...))).
5466 (ix86_target_string): New function to return a string that
5467 describes the target options.
5468 (ix86_debug_options): New function to print the current options in
5469 the debugger.
5470 (ix86_function_specific_save): New function hook to save the
5617c135 5471 function specific global variables in the cl_target_option structure.
f5ae72a9
MM
5472 (ix86_function_specific_restore): New function hook to restore the
5473 function specific variables from the cl_target_option structure to
5474 the global variables.
5475 (ix86_function_specific_print): New function hook to print the
5476 target specific options in the cl_target_option structure.
5477 (ix86_valid_option_attribute_p): New function hook to validate
5478 attribute((option(...))) arguments.
5479 (ix86_valid_option_attribute_tree): New function that is common
5480 code between attribute((option(...))) and #pragma GCC option
5617c135 5481 support that parses the options and returns a tree holding the options.
f5ae72a9
MM
5482 (ix86_valid_option_attribute_inner_p): New helper function for
5483 ix86_valid_option_attribute_tree.
5484 (ix86_can_inline_p): New function hook to decide if one function
5485 can inline another on a target specific basis.
5486 (ix86_set_current_function); New function hook to switch target
5487 options if the user used attribute((option(...))) or #pragma GCC
5488 option.
5489 (ix86_tune_defaulted): Move to static file scope from
5490 override_options.
5491 (ix86_arch_specified): Ditto.
5492 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
5493 ix86_isa_flags.
5494 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
5495 (OPTION_MASK_ISA_ABM_SET): Ditto.
5496 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
5497 (OPTION_MASK_ISA_CX16_SET): Ditto.
5498 (OPTION_MASK_ISA_SAHF_SET): Ditto.
5499 (OPTION_MASK_ISA_AES_UNSET): Ditto.
5500 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
5501 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
5502 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
5503 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
5504 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
5505 (struct ptt): Move to static file scope from override_options.
5506 (processor_target_table): Ditto.
5507 (cpu_names): Ditto.
5617c135 5508 (ix86_handle_option): Add support for options that are now isa options.
f5ae72a9
MM
5509 (override_options): Add support for declaring functions that
5510 support different target options than were specified on the
5511 command line. Move struct ptt, processor_target_table, cpu_names,
5512 ix86_tune_defaulted, ix86_arch_specified to static file scope.
5513 Add bool argument. Fix up error messages so the appropriate error
5514 is given for either command line or attribute.
5515 (ix86_previous_fndecl): New static to remember previous function
5516 declaration to see if we need to change target options.
5517 (ix86_builtins_isa): New array to record the ISA of each builtin
5518 function.
5519 (def_builtin): Always create the builtin function, even if the
5520 current ISA doesn't support it.
5521 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
5522 tests for those builtins.
5523 (ix86_init_builtins): Remove TARGET_MMX test for calling
5524 ix86_init_mmx_sse_builtins.
5525 (ix86_expand_builtin): If the current ISA doesn't support a given
5526 builtin, signal an error.
5527 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
5528 (TARGET_SET_CURRENT_FUNCTION): Ditto.
5529 (TARGET_OPTION_SAVE): Ditto.
5530 (TARGET_OPTION_RESTORE): Ditto.
5531 (TARGET_OPTION_PRINT): Ditto.
5532 (TARGET_CAN_INLINE_P): Ditto.
5533
3571ae2e
RAE
55342008-07-22 Rafael Avila de Espindola <espindola@google.com>
5535
5617c135
UB
5536 * c-typeck.c (build_external_ref): Don't call assemble_external.
5537 * final.c (output_operand): Call assemble_external.
3571ae2e 5538
2e762884
DD
55392008-07-21 DJ Delorie <dj@redhat.com>
5540
5541 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
5542 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
5543
a03f1b22
UW
55442008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5545
5546 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
5547 original insn and splitter contents into ...
5548 ("*div<mode>3_fast"): ... this new pattern. Enable only if
5549 flag_unsafe_math_optimizations. Add dummy scratch register.
5550 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
5551 !flag_unsafe_math_optimizations. Returns number with next
5552 highest magnitude if this is still less or equal to the true
5553 quotient in magnitude.
5554
099735e9 55552008-07-21 Rafael Avila de Espindola <espindola@google.com>
aa14403d
RAE
5556
5557 * Makefile.in: Replace toplev.h with TOPLEV_H.
5558 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
5559 * c-lex.c (fe_file_change): Don't set in_system_header.
5560 * c-parser.c (c_token): Remove in_system_header.
5561 (c_lex_one_token): Don't set in_system_header.
5562 (c_parser_set_source_position_from_token): Don't set in_system_header.
5563 * diagnostic.c (diagnostic_report_diagnostic): Use location from
5564 diagnostic_info.
5565 (warning_at): New.
5566 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
5567 * flags.h (in_system_header): Remove.
5568 * function.c (saved_in_system_header): Remove.
5569 (push_cfun): Don't set in_system_header.
5570 (pop_cfun): Don't set in_system_header.
5571 (push_struct_function): Don't set in_system_header.
5572 * input.h (expanded_location): Add sysp.
5573 (in_system_header_at): New.
5574 (in_system_header): New.
5575 * toplev.c (in_system_header): Remove.
5576 * toplev.h: Include input.h
5577 (warning_at): New.
5578 * tree-cfg.c (execute_warn_function_return): Call warning_at.
5579 * tree-ssa.c (warn_uninit): Call warning_at.
5580 (warn_uninitialized_var): Update calls to warn_uninit.
5581 (warn_uninitialized_phi): Update calls to warn_uninit.
5582 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
5583 (expand_location): Initialize xloc.sysp.
5584 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
5585 (tree_decl_with_vis): Remove in_system_header_flag.
5586
c499b300
AK
55872008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
5588
5589 PR target/36822
5590 * recog.c (asm_operand_ok): Change the order of the extra
5591 memory constraint checks.
5592
34a87fd4
AP
55932008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
5594
5595 PR tree-opt/36879
5596 * tree-switch-conversion.c (build_one_array): Call
22129589 5597 varpool_mark_needed_node and varpool_finalize_decl
34a87fd4
AP
5598 instead of assemble_variable.
5599
c72321c9
JH
56002008-07-19 Jan Hubicka <jh@suse.cz>
5601
5602 * cgraph.c (cgraph_add_new_function): Do early local passes.
5603 * tree-nrv.c (gate_pass_return_slot): New gate.
5604 (pass_nrv): Add the gate.
5605 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
5606 functions.
5607 (coalesce_ssa_name): Coalesce SSA names.
5608 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
5609 not optimizing so unused user vars remains visible.
5610 * common.opt (flag_tree_ter): Always enable by default.
5611 * tree-ssa-ter.c: Include flags.h
5612 (is_replaceable_p): Check that locations match; when aliasing is missing
5613 be conservative about loads.
5614 * tree-optimize.c (gate_init_datastructures): Remove.
5615 (pass_init_datastructures): New.
5616 * passes.c: Reorder passes so we always go into SSA.
5617
d6cc6ec9
JH
56182008-07-19 Jan Hubicka <jh@suse.cz>
5619
5620 * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
5621 * doc/invoke.texi (--combine): Likewise.
5622 (-finline-functions-called-once): Update levels when enabled.
5623 (-funit-at-a-time): Document new behaviour.
5624 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
5625 -fno-section-anchors when disabled explicitly.
5626 (inline params): They are not ignored now.
5627 (precompiled headers): Remove unit-at-a-time as being incompatible.
5628 * opts.c (decode_options): Handle unit-at-a-time as alias;
5629 imply -fno-section-anchors when toplevel reorder is disabled
5630 explicitly.
5631 * common.opt (ftoplevel-reorder): Set default value to 2.
5632 (funit-at-a-time): Set default value to 1.
5633 * config/rs6000/rs6000.c (optimization_options): Set section anchors
5634 to 2.
5635
1856c8dc
JH
56362008-07-19 Jan Hubicka <jh@suse.cz>
5637
5638 * builtins.c (expand_builtin_int_roundingfn,
5639 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
5640 it is not useful.
5641
bb9e4199
RG
56422008-07-19 Richard Guenther <rguenther@suse.de>
5643
5644 PR bootstrap/36864
5645 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
5646 * tree-ssa-sccvn.c (get_constant_value_id): New function.
5647 * tree-ssa-pre.c (get_expr_value_id): For newly created
5648 constant value-ids make sure to add the expression to its
5649 expression-set.
5650
a7ea9e29
JJ
56512008-07-19 Jakub Jelinek <jakub@redhat.com>
5652
5653 PR middle-end/36877
5654 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
5655 return value of the builtin is ignored.
5656
95331614
OH
56572008-07-19 Olivier Hainque <hainque@adacore.com>
5658
5659 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
5660 bits, a C conformant malloc implementation has to provide.
5661 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
5662
ea471af0
JM
56632008-07-19 Joseph Myers <joseph@codesourcery.com>
5664
5665 PR target/36780
5666 PR target/36827
5667 * reload.c (find_reloads_subreg_address): Only reload address if
5668 reloaded == 0, not for reloaded != 1.
5669
5670 Revert:
5671 2008-07-16 Joseph Myers <joseph@codesourcery.com>
5672 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5673 (m32c_legitimate_address_p): Handle "++rii" addresses created by
5674 m32c_legitimize_reload_address.
5675
5676 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
5677 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5678 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5679
fa8884d8
OH
56802008-07-19 Olivier Hainque <hainque@adacore.com>
5681
5682 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
5683 argument, saying whether nested array are to be collapsed
5684 into a single array type DIE with multiple subscripts.
5685 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
5686 issues, centralize the nested array types collapsing control and
5687 disable the transformation for Ada.
22129589 5688
72ea2555
UB
56892008-07-18 Uros Bizjak <ubizjak@gmail.com>
5690
5691 PR target/36786
5692 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
5693 x86_64_shift_adj.
5694 (x86_64_shift_adj_2): New expander.
5695 (x86_64_shift_adj_3): Ditto.
5696 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
5697 to split TImode operands.
5698 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
5699 (ix86_split_lshr): Ditto.
5700
c466b2cd
KVH
57012008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
5702
5703 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
5704 and __CHAR32_TYPE__.
5705 * c-typeck.c (digest_init): Support char16_t and char32_t.
5706 (set_nonincremental_init_from_string): Idem.
5707
c565a1e7
L
57082008-07-18 H.J. Lu <hongjiu.lu@intel.com>
5709
5710 PR middle-end/36859
5711 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
5712 PREFERRED_STACK_BOUNDARY.
5713 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5714
5ae53a25
L
57152008-07-18 H.J. Lu <hongjiu.lu@intel.com>
5716
5717 PR middle-end/36858
5718 * function.c (locate_and_pad_parm): Cap boundary earlier.
5719
711b2998
JB
57202008-07-17 Julian Brown <julian@codesourcery.com>
5721
5722 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
5723 no-op for targets which don't use DLLs.
5724
0eae6bab
MJ
57252008-07-17 Martin Jambor <mjambor@suse.cz>
5726
5727 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
5728 that nodes are relevant by examining the node->analyzed flag.
5729 (ipcp_init_stage): Check which nodes are relevant, assert that the
5730 relevant ones are also required.
5731 (ipcp_propagate_stage): Check on the side arrays are properly
5732 allocated.
5733 (ipcp_print_all_jump_functions): Make sure not to touch any node
5734 that is not analyzed or an edge that does not have a corresponding
5735 entry in the on-the-side vectors.
5736 (ipcp_function_scale_print): Likewise.
5737 (ipcp_update_callgraph): Check that the node is relevant.
5738 (ipcp_insert_stage): Check that the node is relevant. Check there is
5739 an info for every node and edge.
5740 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
5741 (ipa_print_all_tree_maps): Likewise and a new variable info.
5742 (ipa_print_all_params_modified): Likewise.
5743 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
5744
19327a1a
RZ
57452008-07-17 Roman Zippel <zippel@linux-m68k.org>
5746
5747 PR target/25343
5748 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
5749
b08c5108
PB
57502008-07-17 Paolo Bonzini <bonzini@gnu.org>
5751
5752 PR rtl-optimization/36753
5753 * fwprop.c (use_killed_between): Don't shortcut
5754 single-definition global registers.
5755
7386e3ee
JH
57562008-07-16 Jan Hubicka <jh@suse.cz>
5757
5758 * cgraph.h (varpool_empty_needed_queue): Declare.
5759 * cgraphunit.c (output_in_order): Mark all variables as needed;
5760 empty the queue.
5761 * varpool.c (varpool_assemble_node): Update debug queue.
5762 (varpool_assemble_pending_decls): Don't do it here.
5763 (varpool_empty_needed_queue): New function.
5764
de498dd4
KG
57652008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5766
5767 * recog.c (peephole2_optimize): Fix formatting.
5768
48c54229
KG
57692008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5770
5771 * c-pch.c (get_ident): Avoid C++ keywords.
5772 * combine-stack-adj.c (single_set_for_csa): Likewise.
5773 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
5774 output_asm_insn): Likewise.
5775 * reload.c (push_secondary_reload, find_reusable_reload,
5776 push_reload, combine_reloads, find_reloads,
5777 debug_reload_to_stream): Likewise.
5778 * reload.h (struct reload): Likewise.
5779 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
5780 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
5781 emit_output_reload_insns): Likewise.
5782 * targhooks.c (default_secondary_reload): Likewise.
5783 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
5784
55d796da
KG
57852008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5786
5787 * recog.c (validate_change_1, validate_change,
5788 validate_unshare_change, validate_replace_rtx_1, struct
5789 funny_match, constrain_operands, peephole2_optimize): Avoid C++
5790 keywords.
5791 * reload.c (push_secondary_reload, secondary_reload_class,
5792 scratch_reload_class, find_valid_class, find_reusable_reload,
5793 push_reload, find_dummy_reload, find_reloads_address_1,
5794 find_reloads_address_part, find_equiv_reg): Likewise.
5795 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
5796 choose_reload_regs): Likewise.
5797 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
5798 Likewise.
5799 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
5800 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
5801 * sched-rgn.c (concat_INSN_LIST): Likewise.
5802 * stor-layout.c (mode_for_size, mode_for_size_tree,
5803 smallest_mode_for_size): Likewise.
5804
d858f359
KG
58052008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5806
5807 * cfg.c (dump_reg_info): Avoid C++ keywords.
5808 * dwarf2asm.c (dw2_force_const_mem,
5809 dw2_asm_output_encoded_addr_rtx): Likewise.
72ea2555 5810 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
d858f359
KG
5811 * expmed.c (expand_shift): Likewise.
5812 * global.c (find_reg): Likewise.
5813 * graph.c (draw_edge): Likewise.
5814 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
5815 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
5816 widen_clz, widen_bswap, expand_parity, expand_unop,
5817 emit_cmp_and_jump_insn_1): Likewise.
5818 * postreload.c (reload_cse_simplify_operands): Likewise.
5819 * ra.h (add_neighbor): Likewise.
5820 * reg-stack.c (remove_regno_note, change_stack): Likewise.
5821 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
5822 record_reg_classes, copy_cost, record_address_regs,
5823 invalid_mode_change_p): Likewise.
5824 * regrename.c (regrename_optimize, scan_rtx_reg,
5825 dump_def_use_chain, find_oldest_value_reg,
5826 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
5827
1bc39d2f
DE
58282008-07-16 David Edelsohn <edelsohn@gnu.org>
5829
5830 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
5831 MASK_POWERPC64 for power4 in previous commit.
5832
bb95b4e7
OH
58332008-07-16 Olivier Hainque <hainque@adacore.com>
5834
5835 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
5836 instead of bare conversion to cast const-ness away.
5837
e2b2d01e
AS
58382008-07-16 Anatoly Sokolov <aesok@post.ru>
5839
5840 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
5841 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
5842 * config/xtensa/xtensa.c (xtensa_function_value): New function.
5843 (TARGET_FUNCTION_VALUE): Define.
5844
9a8d7941
DE
58452008-07-16 David Edelsohn <edelsohn@gnu.org>
5846
5847 * config/rs6000/rs6000.c (processor_target_table): Add
5848 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
5849
61945d8c
JM
58502008-07-16 Joseph Myers <joseph@codesourcery.com>
5851
5852 PR target/36827
5853 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
5854 (m32c_legitimate_address_p): Handle "++rii" addresses created by
5855 m32c_legitimize_reload_address.
5856
238fe3c5
RAE
58572007-07-16 Rafael Avila de Espindola <espindola@google.com>
5858
5617c135
UB
5859 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
5860 DECL_IN_SYSTEM_HEADER in sync.
238fe3c5 5861
2dfb6ce1
DB
58622008-07-15 Daniel Berlin <dberlin@dberlin.org>
5863
5864 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
5865 * tree-ssa-pre.c (pre_expr_eq): Ditto
5866 (get_constant_for_value_id): Take a type as an argument.
5867 (fully_constant_expression): Pass in type.
5868 (find_or_generate_expression): Short circuit constant case.
5869 (create_expression_by_pieces): Remove special casing of
5870 pointer_plus.
5871 (do_regular_insertion): Short circuit constant case.
5872 (do_partial_partial_insertion): Ditto.
5873
141368f0
KK
58742008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
5875
5876 PR target/36782
5877 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
5878
25ae96c7 58792008-07-15 Bob Wilson <bob.wilson@acm.org>
22129589 5880
25ae96c7
BW
5881 * config/xtensa/libgcc-xtensa.ver: New file.
5882 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
22129589 5883
60564289
KG
58842008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5885
5886 * df-problems.c (df_set_note): Avoid C++ keywords.
5887 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
5888 * dse.c (record_store, remove_useless_values): Likewise.
5889 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
5890 gen_reg_rtx_offset, operand_subword, change_address_1,
5891 change_address, adjust_address_1, offset_address,
5892 widen_memory_access, emit_copy_of_insn_after): Likewise.
5893 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
5894 * fwprop.c (should_replace_address, propagate_rtx_1,
5895 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
5896 Likewise.
5897 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
5898 gcse_emit_move_after, update_ld_motion_stores): Likewise.
5899 * lcm.c (compute_insert_delete, pre_edge_lcm,
5900 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
5901 * lower-subreg.c (resolve_reg_notes): Likewise.
5902 * mode-switching.c (optimize_mode_switching): Likewise.
5903
32e9fa48
KG
59042008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5905
5906 * bt-load.c (add_btr_def, migrate_btr_def,
5907 branch_target_load_optimize): Avoid C++ keywords.
5908 * caller-save.c (insert_restore, insert_save, insert_one_insn):
5909 Likewise.
5910 * combine.c (subst, simplify_set, make_extraction,
72ea2555 5911 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
32e9fa48 5912 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
72ea2555 5913 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
32e9fa48 5914
ac7ee6ad
RG
59152008-07-15 Richard Guenther <rguenther@suse.de>
5916
5917 PR middle-end/36369
5918 * c-common.c (strict_aliasing_warning): Do not warn for
5919 TYPE_REF_CAN_ALIAS_ALL pointers.
5920 (c_common_get_alias_set): may_alias types are not special.
5921 * tree.c (build_pointer_type_for_mode): Look up the may_alias
5922 attribute and set can_ref_all accordingly.
5923 (build_reference_type_for_mode): Likewise.
5924 * doc/extend.texi (may_alias): Clarify.
5925
96c72efe
KK
59262008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
5927
5928 PR target/36780
5929 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
5930 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
5931
cb8cc791
AP
59322008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
5933
5934 PR target/31568
5935 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
5936 gcc_assert, instead call output_operand_lossage.
5937
e65d1ec6
KT
59382008-07-15 Kai Tietz <kai.tietz@onevision.com>
5939
5940 * builtins.c (std_canonical_va_list): Treat structure based
5941 va_list types.
5942
6926c713
BE
59432008-07-15 Ben Elliston <bje@au.ibm.com>
5944
5945 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
5946
df0ed6c5
RAE
59472007-07-14 Rafael Avila de Espindola <espindola@google.com>
5948
5949 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
5950 is set.
5951
f258e5e5
JH
59522008-07-14 Jan Hubicka <jh@suse.cz>
5953
5954 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
5955 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
5956 fix predicates and constraints.
5957 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
5958 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
5959
8abc1906
DK
59602008-07-14 Doug Kwan <dougkwan@google.com>
5961
5962 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
5963 additional option file arm/eabi.opt.
5964 * config/arm/eabi.h (File): New configuration file for EABI targets.
5965 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
5966 SUBSUBTARGET_EXTRA_SPECS.
5967 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
5968 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
5969 from STARTFILE_SPEC so that it can be referenced in an override.
5970 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
5971 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
5972 can be referenced in an override.
5973 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
5974 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
5975 so that it can be referenced in an override.
5976 (LINK_SPEC): Use BPABI_LINK_SPEC.
5977 * config/arm/eabi.opt (File): New.
5978
e63ea00c
RW
59792008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5980
5981 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
5982 (FIXED_VALUE_H): New variable.
5983 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
5984 input.h, fixed-value.h.
5985 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
5986 (BASIC_BLOCK_H): Use $(BITMAP_H).
5987 (FUNCTION_H): Add varray.h.
5988 (IPA_REFERENCE_H): Use $(BITMAP_H).
5989 (CGRAPH_H): Add $(BASIC_BLOCK_H).
5990 (DF_H): Use $(BITMAP_H).
5991 (GGC_H): Add statistics.h.
5992 (INSN_ADDR_H): New.
5993 (INSN_ATTR_H): Use it.
5994 (SYSTEM_H): Add safe-ctype.h, filenames.h.
5995 (INPUT_H): New.
5996 (SYMTAB_H): Add $(OBSTACK_H).
5997 (CPP_INTERNAL_H): New.
5998 (TREE_DUMP_H): Add tree-pass.h.
5999 (TREE_FLOW_H): Use $(BITMAP_H)
6000 (PRETTY_PRINT_H): Use $(INPUT_H).
6001 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
6002 (GSTAB_H): New.
6003 (BITMAP_H): New.
6004 (many object files): Fix lots of header dependencies throughout.
6005
a4e4a2d6
RW
60062008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6007
6008 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
6009 New macros.
6010 (s-gtyp-input): Use them to write tmp-gi.list.
6011 (echo_to_gi.list): Remove.
6012
caf55296
RG
60132008-07-14 Richard Guenther <rguenther@suse.de>
6014
6015 * tree-ssa-sccvn.c (pre_info): Remove.
6016 (switch_to_PRE_table): Likewise.
72ea2555 6017 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
caf55296
RG
6018 (set_hashtable_value_ids): Do not create value-ids for the
6019 optimistic tables.
6020 (run_scc_vn): Remove double test. Remove bogus special-case
6021 in value-number printing.
6022 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
6023 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
6024 SSA_NAME_VALUE.
6025 * tree-flow-inline.h (get_value_handle): Remove.
6026 * tree-flow.h (get_value_handle): Remove.
6027
145544ab
MJ
60282008-07-14 Martin Jambor <mjambor@suse.cz>
6029
6030 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
6031 in which we generate arithmetics is not a subrange.
6032
9bfb0f01
MJ
60332008-07-14 Martin Jambor <mjambor@suse.cz>
6034
6035 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
6036
f709638a
RG
60372008-07-14 Richard Guenther <rguenther@suse.de>
6038
72ea2555 6039 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
f709638a 6040
1f9e1fc6
AK
60412008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
6042
6043 PR target/36745
6044 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
6045 reload for symbol refs moved to r0 with -fPIC.
6046 (legitimize_pic_address): Use the target register as temporary
6047 reg if possible.
6048 (emit_symbolic_move): Adjust comment.
6049 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
6050 New expanders.
6051
5950c3c9
BE
60522008-07-14 Ben Elliston <bje@au.ibm.com>
6053
6054 * c-common.h (C_CPP_HASHNODE): New macro.
6055 * coretypes.h (struct cpp_token): Forward declare.
6056 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
6057 the context-sensitive keyword method.
6058 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
6059 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
6060 expand_bool_pixel): New.
6061 (altivec_categorize_keyword): New function.
6062 (init_vector_keywords): New function.
6063 (rs6000_macro_to_expand): Likewise.
6064 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
6065 compiling an ISO C dialect.
6066
b463e8de
DB
60672008-07-13 Daniel Berlin <dberlin@dberlin.org>
6068
72ea2555 6069 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
b463e8de
DB
6070 (create_expression_by_pieces): Fix typo.
6071 (do_regular_insertion): Use debug counter here too.
6072
f49e46d8
HPN
60732008-07-14 Hans-Peter Nilsson <hp@axis.com>
6074
6075 PR target/35492.
6076 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
6077 CONST_OK_FOR_LETTER_P. All port-local users changed.
6078 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
6079 implement Kp matching power-of-two.
6080 (CONSTRAINT_LEN): Define to match.
6081 * config/cris/cris.md: Replace all use of constraint K with Kc.
6082 ("*btst*): Use Kp for operand 0 of last alternative.
6083
5d94a6d0
JDA
60842008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6085
6086 PR testsuite/36440
6087 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
6088 and quad formats.
6089
4d16a7b7
JH
60902008-07-13 Jan Hubicka <jh@suse.cz>
6091
6092 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
6093 to be mangled too.
6094
f4c91e0d
RG
60952008-07-13 Richard Guenther <rguenther@suse.de>
6096
6097 PR middle-end/36811
6098 * langhooks.c (lhd_print_error_function): Deal with recursive
6099 BLOCK trees.
6100
266ad5c8
JH
61012008-07-12 Jan Hubicka <jh@suse.cz>
6102
6103 * cgraph.c (assembler_name_hash): New static var.
6104 (hash_node_by_assembler_name, eq_assembler_name): New.
6105 (cgraph_node_for_asm): Use hashtable.
6106 (cgraph_remove_node): Maintain hashtable.
6107 (change_decl_assembler_name): Sanity check that names are not changing
6108 after aliasing was processed.
6109 * cgraph.h (varpoon_node): Add next GGC marker.
6110 * tree.c (decl_assembler_name_equal): Constify.
6111 (decl_assembler_name_hash): New.
6112 * tree.h (decl_assembler_name_equal): Constify.
6113 (decl_assembler_name_hash): Update.
6114
a5a12a83
DD
61152008-07-12 David Daney <ddaney@avtrex.com>
6116
6117 * config/mips/driver-native.c (host_detect_local_cpu): Handle
6118 sb1 and r5000 cpus.
6119
2feaae20
RS
61202008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
6121
6122 * doc/md.texi: Document the MIPS "v" constraint.
6123 * config/mips/mips.h (reg_class): Revert last change.
6124 (REG_CLASS_NAMES): Likewise.
6125 (REG_CLASS_CONTENTS): Likewise.
6126 * config/mips/mips.c (mips_regno_to_class): Likewise.
6127 * config/mips/constraints.md (v): Likewise, but add documentation.
6128 Add a comment to say that this constraint should not be used in
6129 gcc code.
6130
a428e1d4
DD
61312008-07-11 DJ Delorie <dj@redhat.com>
6132
6133 * config/h8300/h8300.md (length): Fix branch offset limit.
6134
22129589 61352008-07-11 Anatoly Sokolov <aesok@post.ru>
1cf0a7f1
AS
6136
6137 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
6138 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
6139 (avr_hard_regno_scratch_ok): New function.
6140 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
6141 * config/avr/avr.md (all peepholes that request a scratch register):
6142 Remove avr_peep2_scratch_safe use.
6143
eea1139b
ILT
61442008-07-11 Tom Tromey <tromey@redhat.com>
6145 Ian Lance Taylor <iant@google.com>
6146
6147 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
6148 (struct c_common_resword): Define.
6149 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
6150 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
6151 (c_common_reswords, num_c_common_reswords): Declare.
6152 * c-common.c (c_common_reswords): New global const array.
6153 (num_c_common_reswords): New const int.
6154 * c-parser.c (struct resword, reswords): Don't define.
6155 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
6156 (c_parse_init): Clarify mask code. Use c_common_reswords rather
6157 than reswords. If warning about C++ keywords, give them a special
6158 RID code.
6159 (c_lex_one_token): Warn about C++ keywords. Call
6160 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
6161 (c_parser_external_declaration): Look for RID_xxx rather than
6162 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
6163 (c_parser_statement_after_labels): Likewise.
6164 (c_parser_objc_class_instance_variables): Likewise.
6165 (c_parser_objc_class_declaration): Likewise.
6166 (c_parser_objc_try_catch_statement): Likewise.
6167 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
6168 (declspecs_add_type): Likewise.
6169
ec4d7730
AG
61702008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
6171
6172 * ggc-page.c (alloc_page):
6173 Substituting xmalloc, xcalloc with
6174 XNEWVEC and XCNEWVAR macros which add the
6175 needed casts.
6176
941a9479
RG
61772008-07-11 Richard Guenther <rguenther@suse.de>
6178
6179 PR tree-optimization/36765
6180 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
6181 aliases from HEAP vars to SMTs.
6182
8dd9a120
KG
61832008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6184
6185 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
6186 * configure.ac (loose_warn): Move -Wc++-compat from here...
6187 (strict_warn): ...to here.
6188 * configure: Regenerate.
6189
e68152b6
JM
61902008-07-10 Joseph Myers <joseph@codesourcery.com>
6191
6192 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
6193 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
6194 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
6195 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
6196 excluding more specific h8300-*-* and sh-*-* targets.
6197
6999afe1
DB
61982008-07-10 Daniel Berlin <dberlin@dberlin.org>
6199
72ea2555 6200 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
6999afe1
DB
6201 (eliminate): Ditto.
6202 (execute_pre): Call loop_optimizer_finalize in early exit.
6203
a182fb6b
JJ
62042008-07-10 Jakub Jelinek <jakub@redhat.com>
6205
b826efd9
JJ
6206 PR middle-end/36790
6207 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
6208 uids in the bitmap, not just VAR_DECL uids.
6209
a182fb6b
JJ
6210 PR rtl-optimization/36419
6211 * combine-stack-adj.c (adjust_frame_related_expr): New function.
6212 (combine_stack_adjustments_for_block): Call it if needed. Delete
6213 correct insn.
6214 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
6215 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
6216 prologue sp adjustment.
6217
15e1dac0
PM
62182008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
6219
6220 PR other/28322
a182fb6b 6221 * opts.c (print_ignored_options): Report postponed diagnostics for
15e1dac0 6222 unknown -Wno-* options as warnings, not errors.
a182fb6b
JJ
6223 (postpone_unknown_option_error): Renamed to...
6224 (postpone_unknown_option_warning): ... this.
15e1dac0 6225
62d33f08
DK
62262008-07-09 Doug Kwan <dougkwan@google.com>
6227
6228 Revert:
6229 2008-07-08 Doug Kwan <dougkwan@google.com>
6230
6231 * config/arm/arm.opt (mandroid): New option.
6232 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
6233 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
6234 (CC1_SPEC): Same.
6235 (CC1PLUS_SPEC): Same.
6236 (LIB_SPEC): Same.
6237 (STARTFILE_SPEC): Same.
6238 (ENDFILE_SPEC): Same.
6239 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
6240 used.
6241
256f27f1
RS
62422008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
6243
6244 PR target/35802
6245 * config/mips/mips.h (reg_class): Remove V1_REG.
6246 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
6247 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
6248 instead of V1_REGS.
6249 (mips_get_tp): New function.
6250 (mips_legitimize_tls_address): Use it.
6251 * config/mips/constraints.md (v): Delete.
6252 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
6253 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
6254 After reload, split into a move and ...
6255 (*tls_get_tp_<mode>_split): ...this new instruction.
6256
432b5555
DD
62572008-07-09 David Daney <ddaney@avtrex.com>
6258
6259 * config/mips/driver-native.c: Include coretypes.h and tm.h.
6260
d406b663
JJ
62612008-07-09 Jakub Jelinek <jakub@redhat.com>
6262
6263 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
6264 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
6265 Add c argument.
6266 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
6267 htab_delete should be called. Don't free c.
6268 (lookup_tmp_var): Create temp_htab lazily.
6269 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
6270 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
6271 callers.
6272 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
6273 lower_omp_ordered, lower_omp_critical, lower_omp_for,
22129589 6274 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
d406b663
JJ
6275 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
6276 * tree-sra.c (generate_element_init): Likewise.
6277 * tree-mudflap.c (execute_mudflap_function_ops,
6278 execute_mudflap_function_decls): Likewise.
6279 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
6280 * tree-gimple.h (struct gimplify_ctx): New type.
6281 (push_gimplify_context): Adjust prototype.
6282
b0a0ab2d
DB
62832008-07-09 Daniel Berlin <dberlin@dberlin.org>
6284
6285 * tree-ssa-pre.c (phi_translate_1): Update placement of
6286 add_to_value calls.
6287
dbc42c44
AS
62882008-07-09 Anatoly Sokolov <aesok@post.ru>
6289
6290 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
6291 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
6292 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
6293 * targhooks.c (default_hard_regno_scratch_ok): New function.
6294 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
6295 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
6296 * recog.c: Include "target.h".
6297 (peep2_find_free_register): Add check for global regs. Add target
6298 specific check.
6299 * Makefile.in (recog.o): Depend on target.h.
6300
28f16d05
KK
63012008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
6302
6303 * config/sh/sh.c (sh_canonical_va_list_type): New.
6304 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
6305
1ebc7e68
RA
63062008-07-09 Raksit Ashok <raksit@google.com>
6307
6308 * doc/invoke.texi (Option Summary): Mention new option
6309 -Wdisallowed-function-list=...
6310 (Warning Options): Document -Wdisallowed-function-list=...
6311 * common.opt (Wdisallowed-function-list=): New flag.
6312 * flags.h (warn_disallowed_functions): External definition of new
6313 boolean warning flag.
6314 (warn_if_disallowed_function_p): Declare new function.
6315 * opts.c (warning_disallowed_functions): New static variable.
6316 (warn_disallowed_functions): New boolean warning flag.
6317 (warn_if_disallowed_function_p): New function.
6318 (add_comma_separated_to_vector): Rename
6319 add_instrument_functions_exclude_list to this.
6320 (common_handle_option): Handle new option. Rename calls to
6321 add_instrument_functions_exclude_list into calls to
6322 add_comma_separated_to_vector.
6323 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
6324 based on flag warn_disallowed_functions.
6325
47d268d0
CB
63262008-07-09 Christian Bruel <christian.bruel@st.com>
6327
6328 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
6329 instead of get_attr_length.
6330
8ad97cfc
KG
63312008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6332
6333 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
6334 keywords.
6335 * genemit.c (gen_insn): Likewise.
6336 * gengtype.c (note_def_vec): Likewise.
6337 * gengtype.h (note_def_vec): Likewise.
6338 * genoutput.c (struct data, output_insn_data, process_template,
6339 gen_expand, gen_split, note_constraint): Likewise.
6340 * genrecog.c (new_decision, add_to_sequence, factor_tests,
6341 make_insn_sequence): Likewise.
6342 * gensupport.c (record_insn_name): Likewise.
6343
588021c0
DK
63442008-07-08 Doug Kwan <dougkwan@google.com>
6345
6346 * config/arm/arm.opt (mandroid): New option.
6347 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
6348 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
6349 (CC1_SPEC): Same.
6350 (CC1PLUS_SPEC): Same.
6351 (LIB_SPEC): Same.
6352 (STARTFILE_SPEC): Same.
6353 (ENDFILE_SPEC): Same.
6354 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
6355 used.
6356
9946ca2d
RA
63572008-07-08 Raksit Ashok <raksit@google.com>
6358
6359 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
6360 (set_storage_via_setmem): Fix expected_align parameter.
6361 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
6362 missing from the list.
6363 * doc/md.texi (movmem): Explicitly state that expected alignment is
6364 to be expressed in bytes.
6365 (setmem): Explicitly state that expected alignment is to be expressed
6366 in bytes.
6367
10932211
JM
63682008-07-08 Joseph Myers <joseph@codesourcery.com>
6369
6370 * reload.c (find_reloads_subreg_address): Do not require validity
6371 of address in original mode before reloading address.
6372
7039a415
TS
63732008-07-07 Tianwei Sheng <tianweis@google.com>
6374
6375 * df-core.c (df_remove_problem): Adjust the access to avoid out of
6376 bounds array access.
6377
4c44c315
JJ
63782008-07-08 Jakub Jelinek <jakub@redhat.com>
6379
72ea2555 6380 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4c44c315 6381
c9145754 63822008-07-05 Daniel Berlin <dberlin@dberlin.org>
22129589 6383
c9145754
DB
6384 Fix PR tree-optimization/23455
6385 Fix PR tree-optimization/35286
6386 Fix PR tree-optimization/35287
6387 * Makefile.in (OBJS-common): Remove tree-vn.o.
72ea2555 6388 (tree-vn.o): Remove.
c9145754
DB
6389 * dbgcnt.def: Add treepre_insert debug counter.
6390 * gcc/tree-flow.h (add_to_value): Updated for other changes.
6391 (debug_value_expressions): Ditto.
6392 (print_value_expressions): Ditto.
6393 * tree-pretty-print.c (dump_generic_node): Updated for
6394 VALUE_HANDLE removal.
6395 * tree-ssa-dom.c (record_equality): Ditto.
6396 (cprop_operand): Ditto.
6397 (lookup_avail_expr): Ditto.
6398 * tree-ssa-threadedge.c
6399 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
6400 (simplify_control_stmt_condition): Ditto.
6401 * tree.c (tree_code_size): Ditto.
6402 (tree_node_structure): Ditto.
6403 (iterative_hash_expr): Ditto.
6404 * tree.def: Ditto.
6405 * tree.h (VALUE_HANDLE_ID): Ditto.
6406 (VALUE_HANDLE_EXPR_SET): Ditto.
6407 (struct tree_value_handle): Ditto.
6408 (union tree_node): Ditto.
6409 * treestruct.def: Ditto.
6410 * tree-vn.c: Removed.
6411 * tree-ssa-pre.c: Rewritten entirely.
6412 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
6413 (constant_value_ids): Ditto.
6414 (vn_nary_op_t): Moved to header.
6415 (vn_phi_t): Ditto.
6416 (vn_reference_op_t): Ditto
6417 (vn_reference_t): Ditto.
6418 (next_value_id): New variable.
6419 (VN_INFO): Add an assert.
6420 (vn_constant_eq): New function.
6421 (vn_constant_hash): Ditto.
6422 (get_or_alloc_constant_value_id): Ditto.
6423 (value_id_constant_p): Ditto.
6424 (vn_reference_compute_hash): De-staticify.
6425 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
72ea2555
UB
6426 Disable some code with a FIXME. Remove VALUE_HANDLE use.
6427 (valueize_refs): Update opcode if it changes from ssa name to constant.
c9145754
DB
6428 (vn_reference_lookup_1): Add new argument.
6429 (vn_reference_lookup): Ditto.
6430 (vn_reference_lookup_pieces): New function.
72ea2555 6431 (vn_reference_insert): Add return type. Modify to deal with value ids.
c9145754
DB
6432 (vn_reference_insert_pieces): New function.
6433 (vn_nary_op_compute_hash): De-staticify.
6434 (vn_nary_op_eq): Ditto.
6435 (vn_nary_op_lookup_pieces): New function.
22129589 6436 (vn_nary_op_lookup): Add new argument.
c9145754 6437 (vn_nary_op_insert_pieces): New function.
72ea2555 6438 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
c9145754
DB
6439 (vn_phi_insert): Ditto.
6440 (visit_unary_op): Update for callee changes.
6441 (visit_binary_op): Ditto.
6442 (visit_reference_op_load): Ditto.
6443 (visit_reference_op_store): Ditto.
6444 (init_scc_vn): Init next_value_id, constant_to_value_id and
22129589 6445 constant_value_ids.
c9145754
DB
6446 (free_scc_vn): Free them.
6447 (set_hashtable_value_ids): New function.
6448 (run_scc_vn): Use it.
6449 (get_max_value_id): New function.
6450 (get_next_value_id): Ditto.
6451 (expressions_equal_p): Moved from tree-vn.c
6452 (sort_vuses): Ditto.
6453 (sort_vuses_heap): Ditto.
6454 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
6455 above).
6456 * tree.c (iterative_hash_hashval_t): Made non-static
6457 * tree.h (iterative_hash_hashval_t): Declare it.
22129589 6458
771578a0
MJ
64592008-07-08 Martin Jambor <mjambor@suse.cz>
6460
6461 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
6462 instead of ipa_create_node_params.
6463 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
6464 ipa_check_create_edge_args, free them with
6465 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
6466
6467 * ipa-prop.c: Include flags.h and tree-inline.h.
6468 (ipa_node_params_vector): New variable.
6469 (ipa_edge_args_vector): New variable.
6470 (edge_removal_hook_holder): New variable.
6471 (node_removal_hook_holder): New variable.
6472 (edge_duplication_hook_holder): New variable.
6473 (node_duplication_hook_holder): New variable.
6474 (ipa_detect_param_modifications): Check for presence of modified flags.
6475 (ipa_compute_jump_functions): Check for presence of jump functions.
6476 (ipa_free_edge_args_substructures): New function.
6477 (ipa_create_node_params): Removed.
6478 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
6479 (ipa_free_node_params_substructures): New function.
6480 (ipa_free_all_node_params): Changed to deallocate the on-the-side
6481 vector.
6482 (ipa_edge_removal_hook): New function.
6483 (ipa_node_removal_hook): New function.
6484 (duplicate_array): New function.
6485 (ipa_edge_duplication_hook): New function.
6486 (ipa_node_duplication_hook): New function.
6487 (ipa_register_cgraph_hooks): New function.
6488 (ipa_unregister_cgraph_hooks): New function.
6489 (free_all_ipa_structures_after_ipa_cp): New function.
22129589 6490
771578a0
MJ
6491 * ipa-prop.h: Include vec.h.
6492 (ipa_node_params_t): New typedef with vector types for it.
6493 (ipa_edge_args_t): New typedef with vector types for it.
6494 (IPA_NODE_REF): Changed to access an on-the-side vector.
6495 (IPA_EDGE_REF): Changed to access an on-the-side vector.
6496 (ipa_check_create_node_params): New function.
6497 (ipa_check_create_edge_args): New function.
22129589 6498
771578a0
MJ
6499 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
6500 all users.
22129589 6501
d2e506f2
TT
65022008-07-07 Tom Tromey <tromey@redhat.com>
6503
6504 * configure, config.in: Rebuilt.
6505 * configure.ac: Don't check for scandir or alphasort.
6506
bcbdbbb0
JM
65072008-07-07 Joseph Myers <joseph@codesourcery.com>
6508
6509 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
6510 types immediately after creating them.
6511
5cef5bf5
JM
65122008-07-07 Joseph Myers <joseph@codesourcery.com>
6513
6514 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
6515
fc93bcb6
FP
65162008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
6517
72ea2555
UB
6518 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
6519 dump_constraint_graph.
6520 (dump_constraint_edge): New function.
6521 (dump_constraint_graph): New function.
6522 (debug_constraint_graph): New function.
6523 (dump_constraint): Removed useless comparison.
6524 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
6525 (dump_constraint_graph): Declare.
6526 (debug_constraint_graph): Declare.
6527 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
fc93bcb6 6528
8432ea85
KT
65292008-07-07 Kai Tietz <kai.tietz@onevision.com>
6530
6531 * config/i386/i386.c (is_va_list_char_pointer): New.
6532 (ix86_va_start): Replace compare with ms_va_list_type_node
6533 by is_va_list_char_pointer.
6534 (ix86_gimplify_va_arg): Likewise.
6535
9088c1cc
MJ
65362008-07-07 Martin Jambor <mjambor@suse.cz>
6537
6538 * cgraph.c (cgraph_edge_max_uid): New variable.
6539 (struct cgraph_edge_hook_list): New type.
6540 (struct cgraph_node_hook_list): New type.
6541 (struct cgraph_2edge_hook_list): New type.
6542 (struct cgraph_2node_hook_list): New type.
6543 (first_cgraph_edge_removal_hook): New variable.
6544 (first_cgraph_node_removal_hook): New variable.
6545 (first_cgraph_edge_duplicated_hook): New variable.
6546 (first_cgraph_node_duplicated_hook): New variable.
6547 (cgraph_add_edge_removal_hook): New function.
6548 (cgraph_remove_edge_removal_hook): New function.
6549 (cgraph_call_edge_removal_hooks): New function.
6550 (cgraph_add_node_removal_hook): New function.
6551 (cgraph_remove_node_removal_hook): New function.
6552 (cgraph_call_node_removal_hooks): New function.
6553 (cgraph_add_edge_duplication_hook): New function.
6554 (cgraph_remove_edge_duplication_hook): New function.
6555 (cgraph_call_edge_duplication_hooks): New function.
6556 (cgraph_add_node_duplication_hook): New function.
6557 (cgraph_remove_node_duplication_hook): New function.
6558 (cgraph_call_node_duplication_hooks): New function.
6559 (cgraph_create_edge): Assign to edge uid.
6560 (cgraph_remove_edge): Call edge removal hooks.
6561 (cgraph_node_remove_callees): Call edge removal hooks.
6562 (cgraph_node_remove_callers): Call edge removal hooks.
6563 (cgraph_remove_node): Call node removal hooks.
6564 (cgraph_clone_edge): Call edge duplication hooks.
6565 (cgraph_clone_node): Call node duplication hooks.
6566
6567 * cgraph.h (cgraph_edge): New field uid.
6568 (cgraph_edge_hook): New type.
6569 (cgraph_node_hook): New type.
6570 (cgraph_2edge_hook): New type.
6571 (cgraph_2node_hook): New type.
6572
c71618c6
AT
65732008-07-07 Andreas Tobler <a.tobler@schweiz.org>
6574
6575 * config.in: Regenerate.
6576
3def1397
VP
65772008-07-07 Vladimir Prus <vladimir@codesourcery.com>
6578
6579 * gcc.c (print_sysroot): New.
6580 (option_map, display_help, process_command): Handle the
6581 -print-sysroot option.
6582 (main): Print the sysroot if requested.
6583 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
22129589 6584
40a420d5
RW
65852008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6586
6587 PR target/34780
6588 * unwind-pe.h (size_of_encoded_value): add attribute unused.
6589
85776d60
DJ
65902008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
6591
72ea2555 6592 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
85776d60
DJ
6593 (assign_parm_setup_block_p): Also check mode of entry_parm.
6594
bf87f41c
RG
65952008-07-07 Richard Guenther <rguenther@suse.de>
6596
6597 * tree-ssa-structalias.h (set_used_smts): Remove.
6598 * tree-ssa-structalias.c (used_smts): Likewise.
6599 (set_used_smts): Likewise.
6600 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
6601 call to set_used_smts.
6602
e5bae89b
RG
66032008-07-07 Richard Guenther <rguenther@suse.de>
6604
6605 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
6606 (new_var_info): Set it to false.
6607 (solution_set_add): Correctly handle pointers outside a var and
6608 inside a field.
6609 (type_safe): Treat variables with is_full_var properly.
6610 (do_sd_constraint): Likewise.
6611 (do_ds_constraint): Likewise.
6612 (process_constraint): Remove zeroing offset for !use_field_sensitive.
6613 (get_constraint_for_ptr_offset): New function.
6614 (get_constraint_for_component_ref): For addresses at least include
6615 the last field of the variable. Handle is_full_vars properly.
6616 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
6617 (handle_ptr_arith): Remove.
6618 (find_func_aliases): Simplify assignment handling.
6619 (create_function_info_for): For parameter and result varinfos set
6620 is_full_var flag.
6621 (create_variable_info_for): Set is_full_var flag whenever we
6622 just created a single varinfo for a decl.
6623 (init_alias_vars): Initialize use_field_sensitive from
6624 max-fields-for-field-sensitive parameter.
6625
115340c7
RG
66262008-07-07 Richard Guenther <rguenther@suse.de>
6627
6628 PR tree-optimization/36713
6629 * tree-flow-inline.h (is_call_used): New function.
6630 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
6631 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6632 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
6633
511e41e5
MK
66342008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
6635
6636 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
22129589 6637
bd0e50ee
MS
66382008-07-07 Mark Shinwell <shinwell@codesourcery.com>
6639
6640 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
6641
368b55f6
NS
66422008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
6643 Nathan Sidwell <nathan@codesourcery.com>
6644
6645 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
6646 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
6647 tmake_file.
6648 * config/m68k/t-linux: New.
6649 * doc/install.texi: Document m68k-*-linux is now multilibbed by
6650 default.
6651
66522008-07-07 Nathan Sidwell <nathan@codesourcery.com>
6653
6654 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
6655 * config/m68k/m68k-devices.def: Remove multilibs that only differ
6656 by MAC/EMAC.
6657
63ab5b8c
KG
66582008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6659
6660 * gcc.c (execute): Fix -Wc++-compat warning.
6661
9eb578c8
L
66622008-07-06 H.J. Lu <hongjiu.lu@intel.com>
6663
6664 PR target/36720
6665 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
6666 constant for little endian.
6667
60730ade
RS
66682008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
6669
6670 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
6671 mips_base_mips16 instead of TARGET_MIPS16.
6672 (mips_base_mips16): Declare.
6673 * config/mips/mips.c (mips_base_mips16): Make global.
6674 (was_mips16_p): Remove GTY marker.
6675 (was_mips16_pch_p): New variable.
6676 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
6677 (mips_override_options): Force to non-MIPS16 mode initially.
6678 Do not complain about MIPS16 PIC incompatibilities here.
6679 Only allow -mgpopt if -mexplicit-relocs is in force for
6680 non-MIPS16 code.
6681
bba09b5a
AT
66822008-07-06 Andreas Tobler <a.tobler@schweiz.org>
6683
6684 * configure.ac: Check for caddr_t, define to char * if not defined.
6685 * configure: Regenerate.
6686 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
6687 (mmap_gt_pch_use_address): Likewise.
6688 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
6689
ee7d4b57
RG
66902008-07-06 Richard Guenther <rguenther@suse.de>
6691
6692 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
6693 (new_var_info): Deal with it.
6694 (solution_set_add): Likewise.
6695 (bitpos_of_field): Make signed, fix.
6696 (struct fieldoff): Remove type and decl fields. Make size field
6697 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
6698 flags.
6699 (fieldoff_compare): Deal with it.
6700 (push_fields_onto_fieldstack): Remove has_union argument, glob
6701 adjacent non-pointer fields together.
6702 (create_function_info_for): Do not set has_union.
6703 (create_variable_info_for): Simplify.
6704
35cbb299
KT
67052008-07-06 Kai Tietz <kai.tietz@onevision.com>
6706
6707 * config.gcc (extra_headers): Add cross-stdarg.h for target
6708 x86_64-*-* and i?86-*-*.
6709 * config/i386/cross-stdarg.h: New.
6710 * builtins.c (std_fn_abi_va_list): New.
6711 (std_canonical_va_list_type): New.
6712 (stabilize_va_list): Replace va_list_type_node use by
6713 mtarget.canonical_va_list_type.
6714 (gimplify_va_arg_expr): Likewise.
6715 (expand_builtin_va_copy): Replace va_list_type_node use by
6716 mtarget.fn_abi_va_list.
6717 * tree-sra.c (is_va_list_type): New helper.
6718 (decl_can_be_decomposed_p): Replace
6719 va_list_type_node use by is_va_list_type.
6720 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
6721 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6722 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
6723 * config/i386/i386-protos.h (ix86_get_valist_type): New.
6724 (ix86_enum_va_list): New.
6725 * config/i386/i386.c (sysv_va_list_type_node): New.
6726 (ms_va_list_type_node): New.
6727 (ix86_function_type_abi): Remove sorry.
6728 (ix86_build_builtin_va_list_abi): New.
6729 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
6730 for 64-bit targets.
6731 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
6732 (ix86_init_builtins_va_builtins_abi): New.
6733 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
6734 for 64-bit targets.
6735 (ix86_handle_abi_attribute): New.
6736 (attribute_spec): Add sysv_abi and ms_abi.
6737 (ix86_fn_abi_va_list): New.
6738 (ix86_canonical_va_list_type): New.
6739 (ix86_enum_va_list): New.
6740 (TARGET_FN_ABI_VA_LIST): New.
6741 (TARGET_CANONICAL_VA_LIST_TYPE): New.
6742 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
6743 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
6744 (TARGET_CANONICAL_VA_LIST_TYPE): New.
6745 (TARGET_ENUM_VA_LIST): New.
6746 * expr.h (std_fn_abi_va_list): New.
6747 (std_canonical_va_list_type): New.
6748 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
6749 (TARGET_CANONICAL_VA_LIST_TYPE): New.
6750 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
6751 TARGET_CANONICAL_VA_LIST_TYPE.
6752 * target.h (struct gcc_target): Add fn_abi_va_list hook
6753 and canonical_va_list_type hook.
6754
0e4b00d6
AP
67552008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
6756
6757 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
6758 integral and pointer types.
6759
33c7eedf
RS
67602008-07-04 Roger Sayle <roger@eyesopen.com>
6761
72ea2555 6762 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
33c7eedf
RS
6763 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
6764
0dcd6f42
KK
67652008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
6766
6767 PR target/36684
72ea2555 6768 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
0dcd6f42 6769
04e78aa9
JJ
67702008-07-04 Jakub Jelinek <jakub@redhat.com>
6771
6772 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
6773 build_gimple_modify_stmt.
6774 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
6775 gimple operand. Use fold_build* instead of build*.
6776
0e1f4c6b
RG
67772008-07-04 Richard Guenther <rguenther@suse.de>
6778
6779 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
6780 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
6781 properly to compute the reachability set if we do field-sensitive PTA.
6782 * invoke.texi (max-fields-for-field-sensitive): Document default.
6783 * opts.c (decode_options): Set max-fields-for-field-sensitive to
6784 100 for optimize >= 2.
6785
bf8e9c49
KG
67862008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6787
6788 * ggc-zone.c (lookup_page_table_if_allocated,
6789 set_page_table_entry, zone_find_object_size, alloc_small_page,
6790 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
6791 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
6792 -Wc++-compat and/or -Wcast-qual warnings.
6793
1d3155fc
AM
67942008-07-04 Alan Modra <amodra@bigpond.net.au>
6795
6796 PR target/36634
6797 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
6798 pic_offset_table_rtx to be marked as used here.
6799 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
6800 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
6801 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
6802 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
6803 !TARGET_SECURE_PLT.
6804
aebde504
KG
68052008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6806
6807 * alloc-pool.c (hash_descriptor, eq_descriptor,
6808 alloc_pool_descriptor): Fix -Wc++-compat warnings.
6809 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
6810 Likewise.
6811 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
6812 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
72ea2555 6813 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
aebde504
KG
6814 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
6815 Likewise.
6816
52778e2a
EB
68172008-07-03 Eric Botcazou <ebotcazou@adacore.com>
6818
6819 * tree-flow.h (loop_only_exit_p): Declare.
6820 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
6821 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
6822 the number of iterations if it is constant. Otherwise, if this is the
6823 only possible exit of the loop, use the conservative estimate on the
6824 number of iterations of the entire loop if available.
6825
f92518d7
RS
68262008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
6827
6828 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
6829 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
6830 Add synchronization functions.
6831 * config/sync.c: New file.
6832 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
6833 (LIBGCC_SYNC_CFLAGS): Likewise.
6834
dcde22ac
UB
68352008-07-03 Uros Bizjak <ubizjak@gmail.com>
6836
6837 PR target/36710
6838 * config/i386/i386.md (mode): Add TF to "mode" attribute.
6839 (*pushtf_sse): New insn pattern.
6840 (pushtf splitters): New splitters.
6841
9d7e5c4d
MM
68422008-07-03 Michael Meissner <gnu@the-meissners.org>
6843
6844 PR middle-end/35736
6845 * predict.c (build_predict_expr): Use void_type_node for the tree
6846 type, instead of NULL_TREE.
6847
192f2d33
L
68482008-07-03 H.J. Lu <hongjiu.lu@intel.com>
6849
6850 * config/i386/i386.c (contains_aligned_value_p): Return true
6851 for TCmode.
6852 (ix86_data_alignment): Align TCmode to 128bits.
6853 (ix86_local_alignment): Likewise.
6854
70d3fcab
AH
68552008-07-03 Andrew Haley <aph@redhat.com>
6856
6857 PR bootstrap/33304
6858 * vec.h (VEC_TA): New.
6859 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
6860 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
6861 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
6862 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
6863 (C_COMMON_FIXED_TYPES): Remove first arg.
6864 (C_COMMON_FIXED_MODE_TYPES): Likewise.
6865 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
6866 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
6867 not to use empty macro arguments.
6868
1935a7ef
JM
68692008-07-02 Joseph Myers <joseph@codesourcery.com>
6870
6871 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
6872 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
6873 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
6874 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
6875 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
6876 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
6877 config/ia64/crtn.asm, config/m68hc11/larith.asm,
6878 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
6879 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
6880 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
6881 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
6882 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
6883 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
6884 config/rs6000/e500crtres64gpr.asm,
6885 config/rs6000/e500crtres64gprctr.asm,
6886 config/rs6000/e500crtrest32gpr.asm,
6887 config/rs6000/e500crtrest64gpr.asm,
6888 config/rs6000/e500crtresx32gpr.asm,
6889 config/rs6000/e500crtresx64gpr.asm,
6890 config/rs6000/e500crtsav32gpr.asm,
6891 config/rs6000/e500crtsav64gpr.asm,
6892 config/rs6000/e500crtsav64gprctr.asm,
6893 config/rs6000/e500crtsavg32gpr.asm,
6894 config/rs6000/e500crtsavg64gpr.asm,
6895 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
6896 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
6897 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
6898 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
6899 config/sparc/sol2-cn.asm: Remove .file directives.
6900
1b929c9a
RS
69012008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
6902
6903 * resource.c (mark_referenced_resources): Look inside
6904 UNSPEC_VOLATILEs and ASM_INPUTs.
6905
65c5f2a6
ILT
69062008-07-02 Ian Lance Taylor <iant@google.com>
6907
6908 * rtlanal.c (add_reg_note): New function.
6909 * rtl.h (add_reg_note): Declare.
6910 * auto-inc-dec.c (attempt_change): Use add_reg_note.
6911 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
6912 * builtins.c (expand_builtin_longjmp): Likewise.
6913 (expand_builtin_nonlocal_goto): Likewise.
6914 * calls.c (emit_call_1, expand_call): Likewise.
6915 * cfgexpand.c (add_reg_br_prob_note): Likewise.
6916 * cfglayout.c (fixup_reorder_chain): Likewise.
6917 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6918 (commit_one_edge_insertion): Likewise.
6919 * combine.c (move_deaths, distribute_notes): Likewise.
6920 * df-problems.c (df_set_note): Likewise.
6921 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
6922 (set_unique_reg_note): Likewise.
6923 (emit_copy_of_insn_after): Likewise.
6924 * expr.c (expand_expr_real): Likewise.
6925 * gcse.c (add_label_notes): Likewise.
6926 * haifa-sched.c (create_check_block_twin): Likewise.
6927 * jump.c (mark_jump_label_1): Likewise.
6928 * loop-doloop.c (add_test, doloop_modify): Likewise.
6929 * loop-unswitch.c (compare_and_jump_seq): Likewise.
6930 * lower-subreg.c (move_eh_region_note): Likewise.
6931 * optabs.c (emit_libcall_block): Likewise.
6932 * predict.c (predict_insn): Likewise.
6933 (combine_predictions_for_insn): Likewise.
6934 * recog.c (peephole2_optimize): Likewise.
6935 * regmove.c (try_auto_increment): Likewise.
6936 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
6937 * reload.c (find_reloads): Likewise.
6938 * reload1.c (fixup_eh_region_note): Likewise.
6939 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
6940 * reorg.c (delete_prior_computation): Likewise.
6941 (delete_computation, dbr_schedule): Likewise.
6942 * config/pa/pa.c (legitimize_pic_address): Likewise.
6943 * config/sh/sh.c (sh_reorg): Likewise.
6944
ff473280
L
69452008-07-02 H.J. Lu <hongjiu.lu@intel.com>
6946
6947 PR target/36669
6948 * config/libgcc-glibc.ver: Add %exclude.
6949 * config/m32r/libgcc-glibc.ver: Likwise.
6950 * config/s390/libgcc-glibc.ver: Likwise.
6951 * config/sh/libgcc-glibc.ver: Likwise.
6952 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
6953
6954 * config/i386/libgcc-glibc.ver: New.
6955
6956 * config/i386/libgcc-x86_64-glibc.ver: Removed.
6957
69582008-07-02 H.J. Lu <hongjiu.lu@intel.com>
6959
6960 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
6961 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
6962 i[34567]86-*-linux*, x86_64-*-linux*. Add
6963 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
6964 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
6965 x86_64-*-linux*. Add i386/t-linux to tmake_file for
6966 i[34567]86-*-linux*, x86_64-*-linux*.
6967
6968 * libgcc-std.ver: Add empty GCC_4.4.0.
6969
6970 * mkmap-symver.awk: Support multiple versions per symbol.
6971
6972 * config/i386/i386.c (ix86_init_builtins): Always define
6973 __builtin_fabsq and __builtin_copysignq with fallbacks.
6974 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
6975 and __builtin_copysignq if SSE2 isn't available.
6976
6977 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
6978 (LIBGCC2_TF_CEXT): Likwise.
6979 (TF_SIZE): Likwise.
6980
6981 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
6982
6983 * config/i386/sfp-machine.h: Moved to libgcc.
6984
6985 * config/i386/sfp-machine.h: New.
6986 * config/i386/t-linux: Likwise.
6987
6988 * config/i386/t-darwin: Remove softfp_wrap_start and
6989 softfp_wrap_end.
6990 * config/i386/t-darwin64: Likewise.
6991
6992 * config/i386/t-fprules-softfp64: Renamed to ...
6993 * config/i386/t-fprules-softfp: This.
6994
6995 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
6996 and softfp_wrap_end.
6997
09357846
JM
69982008-07-02 Jason Merrill <jason@redhat.com>
6999
6010fae7
JM
7000 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
7001
09357846
JM
7002 * tree.c (ctor_to_list): New fn.
7003 * tree.h: Declare it.
7004 (CONSTRUCTOR_ELT): New macro.
7005 (CONSTRUCTOR_NELTS): New macro.
7006
795a337a
RG
70072008-07-02 Richard Guenther <rguenther@suse.de>
7008
7009 * tree-ssa-structalias.c (struct variable_info): Reorder
7010 to fill padding on 64bit hosts. Make collapsed_to an int.
7011 (get_varinfo_fc): Deal with that.
7012 (new_var_info): Likewise.
7013 (collapse_rest_of_var): Likewise.
7014
c9db365d
JS
70152008-07-02 Joshua Sumali <jsumali@redhat.com>
7016
7017 * doc/install.texi (--enable-java-home): Document.
7018 (--enable-aot-compile-rpm): Likewise.
7019 (--with-arch-directory): Likewise.
7020 (--with-os-directory): Likewise.
7021 (--with-origin-name): Likewise.
7022 (--with-arch-suffix): Likewise.
7023 (--with-jvm-root-dir): Likewise.
7024 (--with-jvm-jar-dir): Likewise.
7025 (--with-python-dir): Likewise.
7026
9e11641d
RG
70272008-07-02 Richard Guenther <rguenther@suse.de>
7028
7029 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
7030 from decls explicitly. Merge operand checking from tuples.
7031
3fe1efe4
MJ
70322008-07-02 Martin Jambor <mjambor@suse.cz>
7033
7034 * tree-switch-conversion.c: Included timevar.h which I forgot before.
22129589 7035
a167a676
MJ
70362008-07-02 Martin Jambor <mjambor@suse.cz>
7037
7038 * tree-switch-conversion.c: Included timevar.h
7039 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
7040
7041 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
7042
b1ae1681
MJ
70432008-07-02 Martin Jambor <mjambor@suse.cz>
7044
7045 * tree-switch-conversion.c: Corrected various comments and
7046 whitespace issues
7047 (build_constructors): Fixed minor formatting mistakes.
7048
7049 * invoke.texi (Optimize Options): Corrected the
7050 switch-conversion-max-branch-ratio parameter.
7051
5bc4fa7c
MS
70522008-07-02 Mark Shinwell <shinwell@codesourcery.com>
7053
7054 * final.c (asm_insn_count): Return zero for an empty asm body.
7055
5f0d975b
RG
70562008-07-02 Richard Guenther <rguenther@suse.de>
7057
7058 * bitmap.h (bitmap_set_bit): Return bool.
7059 (bitmap_clear_bit): Likewise.
7060 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
7061 write to the bitmap if it would.
7062 (bitmap_clear_bit): Likewise.
7063 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
7064 bitmap_set_bit return value.
7065 (add_pred_graph_edge): Likewise.
7066 (add_graph_edge): Likewise.
7067 (do_sd_constraint): Likewise.
7068 (do_ds_constraint): Likewise.
7069
7a6942ad
KG
70702008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7071
7072 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
7073 Fix -Wc++-compat and/or -Wcast-qual warnings.
7074 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
7075 gen_regparm_prefix): Likewise.
7076 * vmsdbgout.c (write_modbeg, lookup_filename,
7077 vmsdbgout_source_line, vmsdbgout_init): Likewise.
7078
20384976
DS
70792008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
7080
7081 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
7082 defaults.h definition apply.
7083
4d2a9850
DJ
70842008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
7085
7086 * function.c (assign_parm_remove_parallels): New.
7087 (assign_parm_setup_block_p): Do not return true for non-BLKmode
7088 PARALLELs.
7089 (assign_parm_setup_block): Do not handle them.
7090 (assign_parm_setup_reg, assign_parm_setup_stack): Call
7091 assign_parm_remove_parallels.
7092
f83c7f63
DJ
70932008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
7094
7095 * c-typeck.c (convert_for_assignment): Use
7096 vector_targets_convertible_p.
7097 * c-common.c (vector_targets_convertible_p): New.
7098 * c-common.h (vector_targets_convertible_p): New prototype.
7099 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
7100 opaque_p_V2SI_type_node.
7101
103a6411
SE
71022008-07-01 Steve Ellcey <sje@cup.hp.com>
7103
7104 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
7105 RFmode constants.
7106
f3e10a2b
UB
71072008-07-01 Uros Bizjak <ubizjak@gmail.com>
7108
7109 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
7110 TFmode constants via two element DImode vector for hosts with
7111 HOST_BITS_PER_WIDE_INT < 64.
7112 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
7113 also for HOST_BITS_PER_WIDE_INT < 64.
7114
c0d459f0
RG
71152008-07-01 Richard Guenther <rguenther@suse.de>
7116
7117 PR tree-optimization/36666
7118 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
7119 (get_constraint_exp_from_ssa_var): Split into ...
7120 (get_constraint_exp_for_temp): ... this ...
7121 (get_constraint_for_ssa_var): ... and that.
7122 Return constraint expressions for all touched sub-fields
7123 if the results address is not taken.
7124 (process_constraint): Remove assertion that aggregate
7125 assignments do not happen at this place.
7126 (get_constraint_for_component_ref): Add address_p argument.
7127 Return constraint expressions for all touched sub-fields
7128 if the results address is not taken.
7129 (do_deref): Use get_constraint_exp_for_temp.
7130 (get_constraint_for_1): Rename from ...
f3e10a2b 7131 (get_constraint_for): ... this. Add the old function as wrapper.
c0d459f0
RG
7132 (do_structure_copy): Use get_constraint_for_1.
7133
b6e99746 71342008-07-01 Martin Jambor <mjambor@suse.cz>
c0d459f0 7135
dcde22ac
UB
7136 * Makefile.in (tree-switch-conversion.o): Add.
7137 (OBJS-common): Add tree-swtch-conversion.o.
7138 * passes.c (init_optimization_passes): Add pass_convert_switch.
7139 * tree-pass.h: (pass_convert_switch): Add.
7140 * tree-switch-conversion.c: New file.
7141 * gcc.dg/tree-ssa/cswtch.c: New testcase.
7142 * common.opt (ftree-cswtch): New option.
7143 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
7144 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
7145 * opts.c (decode_options): Set flag_tree_switch_conversion when
7146 optimization level is >= 2.
7147 * doc/invoke.texi (Optimize Options): Added description of
7148 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
b6e99746 7149
3043c804
KG
71502008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7151
7152 * config/darwin-driver.c (darwin_default_min_version): Fix
7153 -Wc++-compat warnings.
7154
f3e10a2b 71552008-06-30 Uros Bizjak <ubizjak@gmail.com>
33af070f
UB
7156
7157 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
7158 of operand 0.
7159
727683a5
KZ
71602008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
7161
f3e10a2b 7162 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
22129589 7163
370f38e8
KZ
71642008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
7165
a8f77bad 7166 PR rtl-optimization/34744
f3e10a2b 7167 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
dcde22ac 7168 (df_scan_free_internal): Free data structures not
370f38e8
KZ
7169 allocated in storage pools.
7170 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
f3e10a2b 7171 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
370f38e8
KZ
7172 df_scan_free_mws_vec.
7173 * dse.c (dse_step6): Free offset_map_p and offset_map_n
7174 unconditionally.
7175
5bb77598
L
71762008-06-30 H.J. Lu <hongjiu.lu@intel.com>
7177
7178 * config/i386/i386.c (contains_aligned_value_p): Return true
7179 for __float128.
33af070f 7180 (ix86_function_arg_boundary): Return its natural boundary
5bb77598
L
7181 for __float128.
7182 (return_in_memory_32): Don't check TDmode.
7183 (ix86_split_to_parts): Support splitting into 4 parts and
7184 support TFmode for 32bit target.
7185 (ix86_split_long_move): Support splitting into 4 parts.
7186 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
7187 for SSE2.
33af070f 7188 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5bb77598
L
7189 (ix86_init_builtins): Here.
7190 (ix86_scalar_mode_supported_p): Always return true for TFmode.
7191 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
22129589 7192 'q' and 'w', respectively.
5bb77598
L
7193
7194 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
7195 TARGET_64BIT.
7196 (movtf_internal): Likewise.
7197 (<code>tf2): Likewise.
7198 (*absnegtf2_sse): Likewise.
7199 (copysign<mode>3): Likewise.
7200 (copysign<mode>3_const): Likewise.
7201 (copysign<mode>3_var): Likewise.
7202 (define_split UNSPEC_COPYSIGN): Likewise.
7203 * config/i386/sse.md (*nandtf3): Likewise.
7204 (<code>tf3): Likewise.
7205 (*<code>tf3): Likewise.
7206
38aa4d08
JY
72072008-06-30 Joey Ye <joey.ye@intel.com>
7208 H.J. Lu <hongjiu.lu@intel.com>
7209
7210 * global.c (compute_regsets): Set frame_pointer_needed here.
33af070f 7211 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
38aa4d08 7212
aad416fb
AL
72132008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
7214
7215 * doc/install.texi (specific): Expand Windows build notes.
7216
e2cefdd9
IR
72172008-06-30 Ira Rosen <irar@il.ibm.com>
7218
7219 PR tree-optimization/36648
7220 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
7221 number of prolog iterations by step. Fix the comment.
7222
183ae595
RG
72232008-06-30 Richard Guenther <rguenther@suse.de>
7224
7225 PR middle-end/36671
7226 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
7227 handle calls from ECF_MALLOC functions.
7228 (handle_pure_call): ECF_MALLOC functions do not return
7229 call-used memory.
7230 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
7231
c2058aa4
AS
72322008-06-29 Andreas Schwab <schwab@suse.de>
7233
6ae89ea8
AS
7234 * config/m68k/m68k.c (print_operand): Always print a float
7235 constant in hex.
7236 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
7237 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
7238 Remove macros.
7239
c2058aa4
AS
7240 * config/rs6000/x-linux64: Remove never used file.
7241
faf2ecc5
RG
72422008-06-29 Richard Guenther <rguenther@suse.de>
7243
7244 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
7245 prototype.
7246 (struct alias_info): Move ...
7247 * tree-ssa-alias.c: ... here.
7248 (update_alias_info): Declare.
7249 (compute_may_aliases): Call it.
7250 (update_alias_info): New function.
7251 * tree-ssa-structalias.c (update_alias_info): Move ...
7252 * tree-ssa-alias.c (update_alias_info_1): ... here.
7253 * tree-ssa-structalias.c (process_constraint_1): Remove
7254 unused from_call argument. Rename to ...
7255 (process_constraint): ... this. Delete old wrapper.
7256 (make_constraint_to): Adjust callers.
7257 (handle_const_call): Likewise.
7258 (handle_pure_call): Likewise.
7259 (init_base_vars): Likewise.
7260 (handle_lhs_call): Likewise. Remove unnecessary constraint.
7261 (find_func_aliases): We don't need structure copies for
7262 complex types.
7263 (make_constraint_from_anything): Remove.
7264 (create_variable_info_for): For globals make constraints
7265 from escaped, not from anything.
7266 (compute_points_to_sets): Do not call update_alias_info.
7267 (ipa_pta_execute): Use make_constraint_from.
7268
572e5ae3
KG
72692008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7270
7271 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
7272 (bitmap.o-warn, dominance.o-warn): New.
7273 * configure.ac (cxx_compat_warn): Delete.
7274 (loose_warn): Add -Wcast-qual and -Wc++-compat.
7275 * system.h: Remove #pragma diagnostic for -Wcast-qual and
7276 -Wc++-compat.
7277 * configure: Regenerate.
7278
7279 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
7280 warnings.
7281
4dc6c528
KG
72822008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7283
7284 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
7285 * df-scan.c (df_notes_rescan): Likewise.
7286 * ggc-page.c (set_page_table_entry): Likewise.
7287 * intl.c (gcc_gettext_width): Likewise.
7288 * varasm.c (get_unnamed_section, get_noswitch_section,
7289 get_section): Likewise.
7290
d1c1c79f
AJ
72912008-06-28 Andrew Jenner <andrew@codesourcery.com>
7292
7293 * regrename.c (build_def_use): Don't copy RTX.
7294
38bb2b65
SL
72952008-06-28 Sandra Loosemore <sandra@codesourcery.com>
7296
7297 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
7298 (Type Attributes): Fix nesting of @table and @subsection. Adjust
7299 punctuation. Use @ref instead of @xref.
7300 (Function Names): Remove stray @display/@end display.
7301 (C++ Attributes): Use @ref instead of @xref.
7302 (Deprecated Features): Fix punctuation around @xref.
7303 (Backwards Compatibility): Likewise.
7304 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
7305
624b157f
JM
73062008-06-28 Joseph Myers <joseph@codesourcery.com>
7307
7308 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
7309 constants for E500 double.
7310
ffba3fd0
UW
73112008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7312
7313 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
7314 element type of const_vector.
7315
f3e10a2b 73162008-06-28 Uros Bizjak <ubizjak@gmail.com>
7ae14d31
UB
7317
7318 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
7319 Remove FLAGS_REG clobber from expander pattern.
7320 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
7321 (anddi3, andsi3, andhi3, andqi3): Ditto.
7322 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
7323 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
7324 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
7325 (ashlsi3, ashlhi3, ashlqi3): Ditto.
7326 (ashrsi3, ashrhi3, ashrqi3): Ditto.
7327 (lshrsi3, lshrhi3, lshrqi3): Ditto.
7328 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
7329 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
7330
15c15196
RG
73312008-06-28 Richard Guenther <rguenther@suse.de>
7332
7333 * tree-ssa-structalias.c (callused_id, var_callused,
7334 callused_tree): Add.
7335 (handle_pure_call): New function.
7336 (find_func_aliases): Call it.
7337 (find_what_p_points_to): Handle the call-used set.
7338 (clobber_what_escaped): Likewise.
7339 (compute_call_used_vars): New function.
7340 (init_base_vars): Init the call-used variable.
7341 (do_sd_constraint): Do not propagate the solution from CALLUSED
7342 but use CALLUSED as a placeholder.
7343 (solve_graph): Likewise.
7344 * tree-flow-inline.h (gimple_call_used_vars): New function.
7345 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
7346 (compute_call_used_vars): Declare.
7347 * tree-ssa-alias.c (set_initial_properties): Call
7348 compute_call_used_vars.
7349 (reset_alias_info): Clear call-used variables.
7350 (add_call_clobber_ops): Assert we are not called for const/pure
7351 functions. Remove handling of them.
7352 (add_call_read_ops): Handle pure functions by adding the
7353 call-used set of variables as VUSEs.
7354 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
7355 (delete_tree_ssa): Free it.
7356 * tree-dfa.c (remove_referenced_var): Clear the var from the
7357 call-used bitmap.
7358
ff1c393b
KT
73592008-06-28 Kai Tietz <kai.tietz@onevision.com>
7360
7361 * tree.c (build_varargs_function_type_list): New.
7362 (build_function_type_list_1): New.
7363 (build_function_type_list): Use build_function_type_list_1.
7364 * tree.h (build_varargs_function_type_list): New.
7365
d74032d9
UW
73662008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7367
7368 PR target/34856
7369 * config/spu/spu.c (spu_builtin_splats): Do not generate
7370 invalid CONST_VECTOR expressions.
7371 (spu_expand_vector_init): Likewise.
7372
61698f54
RS
73732008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
7374
7375 * optabs.c (libfunc_decls): New variable.
7376 (libfunc_decl_hash, libfunc_decl_eq): New functions.
7377 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
7378 for the same function twice.
7379
f3e10a2b 73802008-06-27 Uros Bizjak <ubizjak@gmail.com>
934f2a96
UB
7381
7382 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
7383 ix86_expand_binary_operator directly.
7384 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
7385 for operand 2.
7386 (*ashrti3_1): Ditto.
7387 (*lshrti3_1): Ditto.
7388 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
7389 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
7390 using only one splitter. Conditionaly execute splitter before or
7391 after peephole2 pass.
7392 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
7393 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
7394 Use only one alternative in asm template.
7395 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
7396 in asm template.
7397 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
7398 "J" operand constraint for operand 2.
7399 (*ashldi3_cconly_rex64): Ditto.
7400 (*ashrdi3_cmp_rex64): Ditto.
7401 (*ashrdi3_cconly_rex64): Ditto.
7402 (*lshrdi3_cmp_rex64): Ditto.
7403 (*lshrdi3_cconly_rex64): Ditto.
7404 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
7405 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
7406 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
7407 gen_x86_shrd_1.
7408
b357f682
JJ
74092008-06-27 Jakub Jelinek <jakub@redhat.com>
7410
7ae14d31
UB
7411 * gimplify.c (omp_is_private): Don't return true if decl is not
7412 already private on #pragma omp for or #pragma omp parallel for.
ca2b1311 7413
b357f682
JJ
7414 PR debug/36617
7415 * tree-cfg.c (struct move_stmt_d): Replace block field with
7416 orig_block and new_block fields.
7417 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
7418 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
7419 (move_block_to_fn): Replace vars_map and new_label_map arguments
7420 with struct move_stmt_d pointer.
7421 (replace_block_vars_by_duplicates): New function.
7422 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
7423 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
7424 all subblocks of ORIG_BLOCK to the new function. Call
7425 replace_block_vars_by_duplicates.
7426 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
7427 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
7428 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
7429 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
7430 (expand_omp): Temporarily set input_location to the location of
7431 region's controlling stmt.
7432 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
7433 BIND_EXPR, push ctx->block_vars and gimplification vars into
7434 the BIND_EXPR and its block's BLOCK_VARS instead of directly
7435 into dest function.
7436 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
7437 there are any BLOCK_VARS.
7438 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
7439 OMP_PARALLEL or OMP_TASK stmt.
7440 (lower_omp): Save and restore input_location around the lower_omp_1
7441 call.
7442
b7091901
RG
74432008-06-27 Richard Guenther <rguenther@suse.de>
7444
7445 PR tree-optimization/36400
7446 PR tree-optimization/36373
7447 PR tree-optimization/36344
7448 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
7449 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
7450 (update_alias_info): Remove call clobbering code.
7451 (make_constraint_to): New helper function.
7452 (make_escape_constraint): Likewise.
7453 (handle_rhs_call): Use it on all pointer containing arguments.
7454 Also mark the static chain escaped.
7455 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
7456 instead of ANYTHING.
7457 (make_constraint_from): New helper split out from ...
7458 (make_constraint_from_anything): ... here.
7459 (find_func_aliases): Add constraints for escape sites.
7460 (intra_create_variable_infos): Make constraints from NONLOCAL
7461 for parameters.
7462 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
7463 as ANYTHING.
7464 (clobber_what_p_points_to): Remove.
7465 (clobber_what_escaped): New function.
7466 (init_base_vars): Init NONLOCAL and ESCAPED.
7467 (do_sd_constraint): Do not propagate the solution from ESCAPED
7468 but use ESCAPED as a placeholder.
7469 (solve_graph): Likewise.
7470 * tree-flow.h (clobber_what_p_points_to): Remove.
7471 (clobber_what_escaped): Declare.
7472 * tree-ssa-alias.c (set_initial_properties): Call it.
7473 Remove code clobbering escaped pointers.
7474
70cf5bc1
RS
74752008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
7476
7477 * function.c (allocate_struct_function): Only allocate a unique
7478 funcdef_no if the decl is nonzero.
7479
c5cb5d18
RS
74802008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
7481
7482 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
7483 * config/mips/mips.c (mips_split_const_insns): New function.
7484 * config/mips/mips.md (move_type): New attribute.
7ae14d31 7485 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
c5cb5d18
RS
7486 (dword_mode): New attribute.
7487 (type): Avoid long line. Map "move_type"s to "type"s,
7488 choosing "multi" for doubleword moves if appropriate.
7489 Swap MTC/MFC comments to match their declaration order.
7490 (extended_mips16): Default to "yes" if "move_type" is "sll0",
7491 "type" is "branch" or "jal" is "direct".
7492 (length): Handle "extended_mips16" first. Make the default
7493 "0" for "ghost" instructions. Set the length from "move_type".
7494 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
7495 of "type", with "sll0" for the register alternative. Remove the
7496 "extended_mips16" attribute.
7497 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
7498 of "type", with "shift_shift" for the register alternative.
7499 Remove the "length" attribute.
7500 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
7501 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
7502 of "type", with "andi" for the register alternative.
7503 (*zero_extendqihi2): Likewise.
7504 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
7505 of "andi" instead of a "type" of "arith".
7506 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
7507 instead of "type".
7508 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
7509 (mov_<store>r, *mov<mode>_ra): Likewise.
7510 (extendsidi2): Use "move_type" instead of "type", with "move"
7511 for the register alternative.
7512 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
7513 of "type", with "signext" for the register alternative.
7514 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
7515 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
7516 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
7517 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
7518 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
7519 (unnamed branch insn): Likewise.
7520 (*movdi_gp32_fp64): Fold into...
7521 (*movdi_32bit): ...here.
7522 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
7523 (*movdf_hardfloat): ...this new pattern.
7524 (*movdf_softfloat): Remove redundant FPR alternatives.
7525 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
7526 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
7527 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
7528 the "move" attribute.
7529 (*movdi_32bit): Use "move_type" instead of "type" and remove the
7530 "length" attribute. Use "fpload" and "fpstore" instead of "load"
7531 and "store" for COP loads and stores.
7532 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
7533 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
7534 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
7535 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
7536 (*movtf_mips16, *movv2sf): Likewise.
7537 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
7538 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
7539 (mfhc1<mode>): Use "move_type" instead of "move".
7540 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
7541 (loadgp_blockage): Remove the "length" attribute.
7542 (blockage, set_got_version, update_got_version): Likewise.
7543 (call_internal): Remove the "extended_mips16" attribute.
7544 (call_value_internal, call_value_multiple_internal): Likewise.
7545 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
7546 instead of "move".
7547 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
7548 the "length" attribute.
7549
5ead67f6
KG
75502008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7551
7552 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
7553 -Wcast-qual warnings.
7554 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
7555 handle_pragma_pop_macro): Likewise.
7556 * collect2.c (resolve_lib_name): Likewise.
7557 * config/arc/arc.c (arc_init): Likewise.
7558 * config/arm/arm.c (neon_builtin_compare,
7559 locate_neon_builtin_icode): Likewise.
7ae14d31 7560 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5ead67f6
KG
7561 * config/bfin/bfin.c (bfin_init_machine_status,
7562 bfin_optimize_loop): Likewise.
7563 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
7564 * config/cris/cris.c (cris_init_expanders): Likewise.
7565 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
7566 * config/darwin.c (machopic_indirection_eq,
7ae14d31 7567 machopic_indirection_name, machopic_output_indirection): Likewise.
5ead67f6
KG
7568 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
7569 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
7570 frv_optimize_membar): Likewise.
7571 * config/i386/cygwin.h (mingw_scan,
7572 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
7573 * config/i386/cygwin1.c (mingw_scan): Likewise.
7574 * config/i386/i386.c (machopic_output_stub): Likewise.
7575 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
7576 i386_pe_unique_section): Likewise.
7577 * config/ia64/ia64.c (ia64_init_machine_status,
7578 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
7579 Likewise.
7580 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
7581 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
7582 * config/m68k/m68k.c (m68k_handle_option,
7583 m68k_sched_md_init_global): Likewise.
7ae14d31
UB
7584 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
7585 mcore_unique_section): Likewise.
5ead67f6 7586 * config/mips/mips.c (mips_block_move_straight,
7ae14d31
UB
7587 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
7588 Likewise.
5ead67f6
KG
7589 * config/mmix/mmix.c (mmix_init_machine_status,
7590 mmix_encode_section_info): Likewise.
7ae14d31 7591 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5ead67f6
KG
7592 * config/rs6000/rs6000.c (rs6000_init_machine_status,
7593 print_operand_address, output_toc, redefine_groups,
7594 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
7595 * config/s390/s390.c (s390_init_machine_status): Likewise.
7596 * config/score/score.c (score_block_move_straight,
7597 score_block_move_loop_body): Likewise.
7598 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
7599 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
7600 * emit-rtl.c (find_auto_inc): Likewise.
7601 * gcc.c (translate_options, process_command): Likewise.
7602 * reorg.c (dbr_schedule): Likewise.
7603 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
7604 * xcoffout.c (xcoffout_declare_function): Likewise.
7605
d1caaa76
DB
76062008-06-27 Daniel Berlin <dberlin@dberlin.org>
7607
7608 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
7609 ipa-pta working again.
7610
edae5fe3
DE
76112008-06-27 David Edelsohn <edelsohn@gnu.org>
7612
7613 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
7614 genautomata.
7615
76162008-06-27 Edmar Wienskoski <edmar@freescale.com>
7617
7618 * config.gcc (powerpc*-*-*): Add new core e500mc.
7619 * config/rs6000/e500mc.md: New file.
7620 * config/rs6000/rs6000.c (processor_costs): Add new costs for
7621 e500mc.
7622 (rs6000_override_options): Add e500mc case to
7623 processor_target_table. Altivec and Spe options not allowed
7624 with e500mc. Add isel instruction to e500mc by
7625 default. Initialize rs6000_cost for e500mc.
7626 (rs6000_issue_rate): Set issue rate for e500mc.
7627 * config/rs6000/rs6000.h (processor_type): Add
7628 PROCESSOR_PPCE500MC.
7629 (ASM_CPU_SPEC): Add e500mc.
7630 Set TARGET_ISEL to rs6000_isel.
7631 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
7632 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
7633 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
7634 Include e500mc.md.
7635 * doc/invoke.texi: Add e500mc to list of cpus.
7636
098b9c46
LB
76372008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7638
7639 PR c/34867
7640 * c-lex.c (lex_charconst): Initialize unsignedp.
7641
b7d565dd 76422008-06-27 Olivier Hainque <hainque@adacore.com>
1a13360e
OH
7643
7644 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
7645 documented assumptions.
7646
4b570560
L
76472008-06-26 H.J. Lu <hongjiu.lu@intel.com>
7648
7649 * dwarf2out.c: Remove trailing white spaces. Break long line
7650 in comments.
7651
e2ff10a9
RS
76522008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
7653
7654 * libfuncs.h (LTI_synchronize): New libfunc_index.
7655 (synchronize_libfunc): Declare.
7656 * builtins.c (expand_builtin_synchronize): Consider using
7657 synchronize_libfunc before falling back on an asm blockage.
7658 * config/mips/mips.c: Include libfuncs.h
7659 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
7660
f78c3290
NF
76612008-06-26 Nathan Froyd <froydnj@codesourcery.com>
7662
7663 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
7664 parameter. Copy stack_reg to r11 where appropriate.
7665 (no_global_regs_above): Add gpr parameter.
7666 (rs6000_stack_info): Only add padding for SPE save area if we
7667 are saving SPE GPRs and CR.
7668 (saveres_routine_syms): New variable.
7669 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
7670 Define.
7671 (rs6000_savres_routine_sym): New function.
7672 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
7673 split out of...
7674 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
7675 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
7676 Tweak FPR out-of-line saving.
7677 (rs6000_make_savres_rtx): New function.
7678 (rs6000_use_multiple_p): New function.
7679 (rs6000_savres_strategy): New function.
7680 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
7681 out-of-line if appropriate.
7682 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
7683 if we are optimizing for size.
7684 (GP_SAVE_INLINE): Define.
7685 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
7686 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
7687 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
7688 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
7689 (*save_fpregs_<mode>): Add use of r11.
7690 (*restore_gpregs_<mode>): New insn.
7691 (*return_and_restore_gpregs_<mode>): New insn.
7692 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
7693 use r11.
7694 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
7695 (*restore_gpregs_spe): New insn.
7696 (*return_and_restore_gpregs_spe): New insn.
7697 * config/rs6000/predicates.md (save_world_operation): Fix check.
7698
e24c4814
SB
76992008-06-26 Steven Bosscher <steven@gcc.gnu.org>
7700
7701 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
7702 this point, so assert that.
7703
25e87727
SB
77042008-06-26 Steven Bosscher <steven@gcc.gnu.org>
7705
7706 * cfganal.c: Include vec.h and vecprim.h.
7707 (compute_idf): Import from...
7708 * tree-into-ssa (compute_idf): ...here.
7709 * basic-block.h (compute_idf): Export.
7710
74b0ec7c
JM
77112008-06-26 Joseph Myers <joseph@codesourcery.com>
7712
7713 * c-decl.c (merge_decls): Use !current_function_decl to check for
7714 extern declaration of C99 inline function being at file scope.
7715
f3d14ed5
JDA
77162008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
7717
7718 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
7719
f883e0a7
KG
77202008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7721
7722 * alias.c (record_alias_subset, init_alias_analysis): Fix
7723 -Wc++-compat and/or -Wcast-qual warnings.
7724 * attribs.c (lookup_attribute_spec): Likewise.
7725 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
7726 copy_bb, connect_traces,
7727 find_rarely_executed_basic_blocks_and_cr): Likewise.
7728 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
7729 note_btr_set, migrate_btr_defs): Likewise.
7730 * builtins.c (result_vector, expand_builtin_memcpy,
7731 expand_builtin_mempcpy_args, expand_builtin_strncpy,
7732 builtin_memset_read_str, expand_builtin_printf,
7733 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
7734 Likewise.
7735 * caller-save.c (mark_set_regs): Likewise.
7736 * calls.c (expand_call, emit_library_call_value_1): Likewise.
7737 * cgraph.c (cgraph_edge): Likewise.
7738 * combine.c (likely_spilled_retval_1): Likewise.
7739 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
7740 htab_counts_entry_del, get_coverage_counts): Likewise.
7741 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
7742 new_cselib_val): Likewise.
7743 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
7744 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
7745 Likewise.
7746 * df-core.c (df_compact_blocks): Likewise.
7747 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
7748 * df-scan.c (df_grow_reg_info, df_ref_create,
7749 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
7750 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
7751 df_record_entry_block_defs, df_record_exit_block_uses,
7752 df_bb_verify): Likewise.
7753 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
7754 DF_REF_EXTRACT_MODE_CONST): New.
7755 * dominance.c (get_immediate_dominator, get_dominated_by,
7756 nearest_common_dominator, root_of_dom_tree,
7757 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
7758 -Wc++-compat and/or -Wcast-qual warnings.
7759 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
7760 record_store, replace_read, check_mem_read_rtx, scan_insn,
7761 dse_step1, dse_record_singleton_alias_set): Likewise.
7762 * dwarf2asm.c (dw2_force_const_mem): Likewise.
7763
1b4572a8
KG
77642008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7765
7766 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
7767 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
7768 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
7769 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
7770 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
7771 add_ranges_num, add_ranges_by_labels, file_info_cmp,
7772 file_name_acquire, output_file_names, add_const_value_attribute,
7773 premark_used_types_helper, file_table_eq, file_table_hash,
7774 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
7775 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
7776 -Wcast-qual warnings.
7777 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
7778 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
7779 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
7780 gen_reg_rtx, start_sequence, init_emit): Likewise.
7781 * et-forest.c (et_new_occ, et_new_tree): Likewise.
7782 * except.c (init_eh_for_function, gen_eh_region,
7783 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
7784 arh_to_landing_pad, arh_to_label, add_action_record,
7785 add_call_site, switch_to_exception_section): Likewise.
7786 * expmed.c (synth_mult): Likewise.
7787 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
7788 store_expr): Likewise.
7789 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
7790 Likewise.
7791 * function.c (assign_stack_temp_for_type,
7792 allocate_struct_function, match_asm_constraints_1): Likewise.
7793 * gcov-io.c (gcov_allocate): Likewise.
7794 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
7795 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
7796 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
7797 record_one_set, insert_expr_in_table, insert_set_in_table,
7798 dump_hash_table, compute_hash_table_work, alloc_hash_table,
7799 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
7800 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
7801 -Wcast-qual warnings.
7802
7cbb2a85
KG
78032008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7804
7805 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
7806 -Wcast-qual warnings.
7807 * gcc.c (process_command): Likewise.
7808 * genattrtab.c (oballoc): Use XOBNEW.
7809 (oballocvec): Define.
7810 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
7811 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
7812 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
7813 -Wc++-compat and/or -Wcast-qual warnings.
7814 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
7815 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
7816 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
7817 gen_presence_absence_set, gen_automaton, gen_regexp_el,
7818 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
7819 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
7820 add_excls, process_presence_absence_names,
7821 process_presence_absence_patterns, add_presence_absence,
7822 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
7823 get_free_state, add_arc, get_free_automata_list_el,
7824 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
7825 transform_3, cache_presence, create_ainsns, create_automata,
7826 create_state_ainsn_table, dfa_insn_code_enlarge,
7827 output_trans_func, output_min_issue_delay_func,
7828 output_dead_lock_func, output_reset_func,
7829 output_get_cpu_unit_code_func, output_dfa_start_func,
7830 expand_automata): Likewise.
7831 * genextract.c (gen_insn): Likewise.
7832 * gengtype-lex.l: Likewise.
7833 * gengtype.c (read_input_list, adjust_field_type,
7834 process_gc_options): Likewise.
7835 * genoutput.c (note_constraint): Likewise.
7836 * genpreds.c (mangle, add_constraint): Likewise.
7837 * genrecog.c (process_define_predicate, new_decision,
7838 add_to_sequence): Likewise.
7839 * gensupport.c (record_insn_name): Likewise.
7840
d3bfe4de
KG
78412008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7842
7843 * config/i386/driver-i386.c (detect_caches_amd,
7844 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
7845 and/or -Wcast-qual warnings.
7846 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
7847 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
7848 gt_pch_save): Likewise.
7849 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
7850 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
7851 * global.c (compute_regsets): Likewise.
7852 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7853 finish_graph_dump_file): Likewise.
7854 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
7855 unlink_bb_notes): Likewise.
7856 * integrate.c (get_hard_reg_initial_val): Likewise.
7857 * ipa-prop.c (ipa_push_func_to_list): Likewise.
7858 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
7859 * local-alloc.c (update_equiv_regs): Likewise.
7860 * loop-invariant.c (check_invariant_table_size,
7861 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
7862 Likewise.
7863 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
7864 altered_reg_used, mark_altered): Likewise.
7865 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
7866 insert_var_expansion_initialization,
7867 combine_var_copies_in_loop_exit, apply_opt_in_copies,
7868 release_var_copies): Likewise.
7869 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
7870 analyze_matrix_decl, add_allocation_site, analyze_transpose,
7871 analyze_accesses_for_phi_node, check_var_notmodified_p,
7872 check_allocation_function, find_sites_in_func,
7873 record_all_accesses_in_func, transform_access_sites,
7874 transform_allocation_sites): Likewise.
7875 * omp-low.c (new_omp_region, create_omp_child_function_name,
7876 check_omp_nesting_restrictions, check_combined_parallel,
7877 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
7878 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
7879 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
7880 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
7881 Likewise.
7882 * opts-common.c (prune_options): Likewise.
7883 * opts.c (add_input_filename, print_filtered_help,
7884 get_option_state): Likewise.
7885 * params.c (add_params): Likewise.
7886 * passes.c (set_pass_for_id, next_pass_1,
7887 do_per_function_toporder, pass_fini_dump_file): Likewise.
7888 * postreload.c (reload_cse_simplify_operands): Likewise.
7889 * predict.c (tree_predicted_by_p, tree_predict_edge,
7890 clear_bb_predictions, combine_predictions_for_bb): Likewise.
7891
1634b18f
KG
78922008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7893
7894 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
7895 warnings.
7896 * recog.c (check_asm_operands, validate_change_1): Likewise.
7897 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
7898 subst_asm_stack_regs): Likewise.
7899 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
7900 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
7901 * regmove.c (reg_is_remote_constant_p): Likewise.
7902 * regrename.c (regrename_optimize, scan_rtx_reg,
7903 kill_clobbered_value, kill_set_value, kill_autoinc_value):
7904 Likewise.
7905 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
7906 regstat_compute_calls_crossed): Likewise.
7907 * reload1.c (init_reload, new_insn_chain,
7908 has_nonexceptional_receiver, reload, copy_reloads,
7909 calculate_needs_all_insns, init_elim_table): Likewise.
7910 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
7911 * rtl.c (shallow_copy_rtx_stat): Likewise.
7912 * rtlanal.c (parms_set): Likewise.
7913 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
7914 sbitmap_resize, sbitmap_vector_alloc): Likewise.
7915 * sched-ebb.c (earliest_block_with_similiar_load,
7916 add_deps_for_risky_insns): Likewise.
7917 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
7918 schedule_region): Likewise.
7919 * see.c (eq_descriptor_pre_extension,
7920 hash_descriptor_pre_extension, hash_del_pre_extension,
7921 eq_descriptor_properties, hash_descriptor_properties,
7922 hash_del_properties, see_seek_pre_extension_expr,
7923 see_initialize_data_structures, see_print_register_properties,
7924 see_print_pre_extension_expr, see_delete_merged_def_extension,
7925 see_delete_unmerged_def_extension, see_emit_use_extension,
7926 see_pre_delete_extension, see_map_extension, see_commit_changes,
7927 see_analyze_merged_def_local_prop,
7928 see_analyze_merged_def_local_prop,
7929 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
7930 see_set_prop_merged_def, see_set_prop_unmerged_def,
7931 see_set_prop_unmerged_use, see_print_one_extension,
7932 see_merge_one_use_extension, see_merge_one_def_extension,
7933 see_store_reference_and_extension, see_update_uses_relevancy,
7934 see_update_defs_relevancy): Likewise.
7935 * statistics.c (hash_statistics_hash, hash_statistics_eq,
7936 hash_statistics_free, curr_statistics_hash): Likewise.
7937 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
7938 expand_asm_operands, expand_return, case_bit_test_cmp,
7939 expand_case): Likewise.
7940 * stor-layout.c (start_record_layout): Likewise.
7941 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
7942 gt_pch_save_stringpool): Likewise.
7943 * tree-data-ref.c (hash_stmt_vertex_info,
7944 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
7945 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
7946
f3e10a2b 79472008-06-25 Uros Bizjak <ubizjak@gmail.com>
0edb82cb
UB
7948
7949 PR target/36627
7950 * config/i386/i386.md : Change constraints of HImode and QImode
7951 immediate operands from "i" to "n". Change SImode "ni" constraint to
7952 "i" and SImode "rmi" constraint to "g". Remove all constraints
7953 from const0_operand and const1_operand predicated operands.
7954 (i): Change QImode and HImode attribute from "i" to "n".
7955 (*subqi_2): Change HImode operands to QImode.
7956 (*subqi_3): Ditto.
7957
5cff8550
OH
79582008-06-25 Olivier Hainque <hainque@adacore.com>
7959
7960 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
7961 sed substitutions.
7962
185ab3b6
RG
79632008-06-25 Richard Guenther <rguenther@suse.de>
7964
7965 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
7966 not overflow the result type.
7967
8ef834ca
RG
79682008-06-25 Richard Guenther <rguenther@suse.de>
7969
7970 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
7971 (vn_lookup): Likewise.
7972
ee1f1270
RG
79732008-06-25 Richard Guenther <rguenther@suse.de>
7974
7975 PR tree-optimization/35518
7976 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
7977 * tree-sra.c (instantiate_element): Use fold_build3 to build
7978 BIT_FIELD_REFs.
7979 (try_instantiate_multiple_fields): Likewise.
7980
423addc5
AP
79812008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
7982
7983 * config/rs6000/rs6000.md: Change all string instruction's clobber to
7984 be early clobbers.
7985
d2492102
AP
79862008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
7987
7988 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
7989 use_backchain_to_restore_sp to true
7990 if the offset of the link register save area would go over the 32k - 1
7991 offset limit of the load
7992 instructions.
7993
917db97b
HPN
79942008-06-25 Hans-Peter Nilsson <hp@axis.com>
7995
7996 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
7997 anchor for the type-punning blurb. Cross-reference "Structures
7998 unions enumerations and bit-fields implementation". Provide a
7999 cast-through-pointer example. Make final sentence self-contained.
8000 * doc/implement-c.texi (Structures unions enumerations and
8001 bit-fields implementation): Cross-reference the type-punning blurb
8002 in the -fstrict-aliasing documentation.
8003
cba2d79f
AP
80042008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
8005
8006 PR middle-end/36594
8007 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
8008 the memory instead of the memory itself for the save area.
8009
8de8de02 80102008-06-24 Olivier Hainque <hainque@adacore.com>
0edb82cb 8011 Nicolas Roche <roche@adacore.com>
8de8de02
OH
8012
8013 * gengtype.c (srcdir_len): size_t instead of int.
8014 (get_file_realbasename): New function. For F a filename, the real
8015 basename of F, with all the path components stripped.
8016 (get_file_srcdir_relative_path): New function. For F a filename, the
8017 relative path to F from $(srcdir).
8018 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
8019 get_file_realbasename. Adjust the head comment.
8020 (get_prefix_langdir_index): New function. For F a filename, return the
8021 lang_dir_names[] relative index of the language directory that is
8022 a prefix in F.
8023 (get_file_langdir): For F a filename, return the name of the language
8024 directory where F is located.
8025 (get_file_gtfilename): New function. The gt- output file name for an
8026 input filename F.
8027 (get_output_file_with_visibility): Replace in-line computations with
8028 uses of get_file_gtfilename and get_prefix_langdir_index.
8029 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
8030
a80a2701
JJ
80312008-06-24 Jakub Jelinek <jakub@redhat.com>
8032
8033 PR tree-optimization/36504
8034 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
8035 references without base address.
8036
b5f772ce
UB
80372008-06-23 Uros Bizjak <ubizjak@gmail.com>
8038
0edb82cb 8039 PR middle-end/36584
b5f772ce
UB
8040 * calls.c (expand_call): Increase alignment for recursive functions.
8041
f9f6caf5
AS
80422008-06-23 Anatoly Sokolov <aesok@post.ru>
8043
8044 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
8045 (TARGET_FUNCTION_VALUE): New define.
8046 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
8047 * config/avr/avr.h (FUNCTION_VALUE): Remove.
8048
f2a55e41
UB
80492008-06-23 Uros Bizjak <ubizjak@gmail.com>
8050
8051 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
8052 (fmod<mode>3): Ditto.
8053 (remainderxf3): Ditto.
8054 (remainder<mode>3): Ditto.
8055
53983ae9
JJ
80562008-06-23 Jakub Jelinek <jakub@redhat.com>
8057
923ba36f
JJ
8058 PR target/36533
8059 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
8060 REG is a hard register.
8061
53983ae9
JJ
8062 PR tree-optimization/36508
8063 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
8064 499, don't check it at all in release compilers.
8065
cc774ffb
UB
80662008-06-23 Uros Bizjak <ubizjak@gmail.com>
8067
8068 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
8069 together with SSE_TARGET_MATH to disable insn pattern.
8070 (*fop_<MODEF:mode>_2_i387): Ditto.
8071 (*fop_<MODEF:mode>_3_i387): Ditto.
8072
34babc73
AH
80732008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
8074
8075 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
22129589 8076
2c68ba8e
LB
80772008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
8078
8079 PR middle-end/34906
8080 * gimplify.c (gimplify_asm_expr): Check the return code of
8081 parse_output_constraint call, set function return and is_inout
8082 value if it failed.
8083
d75d71e0
ILT
80842008-06-22 Ian Lance Taylor <iant@google.com>
8085
8086 * c-lex.c (narrowest_unsigned_type): Change itk to int.
8087 (narrowest_signed_type): Likewise.
8088 * c-typeck.c (c_common_type): Change local variable mclass to enum
8089 mode_class, twice.
8090 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
8091 tcc_comparison, not the tree code itself.
8092 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
8093 (c_expand_expr): Cast modifier to enum expand_modifier.
8094 * c-common.h (C_RID_CODE): Add casts.
8095 (C_SET_RID_CODE): Define.
8096 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
8097 (c_lex_one_token): Add cast to avoid warning.
8098 (c_parser_objc_type_name): Rename local typename to type_name.
8099 (check_no_duplicate_clause): Change code parameter to enum
8100 omp_clause_code.
8101 (c_parser_omp_var_list_parens): Change kind parameter to enum
8102 omp_clause_code.
8103 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
8104 c_parser_omp_list_var_parens.
8105 (c_parser_omp_threadprivate): Likewise.
8106 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
8107 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
8108 * c-format.c (NO_FMT): Define.
8109 (printf_length_specs): Use NO_FMT.
8110 (asm_fprintf_length_specs): Likewise.
8111 (gcc_diag_length_specs): Likewise.
8112 (scanf_length_specs): Likewise.
8113 (strfmon_length_specs): Likewise.
8114 (gcc_gfc_length_specs): Likewise.
8115 (printf_flag_specs): Change 0 to STD_C89.
8116 (asm_fprintf_flag_specs): Likewise.
8117 (gcc_diag_flag_specs): Likewise.
8118 (gcc_cxxdiag_flag_specs): Likewise.
8119 (scanf_flag_specs): Likewise.
8120 (strftime_flag_specs): Likewise.
8121 (strfmon_flag_specs): Likewise.
8122 (print_char_table): Likewise.
8123 (asm_fprintf_char_table): Likewise.
8124 (gcc_diag_char_table): Likewise.
8125 (gcc_tdiag_char_table): Likewise.
8126 (gcc_cdiag_char_table): Likewise.
8127 (gcc_cxxdiag_char_table): Likewise.
8128 (gcc_gfc_char_table): Likewise.
8129 (scan_char_table): Likewise.
8130 (time_char_table): Likewis.
8131 (monetary_char_table): Likewise.
8132 * c-format.h (BADLEN): Likewise.
8133
c0ed0531
ILT
81342008-06-21 Ian Lance Taylor <iant@google.com>
8135
8136 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
8137 Define END_OF_BASE_TREE_CODES around inclusion.
8138 * tree.c (tree_code_type): New global array.
8139 (tree_code_length, tree_code_name): Likewise.
8140 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
8141 $(lang_tree_files).
8142 (all-tree.def, s-alltree): New targets.
8143 (gencheck.h, s-gencheck): Remove.
8144 (tree.o): Depend upon all-tree.def.
8145 (build/gencheck.o): Remove gencheck.h dependency.
8146 (mostlyclean): Don't remove gencheck.h.
8147 * c-common.h (enum c_tree_code): Remove.
8148 * c-lang.c (tree_code_type): Remove.
8149 (tree_code_length, tree_code_name): Remove.
8150 * gencheck.c (tree_codes): Include all-tree.def, rather than
8151 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
8152 after it is used.
8153 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
8154 than tree.def.
8155 * cp/cp-tree.h (enum cplus_tree_code): Remove.
8156 (operator_name_info): Size to MAX_TREE_CODES.
8157 (assignment_operator_name_info): Likewise.
8158 * cp/cp-lang.c (tree_code_type): Remove.
8159 (tree_code_length, tree_code_name): Remove.
8160 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
8161 (assignment_operator_name_info): Likewise.
8162 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
8163 MAX_TREE_CODES.
8164 * cp/mangle.c (write_expression): Likewise.
8165 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
8166 * fortran/f95-lang.c (tree_code_type): Remove.
8167 (tree_code_length, tree_code_name): Remove.
8168 * java/java-tree.h (enum java_tree_code): Remove.
8169 * java/lang.c (tree_code_type): Remove.
8170 (tree_code_length, tree_code_name): Remove.
8171 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
8172 * objc/objc-act.h (enum objc_tree_code): Remove.
8173 * objc/objc-lang.c (tree_code_type): Remove.
8174 (tree_code_length, tree_code_name): Remove.
8175 * objcp/objcp-lang.c (tree_code_type): Remove.
8176 (tree_code_length, tree_code_name): Remove.
8177 * ada/ada-tree.h (enum gnat_tree_code): Remove.
8178 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
8179 * ada/misc.c (tree_code_type): Remove.
8180 (tree_code_length, tree_code_name): Remove.
8181
830b4fec
BF
81822008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
8183
8184 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
8185 the grand_bitmap_obstack.
8186
3d9a9f94
KG
81872008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8188
8189 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
8190 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
b5f772ce 8191 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3d9a9f94
KG
8192 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
8193 move_stmt_r, new_label_mapper): Likewise.
8194 * tree-complex.c (cvc_lookup): Likewise.
8195 * tree-dfa.c (create_function_ann): Likewise.
8196 * tree-dump.c (dump_register): Likewise.
8197 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
8198 find_phi_replacement_condition): Likewise.
8199 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
8200 tree_function_versioning): Likewise.
8201 * tree-into-ssa.c (cmp_dfsnum): Likewise.
8202 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
8203 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
8204 get_nonlocal_debug_decl, convert_nonlocal_reference,
8205 convert_nonlocal_omp_clauses, get_local_debug_decl,
8206 convert_local_reference, convert_local_omp_clauses,
8207 convert_nl_goto_reference, convert_nl_goto_receiver,
8208 convert_tramp_reference, convert_call_expr): Likewise.
8209 * tree-outof-ssa.c (contains_tree_r): Likewise.
8210 * tree-parloops.c (reduction_phi, initialize_reductions,
8211 eliminate_local_variables_1, add_field_for_reduction,
8212 add_field_for_name, create_phi_for_local_result,
8213 create_call_for_reduction_1, create_loads_for_reductions,
8214 create_stores_for_reduction, create_loads_and_stores_for_name):
8215 Likewise.
8216 * tree-phinodes.c (allocate_phi_node): Likewise.
cc774ffb
UB
8217 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
8218 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3d9a9f94
KG
8219 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
8220 * tree-ssa-coalesce.c (compare_pairs): Likewise.
8221 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
8222 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
8223 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
22129589 8224 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
3d9a9f94
KG
8225 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
8226 vn_nary_op_insert): Likewise.
8227 * tree-ssa.c (redirect_edge_var_map_add,
8228 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
8229 * tree-vectorizer.c (vectorize_loops): Likewise.
8230 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
8231 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
8232 tree_cons_stat, build1_stat, build_variant_type_copy,
8233 decl_init_priority_lookup, decl_fini_priority_lookup,
8234 decl_priority_info, decl_restrict_base_lookup,
8235 decl_restrict_base_insert, decl_debug_expr_lookup,
8236 decl_debug_expr_insert, decl_value_expr_lookup,
8237 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
8238 type_hash_add, get_file_function_name, tree_check_failed,
8239 tree_not_check_failed, tree_range_check_failed,
8240 omp_clause_range_check_failed, build_omp_clause,
8241 build_vl_exp_stat): Likewise.
8242 * value-prof.c (gimple_histogram_value,
8243 gimple_duplicate_stmt_histograms): Likewise.
8244 * var-tracking.c (attrs_list_insert, attrs_list_copy,
8245 unshare_variable, variable_union_info_cmp_pos, variable_union,
8246 dataflow_set_different_1, dataflow_set_different_2,
8247 vt_find_locations, variable_was_changed, set_variable_part,
cc774ffb 8248 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3d9a9f94
KG
8249 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
8250 section_entry_hash, object_block_entry_eq,
8251 object_block_entry_hash, create_block_symbol,
8252 initialize_cold_section_name, default_function_rodata_section,
8253 strip_reg_name, set_user_assembler_name, const_desc_eq,
8254 build_constant_desc, output_constant_def, lookup_constant_def,
8255 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
8256 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
8257 default_internal_label): Likewise.
8258 * varray.c (varray_init, varray_grow): Likewise.
8259 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
8260
a055f99f
UB
82612008-06-20 Uros Bizjak <ubizjak@gmail.com>
8262
8263 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
8264 operators for "test" insn. Macroize insn using SWI mode macro.
8265 (*jcc_fused_2): Ditto.
8266 (*jcc_fused_3): Macroize insn using SWI mode macro.
8267 (*jcc_fused_4): Ditto.
8268
a7849637
BF
82692008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
8270
a055f99f
UB
8271 * tree-ssa-pre.c: Fix typo in comment.
8272 (init_antic, fini_antic): Add explicit funtions for
8273 initializing and deinitializing ANTIC and AVAIL sets.
8274 (create_expression_by_pieces): Fix typo in comment.
8275 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
8276 (execute_pre): Eventually dump details about ANTIC_IN.
a7849637 8277
e1e4cdc4
KG
82782008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8279
8280 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
8281 * gcc.c (translate_options, init_spec, store_arg, read_specs,
8282 add_to_obstack, file_at_path, find_a_file, execute,
8283 add_preprocessor_option, add_assembler_option, add_linker_option,
8284 process_command, insert_wrapper, do_option_spec, do_self_spec,
8285 spec_path, do_spec_1, is_directory, main, used_arg,
8286 getenv_spec_function): Likewise.
8287 * tlink.c (symbol_hash_lookup, file_hash_lookup,
8288 demangled_hash_lookup, symbol_push, file_push, frob_extension):
8289 Likewise.
8290
1ba4e523
KZ
82912008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
8292
8293 * doc/rtl.texi: Updated subreg section.
a7849637 8294
2368a460
JJ
82952008-06-19 Jakub Jelinek <jakub@redhat.com>
8296
8297 PR c++/36523
8298 * cgraphunit.c (cgraph_process_new_functions): Don't clear
8299 node->needed and node->reachable.
8300 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
8301 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
8302 (expand_task_call): Don't call expand_task_copyfn.
8303 (expand_task_copyfn): Renamed to...
8304 (finalize_task_copyfn): ... this.
8305
dea33aa7
JH
83062008-06-19 Jan Hubicka <jh@suse.cz>
8307
8308 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
8309 clobbering framepointer.
8310
bad5e2b5
JH
83112008-06-19 Jan Hubicka <jh@suse.cz>
8312
8313 * tree-optimize.c (execute_early_local_optimizations): Set
8314 cgraph_state only at first invocation.
8315
00066bc0
KG
83162008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8317
8318 * system.h (-Wc++-compat): Activate as a warning, no an error.
8319
f1469150
UB
83202008-06-19 Uros Bizjak <ubizjak@gmail.com>
8321
8322 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
8323 instead of "#" in insn asm template.
8324 (*jcc_fused_2): Ditto.
8325
354f84af
UB
83262008-06-19 Uros Bizjak <ubizjak@gmail.com>
8327
8328 * config/i386/i386.h (ix86_tune_indices)
8329 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
8330 (TARGET_FUSE_CMP_AND_BRANCH): New define.
8331 * config/i386/i386.md (*jcc_fused_1): New insn pattern
8332 (*jcc_fused_2): Ditto.
8333 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
f1469150 8334 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
354f84af
UB
8335 (print operand): Handle 'E' and 'e' code.
8336
720705d2
AS
83372008-06-19 Anatoly Sokolov <aesok@post.ru>
8338
8339 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
8340 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8341 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8342
f30cfcb1
BRF
83432008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
8344
8345 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
8346 node->decl.
8347 (cgraph_expand_function): Use local copy of decl.
8348 (cgraph_expand_all_functions): Remove redundant initialization of
8349 order_pos.
8350 (cgraph_optimize): Reword internal_error message.
8351
83522008-06-19 Chung-Lin Tang <ctang@marvell.com>
23668cf7
CLT
8353
8354 * arm-protos.h (arm_return_in_memory): Remove public
8355 arm_return_in_memory() prototype.
8356 * arm.c (arm_return_in_memory): Add static prototype, add target
8357 hook macro, change definition and comments.
8358 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
8359
7292b8e4
BE
83602008-06-19 Ben Elliston <bje@au.ibm.com>
8361
8362 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
8363 real.c: Remove references to IEEE 754R.
8364 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
8365 * doc/libgcc.texi (Decimal float library routines): Likewise.
8366
7b0518e3
UW
83672008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8368
8369 * targhooks.h (struct gcc_target): New member unwind_word_mode.
8370 (default_unwind_word_mode): Add prototype.
8371 * targhooks.c (default_unwind_word_mode): New function.
8372 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
8373 instead of word_mode.
8374 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
8375 (TARGET_INITIALIZER): Use it.
8376
8377 * c-common.c (handle_mode_attribute): Support "unwind_word"
8378 mode attribute.
8379 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
8380
8381 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
8382 word_mode to access SjLj_Function_Context member "data".
8383 (sjlj_emit_dispatch_table): Likewise. Also, perform type
8384 conversion from targetm.eh_return_filter_mode () to
8385 targetm.unwind_word_mode () if they differ.
8386
8387 * builtin-types.def (BT_UNWINDWORD): New primitive type.
8388 (BT_FN_UNWINDWORD_PTR): New function type.
8389 (BT_FN_WORD_PTR): Remove.
8390 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
8391 * except.c (expand_builtin_extend_pointer): Convert pointer to
8392 targetm.unwind_word_mode () instead of word_mode.
8393
8394 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
8395 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
8396 (spu_unwind_word_mode): New function.
8397 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
8398 (TARGET_UNWIND_WORD_MODE): Define.
8399 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
8400
aa5d9939
UW
84012008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8402
8403 * config/spu/spu.c (reg_align): Remove.
8404 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
8405 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
8406 (spu_split_store): Likewise.
8407
f30cfcb1 84082008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
a7816b82
BF
8409
8410 * gcc/tree-vn.c: Fix typo in comment.
8411
45f09afb
JH
84122008-06-18 Jan Hubicka <jh@suse.cz>
8413
8414 * cgraphunit.c (cgraph_optimize): Output debug info when doing
8415 toplevel reorder too.
8416
a7bf199e
JH
84172008-06-18 Jan Hubicka <jh@suse.cz>
8418
8419 * c-opts.c (c_common_post_options): PCH is not compatible with
8420 no-unit-at-a-time.
8421 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
8422 -fno-toplevel-reorder by default now.
8423
3f737aa9
RW
84242008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8425
8426 PR documentation/30739
8427 * doc/install.texi (Prerequisites): Document dependency on awk.
8428
ba03a350
UB
84292008-06-18 Uros Bizjak <ubizjak@gmail.com>
8430 Ian Lance Taylor <iant@google.com>
8431
8432 PR rtl-optimization/35604
8433 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
8434 only want to change jump destinations, not eventual label comparisons.
8435
fdd7f241
JH
84362008-06-16 Jan Hubicka <jh@suse.cz>
8437
8438 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
8439 syntax errors.
8440 (cgraph_analyze_function): Likewise.
8441
f0c882ab
JH
84422008-06-16 Jan Hubicka <jh@suse.cz>
8443
8444 * cgraph.h (cgraph_mark_if_needed): New function.
8445 * cgraphunit.c (cgraph_mark_if_needed): New function.
8446 * c-decl.c (duplicate_decl): Use it.
8447
ff2c88a5
JH
84482008-06-16 Jan Hubicka <jh@suse.cz>
8449
8450 * cgraph.c (cgraph_add_new_function): When in expansion state, do
8451 lowering.
8452
b7352f3f
JH
84532008-06-16 Jan Hubicka <jh@suse.cz>
8454
8455 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
8456
900e3ae5
DJ
84572008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
8458 Kazu Hirata <kazu@codesourcery.com>
8459 Maxim Kuvyrkov <maxim@codesourcery.com
8460
8461 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
8462 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
8463 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
8464 EXTRA_SPEC_FUNCTIONS.
8465 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
8466 (DRIVER_SELF_SPECS): Adjust.
8467 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
8468 * config/mips/st.h, config/mips/t-st: New.
8469 * config/mips/driver-native.c, config/mips/x-native: New.
8470 * doc/invoke.texi (MIPS): Document 'native' value for -march and
8471 -mtune options.
8472
b51469a5
MK
84732008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8474
8475 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
8476 from it.
8477 (ISA_HAS_FP_CONDMOVE): New macro.
8478 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
8479 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
8480 (ISA_HAS_NMADD3_NMSUB3): New macro.
8481 * config/mips/mips.c (mips_rtx_costs): Update.
8482 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
8483 compiling for ST Loongson 2E/2F.
8484 (madd<mode>): Rename to madd4<mode>. Update.
8485 (madd3<mode>): New pattern.
8486 (msub<mode>): Rename to msub4<mode>. Update.
8487 (msub3<mode>): New pattern.
8488 (nmadd<mode>): Rename to nmadd4<mode>. Update.
8489 (nmadd3<mode>): New pattern.
8490 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
8491 (nmadd3<mode>_fastmath): New pattern.
8492 (nmsub<mode>): Rename to nmsub4<mode>. Update.
8493 (nmsub3<mode>): New pattern.
8494 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
8495 (nmsub3<mode>_fastmath): New pattern.
8496 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
8497
50e94c7e
SB
84982008-06-18 Steven Bosscher <steven@gcc.gnu.org>
8499
8500 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
8501 (DF_REF_INSN_INFO): New.
8502 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
8503 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
8504 with a NULL DF_REF_INSN_INFO.
8505 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
8506 DF_INSN_SET.
8507 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
8508 DF_INSN_INFO_EQ_USES): New.
8509 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
8510 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
8511 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
8512 * df-core.c: Update comment for above changes.
8513 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
8514 DF_INSN_UID_* macros.
8515 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
8516 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
8517 insn rtx. Update all callers.
8518 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
8519 df_ref_create_structure, df_insn_refs_collect): Likewise.
8520 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
8521 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
8522 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
8523 macros to access the insn refs.
8524 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
8525 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
8526 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
8527 for accessing the refs.
8528 (try_fwprop_subst): Likewise.
8529 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
8530 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
8531 for accessing the refs.
8532 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
8533 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
8534 to look at the insn refs.
8535 (record_uses): Likewise.
8536 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
8537 function anymore.
8538 (mark_artificial_uses): Don't mark_insn for artificial refs.
8539 (mark_reg_rependencies): Likewise.
8540
8541 * doc/rtl.texi: Remove documentation of ADDRESSOF.
8542
18c04407
RW
85432008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8544
8545 * configure: Regenerate.
8546
7995ad77
EW
85472008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
8548
8549 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
22129589
AS
8550 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8551 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7995ad77 8552
e416eb8f
EW
85532008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
8554
8555 * config/avr/avr.c (avr_mcu_t): Add attiny167.
22129589
AS
8556 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8557 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
e416eb8f 8558
59928a83
EW
85592008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
8560
8561 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
22129589
AS
8562 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8563 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
59928a83 8564
b40bf772
BF
85652008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
8566
8567 * tree-ssa-sccvn.c: Fix format of comments.
8568
85692008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
a33a598c
BF
8570
8571 * cgraph.c: Remove unneeded forward declarations of eq_node()
8572 and hash_node().
8573
4a8cae83
SB
85742008-06-17 Steven Bosscher <steven@gcc.gnu.org>
8575
8576 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
8577 REG_RETVAL notes.
8578 (see_update_relevancy): Likewise.
8579 * fwprop.c (try_fwprop_subst): Likewise.
8580 * rtlanal.c (noop_move_p): Likewise.
8581 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
8582 notes to non-existing libcall blocks.
8583 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
8584 Remove orig_set.
8585 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
8586 (dead_libcall_p): Remove.
8587 (delete_trivially_dead_insns): Don't use it.
8588 * web.c (union_defs): Remove comment about keeping nops.
8589 * gcse.c (hash_scan_insn): Don't take libcall pointers.
8590 (compute_hash_table_work): Don't track libcall notes.
8591 (do_local_cprop): Don't take libcall pointers. Don't update
8592 libcall notes.
8593 (adjust_libcall_notes): Deleted.
8594 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
8595 ever have existed in the first place).
8596 (replace_store_insn): Don't try to remove libcall notes.
8597 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
8598 (resolve_reg_notes): Don't call them.
8599 (resolve_simple_move): Likewise.
8600 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
8601 Don't remove REG_RETVAL notes.
8602 * emit-rtl.c (try_split): Don't update libcall notes.
8603 (emit_copy_of_insn_after): Dito.
8604 * cselib.c (cselib_current_insn_in_libcall): Remove.
8605 (cselib_process_insn): Don't set/clear it.
8606 (new_elt_loc_list): Don't record it.
8607 (cselib_init): Don't initialize it.
8608 * cselib.c (struct elt_loc_list): Remove in_libcall field.
8609 * loop-invariant.c (find_invariant_insn): Don't look for libcall
8610 notes.
8611 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
8612 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
8613 (init_deps): Don't initialize it.
8614 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
8615 * combine.c (delete_noop_moves): Don't update libcall notes.
8616 (can_combine_p): Remove now pointless #if 0 block.
8617 (try_combine): Remove another obsolete #if 0 block.
8618 (distribute_notes): Don't distribute libcall notes.
8619 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
8620 * dce.c (libcall_dead_p): Remove.
8621 (delete_unmarked_insns): Don't handle libcall blocks.
8622 (preserve_libcall_for_dce): Remove.
8623 (prescan_insns_for_dce): Don't special-case libcall block insns.
22129589 8624 * reload1 (reload): Don't handle libcall notes.
4a8cae83
SB
8625 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
8626 documentation.
8627
ec346900
EW
86282008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
8629
8630 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
8631 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
8632 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
8633
951a5379
EW
86342008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
8635
8636 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
8637 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
22129589 8638 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
951a5379 8639
2d09b640
RW
86402008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8641
8642 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
8643
54269f05
IR
86442008-06-16 Ira Rosen <irar@il.ibm.com>
8645
8646 PR tree-optimization/36493
8647 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
8648 the arguments list. Use VECTYPE to create vector pointer.
8649 (vectorizable_store): Fail if accesses through a pointer to vectype
8650 do not alias the original memory reference operands.
8651 Call vect_create_data_ref_ptr without the removed argument.
8652 (vectorizable_load): Likewise.
8653 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
8654 removed argument.
8655
f4df5771
AH
86562008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
8657
8658 PR target/36336
22129589 8659 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
f4df5771
AH
8660 reg_equiv_constant.
8661
58684fa0
MK
86622008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
8663
8664 * config/mips/loongson2ef.md: New file.
8665 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8666 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8667 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8668 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
8669 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
8670 and loongson_2f.
8671 (loongson2ef.md): New include.
8672 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
8673 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
8674 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
8675 (loongson_gt_<mode>, loongson_extract_halfword)
8676 (loongson_insert_halfword_0, loongson_insert_halfword_2)
8677 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
8678 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
8679 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
8680 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
8681 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
8682 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
8683 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
8684 (vec_interleave_low<mode>): Define type attribute.
8685 * config/mips/mips.c (mips_ls2): New static variable.
8686 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
8687 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
8688 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
8689 Implement target scheduling hooks.
8690 (mips_multipass_dfa_lookahead): Update to handle tuning for
8691 Loongson 2E/2F.
8692 (mips_sched_init): Initialize data for Loongson scheduling.
8693 (mips_ls2_variable_issue): New static function.
8694 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
8695 Add sanity check.
8696 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
8697 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
8698 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
8699 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
8700 Handle ST Loongson 2E/2F cores.
8701 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
8702
1cbc62c0
RW
87032008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8704
8705 * omp-low.c (extract_omp_for_data): Fix comment typo.
8706 * c.opt: Fix typo.
8707
6ccde948
RW
87082008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8709
8710 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
8711 FIXME note about gcc/config.guess.
8712 * doc/options.texi (Option file format): Remove non-ASCII bytes.
8713 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
8714 * doc/cppopts.texi: Likewise.
8715 * doc/extend.texi: Likewise.
8716 * doc/gcc.texi: Likewise.
8717 * doc/gccint.texi: Likewise.
8718 * doc/gcov.texi: Likewise.
8719 * doc/gty.texi: Likewise.
8720 * doc/hostconfig.texi: Likewise.
8721 * doc/install.texi: Likewise.
8722 * doc/invoke.texi: Likewise.
8723 * doc/loop.texi: Likewise.
8724 * doc/makefile.texi: Likewise.
8725 * doc/md.texi: Likewise.
8726 * doc/passes.texi: Likewise.
8727 * doc/tm.texi: Likewise.
8728 * doc/tree-ssa.texi: Likewise.
8729 * doc/trouble.texi: Likewise.
8730
93581857
MS
87312008-06-15 Mark Shinwell <shinwell@codesourcery.com>
8732 Nathan Sidwell <nathan@codesourcery.com>
8733 Maxim Kuvyrkov <maxim@codesourcery.com>
8734 Richard Sandiford <rdsandiford@googlemail.com>
22129589 8735
93581857
MS
8736 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
8737 * config/mips/mips-protos.h (mips_expand_vector_init): New.
8738 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
8739 builtins.
8740 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
8741 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
8742 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
8743 V8QImode cases.
8744 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
8745 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
8746 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
8747 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
8748 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
8749 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
8750 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
8751 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
8752 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
8753 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
8754 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
8755 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
8756 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
8757 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
8758 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
8759 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
8760 (mips_builtins): Add Loongson builtins.
8761 (mips_loongson_2ef_bdesc): New.
8762 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
8763 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
8764 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
8765 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
8766 New.
8767 (mips_expand_vector_init): New.
8768 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
8769 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
8770 if appropriate.
8771 * config/mips/mips.md: Add unspec numbers for Loongson
8772 builtins. Include loongson.md.
8773 (MOVE64): Include Loongson vector modes.
8774 (SPLITF): Include Loongson vector modes.
8775 (HALFMODE): Handle Loongson vector modes.
8776 * config/mips/loongson.md: New.
8777 * config/mips/loongson.h: New.
8778 * config.gcc: Add loongson.h header for mips*-*-* targets.
8779 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
8780
397fda80
JM
87812008-06-14 Joseph Myers <joseph@codesourcery.com>
8782
8783 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
8784 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
8785 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
8786 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
8787 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
8788 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
8789 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
8790 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
8791 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
8792 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
8793 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
8794 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
8795 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
8796 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
8797 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
8798 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
8799 Remove use_fixproto=yes.
8800 (ia64*-*-hpux*): Remove comment about using fixproto.
8801 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
8802
b15a9f63
RW
88032008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8804
8805 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
8806 library rebuilds.
8807 * configure: Regenerate.
8808
9133c85e
EB
88092008-06-13 Eric Botcazou <ebotcazou@adacore.com>
8810
8811 PR middle-end/36520
8812 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
8813 before evaluating it.
8814
6cf59865
JJ
88152008-06-13 Jakub Jelinek <jakub@redhat.com>
8816
8817 PR c/36507
8818 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
8819 nested inline functions.
8820 (start_decl, start_function): Don't invert DECL_EXTERNAL
8821 for nested inline functions.
8822
a9a53350
RS
88232008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
8824
8825 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
8826 splits that must be made for correctness.
8827
fd0eb897
RS
88282008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
8829
8830 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
8831 (AVAIL_NON_MIPS16): Likewise.
8832 (mips_builtin_description): Replace target_flags with a predicate.
8833 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
8834 (dspr2_32): New availability predicates.
8835 (MIPS_BUILTIN): New macro.
8836 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
8837 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
8838 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
8839 Replace the TARGET_FLAGS parameters with AVAIL parameters.
8840 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
8841 (mips_dsp_32only_bdesc): Merge into...
8842 (mips_builtins): ...this new array.
8843 (mips_bdesc_map, mips_bdesc_arrays): Delete.
8844 (mips_init_builtins): Update after above changes.
8845 (mips_expand_builtin_1): Merge into...
8846 (mips_expand_builtin): ...here and update after above changes.
8847
ef0a4b67
PB
88482008-06-12 Paul Brook <paul@codesourcery.com>
8849
8850 * longlong.h (__arm__): Define count_leading_zeros.
8851 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
8852 (clzsi2, clzdi2): New functions.
8853 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
8854 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
8855 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
8856 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
8857 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
8858 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
8859 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
8860 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8861 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
8862 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
8863
03b3e271
KH
88642008-06-12 Kazu Hirata <kazu@codesourcery.com>
8865
8866 * config/m68k/m68k.c (m68k_tune_flags): New.
8867 (override_options): Compute m68k_tune_flags.
8868 (MULL_COST, MULW_COST): Update for various variants of CFV2.
8869 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
8870
3ac4c44a
JJ
88712008-06-12 Jakub Jelinek <jakub@redhat.com>
8872
8873 PR middle-end/36506
ba03a350 8874 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3ac4c44a 8875
955f6531
EB
88762008-06-12 Eric Botcazou <ebotcazou@adacore.com>
8877
8878 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
8879 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
8880
bd323ce5
EB
88812008-06-12 Eric Botcazou <ebotcazou@adacore.com>
8882
8883 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
8884 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
8885
c34938a8
JJ
88862008-06-12 Jakub Jelinek <jakub@redhat.com>
8887
8888 PR middle-end/36506
8889 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
8890 reductions.
8891
b3778556
RG
88922008-06-12 Richard Guenther <rguenther@suse.de>
8893
8894 PR tree-optimization/36345
8895 * tree-flow.h (struct ptr_info_def): Align escape_mask,
8896 add memory_tag_needed flag.
8897 (may_alias_p): Declare.
8898 * tree-ssa-alias.c (may_alias_p): Export.
8899 (set_initial_properties): Use memory_tag_needed flag.
8900 (update_reference_counts): Likewise.
8901 (reset_alias_info): Reset memory_tag_needed flag.
8902 (create_name_tags): Check memory_tag_needed flag.
8903 (dump_points_to_info_for): Dump it.
8904 * tree-ssa-structalias.c (struct variable_info): Remove
8905 directly_dereferenced flag.
8906 (new_var_info): Do not initialize it.
8907 (process_constraint_1): Do not set it.
8908 (update_alias_info): Set is_dereferenced flag.
8909 (set_uids_in_ptset): Use may_alias_p.
8910 (set_used_smts): Check memory_tag_needed flag.
8911 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
8912 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
8913 memory_tag_needed flag.
8914 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
8915 from broken design.
8916
394a378c
KT
89172008-06-12 Kai Tietz <kai.tietz@onevision.com>
8918
ba03a350
UB
8919 * config/i386/i386.c (ix86_compute_frame_layout): Disable
8920 red zone for w64 abi.
394a378c
KT
8921 (ix86_expand_prologue): Likewise.
8922 (ix86_force_to_memory): Likewise.
8923 (ix86_free_from_memory): Likewise.
8924
567f0b17
EW
89252008-06-11 Edmar Wienskoski <edmar@freescale.com>
8926
8927 PR target/36425
8928 * config/rs6000/rs6000.c (rs6000_override_options): Set
ba03a350 8929 rs6000_isel conditionally to the absence of comand line override.
567f0b17
EW
8930 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8931 Remove duplicate rs6000_isel setting.
8932 * config/rs6000/eabispe.h: Ditto.
8933
4653cae5
RG
89342008-06-11 Richard Guenther <rguenther@suse.de>
8935
8936 * alias.c (get_alias_set): Use the element alias-set for arrays.
8937 (record_component_aliases): For arrays and vectors do nothing.
8938 * c-common.c (strict_aliasing_warning): Handle the cases
8939 of alias set zero explicitly.
8940 * Makefile.in (dfp.o-warn): Add -Wno-error.
8941
8981c15b
JM
89422008-06-11 Joseph Myers <joseph@codesourcery.com>
8943
8944 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
8945 tune_32 tune_64.
8946 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
8947 tune_32 tune_64 to supported_defaults. Allow values not
8948 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
8949 x86_64. Do not override cpu_32 or cpu_64 values from target name.
8950 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
8951 with_cpu_64 to generic for 64-bit-supporting configurations, not
8952 with_cpu. Remove FIXMEs.
8953 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
8954 --with-arch-64, --with-tune-32, --with-tune-64): Document.
8955 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
8956 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
8957 arch_32 and arch_64.
8958
056c8fae 89592008-06-11 Eric Botcazou <ebotcazou@adacore.com>
ba03a350 8960 Olivier Hainque <hainque@adacore.com>
056c8fae
EB
8961
8962 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
8963 Use DECL_SIZE_UNIT to retrieve the size of the field.
8964
af06585a
JM
89652008-06-11 Joseph Myers <joseph@codesourcery.com>
8966
8967 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
8968 with function calls after declarations. Lay out
8969 neon_float_type_node before further use.
8970
fd73537b
RG
89712008-06-11 Richard Guenther <rguenther@suse.de>
8972
8973 * tree-flow.h (may_point_to_global_var): Declare.
8974 * tree-ssa-alias.c (may_point_to_global_var): New function.
8975 * tree-ssa-sink.c (is_hidden_global_store): Use it.
8976
6b7b0ba1
KH
89772008-06-10 Kazu Hirata <kazu@codesourcery.com>
8978
8979 * configure.ac: Teach that fido supports .debug_line.
8980 * configure: Regenerate.
8981
711b2510
TT
89822008-06-10 Tom Tromey <tromey@redhat.com>
8983
8984 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
8985 debug hook.
8986
bc6d4c3f
JM
89872008-06-10 Joseph Myers <joseph@codesourcery.com>
8988
8989 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
8990 (encode_decimal64, decode_decimal64, encode_decimal128,
8991 decode_decimal128): Reverse order of 32-bit parts of value if host
8992 and target endianness differ.
8993
0178d644 89942008-06-10 Vinodha Ramasamy <vinodha@google.com>
ba03a350
UB
8995
8996 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
0178d644
VR
8997 Avoid division by 0.
8998 (tree_mod_pow2_value_transform): Likewise.
8999 (tree_ic_transform): Likewise.
9000 (tree_stringops_transform): Likewise.
9001 (tree_mod_subtract_transform): Likewise.
9002 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
9003 (copy_edges_for_bb): Likewise.
9004 (initialize_cfun): Likewise.
9005
88b9490b
UB
90062008-06-10 Uros Bizjak <ubizjak@gmail.com>
9007
9008 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
9009 nonmemory_operand. Add "N" operand constraint.
9010 (*btsi): Ditto.
9011 (*jcc_btdi_mask_rex64): New instruction and split pattern.
9012 (*jcc_btsi_mask): Ditto.
9013 (*jcc_btsi_mask_1): Ditto.
9014
0627bfb4
JM
90152008-06-10 Joseph Myers <joseph@codesourcery.com>
9016
9017 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
9018 TYPE_CANONICAL for copied element type.
9019
33ee5810
UB
90202008-06-10 Uros Bizjak <ubizjak@gmail.com>
9021
9022 PR target/36473
9023 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
9024 Add m_CORE2 and m_GENERIC.
9025 * config/i386/predicates.md (bt_comparison_operator): New predicate.
9026 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
9027 (*btsi): Ditto.
9028 (*jcc_btdi_rex64): New instruction and split pattern.
9029 (*jcc_btsi): Ditto.
9030 (*jcc_btsi_1): Ditto.
9031 (*btsq): Fix Intel asm dialect operand order.
9032 (*btrq): Ditto.
9033 (*btcq): Ditto.
9034
3115c00d
AH
90352008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
9036
9037 PR middle-end/36447
22129589 9038 * simplify-rtx.c (simplify_subreg): Add check for shift count
3115c00d
AH
9039 greater than size.
9040
21dfc6dc
RS
90412008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
9042
9043 * doc/md.texi: Synchronize with later constraints.md change.
9044 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
9045 with a C implementation.
9046 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
9047 MFLO handling.
9048 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
9049 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
9050 when moving to and from MD_REGNUM.
9051 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
9052 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
9053 Handle byte and halfword moves.
9054 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
9055 separately.
9056 * config/mips/constraints.md (h): Turn into NO_REGS.
9057 (l, x): Update documentation.
9058 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
9059 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
9060 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
9061 (HILO): New mode iterator.
9062 (MOVE128): Add TI.
9063 (any_div): New code iterator.
9064 (u): Extend code attribute to div and udiv.
9065 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
9066 d_operand in the splitters. Remove redundant CONST_INT checks.
9067 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
9068 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
9069 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
9070 accordingly, using normal moves instead of unspecs to move LO into
9071 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
9072 (<u>mulsidi3): Handle expansion in C code.
9073 (<u>mulsidi3_32bit_internal): Rename to...
9074 (<u>mulsidi3_32bit): ...this.
9075 (<u>mulsidi3_32bit_r4000): Fix insn separator.
9076 (*<u>mulsidi3_64bit): Rename to...
9077 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
9078 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
9079 to set LO and HI to the multiplication result. Use a normal move
9080 for MFLO and an unspec for MFHI.
9081 (*<u>mulsidi3_64bit_parts): Replace with...
9082 (<u>mulsidi3_64bit_hilo): ...this new instruction.
9083 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
9084 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
9085 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
9086 instead of HI. Split the instruction into a separate multiplication
9087 and MFHI if !TARGET_FIX_R4000.
9088 (<su>muldi3_highpart): Likewise.
9089 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
9090 and the "=h" clobber.
9091 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
9092 (<u>mulditi3): New expander.
9093 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
9094 (madsi): Remove "=h" clobber.
9095 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
9096 Force the modulus result to be a GPR and split the instruction into
9097 a division followed by an MFHI after reload.
9098 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
9099 (*lea_high64): Use d_operand in the define_peephole2. Likewise
9100 the MIPS16 HIGH define_split.
9101 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
9102 of acc<->gpr moves to "multi".
9103 (*movdi_64bit): Replace the single "x" alternative with
9104 alternatives for moving into and out of "a".
9105 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
9106 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
9107 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
9108 Use d_operand in the splitters. Remove redundant CONST_INT checks.
9109 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
9110 (movti): New expander.
9111 (*movti, *movti_mips16): New insns.
9112 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
9113 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
9114 (mthi<GPR:mode>_<HILO:mode>): Likewise.
9115 * config/mips/predicates.md (fpr_operand): Delete.
9116 (d_operand): New predicate.
9117
0e462a95
MM
91182008-06-09 Michael Meissner <michael.meissner@amd.com>
9119
9120 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
9121 failure on some Bourne shells.
9122 (x86_64-*-*): Ditto.
9123
d3c1d2a0
KT
91242008-06-09 Kai Tietz <kai.tietz@onevision.com>
9125
9126 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
9127
2bd58b1b
EB
91282008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
9129
9130 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
9131 (sparc-sun-solaris2*): Likewise.
9132
2c2b1710
AC
91332008-06-09 Arnaud Charlet <charlet@adacore.com
9134
9135 * doc/install.texi: Update requirements to build the Ada compiler.
9136
fed6152d
SB
91372008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
9138
9139 * df-scan.c (struct df_scan_problem_data): Remove the
9140 mw_link_pool alloc pool.
9141 (df_scan_free_internal): Don't free it.
9142 (df_scan_alloc): Don't allocate it.
9143 * df.h (struct df_link): Update comment.
9144
c427220a
NS
91452008-06-08 Nathan Sidwell <nathan@codesourcery.com>
9146
9147 * except.h: Correct checks for when SJLJ exceptions must be used.
9148
cf0fd618
MLI
91492008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9150
9151 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
9152 default.
22129589 9153
f8c33439
JM
91542008-06-08 Joseph Myers <joseph@codesourcery.com>
9155
9156 PR tree-optimization/36218
9157 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
9158 configure for the build system.
9159 (BUILD_LDFLAGS): Define.
9160 * configure: Regenerate.
9161 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
9162
91635d08
AS
91632008-07-08 Anatoly Sokolov <aesok@post.ru>
9164
9165 PR target/36424
9166 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
22129589
AS
9167 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
9168 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
91635d08 9169
ae06ac00
DS
91702008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
9171
9172 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
9173
cd985f66
JM
91742008-06-07 Joseph Myers <joseph@codesourcery.com>
9175
9176 * config.gcc (Obsolete configurations): Remove list of
9177 configurations.
9178 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
9179 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
9180 targets matched by those patterns.
9181 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
9182 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
9183 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
9184 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
9185 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9186 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
9187 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
9188 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
9189 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
9190 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
9191 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
9192 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
9193 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
9194 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
9195 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
9196 Make code for Solaris 7 and greater unconditional for Solaris.
9197 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
9198 Remove --with-* handling.
9199 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
9200 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
9201 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
9202 LINK_OS_WINDISS_SPEC): Remove.
9203 * config/rs6000/sysv4.opt (mwindiss): Remove.
9204 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
9205 * configure: Regenerate.
9206 * doc/cpp.texi: Don't mention BeOS.
9207 * doc/extend.texi (interrupt): Don't mention MS1.
9208 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
9209 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
9210 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
9211 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
9212 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
9213 Remove.
9214 * doc/invoke.texi (MT Options): Remove.
9215 (-mwindiss): Remove.
9216 (CRIS Options): Remove cris-axis-aout references.
9217 (HPPA Options): Don't mention hppa1.1-*-pro.
9218 * doc/md.texi: (MorphoTech family): Remove.
9219 * libgcc2.c: Don't handle UWIN.
9220 * config/alpha/t-unicosmk: Remove.
9221 * config/alpha/unicosmk.h: Remove.
9222 * config/arm/kaos-arm.h: Remove.
9223 * config/arm/kaos-strongarm.h: Remove.
9224 * config/arm/strongarm-coff.h: Remove.
9225 * config/arm/strongarm-elf.h: Remove.
9226 * config/arm/strongarm-pe.h: Remove.
9227 * config/arm/t-strongarm-pe: Remove.
9228 * config/arm/t-xscale-coff: Remove.
9229 * config/arm/t-xscale-elf: Remove.
9230 * config/arm/xscale-coff.h: Remove.
9231 * config/arm/xscale-elf.h: Remove.
9232 * config/chorus.h: Remove.
9233 * config/cris/aout.h: Remove.
9234 * config/cris/aout.opt: Remove.
9235 * config/cris/t-aout: Remove.
9236 * config/i386/beos-elf.h: Remove.
9237 * config/i386/kaos-i386.h: Remove.
9238 * config/i386/ptx4-i.h: Remove.
9239 * config/i386/sco5.h: Remove.
9240 * config/i386/sco5.opt: Remove.
9241 * config/i386/sysv4-cpp.h: Remove.
9242 * config/i386/sysv5.h: Remove.
9243 * config/i386/t-beos: Remove.
9244 * config/i386/t-sco5: Remove.
9245 * config/i386/t-uwin: Remove.
9246 * config/i386/uwin.asm: Remove.
9247 * config/i386/uwin.h: Remove.
9248 * config/kaos.h: Remove.
9249 * config/mips/windiss.h: Remove.
9250 * config/mt: Remove directory.
9251 * config/pa/pa-osf.h: Remove.
9252 * config/pa/pa-pro-end.h: Remove.
9253 * config/pa/t-pro: Remove.
9254 * config/ptx4.h: Remove.
9255 * config/rs6000/beos.h: Remove.
9256 * config/rs6000/kaos-ppc.h: Remove.
9257 * config/rs6000/t-beos: Remove.
9258 * config/rs6000/windiss.h: Remove.
9259 * config/sh/kaos-sh.h: Remove.
9260 * config/sol2-6.h: Remove.
9261 * config/sparc/sol26-sld.h: Remove.
9262 * config/sparc/sysv4-only.h: Remove.
9263 * config/vax/bsd.h: Remove.
9264 * config/vax/t-memfuncs: Remove.
9265 * config/vax/ultrix.h: Remove.
9266 * config/vax/vaxv.h: Remove.
9267 * config/windiss.h: Remove.
9268
f3e10a2b 92692008-06-06 Uros Bizjak <ubizjak@gmail.com>
88057dc8
UB
9270
9271 PR rtl-optimization/36438
9272 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
9273 for vector shifts with constant scalar shift operands.
9274
d0ae31b0
SM
92752008-06-06 Sandip Matte <sandip@rmicorp.com>
9276
9277 * doc/invoke.texi: Document -march=xlr.
9278 * config/mips/xlr.md: New file.
9279 * config/mips/mips.md: Include it.
9280 (cpu): Add "xlr".
9281 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
9282 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
9283 (mips_rtx_cost_data): Likewise.
9284
619fe064
NF
92852008-06-06 Nathan Froyd <froydnj@codesourcery.com>
9286
9287 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
9288 PRE_INC and PRE_DEC cases.
9289
67339062
JJ
92902008-06-06 Jakub Jelinek <jakub@redhat.com>
9291
c6eb958c
JJ
9292 PR rtl-optimization/36419
9293 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
9294 the emitting jump insn.
9295
67339062
JJ
9296 PR target/36362
9297 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
9298 is not bool, boolify the whole *expr_p and convert to the desired type.
9299
a68ab351
JJ
93002008-06-06 Jakub Jelinek <jakub@redhat.com>
9301
88057dc8 9302 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
9303 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
9304 Add omp_private_outer_ref hook, add another argument to
9305 omp_clause_default_ctor hook.
9306 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
9307 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
9308 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
9309 hook_tree_tree_tree_tree_null.
9310 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
9311 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
9312 * hooks.c (hook_tree_tree_tree_tree_null): New function.
9313 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
9314 * tree.def (OMP_TASK): New tree code.
9315 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
9316 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
9317 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
9318 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
9319 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
9320 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
9321 OMP_CLAUSE_COLLAPSE_EXPR): Define.
9322 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
9323 (OMP_DIRECTIVE_P): Add OMP_TASK.
9324 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
9325 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
9326 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
9327 and OMP_CLAUSE_UNTIED entries.
9328 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
9329 num_ops to 2.
9330 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
9331 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
9332 * tree-pretty-print.c (dump_omp_clause): Handle
9333 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
9334 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
9335 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
9336 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
9337 warning about unsigned iterators. Change decl/init/cond/incr
9338 arguments to TREE_VECs, check arguments for all collapsed loops.
9339 (c_finish_omp_taskwait): New function.
9340 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
9341 ws_clauses.
9342 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
9343 default_function_array_conversion on init. Add par_clauses argument.
9344 If decl is present in parallel's lastprivate clause, change it to
9345 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
9346 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
9347 collapse count in clauses.
9348 (c_parser_omp_for, c_parser_omp_parallel): Adjust
9349 c_parser_omp_for_loop callers.
9350 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
9351 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
9352 (c_parser_omp_clause_name): Handle collapse and untied clauses.
9353 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
9354 functions.
9355 (c_parser_omp_clause_schedule): Handle schedule(auto).
9356 Include correct location in the error message.
9357 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
9358 and PRAGMA_OMP_CLAUSE_UNTIED.
9359 (OMP_TASK_CLAUSE_MASK): Define.
9360 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
9361 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
9362 * tree-nested.c (convert_nonlocal_omp_clauses,
9363 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
9364 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
9365 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
9366 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
9367 OMP_CLAUSE_DECL.
9368 (conver_nonlocal_reference, convert_local_reference,
9369 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
9370 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
9371 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
9372 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
9373 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
9374 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
9375 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
9376 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
9377 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
9378 OMP_CLAUSE_UNTIED.
9379 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
9380 * c-common.h (c_finish_omp_taskwait): New prototype.
9381 * gimple-low.c (lower_stmt): Handle OMP_TASK.
9382 * tree-parloops.c (create_parallel_loop): Create 1 entry
9383 vectors for OMP_FOR_{INIT,COND,INCR}.
9384 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
9385 (make_edges): Handle OMP_TASK.
9386 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
9387 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
9388 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
9389 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
9390 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
9391 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
9392 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
9393 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
9394 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
9395 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
9396 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
9397 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
9398 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
9399 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
9400 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
9401 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
9402 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
9403 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
9404 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
9405 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
9406 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
9407 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
9408 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
9409 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
9410 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
9411 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
9412 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
9413 original iterator is present in lastprivate clause or if
9414 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
9415 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
9416 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
9417 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
9418 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
9419 if it is set, lookup var in outer contexts too. Handle
9420 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
9421 to be implicitly determined firstprivate for task regions.
9422 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
9423 if it is set, lookup var in outer contexts too. Set
9424 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
9425 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
9426 OMP_CLAUSE_UNTIED. Take region_type as last argument
9427 instead of in_parallel and in_combined_parallel.
9428 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
9429 Adjust callers.
9430 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 9431 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
9432 (new_omp_context): Set default_kind to
9433 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
9434 (omp_region_type): New enum.
9435 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
9436 fields, add region_type.
9437 (new_omp_context): Take region_type as argument instead of is_parallel
9438 and is_combined_parallel.
9439 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
9440 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
9441 ctx->is_combined_parallel checks.
9442 (gimplify_omp_task): New function.
9443 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
9444 OMP_CLAUSE_UNTIED.
9445 * omp-low.c (extract_omp_for_data): Use schedule(static)
9446 for schedule(auto). Handle pointer and unsigned iterators.
9447 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
9448 Add loops argument. Extract data for collapsed OMP_FOR loops.
9449 (expand_parallel_call): Assert sched_kind isn't auto,
9450 map runtime schedule to index 3.
9451 (struct omp_for_data_loop): New type.
9452 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
9453 Add loop, loops, collapse and iter_type fields.
9454 (workshare_safe_to_combine_p): Disallow combined for if
9455 iter_type is unsigned long long. Don't combine collapse > 1 loops
9456 unless all bounds and steps are constant. Adjust extract_omp_for_data
9457 caller.
9458 (expand_omp_for_generic): Handle pointer, unsigned and long long
9459 iterators. Handle collapsed OMP_FOR loops. Adjust
9460 for struct omp_for_data changes. If libgomp function doesn't return
9461 boolean_type_node, add comparison of the return value with 0.
9462 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
9463 pointer, unsigned and long long iterators. Adjust for struct
9464 omp_for_data changes.
9465 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
9466 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
9467 unsigned long long. Allocate loops array, pass it to
9468 extract_omp_for_data. For collapse > 1 loops use always
9469 expand_omp_for_generic.
9470 (omp_context): Add sfield_map and srecord_type fields.
9471 (is_task_ctx, lookup_sfield): New functions.
9472 (use_pointer_for_field): Use is_task_ctx helper. Change first
9473 argument's type from const_tree to tree. Clarify comment.
9474 In OMP_TASK disallow copy-in/out sharing.
9475 (build_sender_ref): Call lookup_sfield instead of lookup_field.
9476 (install_var_field): Add mask argument. Populate both record_type
9477 and srecord_type if needed.
9478 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
9479 in srecord_type.
9480 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
9481 and DECL_FIELD_OFFSET.
9482 (scan_sharing_clauses): Adjust install_var_field callers. For
9483 firstprivate clauses on explicit tasks allocate the var by value in
9484 record_type unconditionally, rather than by reference.
9485 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
9486 Use is_taskreg_ctx instead of is_parallel_ctx.
9487 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
9488 (create_omp_child_function_name): Add task_copy argument, use
9489 *_omp_cpyfn* names if it is true.
9490 (create_omp_child_function): Add task_copy argument, if true create
9491 *_omp_cpyfn* helper function.
9492 (scan_omp_parallel): Adjust create_omp_child_function callers.
9493 Rename parallel_nesting_level to taskreg_nesting_level.
9494 (scan_omp_task): New function.
9495 (lower_rec_input_clauses): Don't run constructors for firstprivate
22129589 9496 explicit task vars which are initialized by *_omp_cpyfn*.
a68ab351
JJ
9497 Pass outer var ref to omp_clause_default_ctor hook if
9498 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
9499 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
9500 OMP_CLAUSE_REDUCTION_INIT.
9501 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
9502 avoid duplicate setting of fields. Handle
9503 OMP_CLAUSE_PRIVATE_OUTER_REF.
9504 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
9505 copy-out if TREE_READONLY, only copy-in.
9506 (expand_task_copyfn): New function.
9507 (expand_task_call): New function.
9508 (struct omp_taskcopy_context): New type.
9509 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
9510 New functions.
9511 (lower_omp_parallel): Rename to...
9512 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
9513 Call create_task_copyfn if srecord_type is needed. Adjust
9514 sender_decl type.
9515 (task_shared_vars): New variable.
9516 (check_omp_nesting_restrictions): Warn if work-sharing,
9517 barrier, master or ordered region is closely nested inside OMP_TASK.
9518 Add warnings for barrier if closely nested inside of work-sharing,
9519 ordered, or master region.
9520 (scan_omp_1): Call check_omp_nesting_restrictions even for
9521 GOMP_barrier calls. Rename parallel_nesting_level to
9522 taskreg_nesting_level. Handle OMP_TASK.
9523 (lower_lastprivate_clauses): Even if some lastprivate is found on a
9524 work-sharing construct, continue looking for them on parent parallel
9525 construct.
9526 (lower_omp_for_lastprivate): Add lastprivate clauses
9527 to the beginning of dlist rather than end. Adjust for struct
9528 omp_for_data changes.
9529 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
9530 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 9531 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
9532 (get_ws_args_for): Adjust extract_omp_for_data caller.
9533 (scan_omp_for): Handle collapsed OMP_FOR
9534 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
9535 (lower_omp_single_simple): If libgomp function doesn't return
9536 boolean_type_node, add comparison of the return value with 0.
9537 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
9538 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
9539 (parallel_nesting_level): Rename to...
9540 (taskreg_nesting_level): ... this.
9541 (is_taskreg_ctx): New function.
9542 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
9543 of is_parallel_ctx.
9544 (execute_lower_omp): Rename parallel_nesting_level to
9545 taskreg_nesting_level.
9546 (expand_omp_parallel): Rename to...
9547 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
9548 Call omp_task_call for OMP_TASK regions.
9549 (expand_omp): Adjust caller, handle OMP_TASK.
9550 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
9551
9552 * bitmap.c (bitmap_default_obstack_depth): New variable.
9553 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
9554 if argument is NULL and bitmap_default_obstack is already initialized.
9555 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
9556 at the end.
9557 * matrix-reorg.c (matrix_reorg): Likewise.
9558
c4fe74e0
UB
95592008-06-06 Uros Bizjak <ubizjak@gmail.com>
9560
9561 * config/i386/i386.md (*indirect_jump): Macroize using P
9562 mode iterator. Remove !TARGET_64BIT from insn constraints.
9563 (*tablejump_1): Ditto.
9564 (*indirect_jump_rex64): Remove insn pattern.
9565 (*tablejump_1_rex64): Ditto.
9566 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
9567 and eh_return_si insn patterns.
9568
9f09b13f
RG
95692008-06-06 Richard Guenther <rguenther@suse.de>
9570
9571 * tree-ssa-structalias.c (merge_smts_into): Remove.
9572 (find_what_p_points_to): Do not bother to compute the
9573 points-to set for pt_anything pointers.
9574 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
9575 for pt_anything pointers is ok.
9576
9fbe48c0
JH
95772008-06-06 Jan Hubicka <jh@suse.cz>
9578
9579 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
9580
fa10beec
RW
95812008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9582
9583 * cgraph.c: Fix typos in comments.
9584 (cgraph_availability_names): Fix string typo.
9585 * fold-const.c: Fix typos in comments.
9586 (fold_binary): Fix typo in warning.
9587 * genautomata.c: Fix typos in comments.
9588 (check_presence_pattern_sets): Fix typo in local variable.
9589 (output_description): Fix typo in output.
9590 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
9591 * hwint.h: Likewise.
9592 * matrix-reorg.c (check_allocation_function): Likewise.
9593 * omega.c (smooth_weird_equations): Likewise.
9594 * auto-inc-dec.c: Fix typos in comments.
9595 * bb-reorder.c: Likewise.
9596 * builtins.c: Likewise.
9597 * c-common.c: Likewise.
9598 * c-cppbuiltin.c: Likewise.
9599 * c-parser.c: Likewise.
9600 * c-pretty-print.c: Likewise.
9601 * cfgcleanup.c: Likewise.
9602 * cfgexpand.c: Likewise.
9603 * cfghooks.c: Likewise.
9604 * cfglayout.c: Likewise.
9605 * cfgloopmanip.c: Likewise.
9606 * cgraphunit.c: Likewise.
9607 * coverage.c: Likewise.
9608 * dbxout.c: Likewise.
9609 * df-byte-scan.c: Likewise.
9610 * df-core.c: Likewise.
9611 * df-problems.c: Likewise.
9612 * df-scan.c: Likewise.
9613 * dfp.c: Likewise.
9614 * dominance.c: Likewise.
9615 * domwalk.c: Likewise.
9616 * dse.c: Likewise.
9617 * dwarf2out.c: Likewise.
9618 * emit-rtl.c: Likewise.
9619 * et-forest.c: Likewise.
9620 * function.c: Likewise.
9621 * function.h: Likewise.
9622 * gcc.c: Likewise.
9623 * gcov-io.c: Likewise.
9624 * gcov.c: Likewise.
9625 * gcse.c: Likewise.
9626 * genattrtab.c: Likewise.
9627 * ggc-page.c: Likewise.
9628 * gimplify.c: Likewise.
9629 * gthr-lynx.h: Likewise.
9630 * haifa-sched.c: Likewise.
9631 * ipa-cp.c: Likewise.
9632 * ipa-inline.c: Likewise.
9633 * ipa-prop.h: Likewise.
9634 * ipa-pure-const.c: Likewise.
9635 * ipa-struct-reorg.c: Likewise.
9636 * ipa-struct-reorg.h: Likewise.
9637 * ipa-type-escape.c: Likewise.
9638 * ipa.c: Likewise.
9639 * loop-doloop.c: Likewise.
9640 * mips-tfile.c: Likewise.
9641 * mkmap-flat.awk: Likewise.
9642 * mkmap-symver.awk: Likewise.
9643 * modulo-sched.c: Likewise.
9644 * omp-low.c: Likewise.
9645 * optabs.c: Likewise.
9646 * optabs.h: Likewise.
9647 * opts.c: Likewise.
9648 * passes.c: Likewise.
9649 * postreload-gcse.c: Likewise.
9650 * postreload.c: Likewise.
9651 * predict.c: Likewise.
9652 * pretty-print.h: Likewise.
9653 * profile.c: Likewise.
9654 * protoize.c: Likewise.
9655 * ra-conflict.c: Likewise.
9656 * real.c: Likewise.
9657 * recog.c: Likewise.
9658 * regclass.c: Likewise.
9659 * regs.h: Likewise.
9660 * reload.c: Likewise.
9661 * rtl-error.c: Likewise.
9662 * rtlanal.c: Likewise.
9663 * scan.h: Likewise.
9664 * sched-rgn.c: Likewise.
9665 * see.c: Likewise.
9666 * stmt.c: Likewise.
9667 * target.h: Likewise.
9668 * tree-dfa.c: Likewise.
9669 * tree-eh.c: Likewise.
9670 * tree-flow-inline.h: Likewise.
9671 * tree-inline.c: Likewise.
9672 * tree-into-ssa.c: Likewise.
9673 * tree-loop-distribution.c: Likewise.
9674 * tree-nested.c: Likewise.
9675 * tree-parloops.c: Likewise.
9676 * tree-pass.h: Likewise.
9677 * tree-pretty-print.c: Likewise.
9678 * tree-profile.c: Likewise.
9679 * tree-scalar-evolution.c: Likewise.
9680 * tree-sra.c: Likewise.
9681 * tree-ssa-alias-warnings.c: Likewise.
9682 * tree-ssa-ccp.c: Likewise.
9683 * tree-ssa-coalesce.c: Likewise.
9684 * tree-ssa-dom.c: Likewise.
9685 * tree-ssa-dse.c: Likewise.
9686 * tree-ssa-forwprop.c: Likewise.
9687 * tree-ssa-live.c: Likewise.
9688 * tree-ssa-live.h: Likewise.
9689 * tree-ssa-loop-im.c: Likewise.
9690 * tree-ssa-loop-ivopts.c: Likewise.
9691 * tree-ssa-loop-niter.c: Likewise.
9692 * tree-ssa-loop-prefetch.c: Likewise.
9693 * tree-ssa-phiopt.c: Likewise.
9694 * tree-ssa-phiprop.c: Likewise.
9695 * tree-ssa-sccvn.c: Likewise.
9696 * tree-ssa-ter.c: Likewise.
9697 * tree-ssa-threadupdate.c: Likewise.
9698 * tree-ssa.c: Likewise.
9699 * tree-vect-analyze.c: Likewise.
9700 * tree-vect-transform.c: Likewise.
9701 * tree-vectorizer.c: Likewise.
9702 * tree-vn.c: Likewise.
9703 * tree-vrp.c: Likewise.
9704 * tree.c: Likewise.
9705 * tree.def: Likewise.
9706 * tree.h: Likewise.
9707 * unwind-dw2-fde.c: Likewise.
9708 * unwind.inc: Likewise.
9709 * value-prof.c: Likewise.
9710 * vmsdbgout.c: Likewise.
9711
6bf2f78a
DE
97122008-06-05 David Edelsohn <edelsohn@gnu.org>
9713
9714 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
9715 always place FP constants in the TOC for TARGET_POWERPC64.
9716 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
9717
4f011e1e
JM
97182008-06-05 Joseph Myers <joseph@codesourcery.com>
9719
9720 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
9721 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
9722 enable for TARGET_E500_DOUBLE.
9723 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
9724 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
9725 floating-point modes like integer modes for E500 double.
9726 (rs6000_legitimate_offset_address_p): Likewise.
9727 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
9728 addressing for DDmode for E500 double.
9729 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
9730 modes as using 64-bits of registers for E500 double.
9731 (spe_build_register_parallel): Do not handle DDmode or TDmode.
9732 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
9733 specially for E500 double.
9734 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
9735 TDmode for E500 double.
9736 (rs6000_gimplify_va_arg): Only handle SDmode in registers
9737 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
9738 (rs6000_split_multireg_move): Do not handle TDmode specially for
9739 E500 double.
9740 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
9741 using 64-bit registers for E500 double.
9742 (emit_frame_save): Do not handle DDmode specially for E500 double.
9743 (gen_frame_mem_offset): Likewise.
9744 (rs6000_function_value): Do not call spe_build_register_parallel
9745 for DDmode or TDmode.
9746 (rs6000_libcall_value): Likewise.
9747 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
9748 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
9749 for E500 double.
9750
bd7415db
L
97512008-06-04 H.J. Lu <hongjiu.lu@intel.com>
9752
9753 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
9754 in comments.
9755
9e8c2a98
JG
97562008-06-04 Junjie Gu <jgu@tensilica.com>
9757
9758 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
9759 comparison for frame pointers.
9760
28734c39
AH
97612008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
9762
9763 PR target/27386
88057dc8 9764 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 9765
515e442a
AH
97662008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
9767
9768 PR target/30243
9769 * builtins.c (expand_builtin_signbit): Don't take lowpart when
22129589 9770 register is already smaller or equal to required mode.
515e442a 9771
c2699190
XDL
97722008-06-04 Xinliang David Li <davidxl@google.com>
9773
22129589 9774 * tree-call-cdce.c: New file.
c2699190
XDL
9775 (cond_dead_built_in_calls): New static variable.
9776 (input_domain): New struct.
9777 (check_pow): New function.
9778 (check_builtin_call): Ditto.
9779 (check_target_format): Ditto.
9780 (is_call_dce_candidate): Ditto.
9781 (gen_one_condition): Ditto.
9782 (gen_conditions_for_domain): Ditto.
9783 (get_domain): Ditto.
9784 (gen_conditions_for_pow_cst_base): Ditto.
9785 (gen_conditions_for_pow_int_base): Ditto.
9786 (gen_conditions_for_pow): Ditto.
9787 (get_no_error_domain): Ditto.
9788 (gen_shrink_wrap_conditions): Ditto.
9789 (shrink_wrap_one_built_in_call): Ditto.
9790 (shink_wrap_conditional_dead_built_in_calls): Ditto.
9791 (tree_call_cdce): Ditto.
9792 (gate_call_cdce): Ditto.
9793 (pass_call_cdce): New gimple pass.
9794 * passes.c: (init_optimization_passes): New pass.
9795 * tree-pass.h: New pass declaration.
9796 * opts.c (decode_options): New flag setting.
9797 * common.opt: Add -ftree-builtin-call-dce flag.
9798 * Makefile.in: Add new source file.
9799 * tempvar.def: New tv_id.
9800 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
9801
7946578b
RG
98022008-06-04 Richard Guenther <rguenther@suse.de>
9803
88057dc8 9804 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
9805 (is_call_clobbered): Always check var_ann->call_clobbered.
9806 (mark_call_clobbered): Always set var_ann->call_clobbered.
9807 (clear_call_clobbered): Always clear var_ann->call_clobbered.
9808 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
9809 (reset_alias_info): Clear call clobbering info on MTAGs and
9810 globals as well.
9811 (set_pt_anything): Set pt_global_mem.
9812 (create_tag_raw): Adjust comment.
9813 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
9814
884316ff 98152008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 9816 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
9817
9818 * config/m68k/m68k.opt (mxgot): New option.
9819 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
9820 (m68k_output_addr_const_extra): New.
9821 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
9822 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
9823 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
9824 * doc/invoke.texi (M680x0 Options): Document -mxgot.
9825
0e19bf42
RG
98262008-06-04 Richard Guenther <rguenther@suse.de>
9827
9828 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
9829 negative or non-representable offsets.
9830
999d3194
L
98312008-06-03 H.J. Lu <hongjiu.lu@intel.com>
9832
88057dc8 9833 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
9834 (ix86_gen_pop1): Likewise.
9835 (ix86_gen_add3): Likewise.
9836 (ix86_gen_sub3): Likewise.
9837 (ix86_gen_sub3_carry): Likewise.
9838 (ix86_gen_one_cmpl2): Likewise.
9839 (ix86_gen_monitor): Likewise.
9840 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
9841 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9842 ix86_gen_one_cmpl2 and ix86_gen_monitor.
9843 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
9844 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
9845 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
9846 (ix86_expand_epilogue): Updated.
9847 (print_operand): Handle integer register operand for 'z'.
9848 (ix86_expand_strlensi_unroll_1): Likewise.
9849 (ix86_expand_strlen): Likewise.
9850 (ix86_expand_builtin): Likewise.
9851 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
9852 mov{q}/mov{l} and add{q}/add{l}.
9853
90b48492
KT
98542008-06-03 Kai Tietz <kai.tietz@onevision.com>
9855
d1abda32
KT
9856 * config/i386/i386.md (P): New mode iterator.
9857 (SFmode push_operand splitter): Macroize DImode and SImode pushes
9858 using P mode iterator.
458e816d
KT
9859 (DFmode push_operand splitter): Ditto.
9860 (XFmode push_operand splitter): Ditto.
d1abda32
KT
9861 (DFmode float_extend SFmode push_operand splitter): Ditto.
9862 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
9863 SImode pushes for 64bit target. Macroize Dimode and SImode
9864 pushes using P mode iterator.
9865 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 9866
8a762fcb
KT
98672008-06-03 Kai Tietz <kai.tietz@onevision.com>
9868
9869 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 9870 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
9871 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
9872 return type to int.
9873 (ix86_call_abi_override): Remove check for call_used_regs.
9874
db736800
RG
98752008-06-03 Richard Guenther <rguenther@suse.de>
9876
9877 * tree-ssa-structalias.c (find_func_aliases): Add constraints
9878 for the lhs of calls if the return type contains pointers.
9879
7c800926
KT
98802008-06-03 Kai Tietz <kai.tietz@onevision.com>
9881
9882 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
9883 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 9884 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
9885 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
9886 of cfun and DEFAULT_ABI to deceide abi mode.
9887 (DEFAULT_ABI): New.
9888 (REG_PARM_STACK_SPACE): Removed.
9889 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
9890 (STACK_BOUNDARY): Use default target to deceide stack boundary.
9891 * config/i386/i386-protos.h (ix86_cfun_abi): New.
9892 (ix86_function_abi): Likewise.
9893 (ix86_function_type_abi): Likewise.
9894 (ix86_call_abi_override): Likewise.
9895 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
9896 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
9897 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
9898 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
9899 specific defines.
9900 (X86_64_REGPARM_MAX): New.
9901 (X86_64_SSE_REGPARM_MAX): New.
9902 (X64_REGPARM_MAX): New.
9903 (X64_SSE_REGPARM_MAX): New.
9904 (X86_32_REGPARM_MAX): New.
9905 (X86_32_SSE_REGPARM_MAX): New.
9906 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
9907 (ix86_function_regparm): Handle user calling abi.
9908 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
9909 by DEFAULT_ABI versus SYSV_ABI check.
9910 (ix86_reg_parm_stack_space): New.
9911 (ix86_function_type_abi): New.
9912 (ix86_call_abi_override): New.
9913 (ix86_function_abi): New.
9914 (ix86_cfun_abi): New.
9915 (init_cumulative_args): Call abi specific initialization.
9916 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
9917 (function_arg_64): Extend SSE_REGPARM_MAX check.
9918 (function_arg (): Remove TARGET_64BIT_MS_ABI.
9919 (ix86_pass_by_reference): Likewise.
9920 (ix86_function_value_regno_p): Likewise.
9921 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
9922 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
9923 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
9924 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
9925 (setup_incoming_varargs_64): Adjust regparm for call abi.
9926 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
9927 (ix86_va_start): Likewise.
9928 (ix86_gimplify_va_arg): Likewise.
9929 (ix86_expand_prologue): Likewise.
9930 (output_pic_addr_const): Likewise.
9931 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
9932 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
9933 (x86_output_mi_thunk): Likewise.
9934 (x86_function_profiler): Likewise.
9935 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
9936 (SYSV_ABI, MS_ABI): New constants.
9937 (DEFAULT_ABI): New.
9938 (init_regs): Add prototype of function in regclass.c file.
9939 (OVERRIDE_ABI_FORMAT): New.
9940 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
9941 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
9942 (OUTGOING_REG_PARM_STACK_SPACE): New.
9943 (ix86_reg_parm_stack_space): New prototype.
9944 (CUMULATIVE_ARGS): Add call_abi member.
9945 (machine_function): Add call_abi member.
88057dc8
UB
9946 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
9947 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 9948
22129589 99492008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1bf29643
AH
9950
9951 PR target/34879
9952 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
9953 (avr_builtin_setjmp_frame_value): New function.
9954 * config/avr/avr.md (nonlocal_goto_receiver): Define.
9955 (nonlocal_goto): Define.
9956
de9f679d
RS
99572008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
9958
9959 * config/mips/mips.c (mips_emit_loadgp): Return early if
9960 there is nothing do to, otherwise emit a blockage if
9961 !TARGET_EXPLICIT_RELOCS || crtl->profile.
9962 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
9963
236ec2d7
RW
99642008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9965
9966 * configure.ac: Drop unneeded backslash ending up in config.in.
9967 * acinclude.m4: Likewise.
9968 * config.in: Regenerate.
9969
3250d724
JH
99702008-05-26 Jan Hubicka <jh@suse.cz>
9971
9972 * predict.c (maybe_hot_frequency_p): Break out of...
9973 (maybe_hot_bb_p): ... here.
9974 (maybe_hot_edge_p): New.
9975 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
9976 * basic-block.h (maybe_hot_edge_p): Declare.
9977
69002843
UB
99782008-05-31 Uros Bizjak <ubizjak@gmail.com>
9979
9980 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
9981 (*cmpfp_<mode>_cc): Ditto.
9982 (*fp_jcc_8<mode>_387): Ditto.
9983 (*fop_<MODEF:mode>_2_i387): Ditto.
9984 (*fop_<MODEF:mode>_3_i387): Ditto.
9985 (*fop_xf_2_i387): Ditto.
9986 (*fop_xf_3_i387): Ditto.
9987
5f9e56b3
TB
99882008-06-02 Tomas Bily <tbily@suse.cz>
9989
69002843 9990 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 9991
fa21a761
RS
99922008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9993
9994 * config/mips/mips.c (mips_valid_offset_p): New function.
9995 (mips_valid_lo_sum_p): Likewise.
9996 (mips_classify_address): Use them.
9997 (mips_force_address): New function.
9998 (mips_legitimize_address): Use it.
9999 * config/mips/mips.md (MOVE128): New mode iterator.
10000 (movtf): Require TARGET_64BIT. Remove empty strings.
10001 (*movtf_internal): Rename to...
10002 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
10003 of "R" and use {,fp}{load,store} attributes instead of "multi".
10004 Use a separate define_split.
10005 (*movtf_mips16): New pattern.
10006
2f7e2abb
RS
100072008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
10008
10009 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
10010 * config/mips/mips.c (mips_expand_before_return): New function.
10011 (mips_expand_epilogue): Call it.
10012 * config/mips/mips.md (return): Turn into a define_expand.
10013 (*return): New insn.
10014
c41c1387
RS
100152008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
10016
10017 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
10018 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
10019 functions. Do not emit uses and clobbers of CONCATs; individually
10020 use and clobber their operands.
10021 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
10022 gen_clobber, emit_use and gen_use.
10023 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
10024 (expand_builtin_return): Likewise.
10025 * cfgbuild.c (count_basic_blocks): Likewise.
10026 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
10027 * explow.c (emit_stack_restore): Likewise.
10028 * expmed.c (extract_bit_field_1): Likewise.
10029 * expr.c (convert_move, emit_move_complex_parts): Likewise.
10030 (emit_move_multi_word, store_constructor): Likewise.
10031 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
10032 (thread_prologue_and_epilogue_insns): Likewise.
10033 * lower-subreg.c (resolve_simple_move): Likewise.
10034 * optabs.c (widen_operand, expand_binop): Likewise.
10035 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
10036 * reload.c (find_reloads): Likewise.
10037 * reload1.c (eliminate_regs_in_insn): Likewise.
10038 * stmt.c (expand_nl_goto_receiver): Likewise.
10039 * config/alpha/alpha.md (builtin_longjmp): Likewise.
10040 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
10041 * config/arm/arm.c (arm_load_pic_register): Likewise.
10042 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
10043 * config/arm/arm.md (untyped_return): Likewise.
10044 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
10045 * config/avr/avr.c (expand_prologue): Likewise.
10046 * config/bfin/bfin.c (do_unlink): Likewise.
10047 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
10048 * config/cris/cris.c (cris_expand_prologue): Likewise.
10049 * config/darwin.c (machopic_indirect_data_reference): Likewise.
10050 (machopic_legitimize_pic_address): Likewise.
10051 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
10052 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
10053 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
10054 (ix86_expand_convert_uns_didf_sse): Likewise.
10055 (ix86_expand_vector_init_general): Likewise.
10056 * config/ia64/ia64.md (eh_epilogue): Likewise.
10057 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
10058 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
10059 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
10060 (config/iq2000/iq2000.c): Likewise.
10061 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
10062 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
10063 (builtin_longjmp): Likewise.
10064 * config/mn10300/mn10300.md (call, call_value): Likewise.
10065 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
10066 * config/pdp11/pdp11.md (abshi2): Likewise.
10067 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
10068 * config/s390/s390.c (s390_emit_prologue): Likewise.
10069 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
10070 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
10071 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
10072 * config/sh/sh.c (prepare_move_operands): Likewise.
10073 (output_stack_adjust, sh_expand_epilogue): Likewise.
10074 (sh_set_return_address, sh_expand_t_scc): Likewise.
10075 * config/sparc/sparc.c (load_pic_register): Likewise.
10076 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
10077 * config/spu/spu.c (spu_expand_epilogue): Likewise.
10078 * config/v850/v850.c (expand_epilogue): Likewise.
10079
794cb45e
AS
100802008-05-31 Anatoly Sokolov <aesok@post.ru>
10081
10082 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
10083 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
10084 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
22129589
AS
10085 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
10086 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
794cb45e 10087 stack pointer register.
22129589 10088 (output_movhi): Remove code for interrupt specific writing to the
794cb45e
AS
10089 stack pointer register.
10090
39f8a3b0
RG
100912008-05-31 Richard Guenther <rguenther@suse.de>
10092
10093 PR tree-optimization/34244
10094 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
10095 (tree_expr_nonzero_warnv_p): Likewise.
10096 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
10097 ssa_name_nonnegative_p.
10098 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
10099 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
10100 not tree_expr_nonzero_warnv_p.
10101
10102 PR tree-optimization/36262
10103 Revert
10104 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
10105
69002843
UB
10106 PR tree-optimization/34244
10107 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
10108 (record_numbers_of_iterations): New function.
10109 (execute_vrp): Cache the numbers of iterations of loops.
10110 * tree-scalar-evolution.c (scev_reset_except_niters):
10111 New function.
10112 (scev_reset): Use scev_reset_except_niters.
10113 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 10114
2643f14e
BS
101152008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
10116
10117 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10118 __WORKAROUND_RETS when appropriate.
10119
ca3a2165
UB
101202008-05-31 Uros Bizjak <ubizjak@gmail.com>
10121
10122 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
10123 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
10124 mode iterator.
10125 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
10126 *fop_df_comm_sse insn patterns using MODEF mode iterator.
10127 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
10128 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
10129 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
10130 *fop_df_1_mixed insn patterns using MODEF mode iterator.
10131 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
10132 *fop_df_1_sse insn patterns using MODEF mode iterator.
10133 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
10134 *fop_df_1_i387 insn patterns using MODEF mode iterator.
10135 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
10136 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
10137 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
10138 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
10139 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
10140 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
10141 (*fop_xf_4_i387): Use <MODE> for mode attribute.
10142 (*fop_xf_5_i387): Ditto.
10143 (*fop_xf_6_i387): Ditto.
10144
acdfeac3
RG
101452008-05-30 Richard Guenther <rguenther@suse.de>
10146
10147 * builtins.c (build_string_literal): Avoid generating
10148 a non-gimple_val result.
10149
97c3860d
DD
101502008-05-30 DJ Delorie <dj@redhat.com>
10151
10152 * exec-tool.in: Use an environment variable (private) instead of a
10153 file (shared) as a semaphore, so as to not break parallel builds.
10154
856905c2
SB
101552008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
10156
10157 * optabs.c (maybe_encapsulate_block): Remove.
10158 (emit_libcall_block): Adjust accordingly.
10159 * optabs.h (maybe_encapsulate_block): Remove prototype.
10160
10161 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
10162 Don't use maybe_encapsulate_block.
10163
0cdc04e8
SB
101642008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
10165
10166 * config/rs6000/rs6000.c (rs6000_legitimize_address,
10167 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
10168 rtx is a SYMBOL_REF before calling get_pool_constant.
10169
bfab40f8
EB
101702008-05-30 Eric Botcazou <ebotcazou@adacore.com>
10171
10172 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
10173
c100de59
DS
101742008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
10175
10176 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
10177 rather than OS names to choose INO_T_EQ definition.
10178 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 10179 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 10180
c776a6d0
DF
101812008-05-29 Daniel Franke <franke.daniel@gmail.com>
10182
10183 PR target/36348
10184 * config/darwin-f.c: New.
10185 * config/t-darwin: Added rule to build darwin-f.o.
10186 * config.gcc: Defined new variable, fortran_target_objs.
10187 (*-*-darwin*): Set fortran_target_objs.
10188 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 10189 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
10190 * configure: Regenerated.
10191
a20007a4
L
101922008-05-29 H.J. Lu <hongjiu.lu@intel.com>
10193
10194 PR target/35771
10195 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
10196 canonical type if needed.
10197
4efa7ef9
EB
101982008-05-29 Eric Botcazou <ebotcazou@adacore.com>
10199
10200 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
10201
2f571334
RG
102022008-05-29 Richard Guenther <rguenther@suse.de>
10203
10204 PR tree-optimization/36343
10205 PR tree-optimization/36346
10206 PR tree-optimization/36347
10207 * tree-flow.h (clobber_what_p_points_to): Declare.
10208 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
10209 pointed-to variable is dereferenced is irrelevant to whether
10210 the pointer can access the pointed-to variable.
10211 (clobber_what_p_points_to): New function.
10212 * tree-ssa-alias.c (set_initial_properties): Use it.
10213 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
10214 call clobber check for NMTs.
10215
68bb68ca 102162008-05-28 Seongbae Park <seongbae.park@gmail.com>
22129589 10217
68bb68ca
SP
10218 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
10219 for printing gcov_type.
10220
b608a1bc
SP
102212008-05-28 Seongbae Park <seongbae.park@gmail.com>
10222
10223 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
10224 and the eh region information.
10225 * value-prof.c (gimple_move_stmt_histograms): New function.
10226 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
10227
77da4248
AT
102282008-05-28 Andreas Tobler <a.tobler@schweiz.org>
10229
10230 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
10231
3dfb6f59
SP
102322008-05-28 Seongbae Park <seongbae.park@gmail.com>
10233
10234 * value-prof.c (tree_ic_transform): Print counts.
10235 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
10236 Clear __gcov_indreict_call_callee variable to avoid misattribution
10237 of the profile.
3dfb6f59 10238
5a976da0
RAE
102392008-05-28 Rafael Espindola <espindola@google.com>
10240
10241 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
10242 invalid sharing.
10243
38154e4f
RG
102442008-05-28 Richard Guenther <rguenther@suse.de>
10245
10246 PR tree-optimization/36339
10247 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
10248 and clobbering code out of the loop.
10249
963fc8d0
AK
102502008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
10251
10252 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
10253 letters defined.
10254
10255 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
10256 s390_contiguous_bitmask_p, s390_symref_operand_p,
10257 s390_check_symref_alignment, s390_reload_larl_operand,
10258 s390_reload_symref_address): New functions.
10259 (s390_branch_condition_mnemonic): Support compare and branch
10260 instructions.
10261 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
10262 and 'W' constraints.
10263 (s390_secondary_reload): Add secondary reloads for unaligned
10264 symbol refs or symbol refs to floating point or QI/TI mode
10265 integer values.
10266 (legitimate_address_p): Accept symbol references as addresses.
10267 (s390_expand_insv): Use rotate and insert selected bits
10268 instruction for insv when building for z10.
10269 (print_operand_address): Handle symbol ref addresses.
ca3a2165 10270 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
10271 (s390_encode_section_info): Mark symbol refs with
10272 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
10273
10274 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
10275 (length attribute): RRF, RRR have 4 byte length.
10276 (FPALL, INTALL): New mode iterators added.
10277 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
10278 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
10279 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
10280 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
10281 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
10282 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
10283 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
10284 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
10285 instructions.
10286 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
10287 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
10288 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
10289 reload<INTALL:mode><P:mode>_toreg_z10,
10290 reload<FPALL:mode><P:mode>_tomem_z10,
10291 reload<FPALL:mode><P:mode>_toreg_z10,
10292 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
10293 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
10294 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
10295 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
10296 definition.
10297 (movmem, clrmem, cmpmem): New splitters added.
10298
10299 * config/s390/predicates.md (larl_operand): Use
10300 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
10301 SYMBOL_REF_ALIGN1_P.
10302 (s390_signed_integer_comparison,
10303 s390_unsigned_integer_comparison): New predicates.
10304
10305 * config/s390/s390-protos.h (s390_check_symref_alignment,
10306 s390_contiguous_bitmask_p, s390_reload_larl_operand,
10307 s390_reload_symref_address,
10308 s390_compare_and_branch_condition_mask): Prototypes added.
10309
10310 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
10311 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
10312 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
10313
93538e8e
AK
103142008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
10315
10316 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 10317 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
10318 (s390_issue_rate): Adjust issue rate for z10.
10319 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
10320 (processor_flags): Add PF_Z10.
10321 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
10322 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
10323 * gcc/config.gcc: Add z10.
10324
540f6bda
RG
103252008-05-28 Richard Guenther <rguenther@suse.de>
10326
10327 PR tree-optimization/36291
10328 * tree-flow. h (struct gimple_df): Remove var_anns member.
10329 * tree-flow-inline.h (gimple_var_anns): Remove.
10330 (var_ann): Simplify.
10331 * tree-dfa.c (create_var_ann): Simplify.
10332 (remove_referenced_var): Clear alias info from var_anns of globals.
10333 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
10334 (delete_tree_ssa): Clear alias info from var_anns of globals.
10335 Do not free var_anns.
10336 (var_ann_eq): Remove.
10337 (var_ann_hash): Likewise.
10338
33db2060
MS
103392008-05-28 Mark Shinwell <shinwell@codesourcery.com>
10340
10341 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
10342 and loongson2f entries.
10343 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
10344 * config/mips/mips.h (processor_type): Add Loongson-2E
10345 and Loongson-2F entries.
10346 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
10347 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
10348 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
10349 * doc/invoke.texi (MIPS Options): Document loongson2e
10350 and loongson2f processor names.
10351
23ac85e7
L
103522008-05-27 H.J. Lu <hongjiu.lu@intel.com>
10353
10354 PR target/35767
10355 PR target/35771
10356 * config/i386/i386.c (ix86_function_arg_boundary): Use
10357 alignment of canonical type.
10358 (ix86_expand_vector_move): Check unaligned memory access for
10359 all SSE modes.
10360
3395aa05
L
103612008-05-27 H.J. Lu <hongjiu.lu@intel.com>
10362
10363 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
10364 Moved to the front of file.
10365
3ce6e42e
XG
103662008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
10367 H.J. Lu <hongjiu.lu@intel.com>
10368
10369 * dwarf2out.c (current_fde): New.
10370 (add_cfi): Use it.
10371 (lookup_cfa:): Likewise.
10372 (dwarf2out_end_epilogue): Likewise.
10373 (dwarf2out_note_section_used): Likewise.
10374
a3299096
MM
103752008-05-27 Michael Matz <matz@suse.de>
10376
10377 PR c++/27975
10378 * c.opt (Wenum-compare): New warning option.
10379 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
10380
bd42a56b
MM
103812008-05-27 Michael Matz <matz@suse.de>
10382
10383 PR middle-end/36326
10384 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
10385 non-BLKmode types.
10386 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
10387 into memory as tail calls.
10388
a46fc136
RG
103892008-05-27 Richard Guenther <rguenther@suse.de>
10390
10391 PR tree-optimization/36339
10392 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
10393 pointers cause all addressable variables to be call clobbered.
10394
6fe2f65a
RG
103952008-05-27 Richard Guenther <rguenther@suse.de>
10396
10397 PR tree-optimization/36245
ca3a2165 10398 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 10399
fb492564
AK
104002008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
10401
10402 * config/s390/s390.md: Replace all occurences of the 'm'
10403 constraint with 'RT'.
10404
3af8e996
AK
104052008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
10406
10407 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
10408 definitions added.
10409 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
10410 "*movdi_64".
10411 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
10412 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
10413 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
10414
7ac28727
AK
104152008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
10416
10417 * reload.c: (find_reloads): Skip alternatives according to the
10418 "enabled" attribute. Constify the constraint variable.
10419 * recog.c (get_attr_enabled): Add default implementation.
10420 (extract_insn): Set the alternative_enabled_p array
10421 in the recog_data struct.
10422 (preprocess_constraints, constrain_operands): Skip
10423 alternatives according to the "enabled" attribute
10424 * recog.h (struct recog_data): New field alternative_enabled_p.
10425 (skip_alternative): New inline function.
ca3a2165 10426 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
10427 (record_reg_classes): Skip alternative according to the
10428 "enabled" attribute.
10429
10430 * doc/md.texi: Add documention for the "enabled" attribute.
10431
a4edaf83
AK
104322008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
10433
10434 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
10435 * postreload.c (reload_cse_simplify_operands): Replace 'm'
10436 constraint with TARGET_MEM_CONSTRAINT.
10437 * recog.c (asm_operand_ok, preprocess_constraints,
10438 constrain_operands): Likewise.
10439 * regclass.c (record_reg_classes): Likewise.
ca3a2165 10440 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 10441 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 10442 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
10443 * recog.h: Adjust comment.
10444 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 10445 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
10446 * doc/md.texi: Add a note to description of 'm' constraint.
10447 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
10448
469dfae9
EB
104492008-05-27 Eric Botcazou <ebotcazou@adacore.com>
10450
10451 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
10452 that the bitfield is of integral type before testing its precision.
10453
986a8d90 104542008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22129589 10455 Sa Liu <saliu@de.ibm.com>
986a8d90 10456
22129589 10457 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
986a8d90
TS
10458 __modti3, __udivti3, __umodti3 and __udivmodti4.
10459 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
10460 that implement TImode mul and div functions.
10461 * config/spu/multi3.c: New. Implement __multi3.
10462 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
10463 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
10464 functions on SPU.
10465
02135bc1
SB
104662008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
10467
10468 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
10469 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
10470 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
10471 tls_sysv_suffix): New mode and mode attribute iterators.
10472 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
10473 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
10474 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
10475 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
10476 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
10477 iterators.
10478
ba977e1a
EB
104792008-05-26 Eric Botcazou <ebotcazou@adacore.com>
10480
10481 PR tree-optimization/36329
10482 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
10483 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
10484 * cgraphbuild.c (initialize_inline_failed): Use the latter
10485 macro in lieu of the former.
10486 * ipa-inline.c (cgraph_mark_inline): Likewise.
10487 (cgraph_decide_inlining_of_small_function): Likewise.
10488 (cgraph_decide_inlining): Likewise.
10489 (cgraph_decide_inlining_incrementally): Likewise.
10490
4d492420 104912008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 10492 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
10493
10494 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
10495 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
22129589 10496 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
4d492420
TG
10497 optimization for 'avr6' architecture.
10498
319a58c6
AH
104992008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
10500
10501 PR target/34932
10502 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
10503
26fa9076
RG
105042008-05-26 Richard Guenther <rguenther@suse.de>
10505
10506 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 10507 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 10508
76fe54f0
L
105092008-05-26 H.J. Lu <hongjiu.lu@intel.com>
10510
10511 PR middle-end/36253
ca3a2165 10512 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 10513 (insert_save): Likewise.
76fe54f0 10514 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
10515 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
10516 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
10517 * function.c (LOCAL_ALIGNMENT): Removed.
10518 (get_stack_local_alignment): New.
10519 (assign_stack_local): Use it. Set alignment on stack slot.
10520 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
10521 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
10522 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
10523 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
10524 stack slot in XFmode.
10525
10526 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
10527
e5f005e1
KT
105282008-05-26 Kai Tietz <kai.tietz@onevision.com>
10529
10530 PR/36321
10531 * config/i386/i386.md (allocate_stack_worker_64): Make sure
10532 argument operand in rax isn't removed.
10533
fcb4587e
RG
105342008-05-26 Richard Guenther <rguenther@suse.de>
10535
10536 PR middle-end/36300
10537 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
10538 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
10539
25497730
DF
105402008-05-26 Daniel Franke <franke.daniel@gmail.com>
10541
10542 PR bootstrap/36331
10543 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
10544
e8a25ca8
DH
105452008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
10546
10547 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
10548 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
10549
3651f7ad
EB
105502008-05-25 Eric Botcazou <ebotcazou@adacore.com>
10551
ca3a2165 10552 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
10553 build a trampoline if we don't want one.
10554 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
10555 return zero for nested functions if we don't want a trampoline.
10556
b885a4c1
DF
105572008-05-26 Daniel Franke <franke.daniel@gmail.com>
10558
10559 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
10560
670637ee
DF
105612008-05-26 Daniel Franke <franke.daniel@gmail.com>
10562
10563 PR fortran/18428
10564 * c.opt: Removed undocumented option '-lang-fortran'.
10565 * c-common.h: Removed global variable 'lang_fortran'.
10566 * c-opts.c (c_common_handle_option): Removed code to handle
10567 option '-lang-fortran'. Updated includes.
10568 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
10569 definition of '__GFORTRAN__'.
10570 (define__GNUC__): Reimplemented to use BASEVER and
10571 cpp_define_formatted.
10572 (builtin_define_with_value_n): Removed.
10573 * c-incpath.h: Renamed to ...
10574 * incpath.h: ... this.
10575 * c-incpath.c: Renamed to ...
10576 * incpath.c: ... this. Updated includes.
10577 * fix-header.c: Updated includes.
10578 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
10579 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
10580 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
10581
4cea6c02
EB
105822008-05-25 Eric Botcazou <ebotcazou@adacore.com>
10583
10584 * tree.h: Update the table of flags used on tree nodes.
10585 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
10586 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
10587 (FORCED_LABEL): Add access check.
10588 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
10589 (ASM_INPUT_P): Likewise.
10590 (ASM_VOLATILE_P): Likewise.
10591 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
10592 (OMP_SECTION_LAST): Access private_flag directly.
10593 (OMP_RETURN_NOWAIT): Likewise.
10594 (OMP_PARALLEL_COMBINED): Likewise.
10595 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
10596 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
10597 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
10598 deprecated_flag directly.
10599
3bffa195
L
106002008-05-25 H.J. Lu <hongjiu.lu@intel.com>
10601
10602 * final.c (frame_pointer_needed): Removed.
10603 * flags.h (frame_pointer_needed): Likewise.
10604
10605 * function.h (rtl_data): Add frame_pointer_needed.
10606 (frame_pointer_needed): New.
10607
93fea8d3
AL
106082008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
10609
10610 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
10611
29470771
SB
106122008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
10613
10614 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
10615 SRC is a REG.
10616
dd25a747
AM
106172008-05-25 Alan Modra <amodra@bigpond.net.au>
10618
10619 * c-common.c (strip_array_types): Move function to..
10620 * tree.c: ..here.
10621 (get_inner_array_type): Delete.
10622 * c-common.h (strip_array_types): Move declaration to..
10623 * tree.h: ..here.
10624 (get_inner_array_type): Delete.
10625 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
10626 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
10627 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
10628 * config/pa/pa.c (emit_move_sequence): Likewise.
10629
c36c9821
L
106302008-05-24 H.J. Lu <hongjiu.lu@intel.com>
10631
10632 * config/i386/i386.md (*sse_prologue_save_insn): Set length
10633 attribute to 34.
10634
88280cf9
AH
106352008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
10636
10637 * function.c: Include target hook for nonlocal_goto frame value.
10638
7c88f67a
RG
106392008-05-24 Richard Guenther <rguenther@suse.de>
10640
ca3a2165
UB
10641 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
10642 variable can be only accessed through a pointer or a union.
7c88f67a 10643
32101f99
KG
106442008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10645
10646 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
10647 * doc/extend.texi: Likewise.
10648
80b093df
DD
106492008-05-23 DJ Delorie <dj@redhat.com>
10650
c9db440d
DD
10651 * config/m32c/jump.md (untyped_call): Add.
10652
80b093df
DD
10653 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
10654 for A24 to PSImode.
10655 (m32c_address_cost): Detail costs for indirect offsets.
10656
fbcfcb3c
RAE
106572008-05-23 Rafael Espindola <espindola@google.com>
10658
10659 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
10660 if a node is a SUBREG.
10661 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
10662 is a SUBREG.
10663
007e61c2
PB
106642008-05-23 Paul Brook <paul@codesourcery.com>
10665 Carlos O'Donell <carlos@codesourcery.com>
10666
10667 * doc/extend.texi: Clarify use of __attribute__((naked)).
10668 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10669 * target.h (gcc_target): Add allocate_stack_slots_for_args.
10670 * function.c (use_register_for_decl): Use
10671 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
10672 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
10673 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
10674 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
10675
a2acd8bf
EB
106762008-05-23 Eric Botcazou <ebotcazou@adacore.com>
10677
10678 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
10679
c201998a
SM
106802008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
10681
10682 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
10683 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
10684 is only rounded once.
10685
833248d2
RG
106862008-05-23 Richard Guenther <rguenther@suse.de>
10687
ca3a2165 10688 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 10689
922e3e33
UB
106902008-05-23 Uros Bizjak <ubizjak@gmail.com>
10691 Jakub Jelinek <jakub@redhat.com>
10692
10693 PR target/36079
10694 * configure.ac: Handle --enable-cld.
10695 * configure: Regenerated.
10696 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
10697 * config/i386/i386.h (struct machine_function): Add needs_cld field.
10698 (ix86_current_function_needs_cld): New define.
10699 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
10700 (cld): New isns pattern.
10701 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
10702 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
10703 * config/i386/i386.opt (mcld): New option.
10704 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
10705 TARGET_CLD and ix86_current_function_needs_cld.
10706 (override_options): Use -mcld by default for 32-bit code if
10707 USE_IX86_CLD.
10708
10709 * doc/install.texi (Options specification): Document --enable-cld.
10710 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
10711 [i386 and x86-64 Options]: Add -mcld option.
10712 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 10713
71995c2c
KT
107142008-05-23 Kai Tietz <kai.tietz@onevison.com>
10715 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
10716 (return_in_memory_64): Likewise.
10717 (return_in_memory_ms_64): Likewise.
10718
3bf5906b
KG
107192008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10720
10721 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
10722 * builtins.c (fold_builtin_fpclassify): New.
10723 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
10724 * builtins.def (BUILT_IN_FPCLASSIFY): New.
10725 * c-common.c (handle_type_generic_attribute): Adjust to accept
10726 fixed arguments before an elipsis.
10727 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
10728 * doc/extend.texi: Document __builtin_fpclassify.
10729
c63cac47
AH
107302008-05-22 Aldy Hernandez <aldyh@redhat.com>
10731
10732 * omp-low.c (gate_expand_omp_ssa): Remove.
10733 (pass_expand_omp_ssa): Remove.
10734 (gate_expand_omp): Do not check for flag_openmp_ssa.
10735 * common.opt (-fopenmp-ssa): Remove.
10736 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
10737
3217af3e
KK
107382008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
10739
10740 * config/sh/sh.opt (mfixed-range): New option.
10741 * config/sh/sh-protos.h (sh_fix_range): Declare.
10742 * config/sh/sh.c (sh_fix_range): New function.
10743 * config/sh/sh.h (sh_fixed_range_str): Declare.
10744 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
10745 is not empty.
10746 * doc/invoke.texi (SH Options): Document -mfixed-range.
10747
42b18a21
KT
107482008-05-22 Kai Tietz <kai.tietz@onevision.com>
10749
10750 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
10751 it before the redeclaration.
10752
97822902
AS
107532008-05-22 Anatoly Sokolov <aesok@post.ru>
10754
10755 * config/avr/avr.c (get_sequence_length): Add new function.
10756 (expand_prologue, expand_epilogue): Remove duplicate code.
10757
4799e6aa
RAE
107582008-05-22 Rafael Espindola <espindola@google.com>
10759
10760 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
10761 sharing.
10762
9d3a9de1
L
107632008-05-22 H.J. Lu <hongjiu.lu@intel.com>
10764
10765 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
10766 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
10767
10768 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
10769 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
10770 (vect_update_misalignment_for_peel): Likewise.
10771 (vector_alignment_reachable_p): Likewise.
10772 * tree-vect-transform.c (vectorizable_load): Likewise.
10773 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
10774 (get_vectype_for_scalar_type): Pass mode of scalar_type
10775 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
10776
10777 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
10778 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
10779 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
10780 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
10781 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
10782
f8b52c2f
IR
107832008-05-22 Ira Rosen <irar@il.ibm.com>
10784
10785 PR tree-optimization/36293
10786 * tree-vect-transform.c (vect_transform_strided_load): Don't check
10787 if the first load must be skipped because of a gap.
10788
1842e4d4
RG
107892008-05-22 Richard Guenther <rguenther@suse.de>
10790
10791 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
10792 more cases of offset disambiguation that is possible if
10793 strict-aliasing rules apply.
10794 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
10795 for basic offset and type-based disambiguation.
10796
31ebe593
L
107972008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10798
10799 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
10800 ix86_expand_vector_set on V16QImode for SSE4.1.
10801
c24d4112
TT
108022008-05-21 Tom Tromey <tromey@redhat.com>
10803
10804 * c.opt (Wimport): Mark as undocumented.
10805 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
10806 -Wno-import.
10807 (Warning Options): Likewise.
10808 * doc/cppopts.texi: Don't mention -Wimport.
10809
4e8d7177
SP
108102008-05-21 Sebastian Pop <sebastian.pop@amd.com>
10811
10812 PR tree-optimization/36287
10813 PR tree-optimization/36286
10814 * lambda-code.c (build_access_matrix): Do not use the loop->num
10815 for computing the number of induction variables: use the loop depth
10816 instead.
10817
6110c44a
KT
108182008-05-21 Kai Tietz <kai.tietz@onevision.com>
10819
10820 PR/36280
10821 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
10822 option -f(no-)leading-underscore.
10823
e73caa00
L
108242008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10825
10826 * config/i386/i386.c (ix86_expand_vector_init_general): Use
10827 GET_MODE_NUNITS (mode).
10828
4adf8008
PB
108292008-05-21 Peter Bergner <bergner@vnet.ibm.com>
10830
10831 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
10832 (-mmulhw): Add 464 to description.
10833 (-mdlmzb): Likewise.
10834 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
10835 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
10836 464fp entries.
10837 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
10838 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
10839 * config/rs6000/rs6000.md: Update comments for 464.
10840
00a25a2d
JJ
108412008-05-21 Janis Johnson <janis187@us.ibm.com>
10842
10843 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
10844
80980aec
L
108452008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10846
10847 * config/i386/sse.md (vec_extractv4sf): Removed.
10848 (vec_extractv2df): Likewise.
10849 (vec_extractv2di): Likewise.
10850 (vec_extractv4si): Likewise.
10851 (vec_extractv8hi): Likewise.
10852 (vec_extractv16qi): Likewise.
10853 (vec_extract<mode>): New.
10854
349587b8
L
108552008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10856
10857 * config/i386/sse.md (vec_setv4sf): Removed.
10858 (vec_setv2df): Likewise.
10859 (vec_setv2di): Likewise.
10860 (vec_setv4si): Likewise.
10861 (vec_setv8hi): Likewise.
10862 (vec_setv16qi): Likewise.
10863 (vec_set<mode>): New.
10864
0864e1e8
L
108652008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10866
10867 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
10868 goto for vec_concat and vec_interleave.
10869
f8caa3a8
L
108702008-05-21 H.J. Lu <hongjiu.lu@intel.com>
10871
10872 * config/i386/sse.md (vec_initv4sf): Removed.
10873 (vec_initv2df): Likewise.
10874 (vec_initv2di): Likewise.
10875 (vec_initv4si): Likewise.
10876 (vec_initv8hi): Likewise.
10877 (vec_initv16qi): Likewise.
10878 (vec_init<mode>): New.
10879
fb291f50
JM
108802008-05-21 Joseph Myers <joseph@codesourcery.com>
10881
10882 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
10883
dae4174e
TT
108842008-05-21 Tom Tromey <tromey@redhat.com>
10885
10886 * ggc-zone.c (lookup_page_table_if_allocated): New function.
10887 (zone_find_object_offset): Likewise.
10888 (gt_ggc_m_S): Likewise.
10889 (highest_bit): Likewise.
10890 * ggc-page.c (gt_ggc_m_S): New function.
10891 * stringpool.c (string_stack): Remove.
10892 (init_stringpool): Update.
10893 (ggc_alloc_string): Use ggc_alloc.
10894 (maybe_delete_ident): New function.
10895 (ggc_purge_stringpool): Likewise.
10896 (gt_ggc_m_S): Remove.
10897 * ggc-common.c (ggc_protect_identifiers): New global.
10898 (ggc_mark_roots): Call ggc_purge_stringpool. Use
10899 ggc_protect_identifiers.
10900 * ggc.h (ggc_protect_identifiers): Declare.
10901 (gt_ggc_m_S): Update.
10902 (ggc_purge_stringpool): Declare.
10903 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
10904 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
10905 special case.
10906 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
10907
ccbdd3bc
DM
109082008-05-21 David S. Miller <davem@davemloft.net>
10909
10910 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
10911 tmake_file.
10912
e8a2a782
EB
109132008-05-21 Eric Botcazou <ebotcazou@adacore.com>
10914
10915 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
10916 once finished.
10917
06d19617
DD
109182008-05-20 David Daney <ddaney@avtrex.com>
10919
10920 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
10921 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
10922 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
10923 UNSPEC_UPDATE_GOT_VERSION): Renumber.
10924 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
10925 (atomic_hiqi_op): New define_code_iterator.
922e3e33 10926 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
10927 mips_expand_compare_and_swap_12.
10928 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 10929 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
10930 (sync_<optab><mode>, sync_old_<optab><mode>,
10931 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 10932 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
10933 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
10934 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 10935 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
10936 (test_and_set_12): New insn.
10937 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
10938 sync_new_<optab><mode>, sync_old_nand<mode>,
10939 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
10940 clobber to operand 0 for SI and DI mode insns.
10941 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
10942 mips_gen_fn_4): New typedefs.
10943 (mips_gen_fn_ptrs): Define new union type.
10944 (mips_expand_compare_and_swap_12): Remove declaration.
10945 (mips_expand_atomic_qihi): Declare function.
10946 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
10947 (mips_expand_atomic_qihi): ... this. Use new generator function
10948 parameter.
10949 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
10950 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 10951 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
10952 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
10953 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
10954 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
10955 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
10956 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
10957 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
10958 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
10959 New macros.
06d19617 10960
a35f6a35
L
109612008-05-20 H.J. Lu <hongjiu.lu@intel.com>
10962
10963 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
10964 the missing break.
10965
9b678d96
AS
109662008-05-20 Anatoly Sokolov <aesok@post.ru>
10967
10968 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
10969 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
10970 (avr_attribute_table): Add 'OS_main' function attribute.
10971 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
10972 functions with 'OS_main' attribute.
10973
6be34936
RG
109742008-05-20 Richard Guenther <rguenther@suse.de>
10975
10976 PR tree-optimization/35204
10977 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
10978 helper, split out from ...
10979 (DFS): ... here. Make the DFS walk non-recursive.
10980
9857228c
SP
109812008-05-20 Sebastian Pop <sebastian.pop@amd.com>
10982 Jan Sjodin <jan.sjodin@amd.com>
10983
10984 PR tree-optimization/36181
10985 * tree-parloops.c (loop_has_vector_phi_nodes): New.
10986 (parallelize_loops): Don't parallelize when the loop has vector
10987 phi nodes.
10988
9f275479
JS
109892008-05-20 Jan Sjodin <jan.sjodin@amd.com>
10990 Sebastian Pop <sebastian.pop@amd.com>
10991
922e3e33
UB
10992 * tree-loop-linear.c (gather_interchange_stats): Look in the access
10993 matrix, and never look at the tree representation of the memory
10994 accesses.
9f275479 10995 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
10996 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
10997 when fails.
9f275479
JS
10998 (access_matrix_get_index_for_parameter): New.
10999 * tree-data-ref.h (struct access_matrix): New.
11000 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
11001 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
11002 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
11003 am_vector_index_for_loop): New.
11004 (struct data_reference): Add field access_matrix.
11005 (DR_ACCESS_MATRIX): New.
11006 (compute_data_dependences_for_loop): Update declaration.
11007 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
11008 * lambda.h (lambda_vector_vec_p): Declared.
11009 * lambda-code.c: Depend on pointer-set.h.
11010 (lambda_collect_parameters_from_af, lambda_collect_parameters,
11011 av_for_af_base, av_for_af, build_access_matrix,
11012 lambda_compute_access_matrices): New.
11013 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
11014
f30fad61
JM
110152008-05-20 Joseph Myers <joseph@codesourcery.com>
11016
11017 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
11018 $SOURCEDIR/include.
11019
5b78fc3e
JS
110202008-05-20 Jan Sjodin <jan.sjodin@amd.com>
11021 Sebastian Pop <sebastian.pop@amd.com>
11022
11023 PR tree-optimization/36206
11024 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
11025 FOLD_CONVERSIONS.
11026 (instantiate_scev_1): Rename flags to fold_conversions.
11027 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
11028 outeside instantiation_loop.
11029 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
11030 (evolution_function_is_affine_or_constant_p): Removed.
11031 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
11032 instantiate_scev.
11033 (analyze_siv_subscript): Pass in the loop nest number.
22129589 11034 Call evolution_function_is_affine_in_loop instead of
5b78fc3e
JS
11035 evolution_function_is_affine_p.
11036 (analyze_overlapping_iterations): Pass in the loop nest number.
11037
110382008-05-20 Jan Sjodin <jan.sjodin@amd.com>
11039 Sebastian Pop <sebastian.pop@amd.com>
11040
11041 PR tree-optimization/36206
11042 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
11043 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
11044 and other trees.
5b78fc3e 11045
498f1c82
NS
110462008-05-20 Nathan Sidwell <nathan@codesourcery.com>
11047
11048 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
11049 (DIRS_EQ): New.
922e3e33
UB
11050 (remove_duplicates): Do not set inode on non-inode systems.
11051 Use DIRS_EQ.
498f1c82 11052
9c63c208
SL
110532008-05-20 Sandra Loosemore <sandra@codesourcery.com>
11054
11055 * config.gcc (tm_file): Update comments about relative pathnames.
11056
01902653
RG
110572008-05-20 Richard Guenther <rguenther@suse.de>
11058
922e3e33 11059 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
11060 * tree-ssa-sccvn.c (process_scc): Likewise.
11061 * tree-ssa-sink.c (execute_sink_code): Likewise.
11062 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
11063 * tree-vrp.c (process_assert_insertions): Likewise.
11064 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
11065 (perform_tree_ssa_dce): Likewise.
11066 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
11067 (dump_dominator_optimization_stats): Likewise.
11068 * tree-vectorizer.c (vectorize_loops): Likewise.
11069
4628e602
RG
110702008-05-20 Richard Guenther <rguenther@suse.de>
11071
11072 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
11073
3b23a6d3
KT
110742008-05-20 Kai Tietz <kai.tietz@onevision.com>
11075
11076 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
11077 (ix86_i386elf_return_in_memory): Likewise.
11078 (ix86_i386interix_return_in_memory): Likewise.
11079 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
11080 (SUBTARGET_RETURN_IN_MEMORY): New.
11081 * config/i386/i386elf.h: Likewise.
11082 * config/i386/ptx4-i.h: Likewise.
11083 * config/i386/sol2-10.h: Likewise.
11084 * config/i386/sysv4.h: Likewise.
11085 * config/i386/vx-common.h: Likewise.
11086 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
11087 * config/i386/i386.c (ix86_return_in_memory): Made static and
11088 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
11089 (ix86_i386elf_return_in_memory): Removed.
11090 (ix86_i386interix_return_in_memory): Removed.
11091 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
11092 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
11093
be9ed5d5
AO
110942008-05-20 Alexandre Oliva <aoliva@redhat.com>
11095
11096 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
11097
bc300fec
XDL
110982008-05-19 Xinliang David Li <davidxl@google.com>
11099
22129589 11100 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
bc300fec
XDL
11101 * opts.c: Ditto.
11102 * common.opt: Ditto.
11103 * doc/invoke.texi: Ditto.
11104
df8e1fdc
EB
111052008-05-19 Eric Botcazou <ebotcazou@adacore.com>
11106
11107 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 11108 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 11109
06a5f1ec
L
111102008-05-19 H.J. Lu <hongjiu.lu@intel.com>
11111
9479cae3 11112 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
11113 sizes of operand array from 8/4 to 4/2.
11114 (ix86_expand_vector_init_general): Change size of operand array
11115 from 32 to 16. Remove op0, op1 and half_mode.
11116
63e46cce
L
111172008-05-19 H.J. Lu <hongjiu.lu@intel.com>
11118
11119 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
11120 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
11121 (ix86_expand_vector_init_general): Use them. Assert
11122 word_mode == SImode when n_words == 4.
63e46cce 11123
83689be0
UB
111242008-05-19 Uros Bizjak <ubizjak@gmail.com>
11125
11126 * config/i386/i386.c (ix86_secondary_reload): New static function.
11127 (TARGET_SECONDARY_RELOAD): New define.
11128 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
11129 * config/i386/i386.md (reload_outqi): Remove.
11130
05f41289
KG
111312008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11132
11133 PR middle-end/35509
05f41289
KG
11134 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
11135 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
11136 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
11137 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
11138 (fold_builtin_1): Likewise.
11139 * builtins.def (BUILT_IN_ISINF_SIGN): New.
11140 c-common.c (check_builtin_function_arguments): Handle
11141 BUILT_IN_ISINF_SIGN.
11142 * doc/extend.texi: Document __builtin_isinf_sign.
11143 * fold-const.c (operand_equal_p): Handle COND_EXPR.
11144
45a7844f
EB
111452008-05-18 Eric Botcazou <ebotcazou@adacore.com>
11146
11147 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
11148 EH cleanup at the end of the pass, search for those that have been
11149 turned into forwarder blocks and do the cleanup on their successor.
11150
a86907b2
RG
111512008-05-18 Richard Guenther <rguenther@suse.de>
11152
11153 * tree-cfg.c (verify_gimple_expr): Allow conversions from
11154 pointers to sizetype and vice versa.
11155
e29cc9b4
XDL
111562008-05-18 Xinliang David Li <davidxl@google.com>
11157
11158 * gcc/tree-ssa-dce.c: Coding style fix.
22129589 11159 (check_pow): Documentation comment.
e29cc9b4
XDL
11160 (check_log): Documenation comment. Coding style fix.
11161 (is_unnecessary_except_errno_call): Ditto.
11162 (gen_conditions_for_pow): Ditto.
11163 (gen_conditions_for_log): Ditto.
11164 (gen_shrink_wrap_conditions): Ditto.
11165 (shrink_wrap_one_built_in_calls): Ditto.
11166 * gcc/doc/invoke.texi: Better documentation string.
22129589 11167 * ChangeLog: Fix wrong change log entries from
e29cc9b4
XDL
11168 May 17 checkin on function call DCE.
11169
eb6cbf91
KK
111702008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
11171
371a0575 11172 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 11173
bfe69700
KZ
111742008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
11175
11176 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
11177 * df-problems.c (simulation routines): Fixed block comment to
11178 properly say how to add forwards scanning functions.
22129589 11179
7c7d3047
EB
111802008-05-17 Eric Botcazou <ebotcazou@adacore.com>
11181
11182 * tree-inline.c (setup_one_parameter): Remove dead code.
11183
1e17e15a
EB
111842008-05-17 Eric Botcazou <ebotcazou@adacore.com>
11185
11186 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
11187 a BIT_AND_EXPR only for an INTEGER_TYPE.
11188
e29cc9b4
XDL
111892008-05-17 Xinliang David Li <davidxl@google.com>
11190
11191 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
22129589
AS
11192 (check_pow, check_log, is_unnecessary_except_errno_call): New
11193 functions to check for eliminating math functions that are pure
e29cc9b4
XDL
11194 except for setting errno.
11195 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
11196 general condition expressions for shrink-wrapping pow/log calls.
11197 (gen_shrink_wrap_conditions): Ditto.
11198 (shrink_wrap_one_built_in_call): Ditto.
11199 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
11200 (mark_operand_necessary): If debugging, output if OP is necessary.
11201 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
11202 unnecessary.
11203 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
11204 opt level >= 2.
11205 * gcc/common.opt: New user flag -ftree-builtin-dce.
11206 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
11207
b61eacd6
DM
112082008-05-16 David S. Miller <davem@davemloft.net>
11209
371a0575 11210 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
11211 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11212
c62b3659
UB
112132008-05-16 Uros Bizjak <ubizjak@gmail.com>
11214
11215 PR target/36246
11216 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
11217
07b5bc83
KZ
112182008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11219
11220 * ifcvt.c (dead_or_predicable): Rename
11221 df_simulate_one_insn_backwards to df_simulate_one_insn.
11222 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
11223 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
11224 Ditto.
07b5bc83
KZ
11225 * df.h: Rename df_simulate_one_insn_backwards to
11226 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
11227 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
11228 scanning of defs and uses.
11229 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
11230 (df_simulate_one_insn_forwards): Removed.
11231
f1f07a96
DK
112322008-05-16 Doug Kwan <dougkwan@google.com>
11233
11234 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
11235 QNaN & SNaN.
11236 (real_from_string): Handle NaNs and Inf as approriate.
11237
105f48ae
DN
112382008-05-16 Nathan Froyd <froydnj@codesourcery.com>
11239
11240 * doc/gty.texi (Source Files Containing Type Information): Note
11241 that headers should appear first in the gtfiles list.
11242
112432008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11244
11245 * tree.def (COND_EXEC): Properly documented this code.
11246
112472008-05-16 Diego Novillo <dnovillo@google.com>
11248
11249 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
11250 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
11251 the new field.
11252
908ff6a3
KZ
112532008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11254
11255 * tree-ssa-dse (max_stmt_uid): Removed.
22129589 11256 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
908ff6a3
KZ
11257 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
11258 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
11259 * function.h (cfun.last_stmt_uid): New field.
11260 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
11261 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
11262 New functions.
908ff6a3
KZ
11263 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
11264 (create_stmt_ann): Initialize the ann->uid field.
11265 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
11266 with new calls.
11267 * tree-flow.h (renumber_gimple_stmt_uids): New function.
11268
9defb1fe
DN
112692008-05-16 Nathan Froyd <froydnj@codesourcery.com>
11270
11271 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
11272 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
11273 (init_empty_tree_cfg): Call it.
11274
112752008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11276
c62b3659
UB
11277 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
11278 Update all users.
9defb1fe 11279
3e894af1
KZ
112802008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11281
11282 * doc/invoke.text (-fdump-tree-*-verbose): New option.
11283 * tree-dump.c (dump_options): New verbose option.
11284 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
11285 Add verbose dump.
11286 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 11287 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 11288 (tree-flow.h): Added include.
c62b3659 11289 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 11290
16869606
BS
112912008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
11292
4fc4d850
BS
11293 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
11294
16869606 11295 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 11296 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
11297 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
11298 mcpu=bf561-none and mcpu=bf561-0.2.
11299 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11300 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
11301 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11302 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 11303 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 11304 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
11305 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
11306 option.
11307 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
11308 (cputype_selected): Remove.
11309 (bfin_handle_option): Don't use cputype_selected.
11310 (override_options): When no mcpu option, enable all workarounds.
11311 Don't use bfin_workarounds.
11312 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
11313 processor type.
11314 (DEFAULT_CPU_TYPE): Don't define.
11315
d0569f9f
RG
113162008-05-16 Richard Guenther <rguenther@suse.de>
11317
11318 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
11319 on deletion of the last stmt.
11320
d0208f9b
L
113212008-05-15 H.J. Lu <hongjiu.lu@intel.com>
11322
11323 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
11324 V8HImode for SSE2 and V16QImode for SSE4.1.
11325
1920df6c
KZ
113262008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
11327
11328 * cgraph.h (compute_inline_parameters): Made public.
11329 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
11330 variable_generate_summary, function_write_summary,
371a0575
UB
11331 variable_write_summary, variable_read_summary. Added generate_summary,
11332 write_summary, read_summary.
1920df6c
KZ
11333 * cgraphunit.c (cgraph_process_new_functions): Changed call from
11334 pass_ipa_inline.function_generate_summary, to
22129589 11335 compute_inline_parameters.
1920df6c
KZ
11336 * ipa-inline.c (compute_inline_parameters): Made public and added
11337 node parameter.
11338 (compute_inline_parameters_for_current): New function.
c62b3659 11339 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
11340 (inline_generate_summary): Removed parameter and made to loop over
11341 all cgraph nodes.
11342 (pass_ipa_inline): Updated for new IPA_PASS structure.
11343 * passes.c (execute_ipa_summary_passes): Now is called once per
11344 pass rather than once per node*pass.
22129589 11345
470a4c97
AS
113462008-05-15 Anatoly Sokolov <aesok@post.ru>
11347
22129589 11348 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
470a4c97
AS
11349 avr_have_mul_p, avr_asm_only_p): Remove variables.
11350 (avr_override_options): Remove initialization of removed variables.
22129589
AS
11351 (avr_file_start): Convert removed variables to fields of
11352 'struct base_arch_s *avr_current_arch'.
470a4c97
AS
11353 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
11354 (AVR_HAVE_MUL): (Ditto.).
11355 (AVR_HAVE_MOVW): (Ditto.).
22129589
AS
11356 (AVR_HAVE_LPMX): (Ditto.).
11357 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
470a4c97
AS
11358 avr_asm_only_p): Remove declaration.
11359
f4dea66f
DN
113602008-05-15 Diego Novillo <dnovillo@google.com>
11361
c62b3659 11362 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
11363 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
11364
36dafbd1
AN
113652008-05-15 Adam Nemet <anemet@caviumnetworks.com>
11366
11367 PR middle-end/36194
c62b3659
UB
11368 * combine.c (check_conversion): Rename back to check_promoted_subreg.
11369 Don't call record_truncated_value from here.
11370 (record_truncated_value): Turn it into a for_each_rtx callback.
11371 (record_truncated_values): New function.
11372 (combine_instructions): Call note_uses with record_truncated_values.
22129589 11373 Change name of check_conversion to check_promoted_subreg.
36dafbd1 11374
91a5b394
JJ
113752008-05-15 Janis Johnson <janis187@us.ibm.com>
11376
11377 * doc/sourcebuild.texi: Document support for torture tests.
11378
2819ae08
UB
113792008-05-15 Uros Bizjak <ubizjak@gmail.com>
11380
11381 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
11382 to alternative 4 of operand 2.
11383
9fe0cb7d
RG
113842008-05-15 Richard Guenther <rguenther@suse.de>
11385
11386 * tree-pass.h (current_pass): Declare.
11387 (get_pass_for_id): Likewise.
11388 * passes.c (passes_by_id, passes_by_id_size): New globals.
11389 (set_pass_for_id): New function.
11390 (get_pass_for_id): Likewise.
11391 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
11392 (execute_function_todo): Flush per function statistics.
11393 * toplev.c (compile_file): Init statistics.
11394 (general_init): Do early statistics initialization.
11395 (finalize): Finish statistics.
11396 * statistics.h (statistics_early_init): Declare.
11397 (statistics_init): Likewise.
11398 (statistics_fini): Likewise.
11399 (statistics_fini_pass): Likewise.
11400 (statistics_counter_event): Likewise.
11401 (statistics_histogram_event): Likewise.
11402 * statistics.c: New file.
11403 * Makefile.in (OBJS-common): Add statistics.o.
11404 (statistics.o): Add dependencies.
11405 * doc/invoke.texi (-fdump-statistics): Document.
11406
11407 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
11408 (insert): Likewise.
11409 (execute_pre): Use statistics_counter_event.
11410 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
11411 (substitute_and_fold): Increment it. Use statistics_counter_event.
11412
77f377f7
DN
114132008-05-15 Diego Novillo <dnovillo@google.com>
11414
11415 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
11416
11417 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
11418 * tree-ssa-alias.c (new_type_alias): Remove references to
11419 sub-variables from comment.
11420 * tree-ssa-operands.c (swap_tree_operands): Likewise.
11421
89b7851e
L
114222008-05-15 H.J. Lu <hongjiu.lu@intel.com>
11423
11424 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
11425 attribute to 1 only for insertps alternative.
11426
8fa477f7
BS
114272008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
11428
11429 * config/bfin/bfin.md (loadbytes): New pattern.
11430 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
11431 (bfin_init_builtins): Initialize it.
11432 (bdesc_1arg): Add it.
11433
4e8c438f
SL
114342008-05-15 Sa Liu <saliu@de.ibm.com>
11435
11436 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
11437 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
11438 * testsuite/lib/target-supports.exp: Add
11439 check_effective_target_fortran_integer_16.
11440
7ba20e60
BS
114412008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
11442
11443 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
11444 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
11445 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
11446 (TARGET_RETURN_IN_MEMORY): Define.
11447
81d19c06
RG
114482008-05-15 Richard Guenther <rguenther@suse.de>
11449
11450 PR middle-end/36244
11451 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
11452 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
11453 represent unmodifiable vars.
11454
9f59420d
RG
114552008-05-15 Richard Guenther <rguenther@suse.de>
11456
11457 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
11458 INDIRECT_REF and TARGET_MEM_REF.
11459 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11460 TARGET_MEM_REF.
11461
6784c6e0
UB
114622008-05-15 Uros Bizjak <ubizjak@gmail.com>
11463 H.J. Lu <hongjiu.lu@intel.com>
11464
11465 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
11466 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
11467 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
11468 insn alternatives. Add missing alternatives.
11469 (*vec_concatv2di_rex64_sse4_1): Likewise.
11470 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
11471 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
11472 Require TARGET_SSE.
11473
8ded35f9
RG
114742008-05-15 Richard Guenther <rguenther@suse.de>
11475
11476 PR tree-optimization/36009
11477 PR tree-optimization/36204
11478 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
11479 (determine_invariantness_stmt): Record the loop a store is
11480 always executed in.
11481 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
11482 dependency.
11483
45ff5eda
RG
114842008-05-15 Richard Guenther <rguenther@suse.de>
11485
11486 PR tree-optimization/34330
11487 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
11488 through the pointer will alias the SMT.
11489
c5fcd670
AT
114902008-05-14 Andreas Tobler <a.tobler@schweiz.org>
11491
11492 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
11493
a3f63c28
L
114942008-05-14 H.J. Lu <hongjiu.lu@intel.com>
11495
11496 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
11497
71d46ca5
MM
114982008-05-14 Michael Meissner <michael.meissner@amd.com>
11499 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11500
11501 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
11502 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
11503 (vashl_optab): New optab for vector/vector shifts.
11504 (vashr_optab): Ditto.
11505 (vlshr_optab): Ditto.
11506 (vrotl_optab): Ditto.
11507 (vrotr_optab): Ditto.
11508 (optab_subtype): New enum for optab_for_tree_code call.
11509 (optab_for_tree_code): Add enum optab_subtype argument.
11510
11511 * optabs.c (optab_for_tree_code): Take an additional argument to
11512 distinguish between a vector shift by a scalar and vector shift by
11513 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
11514 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
11515 vector shift by a vector.
11516 (expand_widen_pattern_expr): Pass additional argument to
11517 optab_for_tree_code.
11518
11519 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
11520 vrotl_optab, vrotr_optab.
11521
11522 * expr.c (expand_expr_real_1): Update calls to
11523 optab_for_tree_code to distinguish between vector shifted by a
11524 scalar and vector shifted by a vector.
11525 * tree-vectorizer.c (supportable_widening_operation): Ditto.
11526 (supportable_narrowing_operation): Ditto.
11527 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
11528 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
11529 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
11530 (vect_create_epilog_for_reduction): Ditto.
11531 (vectorizable_reduction): Ditto.
11532 (vectorizable_operation): Ditto.
11533 (vect_strided_store_supported): Ditto.
11534 (vect_strided_load_supported): Ditto.
11535 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
11536 * expmed.c (expand_shift): Ditto.
11537
11538 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
11539 scalar type.
11540 (ashr@var{m}3): Ditto.
11541 (vashl@var{m}3): Document new vector/vector shift standard name.
11542 (vashr@var{m}3): Ditto.
11543 (vlshr@var{m}3): Ditto.
11544 (vrotl@var{m}3): Ditto.
11545 (vrotr@var{m}3): Ditto.
11546
6784c6e0 11547 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
11548 (PPERM_INVERT): Ditto.
11549 (PPERM_REVERSE): Ditto.
11550 (PPERM_REV_INV): Ditto.
11551 (PPERM_ZERO): Ditto.
11552 (PPERM_ONES): Ditto.
11553 (PPERM_SIGN): Ditto.
11554 (PPERM_INV_SIGN): Ditto.
11555 (PPERM_SRC1): Ditto.
11556 (PPERM_SRC2): Ditto.
11557
11558 * config/i386/sse.md (mulv2di3): Add SSE5 support.
11559 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
11560 allows a memory operand to be the value being added, and split it
11561 to improve vectorization.
11562 (sse5_pmacsdqh_mem): Ditto.
11563 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
11564 (sse5_mulv2div2di3_high): Ditto.
11565 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
11566 (vec_pack_trunc_v4si): Ditto.
11567 (vec_pack_trunc_v2di): Ditto.
11568 (sse5_pcmov_<mode>): Remove code that tried to use use
11569 andps/andnps instead of pcmov.
11570 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
11571 pmacsdqh instructions.
11572 (vec_widen_smult_lo_v4si): Ditto.
11573
11574 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
11575 (PPERM_INVERT): Ditto.
11576 (PPERM_REVERSE): Ditto.
11577 (PPERM_REV_INV): Ditto.
11578 (PPERM_ZERO): Ditto.
11579 (PPERM_ONES): Ditto.
11580 (PPERM_SIGN): Ditto.
11581 (PPERM_INV_SIGN): Ditto.
11582 (PPERM_SRC1): Ditto.
11583 (PPERM_SRC2): Ditto.
11584 (ix86_expand_sse_movcc): Move the SSE5 test after the if
11585 true/false tests.
11586 (ix86_expand_int_vcond): If SSE5 generate all possible integer
11587 comparisons.
11588 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
11589 says ignore whether the last reference is a memory operand.
11590
115912008-05-14 Michael Meissner <michael.meissner@amd.com>
11592 Paolo Bonzini <bonzini at gnu dot org>
11593
11594 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
11595 shift patterns.
11596
6784c6e0 11597 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
11598 (vlshr<mode>3): Rename from vlshr<mode>3.
11599 (vashr<mode>3): Rename from vashr<mode>3.
11600 (mulv4sf3): Change the names of vector shift patterns.
11601 (mulv4si3): Ditto.
11602 (negv4sf2): Ditt.
11603
11604 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
11605 shift insns.
11606
6784c6e0 11607 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
11608 (SI_SHLHI): Ditto.
11609 (SI_SHL): Ditto.
11610 (SI_SHLI): Ditto.
11611 (SI_ROTH): Ditto.
11612 (SI_ROTHI): Ditto.
11613 (SI_ROT): Ditto.
11614 (SI_ROTI): Ditto.
11615 (SPU_RL_0): Ditto.
11616 (SPU_RL_1): Ditto.
11617 (SPU_RL_2): Ditto.
11618 (SPU_RL_3): Ditto.
11619 (SPU_RL_4): Ditto.
11620 (SPU_RL_5): Ditto.
11621 (SPU_RL_6): Ditto.
11622 (SPU_RL_7): Ditto.
11623 (SPU_SL_0): Ditto.
11624 (SPU_SL_1): Ditto.
11625 (SPU_SL_2): Ditto.
11626 (SPU_SL_3): Ditto.
11627 (SPU_SL_4): Ditto.
11628 (SPU_SL_5): Ditto.
11629 (SPU_SL_6): Ditto.
11630 (SPU_SL_7): Ditto.
11631
11632 * config/spu/spu.md (v): New iterator macro to add v for vector types.
11633 (floatunssidf2_internal): Change vector/vector shift names.
11634 (floatunsdidf2_internal): Ditto.
11635 (mulv8hi3): Ditto.
11636 (ashrdi3): Ditto.
11637 (ashrti3): Ditto.
11638 (cgt_df): Ditto.
11639 (cgt_v2df): Ditto.
11640 (dftsv): Ditto.
11641 (vashl<mode>3): Rename from ashl<mode>3.
11642 (vashr<mode>3): Rename from ashr<mode>3.
11643 (vlshr<mode>3): Rename from lshr<mode>3.
11644 (vrotl<mode>3): Rename from rotl<mode>3.
11645
550c9cf0
MM
116462008-05-14 Michael Meissner <michael.meissner@amd.com>
11647
11648 PR target/36224
6784c6e0
UB
11649 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
11650 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
11651 (vec_widen_smult_lo_v4si): Ditto.
11652
84b8030f
KZ
116532008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
11654
11655 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
11656 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
22129589 11657 emit_library_call_value.
84b8030f
KZ
11658 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
11659 * tree.h (ECF_LIBCALL_BLOCK): Removed.
22129589 11660 * calls.c (initialize_argument_information, precompute_arguments,
84b8030f
KZ
11661 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
11662 (precompute_arguments): Removed flags parameter.
11663 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
22129589 11664
f403a4a2
RG
116652008-05-14 Richard Guenther <rguenther@suse.de>
11666
11667 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
11668 Make sure to register the store if the use is a PHI_NODE.
11669
da19297d
OH
116702008-05-14 Olivier Hainque <hainque@adacore.com>
11671
11672 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
11673 memory if the component is to be referenced in BLKmode according
11674 to get_inner_reference.
11675
1fd03c70
AN
116762008-05-14 Adam Nemet <anemet@caviumnetworks.com>
11677
11678 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 11679 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 11680
349c3166
OH
116812008-05-14 Olivier Hainque <hainque@adacore.com>
11682 Nicolas Roche <roche@adacore.com>
11683
11684 * configure.ac: Add support for a "gcc_subdir" variable in
11685 config-lang.in, to denote a subdirectory where the language/GCC
11686 integration files are to be found.
11687 * configure: Regenerate.
11688
2b8775f3
IR
116892008-05-14 Ira Rosen <irar@il.ibm.com>
11690
11691 PR tree-optimization/36098
11692 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
11693 value for the first load in the group in case of a gap.
11694 (vect_build_slp_tree): Check that there are no gaps in loads.
11695
d70dcf29
KZ
116962008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
11697
11698 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
11699 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
11700 expand_copysign_bit, ): Change call to emit_no_conflict_block to
11701 emit_insn and remove unneeded code to construct extra args.
11702 (emit_no_conflict_block): Removed.
11703 * optabls.h: (emit_no_conflict_block): Removed.
11704 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 11705 REG_NO_CONFLICT note.
d70dcf29
KZ
11706 * global.c: Removed incorrect comment added in revision 117.
11707 * expr.c (convert_move): Change call to emit_no_conflict_block to
11708 emit_insn.
11709 * recog.c: Change comments so that they do not mention
11710 REG_NO_CONFLICT.
11711 * local_alloc.c (combine_regs): Removed last parameter.
11712 (no_conflict_p): Removed.
11713 (block_alloc): Removed note, no_conflict_combined_regno and set
11714 local vars. Removed all code to process REG_NO_CONFLICT blocks.
11715 (combine_regs): Removed already_dead and code to look for
11716 REG_NO_CONFLICT notes.
11717 * lower_subreg (remove_retval_note): Removed code to look for
11718 REG_NO_CONFLICT block.
11719 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
11720 (resolve_clobber): Remove code to process libcalls that have
11721 REG_NO_CONFLICT notes.
11722 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
11723 case.
6784c6e0
UB
11724 * combine.c (can_combine_p, distribute_notes): Removed
11725 REG_NO_CONFLICT case.
11726 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
11727 to emit_insns.
d70dcf29
KZ
11728 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
11729 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 11730 Ditto.
d70dcf29 11731 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 11732
cc44abe6
DM
117332008-05-14 David S. Miller <davem@davemloft.net>
11734
11735 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 11736 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
11737 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
11738 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
11739
0beb3d66
AK
117402008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
11741
11742 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
11743
08e64088
UB
117442008-05-13 Uros Bizjak <ubizjak@gmail.com>
11745
11746 PR target/36222
11747 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
11748 and op1 expansion before vector concat to have less live pseudos.
11749
af7ae5d1
L
117502008-05-13 H.J. Lu <hongjiu.lu@intel.com>
11751
11752 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11753 ix86_expand_vector_set if supported.
11754
5db9ba0c
DN
117552008-05-13 Diego Novillo <dnovillo@google.com>
11756 Kenneth Zadeck <zadeck@naturalbridge.com>
11757
11758 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
11759
11760 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
11761 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
11762 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
11763 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
11764 ssanames_print_statistics): Move ...
11765 * tree-flow.h: ... here.
08e64088
UB
11766 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
11767 Use FN instead of cfun.
5db9ba0c 11768 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 11769 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 11770 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 11771 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
11772 * omp-low.c (expand_omp_parallel):
11773 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
11774 * tree-ssa.c (init_tree_ssa): Add argument FN.
11775 Use it instead of cfun. Update all users.
5db9ba0c 11776
899015a0
TT
117772008-05-13 Tom Tromey <tromey@redhat.com>
11778
11779 PR preprocessor/22168:
11780 * doc/cpp.texi (Top): Update menu.
11781 (Alternatives to Wrapper #ifndef): New node.
11782 (Other Directives): Document deprecation.
11783 (Obsolete Features): Remove menu.
11784 (Assertions): Merge node into Obsolete Features.
11785 (Obsolete once-only headers): Move earlier; rename to Alternatives
11786 to Wrapper #ifndef.
11787 * doc/cppopts.texi: Update.
11788 * c.opt (Wdeprecated): Enable for C and ObjC.
11789 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
11790 (C++ Dialect Options): Move -Wno-deprecated from here to...
11791 (Warning Options): ... here.
11792
8ebc39d8
RG
117932008-05-13 Richard Guenther <rguenther@suse.de>
11794
11795 PR middle-end/36227
11796 * fold-const.c (fold_sign_changed_comparison): Do not allow
11797 changes in pointer-ness.
11798
ef0a7607
KK
117992008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
11800
11801 PR target/24713
11802 * config/sh/sh.c (sh_expand_prologue): Don't clear
11803 RTX_FRAME_RELATED_P for push insns.
11804
9c218cfc
AH
118052008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
11806
11807 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
11808
4c75f709
AS
118092008-05-12 Anatoly Sokolov <aesok@post.ru>
11810
11811 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
11812 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
11813 Use 'machine->is_leaf' instead of 'leaf_func_p'.
11814
fcc9fe1e
L
118152008-05-12 H.J. Lu <hongjiu.lu@intel.com>
11816
11817 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
11818 (*vec_concatv4sf_sse): This.
11819 (*sse2_concatv2si): Renamed to ...
11820 (*vec_concatv2si_sse2): This.
11821 (*sse1_concatv2si): Renamed to ...
11822 (*vec_concatv2si_sse): This.
11823 (*vec_concatv2di_rex): Renamed to ...
11824 (*vec_concatv2di_rex64): This.
11825 (*vec_concatv2si_sse4_1): New.
11826 (*vec_concatv2di_rex64_sse4_1): Likewise.
11827
162bfc7e
UB
118282008-05-12 Uros Bizjak <ubizjak@gmail.com>
11829
11830 PR rtl-optimization/36111
11831 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
11832 that was created for swappable operands.
11833
3d4e720a
ST
118342008-05-12 Samuel Tardieu <sam@rfc1149.net>
11835
11836 PR ada/36001
11837 * Makefile.in: Substitute GNATMAKE and GNATBIND.
11838 * configure.ac: Add call to ACX_PROG_GNAT.
11839
fc54bc84
VR
118402008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
11841
11842 * optc-gen.awk: Fix comment typo.
11843
2a157700
AL
118442008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
11845
11846 * pretty-print.c (pp_integer_with_precision): Use
11847 HOST_LONG_LONG_FORMAT.
11848
4e00d960
KZ
118492008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
11850
11851 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
22129589 11852
b282a8d3
L
118532008-05-10 H.J. Lu <hongjiu.lu@intel.com>
11854
11855 * config/i386/i386.c (bdesc_ptest): Removed.
11856 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
11857 (bdesc_args): Add __builtin_ia32_ptestz128,
11858 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
11859 (ix86_init_mmx_sse_builtins): Updated.
11860 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
11861 (ix86_expand_builtin): Updated.
11862
17d23165
RS
118632008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
11864
11865 * tree-cfg.c (valid_fixed_convert_types_p): New function.
11866 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
11867
d35910bf
UB
118682008-05-10 Uros Bizjak <ubizjak@gmail.com>
11869
11870 * value-prof.c (interesting_stringop_to_profile): Do not
11871 return early for BUILT_IN_MEMPCPY.
11872
17b29c0a
L
118732008-05-09 H.J. Lu <hongjiu.lu@intel.com>
11874
11875 * calls.c (expand_call): Don't use callgraph to increase
11876 preferred_stack_boundary.
11877
11878 * cgraph.h (cgraph_rtl_info): Use unsigned on
11879 preferred_incoming_stack_boundary.
11880
11881 * final.c (rest_of_clean_state): Use unsigned on
11882 preferred_stack_boundary.
11883
4822e563
TT
118842008-05-09 Tom Tromey <tromey@redhat.com>
11885
11886 PR preprocessor/22231:
11887 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
11888 proceeding.
11889
53a8f709
UB
118902008-05-09 Uros Bizjak <ubizjak@gmail.com>
11891
11892 PR tree-optimization/36129
162bfc7e 11893 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
11894 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
11895 built-in function was folded to a constant.
162bfc7e 11896 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 11897
3f227a8c
JS
118982008-05-09 Jan Sjodin <jan.sjodin@amd.com>
11899 Sebastian Pop <sebastian.pop@amd.com>
11900
11901 * tree-scalar-evolution.c: Document instantiate_scev.
11902 (instantiate_parameters_1): Renamed instantiate_scev_1.
11903 Don't use the same loop for instantiation_loop and evolution_loop.
11904 (instantiate_scev): New.
11905 (instantiate_parameters): Moved...
11906 (resolve_mixers): Update call to instantiate_scev_1 to pass the
11907 same loop twice. Maintains the semantics for this function.
11908 * tree-scalar-evolution.h (instantiate_scev): Declare.
11909 (instantiate_parameters): ...here. Now static inline.
11910 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
11911 instead of resolve_mixers.
11912
a3e19be6
MK
119132008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
11914
11915 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
11916
1043771b
TB
119172008-05-09 Tomas Bily <tbily@suse.cz>
11918
11919 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
11920 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
11921 * tree-ssa-structalias.c (get_constraint_for): Likewise.
11922 * c-common.c (c_common_truthvalue_conversion): Likewise.
11923 * tree-object-size.c (compute_object_offset): Likewise.
11924 * tree-inline.c (estimate_num_insns_1): Likewise.
11925 * varasm.c (const_hash_1, compare_constant, copy_constant)
11926 (compute_reloc_for_constant, output_addressed_constants)
11927 (initializer_constant_valid_p): Likewise.
11928 * c-omp.c (check_omp_for_incr_expr): Likewise.
11929 * gimplify.c (gimplify_expr): Likewise.
11930 * c-typeck.c (c_finish_return): Likewise.
11931 * tree-vectorizer.c (supportable_widening_operation)
11932 (supportable_narrowing_operation): Likewise.
11933 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
11934 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
11935 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
11936 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
11937 (descr_info_loc): Likewise.
11938 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11939 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
11940 (fold_unary): Likewise.
11941 * builtins.c (get_pointer_alignment): Likewise.
11942 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
11943 (instantiate_parameters_1): Likewise.
11944 * tree.c (expr_align, stabilize_reference): Likewise.
11945 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
11946 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
11947 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
11948 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11949 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
11950 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
11951 Likewise.
1043771b
TB
11952 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
11953 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
11954 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
11955 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
11956 (forward_propagate_comparison)
11957 (tree_ssa_forward_propagate_single_use_vars): Likewise.
11958 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
11959 * emit-rtl.c (component_ref_for_mem_expr)
11960 (set_mem_attributes_minus_bitpos): Likewise.
11961 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
11962 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
11963 Likewise.
1043771b
TB
11964 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
11965 (build_function_call, pointer_diff, build_compound_expr)
11966 (c_finish_return): Likewise.
11967 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
11968 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
11969 Likewise.
1043771b
TB
11970 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
11971 * expr.c (is_aligning_offset): Likewise.
11972 * tree-ssa-alias.c (is_escape_site): Likewise.
11973 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
11974 (check_all_va_list_escapes): Likewise.
11975 * tree-ssa-loop-ivopts.c (determine_base_object)
11976 (determine_common_wider_type): Likewise.
11977 * dojump.c (do_jump): Likewise.
11978 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
11979 * tree-gimple.c (is_gimple_cast): Likewise.
11980 * fold-const.c (decode_field_reference, )
11981 (fold_sign_changed_comparison, fold_unary, fold_comparison)
11982 (fold_binary): Likewise.
11983 * tree-ssa-alias-warnings.c (find_alias_site_helper)
11984 (already_warned_in_frontend_p): Likewise.
11985 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
11986 * tree.c (really_constant_p, get_unwidened): Likewise.
11987 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
11988 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
11989 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
11990 Likewise.
11991 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
11992 CONVERT_EXPR_P.
1043771b
TB
11993 (CONVERT_EXPR_P): Define.
11994 (CASE_CONVERT): Define.
22129589 11995
5ba5ab9b
KZ
119962008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
11997
11998 PR middle-end/36117
162bfc7e
UB
11999 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
12000 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
12001 delete_unreachable_blocks.
12002 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
12003 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
12004
1353232d
RG
120052008-05-08 Richard Guenther <rguenther@suse.de>
12006
12007 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
12008 (-ftree-salias): Likewise.
12009 (salias-max-implicit-fields): Remove param documentation.
12010 (salias-max-array-elements): Likewise.
12011 * tree-pass.h (pass_create_structure_vars): Remove.
12012 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
12013 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
12014 * tree-ssa-alias.c (create_structure_vars): Remove.
12015 (gate_structure_vars): Likewise.
12016 (pass_create_structure_vars): Likewise.
12017 (gate_build_alias): Likewise.
12018 (pass_build_alias): Adjust to run always and dump the function.
12019 * common.opt (ftree-salias): Hide.
12020 * passes.c (init_optimization_passes): Remove
12021 pass_create_structure_vars, adjust comment.
12022 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
12023 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
12024 * opts.c (decode_options): Do not set flag_tree_salias.
12025 (common_handle_option): Add OPT_ftree_salias to the backward
12026 compatibility section.
12027
31de5b77
RG
120282008-05-08 Richard Guenther <rguenther@suse.de>
12029
12030 * tree-flow-inline.h (var_can_have_subvars): Move ...
12031 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
12032 * tree-flow.h (var_can_have_subvars): Remove.
12033 (push_fields_onto_fieldstack): Remove.
12034 (sort_fieldstack): Likewise.
12035 (struct fieldoff): Move ...
12036 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
12037 alias_set and base_for_components fields.
12038 (sort_fieldstack): Make static.
12039 (push_fields_onto_fieldstack): Likewise. Remove code that
12040 handles anything but RECORD_TYPEs. Remove alias_set and
12041 base_for_components handling.
12042 (create_variable_info_for): Adjust.
12043
c1a3620a 120442008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 12045
c1a3620a
SP
12046 * common.opt (Wframe-larger-than=): Shorten the help message
12047 to one line.
12048 * doc/invoke.texi (Wframe-larger-than=): Add more description.
12049
04b03edb
RAE
120502008-05-08 Rafael Espindola <espindola@google.com>
12051
12052 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
12053 trap.
12054 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
12055 trap and that both operands are gimple values.
12056 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
12057 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
12058 is a fp operation.
12059
96c92f47
RS
120602008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
12061
12062 * read-rtl.c (join_c_conditions): Return the first string if the
12063 two strings are equal.
12064
e663da80
RS
120652008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
12066
12067 * gensupport.h (pred_data): Add a "num_codes" field.
12068 (add_predicate_code): Declare.
12069 * gensupport.c (add_predicate_code): New function.
12070 (std_pred_table): Add an "allows_const_p" field.
12071 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
12072 Remove the (incomplete) list of such codes from the codes field.
12073 (init_predicate_table): Use add_predicate_code. Add all
12074 RTX_CONST_OBJs if allows_const_p is true.
12075 * genrecog.c (process_define_predicate): Use add_predicate_code.
12076
977502ff
DD
120772008-05-08 David Daney <ddaney@avtrex.com>
12078 Richard Sandiford <rsandifo@nildram.co.uk>
22129589 12079
977502ff
DD
12080 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
12081 special case of constant zero operands.
12082 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
12083 old and new values. Special case constant zero values.
12084 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
12085 fails.
12086 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
12087 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
12088
627ab861
PB
120892008-05-08 Paolo Bonzini <bonzini@gnu.org>
12090
12091 PR target/36090
12092 * simplify-rtx.c (simplify_plus_minus): Create CONST of
12093 similar RTX_CONST_OBJ before CONST_INT.
12094
41ccb5d1
SE
120952008-05-08 Steve Ellcey <sje@cup.hp.com>
12096
12097 * stmt.c (expand_stack_restore): Change sa mode if needed.
12098
e8d6aaee
RG
120992008-05-08 Richard Guenther <rguenther@suse.de>
12100
12101 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
12102 return type to bool.
12103 (ix86_sol10_return_in_memory): Likewise.
12104 (ix86_i386elf_return_in_memory): Likewise.
12105 (ix86_i386interix_return_in_memory): Likewise.
12106 * config/i386/i386.c (ix86_return_in_memory): Likewise.
12107 (ix86_sol10_return_in_memory): Likewise.
12108 (ix86_i386elf_return_in_memory): Likewise.
12109 (ix86_i386interix_return_in_memory): Likewise.
12110
033df0b9
KT
121112008-05-08 Kai Tietz <kai.tietz@onevision.com>
12112
d7822892 12113 PR bootstrap/36180
033df0b9
KT
12114 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
12115 fndecl argument.
d7822892
UB
12116 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
12117 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
12118 declared in front.
033df0b9 12119
5611cf0b
RG
121202008-05-08 Richard Guenther <rguenther@suse.de>
12121
12122 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
12123 * tree-data-ref.h (struct dr_alias): Remove subvars field.
12124 (DR_SUBVARS): Remove.
12125 * tree-dfa.c (dump_subvars_for): Remove.
12126 (debug_subvars_for): Likewise.
12127 (dump_variable): Do not dump subvars.
12128 (remove_referenced_var): Do not remove subvars.
12129 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
12130 (lookup_subvars_for_var): Remove.
12131 (get_subvars_for_var): Likewise.
12132 (get_subvars_at): Likewise.
12133 (get_first_overlapping_subvar): Likewise.
12134 (overlap_subvar): Likewise.
12135 * tree-flow.h (subvar_t): Remove.
12136 (struct var_ann_d): Remove subvars field.
12137 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
12138 argument. Remove special handling of SFTs.
12139 (compute_tag_properties): Likewise.
12140 (set_initial_properties): Likewise.
12141 (compute_call_clobbered): Likewise.
12142 (count_mem_refs): Likewise.
12143 (compute_memory_partitions): Likewise.
12144 (compute_flow_insensitive_aliasing): Likewise.
12145 (setup_pointers_and_addressables): Likewise.
12146 (new_type_alias): Likewise.
12147 (struct used_part): Remove.
12148 (used_portions): Likewise.
12149 (struct used_part_map): Likewise.
12150 (used_part_map_eq): Likewise.
12151 (used_part_map_hash): Likewise.
12152 (free_used_part_map): Likewise.
12153 (up_lookup): Likewise.
12154 (up_insert): Likewise.
12155 (get_or_create_used_part_for): Likewise.
12156 (create_sft): Likewise.
12157 (create_overlap_variables_for): Likewise.
12158 (find_used_portions): Likewise.
12159 (create_structure_vars): Likewise.
12160 * tree.def (STRUCT_FIELD_TAG): Remove.
12161 * tree.h (MTAG_P): Adjust.
12162 (struct tree_memory_tag): Remove base_for_components and
12163 unpartitionable flags.
12164 (struct tree_struct_field_tag): Remove.
12165 (SFT_PARENT_VAR): Likewise.
12166 (SFT_OFFSET): Likewise.
12167 (SFT_SIZE): Likewise.
12168 (SFT_NONADDRESSABLE_P): Likewise.
12169 (SFT_ALIAS_SET): Likewise.
12170 (SFT_UNPARTITIONABLE_P): Likewise.
12171 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
12172 (union tree_node): Remove sft field.
12173 * alias.c (get_alias_set): Remove special handling of SFTs.
12174 * print-tree.c (print_node): Remove handling of SFTs.
12175 * tree-dump.c (dequeue_and_dump): Likewise.
12176 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
12177 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
12178 * tree-predcom.c (set_alias_info): Do not set subvars.
12179 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
12180 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
12181 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
12182 (add_vars_for_offset): Remove.
12183 (add_virtual_operand): Remove special handling of SFTs.
12184 (add_call_clobber_ops): Likewise.
12185 (add_call_read_ops): Likewise.
12186 (get_asm_expr_operands): Likewise.
12187 (get_modify_stmt_operands): Likewise.
12188 (get_expr_operands): Likewise.
12189 (add_to_addressable_set): Likewise.
12190 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
12191 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 12192 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
12193 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
12194 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
12195 (tree_node_structure): Likewise.
12196 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
12197 handling of SFTs.
12198 (find_what_p_points_to): Likewise.
12199
fb4b5171
SL
122002008-05-08 Sa Liu <saliu@de.ibm.com>
12201
12202 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 12203
1b674de0
RG
122042008-05-08 Richard Guenther <rguenther@suse.de>
12205
12206 PR middle-end/36154
12207 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
12208 sure to create a representative for trailing arrays for PTA.
12209
b13e7b6c
RG
122102008-05-08 Richard Guenther <rguenther@suse.de>
12211
12212 PR middle-end/36172
12213 * fold-const.c (operand_equal_p): Two objects which types
12214 differ in pointerness are not equal.
12215
d7822892 122162008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
12217
12218 * calls.c (compute_argument_block_size): Add argument tree fndecl.
12219 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
12220 (emit_library_call_value_1): Add new variable fndecl initialized by
12221 NULL_TREE. It should be the decl type of orgfun, but this information
12222 seems not to be available here, so it uses the default calling abi.
12223 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
12224 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
12225 by TARGET_RETURN_IN_MEMORY.
12226 * config/i386/i386-interix.h: Likewise.
12227 * config/i386/i386.h: Likewise.
12228 * config/i386/i386elf.h: Likewise.
12229 * config/i386/ptx4-i.h: Likewise.
12230 * config/i386/sol2-10.h: Likewise.
12231 * config/i386/sysv4.h: Likewise.
12232 * config/i386/vx-common.h: Likewise.
12233 * config/cris/cris.h: Removed #if 0 clause.
d7822892 12234 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
12235 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
12236 argument.
12237 (ix86_sol10_return_in_memory): Likewise.
12238 (ix86_i386elf_return_in_memory): New.
12239 (ix86_i386interix_return_in_memory): New.
12240 * config/mt/mt-protos.h (mt_return_in_memory): New.
12241 * config/mt/mt.c: Likewise.
12242 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
12243 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
12244 * config/bfin/bfin.h: Likewise.
12245 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
12246 argument.
12247 * config/bfin/bfin.c: Likewise.
12248 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
12249 * config/alpha/unicosmk.h: Likewise.
12250 * config/i386/cygming.h: Likewise.
12251 * config/iq2000/iq2000.h: Likewise.
12252 * config/mips/mips.h: Likewise.
12253 * config/mn10300/mn10300.h: Likewise.
12254 * config/rs6000/rs6000.h: Likewise.
12255 * config/score/score.h: Likewise.
12256 * config/spu/spu.h: Likewise.
12257 * config/v850/v850.h: Likewise.
12258 * defaults.h: Likewise.
12259 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
12260 * expr.c (emit_block_move): Adjust use of
12261 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
12262 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
12263 OUTGOING_REG_PARM_STACK_SPACE.
12264 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
12265
4218dc2d
JJ
122662008-05-08 Jakub Jelinek <jakub@redhat.com>
12267
12268 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
12269 on OMP_RETURN for OMP_FOR.
12270
1f16b47c
JJ
12271 PR debug/35896
12272 * dwarf2out.c (dw_expand_expr, common_check): Removed.
12273 (fortran_common): New function.
12274 (gen_variable_die): Call fortran_common instead of common_check,
12275 adjust for it returning tree instead of rtx. Formatting.
12276
4218dc2d 122772008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 12278
d7822892
UB
12279 PR rtl/7335
12280 PR rtl/33826
12281 * see.c (see_copy_insn): Copy new pure const attributes for new call.
12282 * c-decl.c (merge_decls): Ditto.
12283 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
12284 to RTL_CONST_OR_PURE_CALL_P.
12285 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
12286 Initialized DECL_LOOPING_CONST_PURE.
12287 (process_call_operands): Set tree_side_effects properly.
12288 * tree.h (TREE_READONLY_DECL_P): Removed.
12289 (DECL_IS_PURE): Renamed to DECL_PURE_P.
12290 (DECL_LOOPING_OR_CONST_P): New macro.
12291 (struct tree_function_decl): Added looping_const_or_pure_p.
12292 (ECF_*) Renumbered.
12293 (ECF_LOOPING_OR_CONST_P): New macro.
12294 * rtlanal.c (pure_const_p): Removed.
12295 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
12296 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
12297 to RTL_CONST_CALL_P.
12298 * ipa-pure-const.c (pure_const_state_e): Added looping field.
12299 (check_decl, check_tree, check_call, scan_function): Initialize
12300 looping.
12301 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
12302 (static_execute): Set looping true for recursive functions.
12303 Undo setting state to IPA_NEITHER for recursive functions.
22129589 12304 * cse.c (cse_insn):
d7822892 12305 * ifcvt.c (noce_can_store_speculate_p): Changed
22129589 12306 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
d7822892
UB
12307 RTL_CONST_OR_PURE_CALL_P.
12308 * dse.c (scan_insn): Ditto.
12309 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
12310 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
12311 RTL_CONST_OR_PURE_CALL_P.
12312 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
12313 pure_call_p to RTL_CONST_CALL_P.
12314 * gimplify.c (gimplify_call_expr): Clear side effects for
12315 non-looping pure and constant calls.
12316 * calls.c (emit_call_1): Set rtl flags from ecf flags.
12317 (flags_from_decl_or_type): Set ecf flags from decl flags.
12318 (initialize_argument_information): Turn off
12319 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
12320 Change const to pure if callee_copies is true rather than just
12321 turning off const.
12322 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
12323 way of marking pure calls.
12324 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
12325 Remove hack that was supposed to fix pr7335 and remove old
12326 way of marking pure calls.
12327 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
12328 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
12329 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
12330 RTL_CONST_OR_PURE_CALL_P.
12331 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
12332 * loop-invariant.c (find_exits, find_invariant_bb): Changed
12333 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
12334 * sched-deps.c (schedule_analyze): Ditto.
12335 * rtl.h (struct rtx_def): Use call field, unchanging field, and
12336 return_val field of calls to represent pure and const function info.
12337 (CONST_OR_PURE_CALL_P): Deleted macro.
12338 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
12339 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
12340 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
12341 TREE_READONLY.
12342 * tree-optimize.c (execute_fixup_cfg): Added test for
12343 ECF_LOOPING_CONST_OR_PURE.
12344 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
12345 DECL_PURE_P.
12346 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
12347 effects for looping pure or const calls.
22129589 12348 (verify_gimple_expr): Added verification code.
d7822892
UB
12349 * config/alpha/alpha.c (alpha_legitimize_address,
12350 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
12351 RTL_CONST_CALL_P.
12352 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
12353 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
12354 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
12355 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
12356 RTL_CONST_OR_PURE_CALL_P.
12357 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
12358 and const calls to be deleted.
becfd6e5 12359
d7822892 123602008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
12361
12362 PR target/35714
12363 * config/i386/mmx.md (mmx_subv2sf3): New expander.
12364 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
12365 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
12366 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
12367 to handle nonimmediate operands.
12368 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
12369 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
12370 to handle nonimmediate operands.
12371 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
12372 (mmx_pmulhrwv4hi3): New expander. Use
12373 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12374 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
12375 (sse2_umulv1siv1di3): New expander. Use
12376 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12377 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
12378 (mmx_eq<mode>3): New expander. Use
12379 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12380 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
12381 (mmx_uavgv8qi3): New expander. Use
12382 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12383 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
12384 (mmx_uavgv4hi3): New expander. Use
12385 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12386
12387 * config/i386/sse.md
3a3f9d87 12388 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 12389 to handle nonimmediate operands.
3a3f9d87 12390 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 12391 to handle nonimmediate operands.
3a3f9d87 12392 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 12393 to handle nonimmediate operands.
3a3f9d87 12394 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 12395 to handle nonimmediate operands.
3a3f9d87 12396 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 12397 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 12398 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 12399 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 12400 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 12401 to handle nonimmediate operands.
ffbaf337
UB
12402 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
12403 to handle nonimmediate operands.
12404 (*sse2_<plusminus_insn><mode>3): Rename from
12405 sse2_<plusminus_insn><mode>3 insn pattern.
12406 (sse2_<plusminus_insn><mode>3): New expander. Use
12407 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12408 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
12409 (sse2_umulv2siv2di3): New expander. Use
12410 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12411 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
12412 (sse4_1_mulv2siv2di3): New expander. Use
12413 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12414 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
12415 (sse2_pmaddwd): New expander. Use
12416 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12417 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
12418 (sse2_eq<mode>3): New expander. Use
12419 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12420 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
12421 (sse4_1_eqv2di3): New expander. Use
12422 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12423 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
12424 (sse2_uavgv16qi3): New expander. Use
12425 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12426 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
12427 (sse2_uavgv16qi3): New expander. Use
12428 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12429 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
12430 (sse2_uavgv8hi3): New expander. Use
12431 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12432 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
12433 (ssse3_pmulhrswv8hi3): New expander. Use
12434 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12435 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
12436 (ssse3_pmulhrswv4hi3): New expander. Use
12437 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12438
12439 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
12440 (<sse>_vmmul<mode>3): Ditto.
12441 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
12442 (divv2df3): Ditto.
12443 (ssse3_pmaddubsw128): Use register_operand for operand 1.
12444 (ssse3_pmaddubsw): Ditto.
12445
3a3f9d87
UB
12446 * config/i386/i386.c (struct_builtin_description)
12447 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
12448 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
12449 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
12450 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
12451 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
12452 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
12453 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
12454 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
12455 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
12456 and src2 must have the same mode when swapped.
12457 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
12458 and ix86_binary_operator_ok. Do not force operands in registers
12459 when optimizing.
12460
95622280
JH
124612008-05-07 Jan Hubicka <jh@suse.cz>
12462
12463 * cgraph.c (dump_cgraph_node): Update.
12464 * cgraph.h (cgraph_local_info): Break out inline summary.
12465 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
12466 hook.
12467 * ipa-inline (inline_summary): New accestor function.
12468 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
12469 cgraph_decide_inlining, compute_inline_parameters): Update.
12470 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
12471
96fcacb7
MK
124722008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
12473
12474 Cleanup ColdFire scheduling support and add V4 pipeline model.
12475
12476 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
12477 (define_attr cpu): Add cfv4 value.
12478 (define_attr type, define_attr type1): Merge into a single 'type'
12479 attribute. Update all uses.
12480 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
12481 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
12482 Update all uses.
12483 (define_attr opx_mem, define_attr opy_mem): Remove.
12484 (define_attr op_mem): Clean up, update comment.
12485 (define_attr size): Use specific values instead of general int.
12486 (define_attr guess, define_attr split): Remove. Update all uses.
12487 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
12488 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
12489 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
12490 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
12491 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
12492 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
12493 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
12494 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
12495 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
12496 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
12497 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
12498 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
12499 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
12500 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
12501 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
12502 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
12503 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
12504 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
12505 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
12506 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
12507 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
12508 Update or set attributes.
12509 (stack_tie): New fake instruction.
12510
12511 * config/m68k/m68k.h (TUNE_CFV4): New macro.
12512 (m68k_sched_attr_size): Update declaration.
12513 (m68k_sched_attr_type2): Remove.
12514 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
12515 Declare new bypass predicates.
12516
12517 * config/m68k/m68k.c (m68k_sched_issue_rate,
12518 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
12519 implementations.
12520 (TARGET_SCHED_ISSUE_RATE,
12521 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
12522 (override_options): Handle scheduling for ColdFire V4 core.
12523 (m68k_expand_prologue): Emit stack_tie.
12524 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
12525 'OP_TYPE_FPN'. Update all uses.
12526 (sched_guess_p): Remove.
12527 (sched_address_type): Handle symbolic addresses.
12528 (sched_get_operand): New static function.
12529 (sched_operand_type): Merge into sched_attr_op_type.
12530 (sched_attr_op_type): Handle FP registers, handle quick constants,
12531 update.
12532 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
12533 (m68k_sched_attr_size): Update. Move logic to ...
12534 (sched_get_attr_size_int): New static function.
12535 (sched_get_opxy_mem_type): New static function.
12536 (m68k_sched_attr_op_mem): Update.
12537 (m68k_sched_attr_type2): Remove.
12538 (sched_cfv4_bypass_data): New static variable.
12539 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
12540 (m68k_sched_issue_rate): Implement scheduler hook.
12541 (struct _sched_ib: enabled_p): New field.
12542 (m68k_sched_variable_issue): Update. Handle V4.
12543 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
12544 sched_dump_class_func_t, sched_dump_split_class,
12545 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
12546 sched_dump_dfa_class, m68k_sched_dump): Remove.
12547 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
12548 hook.
12549 (m68k_sched_init_global): Remove statisctics dumping, introduce
12550 sanity check that all instructions have pipeline reservations. Handle
12551 ColdFire V4 core.
12552 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
12553 Handle ColdFire V4 core.
12554 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
12555 New static functions.
12556 (m68k_sched_address_bypass_p): New bypass predicate.
12557 (sched_get_indexed_address_scale): New static function.
12558 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
12559
12560 * cf.md: Update comments.
12561 (define_attr type2): Remove. Use 'type' attribute instead.
12562 Update all uses.
12563 (cf_ib): Rename to cfv123_ib. Update all uses.
12564 (cf_oep): Rename to cfv123_oep. Update all uses.
12565 (cf_chr): Rename to cfv123_chr. Update all uses.
12566 (cf_mem): Rename to cfv123_mem. Update all uses.
12567 (cf_mac): Move to more appropriate place.
12568 (cfv123_guess): New automaton and cpu_unit.
12569 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
12570 Update uses of 'size' attribute. Handle before reload scheduling.
12571 (cfv123_guess): New dummy reservation for unhandled instructions.
12572 (cfv4_*): Pipeline description of ColdFire V4 core.
12573 (ignore): New reservation to handle 'ignore' type.
12574
2ee510b4
ILT
125752008-05-07 Ian Lance Taylor <iant@google.com>
12576
12577 PR middle-end/36013
12578 * gimplify.c (find_single_pointer_decl_1): Don't look through
12579 indirections.
12580 (find_single_pointer_decl): Adjust comments.
12581
c18c98c0
JJ
125822008-05-07 Jakub Jelinek <jakub@redhat.com>
12583
f61edbf6
JJ
12584 PR middle-end/36137
12585 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
12586 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
12587
c18c98c0
JJ
12588 PR middle-end/36106
12589 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
12590 integral type rather than floating point, then VIEW_CONVERT_EXPR
12591 to the floating point type.
12592
c18c98c0 125932008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
12594
12595 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
12596 TFmode op0 to register.
12597
5f04ff80
AM
125982008-05-07 Alan Modra <amodra@bigpond.net.au>
12599
12600 * c-decl.c (grokdeclarator): Comment typo.
12601
c6c6b7aa
AH
126022008-05-06 Aldy Hernandez <aldyh@redhat.com>
12603
12604 * tree-flow.h: Remove prototype for computed_goto_p.
12605 * tree-cfg.c (computed_goto_p): Make static.
12606
4317a2fa
L
126072008-05-06 H.J. Lu <hongjiu.lu@intel.com>
12608
12609 PR target/35657
d0b48c67 12610 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
12611 (contains_aligned_value_p): This. Handle _Decimal128.
12612 (ix86_function_arg_boundary): Only align _Decimal128 to its
12613 natural boundary and handle it properly.
12614
c43f07af
MJ
126152008-05-06 Martin Jambor <mjambor@suse.cz>
12616
4317a2fa
L
12617 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
12618 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
12619 (ipcp_method_set_orig_node): Removed.
12620 (ipcp_cval_get_cvalue_type): Removed.
12621 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
12622 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
12623 (ipcp_cval_set_cvalue_type): Removed.
12624 (ipcp_cval_get_cvalue): Removed.
12625 (ipcp_cval_set_cvalue): Removed.
12626 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
12627 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
12628 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
12629 (ipcp_cval_meet): Renamed to ipa_lattice_meet
12630 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
12631 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
12632 (ipcp_get_ith_lattice): Changed parameters.
12633 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
12634 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
12635 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
12636 (ipcp_method_cval_print): Added temporary variable info.
12637 (ipcp_redirect): Removed already unused local variable caller.
12638 (ipcp_redirect): New temporary variable orig_callee_info
12639 (ipcp_redirect): Removed newly unused local variable callee.
12640 (ipcp_redirect): Removed (a bit confusing) local variable type.
12641 (ipcp_insert_stage): Added local variable info.
22129589 12642 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
c43f07af
MJ
12643 renamed too
12644 (ipcp_formal_create): Removed.
12645 (ipcp_method_cval_set): Removed.
12646 (ipcp_propagate_stage): Renamed lattice variables.
12647 (ipcp_method_cval_set_cvalue_type): Removed.
12648 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
22129589 12649 (ipcp_print_all_lattices): Changed printed strings to refer to
c43f07af
MJ
12650 lattices rather than cvals.
12651 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
12652 (ipcp_propagate_const): Changed formal parameters.
12653 (build_const_val): Changed formal parameters.
12654 (ipcp_insert_stage): Removed useless variable cvalue
12655 (build_const_val): Changed formal parameters.
12656 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
12657 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
12658 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
12659 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
22129589 12660 (ipcp_print_func_profile_counts): Changed string from "method" to
c43f07af
MJ
12661 "function"
12662 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
12663 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
12664 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
12665 (ipcp_structures_print): Renamed to ipcp_print_all_structures
12666 (ipcp_profile_print): Renamed to ipcp_print_profile_data
12667 (ipcp_lat_is_const): Changed parameters and made inline.
12668 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
12669 (ipcp_redirect): Renamed to ipcp_need_redirect_p
22129589 12670 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
c43f07af
MJ
12671 the predicate condition directly
12672 (ipcp_propagate_stage): Added local variable args. Removed local
12673 variable callee. (Both are mere code simplifications.)
12674 (ipcp_method_dont_insert_const): Renamed to
12675 ipcp_node_not_modifiable_p.
12676 (ipcp_node_not_modifiable_p): Made inline.
12677 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
12678 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
12679 (ipcp_print_all_lattices): Removed variable cvalue
12680 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
12681 Updated comments.
12682
2b9d6cf3
OH
126832008-05-06 Olivier Hainque <hainque@adacore.com>
12684
12685 * tree-sra.c (try_instantiate_multiple_fields): Early return
12686 if field has POINTER_TYPE.
12687
18efb179
KT
126882008-05-06 Kai Tietz <kai.tietz@onevision.com>
12689
12690 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
12691 by using 'q' specifier for instruction.
12692 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
12693
38ce04d9
AS
126942008-05-06 Anatoly Sokolov <aesok@post.ru>
12695
12696 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
12697 Change mode of zero_extract from QImode to HImode.
12698 (sign bit tests peepholes): (Ditto.).
12699
333d8f61
UB
127002008-05-06 Uros Bizjak <ubizjak@gmail.com>
12701
12702 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 12703 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
12704 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
12705 to handle nonimmediate operands.
d0b48c67 12706 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
12707 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
12708 to handle nonimmediate operands.
d0b48c67
UB
12709 (*mmx_<code>v2sf3_finite): New insn pattern.
12710 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
12711 (mmx_<code>v2sf3): New expander. Use
12712 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12713 (mmx_<plusminus_insn><mode>3): New expander. Use
12714 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 12715 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
12716 (mmx_add<mode>3): Removed.
12717 (mmx_ssadd<mode>3): Ditto.
12718 (mmx_usadd<mode>3): Ditto.
12719 (mmx_sub<mode>3): Ditto.
12720 (mmx_sssub<mode>3): Ditto.
12721 (mmx_ussub<mode>3): Ditto.
d0b48c67 12722 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
12723 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
12724 to handle nonimmediate operands.
d0b48c67 12725 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
12726 insn pattern.
12727 (mmx_smulv4hi3_highpart): New expander. Use
12728 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 12729 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
12730 insn pattern.
12731 (mmx_umulv4hi3_highpart): New expander. Use
12732 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 12733 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
12734 (mmx_<code>v4hi3): New expander. Use
12735 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 12736 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
12737 (mmx_<code>v8qi3): New expander. Use
12738 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 12739 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
12740 (mmx_<code><mode>3): New expander. Use
12741 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
12742
3716f233
JH
127432008-05-05 Jan Hubicka <jh@suse.cz>
12744
12745 PR tree-optimization/36118
12746 * passes.c (pass_init_dump_file): Fix dump header.
12747
1aee3ab6
AP
127482008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
12749
12750 PR middle-end/36141
333d8f61
UB
12751 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
12752 VCE for function decls.
1aee3ab6 12753
0d07fcad
L
127542008-05-05 H.J. Lu <hongjiu.lu@intel.com>
12755
12756 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
12757
d1c3b587
L
127582008-05-05 H.J. Lu <hongjiu.lu@intel.com>
12759
12760 * config/i386/i386.md (sat_plusminus): New.
12761 (plusminus_insn): Likewise.
12762 (plusminus_mnemonic): Likewise.
12763 (addsub): Removed.
12764 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
12765 (*<addsub><mode>3_cc_overflow): Renamed to ...
12766 (*<plusminus_insn><mode>3_cc_overflow): This.
12767 (*<addsub>si3_zext_cc_overflow): Renamed to ...
12768 (*<plusminus_insn>si3_zext_cc_overflow): This.
12769
0d07fcad 12770 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
12771 (<plusminus_insn><mode>3): This.
12772 (*<addsub><mode>3): Renamed to ...
12773 (*<plusminus_insn><mode>3): This.
12774 (<sse>_vm<addsub><mode>3): Renamed to ...
12775 (<sse>_vm<plusminus_insn><mode>3): This.
12776 (sse3_h<addsub>v4sf3): Renamed to ...
12777 (sse3_h<plusminus_insn>v4sf3): This.
12778 (sse3_h<addsub>v2df3): Renamed to ...
12779 (sse3_h<plusminus_insn>v2df3): This.
12780 (<plusminus_insn><mode>3): New.
12781 (*<plusminus_insn><mode>3): Likewise.
12782 (sse2_<plusminus_insn><mode>3): Likewise.
12783 (add<mode>): Removed.
12784 (*add<mode>3): Likewise.
12785 (sse2_ssadd<mode>3): Likewise.
12786 (sse2_usadd<mode>3): Likewise.
12787 (sub<mode>3): Likewise.
12788 (*sub<mode>3): Likewise.
12789 (sse2_sssub<mode>3): Likewise.
12790 (sse2_ussub<mode>3): Likewise.
12791
23688481
BK
127922008-05-05 Benjamin Kosnik <bkoz@redhat.com>
12793
d1c3b587
L
12794 * gthr-single.h: Add in required interface elements as per gthr.h.
12795 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
12796 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
22129589 12797 Generalize UNUSED macro.
d1c3b587
L
12798 (__gthread_once): Add.
12799 (__gthread_key_create): Add.
333d8f61 12800 (__gthread_key_delete): Add.
d1c3b587 12801 (__gthread_getspecific): Add.
333d8f61 12802 (__gthread_setspecific): Add.
22129589 12803
e06f0ff9
AP
128042008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
12805
23688481
BK
12806 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
12807 the same size types for the indirect reference on the rhs, then
12808 create a VCE.
e06f0ff9 12809
8c32cbc9
UB
128102008-05-05 Uros Bizjak <ubizjak@gmail.com>
12811
12812 * config/i386/i386.md
12813 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
12814 one insn template instead of template series.
12815 (*xordi_1_rex64): Ditto.
12816 (*xordi_2_rex64): Ditto.
12817
06d10aaf
IR
128182008-05-05 Ira Rosen <irar@il.ibm.com>
12819
8c32cbc9 12820 PR tree-optimization/36119
06d10aaf
IR
12821 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
12822 in case of SLP.
12823
24c05141
JH
128242008-06-04 Jan Hubicka <jh@suse.cz>
12825
12826 tree-optimization/36100
12827 * tree-pass.h (pass_O0_always_inline): Declare.
12828 * ipa-inline.c (inline_transform): Remove dead code.
12829 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
12830 pass_O0_always_inline): New.
12831 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
12832
8fa8585d
KT
128332008-05-04 Kai Tietz <kai.tietz@onevision.com>
12834
12835 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
12836 mnemonic in this_param move for TARGET_64BIT.
12837
62d2739a
UB
128382008-05-04 Uros Bizjak <ubizjak@gmail.com>
12839
12840 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
12841 (*strmovsi_rex_1): Ditto.
12842 (*strsetsi_1): Ditto.
12843 (*strsetsi_rex_1): Ditto.
12844
12845 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
12846 adddicc expanders using SWI mode iterator.
12847
4d31c3e1
L
128482008-05-04 H.J. Lu <hongjiu.lu@intel.com>
12849
12850 PR target/36121
62d2739a
UB
12851 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
12852 argument handling.
4d31c3e1 12853
5f7ca34b
DM
128542008-05-04 David S. Miller <davem@davemloft.net>
12855
12856 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
12857 (sparc*-*-linux*): Use linux.h in tm_file.
12858 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
12859 compiler defaulting to 32-bit.
12860 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
12861 no longer needed.
12862 * config/sparc/linux.h: Remove definitions now obtained
12863 properly from linux.h
12864 * config/sparc/linux64.h: Likewise.
12865 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
12866 don't want this setting for 32-bit builds in a biarch compiler.
12867 * doc/install.texi: Add sparc-linux to list of targets
12868 supporting --enable-targets=all.
12869
5a3db6d5
AP
128702008-05-03 Andrew Pinski <pinskia@gmail.com>
12871
12872 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
12873
3c7ae64a
L
128742008-05-03 H.J. Lu <hongjiu.lu@intel.com>
12875
12876 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
12877 after V4SI_FTYPE_V8HI.
12878 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
12879 case V4SI_FTYPE_V2DF.
12880
4218dc2d 128812008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
12882
12883 * doc/invoke.texi (max-flow-memory-locations): Removed.
12884 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
22129589 12885
621b5ed6
RG
128862008-05-03 Richard Guenther <rguenther@suse.de>
12887
12888 PR middle-end/34973
12889 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
12890
11835124
DM
128912008-05-02 David S. Miller <davem@davemloft.net>
12892
12893 * config.gcc (need_64bit_hwint): Document libcpp dependency.
12894
e4d35515
SB
128952008-05-02 Simon Baldwin <simonb@google.com>
12896
12897 PR bootstrap/36108
12898 * c-common.h (warn_array_subscript_range): Removed.
12899 * c-common.c (warn_array_subscript_range): Ditto.
12900 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
12901 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
12902
bb1418c1
L
129032008-05-02 H.J. Lu <hongjiu.lu@intel.com>
12904
12905 * config/i386/i386.c (ix86_special_builtin_type): New.
12906 (bdesc_special_args): Likewise.
12907 (ix86_expand_special_args_builtin): Likewise.
12908 (ix86_init_mmx_sse_builtins): Updated.
12909 (ix86_expand_builtin): Updated.
12910 (ix86_expand_store_builtin): Removed.
12911 (ix86_expand_unop_builtin): Likewise.
12912
12913 * config/i386/mm3dnow.h (__v2sf): Moved to ...
12914 * config/i386/mmintrin.h (__v2sf): Here.
12915
12916 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
12917 const __v2sf.
12918 (_mm_loadl_pi): Likewise.
12919 (_mm_storeh_pi): Replace __v2si with __v2sf.
12920 (_mm_storel_pi): Likewise.
12921
12922 * doc/extend.texi: Correct __builtin_ia32_loadhps,
12923 __builtin_ia32_loadlps, __builtin_ia32_storehps,
12924 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
12925 __builtin_ia32_loadlpd.
12926
129272008-05-02 H.J. Lu <hongjiu.lu@intel.com>
12928
12929 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
12930 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
12931 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
12932 (ix86_init_mmx_sse_builtins): Updated.
12933 (ix86_expand_args_builtin): Likewise.
12934 (ix86_expand_builtin): Likewise.
12935 (ix86_expand_unop1_builtin): Renamed to ...
12936 (ix86_expand_unop_vec_merge_builtin): This.
12937
a12f79f5
JH
129382008-05-01 Jan Hubicka <jh@suse.cz>
12939
12940 PR bootstrap/36100
12941 * ipa-inline.c (inline_generate_summary): Make static.
12942 (inline_transform): Do not call inlining at -O0; make static.
12943 * passes.c (execute_todo): Add sanity check.
12944 (execute_one_ipa_transform_pass): Execute proper flags.
12945
b5487346
EB
129462008-05-01 Eric Botcazou <ebotcazou@adacore.com>
12947
12948 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
12949 (DECL_NONADDRESSABLE_P): Likewise.
12950 * alias.c (record_component_aliases): Fix comment.
12951
ca873b0e
SB
129522008-05-01 Simon Baldwin <simonb@google.com>
12953
12954 * c-common.h (warn_array_subscript_range): New function.
12955 * c-common.c (warn_array_subscript_range): Ditto.
12956 * tree-vrp.c (check_array_ref): Corrected code to agree with
12957 comment, ignoring only arrays of size 0 or size 1.
12958 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
12959
99c25ac1
L
129602008-05-01 H.J. Lu <hongjiu.lu@intel.com>
12961
12962 * config/i386/i386.c (ix86_builtin_type): Replace
12963 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
12964 (bdesc_args): Updated.
12965 (ix86_init_mmx_sse_builtins): Likewise.
12966 (ix86_expand_args_builtin): Likewise.
12967
12968 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
12969 with __v1di.
12970
12971 * doc/extend.texi: Correct __builtin_ia32_palignr.
12972
a44acfb9
L
129732008-05-01 H.J. Lu <hongjiu.lu@intel.com>
12974
12975 PR target/36095
12976 * config/i386/i386.c (bdesc_crc32): Removed.
12977 (ix86_expand_crc32): Likewise.
12978 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
12979 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
12980 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
12981 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
12982 UINT_FTYPE_UINT_UCHAR.
12983 (bdesc_args): Updated. Add crc32 builtins.
12984 (ix86_init_mmx_sse_builtins): Updated.
12985 (ix86_expand_args_builtin): Updated to support subreg.
12986
12987 * doc/extend.texi: Correct __builtin_ia32_crc32di.
12988
17653c00
JH
129892008-05-01 Jan Hubicka <jh@suse.cz>
12990
12991 * tree-pass.h (opt_pass): Add IPA_PASS.
12992 (varpool_node, cgraph_node): Forward declare.
12993 (ipa_opt_pass): Define.
12994 (pass_ipa_inline): Turn into ipa_opt_pass.
12995 (pass_apply_inline): Remove.
12996 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
12997 (apply_inline): Turn into ....
12998 (inline_transform): ... this one.
12999 (inline_generate_summary): New function.
13000 (pass_apply_inline): Remove.
13001 * function.h (ipa_opt_pass): Forward declare structure; typedef;
13002 vector.
13003 (struct function): Add ipa_transforms_to_apply.
13004 * passes.c (register_one_dump_file): Work on IPA_PASS.
13005 (init_optimization_passes): Remove pass_inline_parameters and
13006 pass_apply_inline.
13007 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
13008 (execute_one_pass) ... here; apply transforms when possible.
13009 (add_ipa_transform_pass, execute_ipa_summary_asses,
13010 execute_one_ipa_transform_pass): New.
13011 (execute_ipa_pass_list): Update for IPA_PASS type.
13012
bd9513ea
L
130132008-05-01 H.J. Lu <hongjiu.lu@intel.com>
13014
13015 * config/i386/i386.c (ix86_builtin_type): Add
13016 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
13017 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
13018 (bdesc_args): Add SSE4a builtins.
13019 (ix86_init_mmx_sse_builtins): Updated.
13020 (ix86_expand_args_builtin): Likewise.
13021 (ix86_expand_builtin): Likewise.
13022
858e5e79
L
130232008-05-01 H.J. Lu <hongjiu.lu@intel.com>
13024
13025 * config/i386/i386.c (ix86_builtin_type): Add
13026 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
13027 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
13028 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
13029 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
13030 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
13031 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
13032 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
13033 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
13034 and DI_FTYPE_DI_DI_INT.
13035 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
13036 (ix86_init_mmx_sse_builtins): Updated.
13037 (ix86_expand_args_builtin): Likewise.
13038 (ix86_expand_builtin): Likewise.
13039 (ix86_expand_binop_imm_builtin): Removed.
13040
13041 * doc/extend.texi: Correct __builtin_ia32_palignr128.
13042
a91ded4b
RG
130432008-04-30 Richard Guenther <rguenther@suse.de>
13044
13045 PR tree-optimization/32921
13046 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
13047
ad516a74
RS
130482008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
13049
13050 * config/arm/arm.c (arm_unwind_emit): Use
13051 crtl->all_throwers_are_sibcalls instead of
13052 cfun->all_throwers_are_sibcalls.
13053 (arm_output_fn_unwind): Likewise.
13054 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
13055 instead of cfun->uses_pic_offset_table.
13056 (frv_expand_prologue): Likewise.
13057 (frv_frame_pointer_required): Likewise.
13058 (frv_expand_fdpic_call): Likewise.
13059 (frv_emit_movsi): Likewise.
13060 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
13061 cfun->returns_pcc_struct instead of
13062 current_function_returns_pcc_struct.
13063 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
13064 instead of cfun->calls_eh_return.
13065 (m32c_pushm_popm): Likewise.
13066 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
13067 "extern" declaration.
13068
00d382a8
RG
130692008-04-30 Richard Guenther <rguenther@suse.de>
13070
13071 PR tree-optimization/21636
13072 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
13073 constant address.
13074 (evaluate_stmt): Print the likely value.
13075 (ccp_visit_stmt): Avoid excessive vertical spacing.
13076
45e18420
RAE
130772008-04-30 Rafael Espindola <espindola@google.com>
13078
13079 * builtins.c (fold_call_expr): Return realret.
13080 * tree-ssa-threadedge.c
13081 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13082 __builtin_object_size.
13083
fe7df9c4
SP
130842008-04-30 Seongbae Park <seongbae.park@gmail.com>
13085
13086 * gcc.c (wrapper_string): New variable.
13087 (insert_wrapper): New function.
13088 (execute): New option -wrapper.
13089 * doc/invoke.texi (Overall Options): New driver option -wrapper.
13090
18724e30
NF
130912008-04-30 Nathan Froyd <froydnj@codesourcery.com>
13092
62d2739a
UB
13093 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
13094 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
13095 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
13096 from...
13097 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
13098 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
13099 config/rs6000/e500crtres64gprctr.asm,
13100 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
13101 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
13102 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
13103 config/rs6000/e500crtsav64gprctr.asm,
13104 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
13105 config/rs6000/e500crtsavg64gprctr.asm: New files.
13106 * config/rs6000/t-ppccomm: Add build rules for new files.
13107 (LIB2FUNCS_STATIC_EXTRA): Add new files.
13108 * config/rs6000/t-netbsd: Add build rules for new files.
13109 (LIB2FUNCS_STATIC_EXTRA): New variable.
13110 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
13111 (CRTSAVRES_DEFAULT_SPEC): Likewise.
13112 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 13113
1b667c82
L
131142008-04-30 H.J. Lu <hongjiu.lu@intel.com>
13115
13116 * config/i386/i386.c (ix86_builtin_type): Add
13117 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
13118 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
13119 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
13120 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
13121 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
13122 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
13123 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
13124 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
13125 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
13126 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
13127 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
13128 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
13129 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
13130 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
13131 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
13132 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
13133 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
13134 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
13135 V1DI_FTYPE_V2SI_V2SI.
13136 (bdesc_2arg): Moved to ...
13137 (bdesc_args): Here.
13138 (ix86_init_mmx_sse_builtins): Updated.
13139 (ix86_expand_args_builtin): Updated. Take a pointer
13140 to const struct builtin_description. Handle comparison
13141 builtin functions.
62d2739a 13142 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
13143 (ix86_expand_builtin): Updated.
13144
13145 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
13146 (ssse3_pmaddubsw128): This.
13147 (ssse3_pmaddubswv4hi3): Renamed to ...
13148 (ssse3_pmaddubsw): This.
13149
62d2739a 13150 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 13151 (__builtin_ia32_packssdw128): Likewise.
62d2739a 13152 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
13153 (__builtin_ia32_pmaddubsw): Likewise.
13154 (__builtin_ia32_pmaddubsw128): Likewise.
13155
d7b339dd
RG
131562008-04-30 Richard Guenther <rguenther@suse.de>
13157
13158 PR tree-optimization/14847
13159 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
13160 (recognize_bits_test): Use it.
13161 (recognize_single_bit_test): Likewise.
13162
6a3f3fea
MJ
131632008-04-30 Martin Jambor <mjambor@suse.cz>
13164
13165 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
13166 instead of setting number of formal parameters to zero.
22129589 13167 (ipcp_init_stage): Do not set the number of actual parameters to zero
6a3f3fea
MJ
13168 either.
13169 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
13170 which are called with variable number of arguments.
13171 (ipcp_insert_stage): Explicitely skipping all nodes which are
13172 called with variable number of arguments.
22129589 13173 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
6a3f3fea
MJ
13174 number of parameters.
13175
13176 * ipa-prop.h (struct ipa_node_params): Added flag
13177 called_with_var_arguments
13178 (ipa_set_param_count): Added. Changed sole setter to use it.
13179 (ipa_get_param_count): Added. All readers of param_count
13180 converted to use it instead.
13181 (ipa_set_called_with_variable_arg): Added.
13182 (ipa_is_called_with_var_arguments): Added.
13183 (ipa_get_ith_param): Added. All readers of param_decls converted
13184 to use it instead.
22129589
AS
13185 (ipa_set_cs_argument_count): Added, sole writer to argument_count
13186 changed to use it.
6a3f3fea
MJ
13187 (ipa_get_cs_argument_count): Added, all readers of argument_count
13188 changed to cal it.
22129589 13189 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
6a3f3fea 13190 to use it.
22129589 13191
6a3f3fea
MJ
13192 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
13193 (struct ipcp_lattice): Renamed cval_type to type
13194 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
13195
13196 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
13197 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
13198 (ipcp_insert_stage): Changed the type of variable cvalue to tree
13199 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
13200 (build_const_val): Changed the type of parameter cvalue to tree
13201 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
13202 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
22129589
AS
13203
13204 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
13205 constant
6a3f3fea
MJ
13206
13207 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
13208 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
13209 (ipa_add_method): Renamed to ipa_push_func_to_list
13210 (ipa_remove_method): Renamed to ipa_pop_func_from_list
13211 (ipa_callsite_param_count): Removed.
13212 (ipa_callsite_param_count_set): Removed.
13213 (ipa_callsite_param): Removed.
13214 (ipa_callsite_callee): Removed.
13215 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
13216 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
13217 (ipa_method_formal_count): Removed.
13218 (ipa_method_formal_count_set): Removed.
13219 (ipa_method_get_tree): Removed.
13220 (ipa_method_tree_map_create): Removed.
13221 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
13222 (ipa_create_param_decls_array): Creates the array itself
22129589 13223 (ipa_create_param_decls_array): Temporary variable info instead of
6a3f3fea
MJ
13224 a few dereferences.
13225 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
13226 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
13227 (get_type): Removed.
13228 (ipa_jf_get_info_type): Removed.
13229 (ipa_node_create): Renamed to ipa_create_node_params
13230 (ipa_free): Renamed to ipa_free_all_node_params
13231 (ipa_nodes_create): Renamed to ipa_create_all_node_params
13232 (ipa_edges_create): Renamed to ipa_create_all_edge_args
13233 (ipa_edges_free): Renamed to ipa_free_all_edge_args
13234 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
22129589 13235 (ipa_free_all_node_params): Deallocation to jump_functions moved to
6a3f3fea
MJ
13236 ipa_free_all_edge_args
13237 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
13238 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
13239 (ipa_create_methodlist_node): Removed.
13240 (ipa_methodlist_method): Removed.
13241 (ipa_methodlist_method_set): Removed.
13242 (ipa_methodlist_next_method): Removed.
13243 (ipa_methodlist_next_method_set): Removed.
13244 (ipa_method_is_modified): Removed.
13245 (ipa_method_modify_create): Removed.
22129589 13246 (ipa_method_modify_init): Temporary variable info instead of a few
6a3f3fea 13247 dereferences.
22129589 13248 (ipa_detect_param_modifications): Temporary variable info instead of
6a3f3fea 13249 a few dereferences.
22129589 13250 (ipa_compute_jump_functions): Temporary variable info instead of
6a3f3fea
MJ
13251 a few dereferences.
13252 (ipa_method_modify_set): Removed.
13253 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
22129589 13254 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
6a3f3fea
MJ
13255 than craph_node as the first parameter.
13256 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
13257 (ipa_method_modify_init): Removed.
22129589 13258 (ipa_compute_jump_functions): Added a temp variable instead of
6a3f3fea
MJ
13259 repeatadly dereferencing the cgraph_edge.aux pointer
13260 (ipa_callsite_param_set_type): Removed.
22129589 13261 (ipa_compute_jump_functions): i renamed to index and moved to
6a3f3fea
MJ
13262 an inner block
13263 (ipa_callsite_param_set_info_type_formal): Removed.
13264 (ipa_callsite_param_set_info_type): Removed.
13265 (ipa_callsite_param_map_create): Removed.
13266 (ipa_callsite_tree): Removed.
13267 (ipa_callsite_caller): Removed.
13268 (ipa_pop_func_from_list): return_method removed to return_func
13269
13270 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
13271 prefixed all values with IPA_. Changed all users.
22129589
AS
13272 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
13273 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
13274 and FORMAL_IPATYPE IPA_PASS_THROUGH.
6a3f3fea
MJ
13275 (union parameter_info): Renamed to jump_func_value.
13276 (union jump_func_value): Renamed value to constant
13277 (struct ipa_jump_func): Renamed info_type to value
13278 (struct ipa_node): Renamed to ipa_node_params
13279 (struct ipa_node_params): Renamed ipa_arg_num to param_count
13280 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
13281 (struct ipa_node_params): Renamed ipa_mod to modified_flags
13282 (struct ipa_edge): Renamed to ipa_edge_args
13283 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
13284 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
13285 (struct ipa_methodlist): Renamed to ipa_func_list
13286 (struct ipa_func_list): method_p renamed to node, next_method
13287 renamed to next
13288 (ipa_methodlist_p): Removed, switched all users to struct pointer
13289 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
13290
1c9c5e43
AM
132912008-04-30 Alan Modra <amodra@bigpond.net.au>
13292
13293 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
13294 (rs6000_emit_epilogue): Use backchain to restore only when we
13295 have a large frame. Make use of frame pointer to restore if we
13296 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
13297
cf2758e3
PB
132982008-04-29 Paolo Bonzini <bonzini@gnu.org>
13299
13300 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
13301 Add mode to zero_extract.
13302 (sign bit tests peepholes): (Ditto.).
13303
f318ff0a
L
133042008-04-29 H.J. Lu <hongjiu.lu@intel.com>
13305
13306 * config/i386/i386.c (ix86_builtins): Replace Prescott New
13307 Instructions in comments with SSE3.
13308 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
13309 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
13310 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
13311 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
13312 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
13313 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
13314 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
13315 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
13316 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
13317 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
13318 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
13319 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
13320 (bdesc_sse_args): Renamed to ...
13321 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
13322 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
13323 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
13324 IX86_BUILTIN_FABSQ.
13325 (bdesc_1arg): Moved to ...
13326 (bdesc_args): Here.
13327 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
13328 Instructions in comments with SSE3.
13329 (ix86_expand_sse_operands_builtin): Renamed to ...
13330 (ix86_expand_args_builtin): This. Updated.
13331 (ix86_expand_unop1_builtin): Update comments.
13332 (ix86_expand_builtin): Updated.
13333
ace4eb90
RG
133342008-04-29 Richard Guenther <rguenther@suse.de>
13335
13336 PR tree-optimization/36078
13337 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
13338 Update virtual SSA form after cleaning up the CFG.
13339
1447bf05
RG
133402008-04-29 Richard Guenther <rguenther@suse.de>
13341
13342 PR middle-end/15255
13343 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
13344
59e6913a
RG
133452008-04-29 Richard Guenther <rguenther@suse.de>
13346
13347 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
13348 (compute_may_aliases): Do not call finalize_ref_all_pointers.
13349 (compute_flow_insensitive_aliasing): Do not treat
13350 PTR_IS_REF_ALL pointers special.
13351 (get_smt_for): Likewise.
13352 (may_alias_p): Re-structure.
13353 (is_escape_site): A ref-all pointer conversion is not an escape site.
13354 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
13355 PTR_IS_REF_ALL pointers special.
13356 * tree-ssa-structalias.h (struct alias_info): Remove
13357 ref_all_symbol_mem_tag field.
13358 (PTR_IS_REF_ALL): Remove.
13359
81ad578e
RG
133602008-04-29 Richard Guenther <rguenther@suse.de>
13361
13362 PR middle-end/36077
13363 * fold-const.c (extract_muldiv_1): In combining division constants
13364 make sure to never overflow.
13365
4830ba1f
NC
133662008-04-29 Nick Clifton <nickc@redhat.com>
13367
13368 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
13369
b1c61c7e
RW
133702008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13371
13372 PR bootstrap/35169
13373 * optc-gen.awk: Work around HP-UX/IA awk bug.
13374
d6b68fcc
DS
133752008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
13376
13377 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
13378 2008-04-25 commit.
13379
0d5fd2b8
UB
133802008-04-28 Uros Bizjak <ubizjak@gmail.com>
13381
13382 PR target/36073
13383 * config/i386/i386.md
13384 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
13385 Change operand 1 predicate to nonimmediate_operand.
13386
623f8e39
JJ
133872008-04-28 Jakub Jelinek <jakub@redhat.com>
13388
13389 PR debug/36060
13390 * dwarf2out.c (struct die_struct): Mark as chain_circular through
13391 die_sub field.
13392 * gengtype.c (walk_type, write_func_for_structure): Handle
13393 chain_circular.
13394 * doc/gty.texi: Document chain_circular.
13395
82893cba
RG
133962008-04-28 Richard Guenther <rguenther@suse.de>
13397
13398 PR tree-optimization/36066
13399 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
13400 SCEV and loop.
13401
e356fac8
UB
134022008-04-28 Uros Bizjak <ubizjak@gmail.com>
13403
13404 PR target/36064
0d5fd2b8
UB
13405 * config/i386/i386.md
13406 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
13407 Use match_scratch instead of match_operand for operands 3 and 4.
13408
d6e840ee
RG
134092008-04-27 Richard Guenther <rguenther@suse.de>
13410
13411 PR tree-optimization/18754
13412 PR tree-optimization/34223
13413 * tree-pass.h (pass_complete_unrolli): Declare.
13414 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
13415 loop size before and after unconditionally of UL_NO_GROWTH in effect.
13416 Rewrite loop into loop closed SSA form if it is not already.
13417 (tree_unroll_loops_completely): Re-structure to iterate over
13418 innermost loops with intermediate CFG cleanups.
13419 Unroll outermost loops only if requested or the code does not grow
13420 doing so.
13421 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
13422 loops are available.
13423 (tree_vectorize): Instead do so here.
13424 (tree_complete_unroll): Also unroll outermost loops.
13425 (tree_complete_unroll_inner): New function.
13426 (gate_tree_complete_unroll_inner): Likewise.
13427 (pass_complete_unrolli): New pass.
13428 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
13429 uses outside of the loop.
13430 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
22129589 13431 form if it is available.
d6e840ee
RG
13432 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
13433 * passes.c (init_optimization_passes): Schedule complete inner
13434 loop unrolling pass before the first CCP pass after final inlining.
13435
feb60f03
NS
134362008-04-27 Nathan Sidwell <nathan@codesourcery.com>
13437
13438 * targhooks.h (default_emutls_var_fields,
13439 default_emutls_var_init): Declare.
13440 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
13441 * target.h (struct gcc_target): Add struct emutls member.
13442 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
13443 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
13444 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
13445 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
13446 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
13447 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
13448 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
13449 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
13450 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
13451 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
13452 emit debug information.
13453 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
13454 * varasm.c: Include targhooks.h.
13455 (emutls_object_section, emutls_tmpl_section): New.
13456 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
13457 (EMUTLS_SEPARATOR): New.
13458 (prefix_name): New.
13459 (get_emutls_object_name): New.
13460 (default_emutls_var_fields): New, broken out of ...
13461 (get_emutls_object_type): ... here. Adjust to use target hooks.
13462 (get_emutls_init_templ_addr): Adjust to use target hooks.
13463 (emutls_decl): Adjust to use target hooks.
13464 (emutls_finish): Likewise.
13465 (default_emutls_var_init): New, broken out of ...
13466 (assemble_variable): ... here. Adjust to use target hooks.
13467 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
13468 SECCAT_EMUTLS_TMPL.
13469 * c-common.c (handle_section_attribute): Prevent overriding
13470 sections for emulated tls with special sections.
13471 * config/i386/i386.c (x86_64_elf_select_section): Add
13472 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
13473 (x86_64_elf_unique_section): Likewise.
13474 * config/vxworks.c: Include tree.h.
13475 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
13476 (vxworks_override_options): Set TLS scheme.
623f8e39 13477 * doc/tm.texi (Emulated TLS): New node.
feb60f03 13478
6bfb7f10
SB
134792008-04-26 Simon Baldwin <simonb@google.com>
13480
13481 PR c/35652
13482 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
13483 with propagated string constants.
13484
73e8165a
UB
134852008-04-26 Uros Bizjak <ubizjak@gmail.com>
13486
13487 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
13488 constraint for operand 2 when operand 0 is memory operand.
13489 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
13490 operand 0 is memory operand.
13491 (fix_trunc<mode>_i387_with_temp): Ditto.
13492 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
13493 operand 2 when operand 1 is memory operand.
13494 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
13495 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
13496 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
13497 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
13498 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
13499 operands 2,3 and 4 when operand 1 is memory operand.
13500 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
13501 is memory operand.
13502 (fistdi2_floor_with_temp): Ditto.
13503 (fist<mode>2_floor_with_temp): Ditto.
13504 (fistdi2_ceil_with_temp): Ditto.
13505 (fist<mode>2_ceil_with_temp): Ditto.
13506 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
13507
49bce30a
RS
135082008-04-26 David Daney <ddaney@avtrex.com>
13509
13510 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
13511 unspec_volitile.
13512 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
13513 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
13514 UNSPEC_UPDATE_GOT_VERSION): Renumber.
13515 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
13516 (compare_and_swap_12): New insn.
13517 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
13518 * config/mips/mips.c (mips_force_binary): New function.
13519 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
13520 (mips_expand_compare_and_swap_12): New function.
13521 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
13522
e3b5732b
JH
135232008-04-25 Jan Hubicka <jh@suse.cz>
13524
13525 PR testsuite/35843
13526 * cfgexpand.c (pass_expand): Turn into RTL pass.
13527 * passes.c (execute_one_pass): Do pass typechecking after execution.
13528 * tree-pass.h (pass_expand): Turn into RTL pass.
13529
13530 * function.h (struct rtl_data): Move here fields
13531 accesses_prior_frames, calls_eh_return, saves_all_registers,
13532 has_nonlocal_goto, has_asm_statement, is_thunk,
13533 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
13534 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
13535 arg_pointer_save_area_init from struct function; turn into bool.
13536 (struct function): Move
13537 calls_eh_return, saves_all_registers, has_nonlocal_goto,
13538 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
13539 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
13540 tail_call_emit, arg_pointer_save_area_init
13541 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
13542 (current_function_returns_struct, current_function_returns_pcc_struct,
13543 current_function_calls_setjmp, current_function_calls_alloca,
13544 current_function_accesses_prior_frames,
13545 current_function_calls_eh_return, current_function_is_thunk,
13546 current_function_stdarg, current_function_profile,
13547 current_function_limit_stack, current_function_uses_pic_offset_table,
13548 current_function_uses_const_pool, current_function_has_nonlocal_label,
13549 current_function_saves_all_registers,
13550 current_function_has_nonlocal_goto,
13551 current_function_has_asm_statement): Remove accesor macros.
13552 * ra-conflict.c (global_conflicts): Update.
13553 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
13554 (suitable_for_tail_call_opt_p): Update.
13555 * builtins.c (expand_builtin_return_addr): Update.
13556 (expand_builtin_setjmp_setup): Update.
13557 (expand_builtin_nonlocal_goto): Update.
13558 * final.c (final_start_function): Update.
13559 (profile_function): Update.
13560 (leaf_function_p): Update.
13561 (only_leaf_regs_used): Update.
13562 * df-scan.c (df_get_exit_block_use_set): Update.
13563 * dojump.c (clear_pending_stack_adjust): Update.
13564 * tree-stdarg.c (gate_optimize_stdarg): Update.
13565 * gimple-low.c (lower_function_body): Update.
13566 * global.c (compute_regsets): Update.
13567 (global_alloc): Update.
13568 * dwarf2out.c (dwarf2out_begin_prologue): Update.
13569 * expr.c (expand_assignment): Update.
13570 * dse.c (dse_step0): Update.
13571 (dse_step1): Update.
13572 * c-decl.c (store_parm_decls): Update.
13573 * local-alloc.c (combine_regs): Update.
13574 (find_free_reg): Update.
13575 * function.c (assign_parms_augmented_arg_list): Update.
13576 (assign_parm_find_data_types): Update.
13577 (assign_parms): Update.
13578 (allocate_struct_function): Update.
13579 (expand_function_start): Update.
13580 (expand_function_end): Update.
13581 (get_arg_pointer_save_area): Update.
13582 (thread_prologue_and_epilogue_insns): Update.
13583 (rest_of_match_asm_constraints): Update.
13584 * stor-layout.c (variable_size): Update.
13585 * gcse.c (gcse_main): Update.
13586 (bypass_jumps): Update.
13587 * gimplify.c (gimplify_function_tree): Update.
13588 * calls.c (emit_call_1): Update.
13589 (expand_call): Update.
13590 * bt-load.c (compute_defs_uses_and_gen): Update.
13591 * except.c (sjlj_assign_call_site_values): Update.
13592 (sjlj_emit_function_enter): Update.
13593 (can_throw_external): Update.
13594 (set_nothrow_function_flags): Update.
13595 (expand_builtin_unwind_init): Update.
13596 (expand_eh_return): Update.
13597 (convert_to_eh_region_ranges): Update.
13598 (output_function_exception_table): Update.
13599 * emit-rtl.c (gen_tmp_stack_mem): Update.
13600 * cfgexpand.c (expand_used_vars): Update.
13601 (tree_expand_cfg): Update.
13602 * cfgcleanup.c (rest_of_handle_jump): Update.
13603 * explow.c (allocate_dynamic_stack_space): Update.
13604 * varasm.c (assemble_start_function): Update.
13605 (force_const_mem): Update.
13606 (mark_constant_pool): Update.
13607 * tree-optimize.c (tree_rest_of_compilation): Update.
13608 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
13609 * tree-cfg.c (notice_special_calls): Update.
13610 (is_ctrl_altering_stmt): Update.
13611 (tree_can_make_abnormal_goto): Update.
13612 (tree_purge_dead_abnormal_call_edges): Update.
13613 * config/alpha/predicates.md: Update.
13614 * config/alpha/alpha.c (alpha_sa_mask): Update.
13615 (alpha_sa_size): Update.
13616 (alpha_does_function_need_gp): Update.
13617 (alpha_expand_prologue): Update.
13618 (alpha_start_function): Update.
13619 (alpha_output_function_end_prologue): Update.
13620 (alpha_expand_epilogue): Update.
13621 * config/frv/frv.c (frv_stack_info): Update.
13622 (frv_expand_epilogue): Update.
13623 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
13624 (s390_register_info): Update.
13625 (s390_frame_info): Update.
13626 (s390_init_frame_layout): Update.
13627 (s390_can_eliminate): Update.
13628 (save_gprs): Update.
13629 * config/spu/spu.c (spu_split_immediate): Update.
13630 (need_to_save_reg): Update.
13631 (spu_expand_prologue): Update.
13632 (spu_expand_epilogue): Update.
13633 * config/sparc/sparc.md: Update.
13634 * config/sparc/sparc.c (eligible_for_return_delay): Update.
13635 (sparc_tls_got): Update.
13636 (legitimize_pic_address): Update.
13637 (sparc_emit_call_insn): Update.
13638 (sparc_expand_prologue): Update.
13639 (output_return): Update.
13640 (print_operand): Update.
13641 (sparc_function_ok_for_sibcall): Update.
13642 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
13643 * config/m32r/m32r.md: Update.
13644 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
13645 (m32r_compute_frame_size): Update.
13646 (m32r_expand_prologue): Update.
13647 (m32r_expand_epilogue): Update.
13648 (m32r_legitimize_pic_address): Update.
13649 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
13650 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13651 * config/i386/i386.c (ix86_frame_pointer_required): Update.
13652 (gen_push): Update.
13653 (ix86_save_reg): Update.
13654 (ix86_compute_frame_layout): Update.
13655 (ix86_expand_prologue): Update.
13656 (ix86_expand_epilogue): Update.
13657 * config/sh/sh.c (output_stack_adjust): Update.
13658 (calc_live_regs): Update.
13659 (sh5_schedule_saves): Update.
13660 (sh_expand_prologue): Update.
13661 (sh_expand_epilogue): Update.
13662 (sh_setup_incoming_varargs): Update.
13663 (sh_allocate_initial_value): Update.
13664 (sh_get_pr_initial_val): Update.
13665 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
13666 * config/sh/sh.md (label:): Update.
13667 * config/avr/avr.c (out_movhi_mr_r): Update.
13668 * config/crx/crx.h (enum): Update.
13669 * config/xtensa/xtensa.h (along): Update.
13670 * config/stormy16/stormy16.c Update.
13671 (xstormy16_compute_stack_layout): Update.
13672 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
13673 (fr30_expand_prologue): Update.
13674 * config/cris/cris.c (cris_conditional_register_usage): Update.
13675 (cris_reg_saved_in_regsave_area): Update.
13676 (cris_initial_frame_pointer_offset): Update.
13677 (cris_simple_epilogue): Update.
13678 (cris_expand_prologue): Update.
13679 (cris_expand_epilogue): Update.
13680 (cris_expand_pic_call_address): Update.
13681 (cris_asm_output_symbol_ref): Update.
13682 (cris_asm_output_label_ref): Update.
13683 * config/cris/cris.md Update.
13684 * config/iq2000/iq2000.c (compute_frame_size): Update.
13685 (iq2000_expand_epilogue): Update.
13686 * config/mt/mt.h (save_direction): Update.
13687 * config/mn10300/mn10300.c (mn10300_function_value): Update.
13688 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
13689 (ia64_secondary_reload_class): Update.
13690 * config/m68k/m68k.c (m68k_save_reg): Update.
13691 (m68k_expand_prologue): Update.
13692 (m68k_expand_epilogue): Update.
13693 (legitimize_pic_address): Update.
13694 * config/rs6000/rs6000.c (rs6000_got_register): Update.
13695 (first_reg_to_save): Update.
13696 (first_altivec_reg_to_save): Update.
13697 (compute_vrsave_mask): Update.
13698 (compute_save_world_info): Update.
13699 (rs6000_stack_info): Update.
13700 (spe_func_has_64bit_regs_p): Update.
13701 (rs6000_ra_ever_killed): Update.
13702 (rs6000_emit_eh_reg_restore): Update.
13703 (rs6000_emit_allocate_stack): Update.
13704 (rs6000_emit_prologue): Update.
13705 (rs6000_emit_epilogue): Update.
13706 (rs6000_output_function_epilogue): Update.
13707 (output_profile_hook): Update.
13708 (rs6000_elf_declare_function_name): Update.
13709 * config/rs6000/rs6000.h (rs6000_args): Update.
13710 * config/rs6000/rs6000.md: Update.
13711 * config/mcore/mcore.c (mcore_expand_prolog): Update.
13712 * config/arc/arc.c (arc_output_function_epilogue): Update.
13713 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
13714 * config/darwin.c (machopic_function_base_name): Update.
13715 * config/score/score3.c (score3_compute_frame_size): Update.
13716 (rpush): Update.
13717 (rpop): Update.
13718 (score3_epilogue): Update.
13719 * config/score/score7.c (score7_compute_frame_size): Update.
13720 (score7_prologue): Update.
13721 (score7_epilogue): Update.
13722 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
13723 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
13724 * config/arm/arm.c (use_return_insn): Update.
13725 (require_pic_register): Update.
13726 (arm_load_pic_register): Update.
13727 (arm_compute_save_reg0_reg12_mask): Update.
13728 (arm_compute_save_reg_mask): Update.
13729 (thumb1_compute_save_reg_mask): Update.
13730 (output_return_instruction): Update.
13731 (arm_output_function_prologue): Update.
13732 (arm_output_epilogue): Update.
13733 (arm_get_frame_offsets): Update.
13734 (arm_expand_prologue): Update.
13735 (thumb_pushpop): Update.
13736 (thumb_exit): Update.
13737 (thumb1_expand_prologue): Update.
13738 (thumb1_expand_epilogue): Update.
13739 (arm_unwind_emit): Update.
13740 (arm_output_fn_unwind): Update.
13741 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
13742 * config/arm/arm.md: Update.
13743 * config/pa/pa.md: Update.
13744 * config/pa/pa.c (legitimize_pic_address): Update.
13745 (compute_frame_size): Update.
13746 (hppa_expand_prologue): Update.
13747 (hppa_expand_epilogue): Update.
13748 (borx_reg_operand): Update.
13749 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
13750 (HARD_REGNO_RENAME_OK): Update.
13751 * config/mips/mips.c (mips_global_pointer): Update.
13752 (mips_save_reg_p): Update.
13753 (mips_compute_frame_info): Update.
13754 (mips_frame_pointer_required): Update.
13755 (mips_expand_prologue): Update.
13756 (mips_expand_epilogue): Update.
13757 (mips_can_use_return_insn): Update.
13758 (mips_reorg_process_insns): Update.
13759 * config/v850/v850.c (compute_register_save_size): Update.
13760 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
13761 * config/mmix/mmix.c (along): Update.
13762 (mmix_expand_epilogue): Update.
13763 * config/bfin/bfin.c (legitimize_pic_address): Update.
13764 (must_save_p): Update.
13765 (stack_frame_needed_p): Update.
13766 (add_to_reg): Update.
13767 (bfin_expand_prologue): Update.
13768 * stmt.c (expand_asm_operands): Update.
13769 * reload1.c (reload): Update.
13770 (init_elim_table): Update.
13771
d1163987 137722008-04-25 Bob Wilson <bob.wilson@acm.org>
22129589 13773
d1163987 13774 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
22129589 13775
a5e11364
L
137762008-04-25 H.J. Lu <hongjiu.lu@intel.com>
13777
62d2739a 13778 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
13779 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
13780 (mov<mode>): Removed.
13781 (*movv4sf_internal): Likewise.
13782 (*movv2df_internal): Likewise.
13783
68d154b9
PG
137842008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
13785
13786 * config.gcc (crx-*-elf): Remove deprecation.
13787
e65e1476
DS
137882008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
13789
13790 * config/i386/cygming-crtend.c (register_frame_ctor): Register
13791 __gcc_deregister_frame with atexit.
13792 (deregister_frame_dtor): Remove.
13793
9553940c 137942008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
13795 Nathan Sidwell <nathan@codesourcery.com>
13796
e6d8b0c6 13797 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 13798 (misel): Likewise.
e6d8b0c6 13799 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 13800 (rs6000_isel): Likewise.
e6d8b0c6 13801 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 13802 (rs6000_isel): New variable.
e6d8b0c6 13803 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 13804
5dc11954
JJ
138052008-04-24 Jakub Jelinek <jakub@redhat.com>
13806
13807 PR c++/35758
13808 * c-common.c (handle_vector_size_attribute): Call
13809 lang_hooks.types.reconstruct_complex_type instead of
13810 reconstruct_complex_type.
13811 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
13812 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
13813 * langhooks.h (struct lang_hooks_for_types): Add
13814 reconstruct_complex_type hook.
13815 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
13816 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
13817
83322951
RG
138182008-04-24 Richard Guenther <rguenther@suse.de>
13819
13820 * c-common.h (check_builtin_function_arguments): Declare.
13821 * c-common.c (validate_nargs): New function.
13822 (check_builtin_function_arguments): Likewise.
13823 * c-typeck.c (build_function_call): Call
13824 check_builtin_function_arguments.
13825 * builtins.c (fold_builtin_classify): Remove error reporting code.
13826 (fold_builtin_unordered_cmp): Likewise.
13827 (fold_builtin_1): Likewise.
13828 (fold_builtin_n): Likewise.
13829
194ac52a
JJ
138302008-04-24 Jakub Jelinek <jakub@redhat.com>
13831
13832 PR tree-optimization/36008
13833 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
13834 the original op1, rather than delta by step.
13835
9f9f72aa 138362008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 13837 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
13838
13839 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
13840 eliminate_local_variables_stmt, eliminate_local_variables,
13841 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
13842 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
13843 of code delimited by two edges in the CFG.
13844 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
13845 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
22129589 13846 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
9f9f72aa
AP
13847 the case of parallelisation of reductions.
13848 (expr_invariant_in_region_p): New.
13849
13850 * tree-flow.h (gather_blocks_in_sese_region): Declared.
13851 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
13852
2aa43509 138532008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 13854 Richard Guenther <rguenther@suse.de>
2aa43509
IR
13855
13856 PR tree-optimization/36034
13857 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
13858 incapable of dealing with loads with gaps.
13859
e80d7580
RAE
138602008-04-24 Rafael Espindola <espindola@google.com>
13861
13862 * tree-flow.h (vrp_evaluate_conditional): Change signature.
13863 * tree-ssa-propagate.c (fold_predicate_in): Update call to
13864 vrp_evaluate_conditional.
13865 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
13866 (vrp_evaluate_conditional): Split the cond argument.
13867 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
13868 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
13869 vrp_evaluate_conditional.
13870
0e37a1c2
IR
138712008-04-24 Ira Rosen <irar@il.ibm.com>
13872
13873 PR tree-optimization/35982
13874 * tree-vect-analyze.c (vect_check_interleaving): Check that the
13875 interleaved data-refs are of the same type.
13876
f9f9640f
DS
138772008-04-24 Danny Smith <dannysmith@users.net>
13878
e6d8b0c6
UB
13879 * c-format.c (check_format_info_main): Use strncmp rather than a
13880 magic prefix to handle multichar length specs.
f9f9640f
DS
13881 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
13882 Don't prefix "I64" and "I32" with '\0'.
13883
64ceac43
JJ
138842008-04-24 Jakub Jelinek <jakub@redhat.com>
13885
13886 PR target/36015
13887 * config/i386/i386.c (init_cumulative_args): Don't pass anything
13888 in registers for -m32 only if stdarg_p (fntype).
13889
4679504c
UB
138902008-04-24 Uros Bizjak <ubizjak@gmail.com>
13891
13892 PR rtl-optimization/36006
13893 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
13894 temp to op0 in order to avoid invalid rtx sharing.
13895
51eed280
PB
138962008-04-23 Paolo Bonzini <bonzini@gnu.org>
13897
13898 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
13899 check TREE_INVARIANT.
13900 * tree-gimple.c (is_gimple_address): New.
13901 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
13902 * tree-gimple.h (is_gimple_address): New.
13903 * tree.h (decl_address_invariant_p): New.
13904 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
13905 (build_string): Likewise.
13906 (decl_address_invariant_p): New, from is_gimple_invariant_address.
13907 (tree_invariant_p_1): Likewise.
13908 (save_expr): Use it.
13909 (tree_invariant_p): New.
13910 (skip_simple_arithmetic): Use it.
13911 (stabilize_reference_1): Use it.
13912 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
13913 simplify.
13914 (build1_stat): Drop code to compute TREE_INVARIANT.
13915 (build2_stat): Drop code to compute TREE_INVARIANT.
13916 (build3_stat): Drop code to compute TREE_INVARIANT.
13917 (build4_stat): Drop code to compute TREE_INVARIANT.
13918 (build5_stat): Drop code to compute TREE_INVARIANT.
13919 (build7_stat): Drop code to compute TREE_INVARIANT.
13920 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
13921 * tree.h (struct tree_base): Remove invariant_flag.
13922 (TREE_INVARIANT): Remove.
13923 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
13924 (fold_builtin_expect): Check TREE_CONSTANT.
13925 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
13926 * c-tree.h (c_expr_to_decl): Drop third parameter.
13927 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
13928 (build_c_cast): Don't set TREE_INVARIANT.
13929 (pop_init_level): Don't set TREE_INVARIANT.
13930 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
13931 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
13932 TREE_CONSTANT.
13933 (gimplify_init_constructor): Don't set TREE_INVARIANT.
13934 (gimplify_addr_expr): Adjust comment.
13935 * tree-mudflap.c (mf_build_string):
13936 * print-tree.c (print_node): Don't print TREE_INVARIANT.
13937 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
13938 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
13939 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
13940 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
13941 * langhooks.h (struct lang_hooks): Drop third parameter from
13942 expr_to_decl.
13943
17d2c090
RG
139442008-04-23 Richard Guenther <rguenther@suse.de>
13945
13946 PR tree-optimization/27799
13947 PR tree-optimization/32921
13948 PR tree-optimization/32624
13949 * tree-ssa-structalias.c (merge_smts_into): Only merge the
13950 SMTs aliases and the tag itself into the solution.
13951 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
13952 merge the points-to solution back into the SMT aliases.
13953 (may_alias_p): Use alias_set_subset_of instead of
13954 aliases_conflict_p. A pointer which points to
13955 memory with alias set zero may access any variable.
13956
a7a512be
RG
139572008-04-23 Richard Guenther <rguenther@suse.de>
13958
13959 * alias.c (alias_set_subset_of): Correctly handle asking
13960 if zero is a subset of an alias set with zero child.
13961 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
13962 (compute_flow_insensitive_aliasing): Correctly walk all
13963 pointers. Do not unnecessarily union sets.
13964
f3f75f69
RG
139652008-04-23 Richard Guenther <rguenther@suse.de>
13966
13967 PR middle-end/36021
13968 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
13969
09725d5e
TB
139702008-04-22 Tomas Bily <tbily@suse.cz>
13971
4679504c
UB
13972 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
13973 unreachable case.
13974 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
13975 NON_LVALUE_EXPR.
13976 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13977 * tree-ssa-structalias.c (get_constraint_for): Likewise.
13978 * tree-inline.c (estimate_num_insns_1): Likewise.
13979 * varasm.c (const_hash_1, compare_constant, copy_constant)
13980 (compute_reloc_for_constant, output_addressed_constants): Likewise.
13981 * emit-rtl.c (component_ref_for_mem_expr)
13982 (set_mem_attributes_minus_bitpos): Likewise.
13983 * expr.c (highest_pow2_factor, expand_expr_real_1, )
13984 (is_aligning_offset): Likewise.
13985 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
13986 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13987 * dojump.c (do_jump): Likewise.
13988 * builtins.c (get_pointer_alignment, get_memory_rtx)
13989 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
13990 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 13991
63cb92c1
JJ
139922008-04-23 Jakub Jelinek <jakub@redhat.com>
13993
13994 PR rtl-optimization/36017
13995 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
13996 expanding the library call.
13997
b2f06c39
ILT
139982008-04-22 Ian Lance Taylor <iant@google.com>
13999
14000 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
14001 than size_in_bytes.
14002
aafc759a
PH
140032008-04-22 Pat Haugen <pthaugen@us.ibm.com>
14004
14005 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
14006 of LR/CTR moves for Power6.
14007
4218dc2d 140082008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
14009
14010 PR middle-end/36003
14011 * passes.c (init_optimization_passes): Remove
14012 pass_fast_rtl_byte_dce.
22129589 14013
6126672e
UB
140142008-04-22 Uros Bizjak <ubizjak@gmail.com>
14015
14016 PR target/29096
14017 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
14018 builtin functions to generate faster code.
14019 (_mm_cvtpu16_ps): Ditto.
14020 (_mm_cvtpi32x2_ps): Ditto.
14021
f6d2671e
NC
140222008-04-22 Nick Clifton <nickc@redhat.com>
14023
53ed2f0e
NC
14024 * common.opt (ftree-loop-distribution): Add Optimization
14025 attribute.
14026
7dd68986
NC
14027 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
14028 (frv_expand_builtin_va_start): Likewise.
14029
f6d2671e
NC
14030 * config/arm/arm.c (thumb_find_work_register): Fix location of
14031 argument register count.
14032
826fadba
MK
140332008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
14034
14035 Support scheduling for ColdFire V1 and V3 microarchitecture.
14036 Improve scheduling of multiplication instructions.
14037
14038 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
14039 (mac): New instruction attribute.
14040 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
14041 (m68k_sched_mac): New variable.
14042 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
14043 Handle cfv1 and cfv3.
14044 (max_insn_size): New static variable.
14045 (struct _sched_ib): New type.
14046 (sched_ib): New static variable.
14047 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
14048 to fields of 'struct _sched_ib sched_ib'. Update all uses.
14049 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
14050 Update.
14051 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
14052 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
14053 new variables. Update.
14054 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
14055 Add modeling of cfv3 instruction buffer. Update.
14056 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
14057 * config/m68k/m68k.h (TUNE_CFV3): New macro.
14058 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
14059 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
14060 a particular reservation applies to.
14061 (type2): Reorganize attribute values. Rename alu to alu_reg,
14062 alu_l to alu, move_l to omove. Join move to alu. Split mul
14063 to mul_l and mul_w.
14064 (cf_ib_*): Simplify description of instruction buffer.
14065 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
14066 (cf_mem): Split into cf_mem1 and cf_mem2.
14067 (cf_v2_move_??): Rename to cfv12_alu_??.
14068 (cf_v2_move_l_??): Rename to cfv12_omove_??.
14069 (cf_v2_mul_??): Remove reservations.
14070 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
14071 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
14072 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
14073 appropriate place.
14074 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
14075 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
14076 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
14077 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
14078 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
14079 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
14080 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
14081 expansions of the above reservations for instructions of sizes
14082 1, 2 and 3 words.
14083
c23da840
MK
140842008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
14085
14086 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
14087
27624b9e
AN
140882008-04-21 Adam Nemet <anemet@caviumnetworks.com>
14089
14090 * coverage.c: Include tree-pass.h.
14091 (coverage_counter_alloc): Print da_file_name to the dump file.
14092
4218dc2d 140932008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 14094
b60db1ba
KZ
14095 * sbitmap.c (sbitmap_range_empty_p): New function.
14096 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 14097 * bitmap.h: Now includes obstack.h.
b60db1ba 14098
27624b9e 140992008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 14100 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
14101
14102 * dbgcnt.def (ra_byte_scan): Added.
14103 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
22129589 14104 when the last hit happens for a counter.
cc806ac1
RS
14105 * timevar.def (TV_DF_BYTE_LR): New variable.
14106 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
14107 * passes.c (pass_fast_rtl_byte_dce): New pass.
14108 * fwprop.c (update_df): Added mode to call df_ref_create.
14109 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
14110 DF_REF_EXTRACT_OFFSET.
22129589 14111 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
cc806ac1
RS
14112 DF_BYTE_LR_OUT, df_byte_lr): New macro.
14113 (df_mm): New enum.
14114 (df_ref_extract): Added mode field.
14115 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
14116 DF_REF_EXTRACT_OFFSET.
14117 (DF_REF_EXTRACT_MODE): New macro.
14118 (df_byte_lr_bb_info): New structure.
22129589 14119 (df_print_byte_regset, df_compute_accessed_bytes,
cc806ac1
RS
14120 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
14121 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
14122 df_byte_lr_simulate_uses,
14123 df_byte_lr_simulate_artificial_refs_at_top,
14124 df_byte_lr_simulate_artificial_refs_at_end,
14125 df_compute_accessed_bytes): New function.
14126 (df_ref_create): Add parameter.
14127 (df_byte_lr_get_bb_info): New inline function.
14128 * df-scan.c (df_ref_record, df_uses_record,
14129 df_ref_create_structure): Added mode parameter.
22129589 14130 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
cc806ac1 14131 df_defs_record, df_uses_record, df_get_conditional_uses,
22129589 14132 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
cc806ac1
RS
14133 df_entry_block_defs_collect, df_exit_block_uses_collect):
14134 Added mode parameter to calls to df_ref_record, df_uses_record,
14135 df_ref_create_structure.
4679504c 14136 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
14137 (df_ref_create_structure): Added code to set mode. Renamed
14138 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
14139 DF_REF_EXTRACT_OFFSET.
14140 * df-core.c (df_print_byte_regset): New function.
14141 * df-byte-scan.c: New file.
14142 * df-problems.c (df_rd_transfer_function): Removed unnecessary
22129589 14143 calls to BITMAP_FREE.
cc806ac1
RS
14144 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
14145 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22129589
AS
14146 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
14147 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
cc806ac1
RS
14148 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
14149 df_byte_lr_local_compute, df_byte_lr_init,
22129589
AS
14150 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
14151 df_byte_lr_transfer_function, df_byte_lr_free,
cc806ac1 14152 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22129589 14153 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
cc806ac1
RS
14154 df_byte_lr_simulate_uses,
14155 df_byte_lr_simulate_artificial_refs_at_top,
14156 df_byte_lr_simulate_artificial_refs_at_end): New function.
14157 * dce.c (byte_dce_process_block): New function.
14158 (dce_process_block): au is now passed in rather than computed
14159 locally. Changed loops that look at artificial defs to not look
22129589
AS
14160 for conditional or partial ones, because there never are any.
14161 (fast_dce): Now is able to drive byte_dce_process_block or
cc806ac1
RS
14162 dce_process_block depending on the kind of dce being done.
14163 (rest_of_handle_fast_dce): Add parameter to fast_dce.
14164 (rest_of_handle_fast_byte_dce): New function.
14165 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
14166 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
14167
3d4cb550
DF
141682008-04-21 Daniel Franke <franke.daniel@gmail.com>
14169
14170 PR fortran/35019
14171 * gcc.h: Added fortran options that take arguments to
14172 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
14173 macros.
14174
eea05d39
EB
141752008-04-20 Eric Botcazou <ebotcazou@adacore.com>
14176
14177 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
14178 scalarization if on the LHS and not a full access.
14179
def9bf34
RW
141802008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14181
eea05d39 14182 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 14183
b7d8d447 141842008-04-18 Rafael Espindola <espindola@google.com>
eea05d39 14185
b7d8d447
RAE
14186 * tree-vrp.c (find_case_label_index): Fix the binary search.
14187 (find_case_label_range): New.
14188 (vrp_visit_switch_stmt): Use find_case_label_range.
14189 (simplify_switch_using_ranges): Use find_case_label_range.
14190
ed3444e9
EB
141912008-04-18 Eric Botcazou <ebotcazou@adacore.com>
14192
14193 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
14194 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
14195
893174fa
TT
141962008-04-18 Tom Tromey <tromey@redhat.com>
14197
14198 PR libcpp/15500:
14199 * doc/cpp.texi (Implementation-defined behavior): Mention
14200 -finput-charset.
14201
6e3c5c30
ILT
142022008-04-18 Ian Lance Taylor <iant@google.com>
14203
14204 * fold-const.c (pointer_may_wrap_p): New static function.
14205 (fold_comparison): Add another test for pointer overflow. Use
14206 pointer_may_wrap_p to disable some false positives.
14207
b6baa67d 142082008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
22129589 14209
b6baa67d
KVH
14210 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
14211 (fname_as_string): Match updated cpp_interpret_string prototype.
14212 (fix_string_type): Support char16_t* and char32_t*.
14213 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
14214 derivative) nodes. Register as builtin if C++0x.
14215 (c_parse_error): Support CPP_CHAR{16,32}.
22129589 14216 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
b6baa67d
KVH
14217 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
14218 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
14219 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
14220 CTI_CHAR32_ARRAY_TYPE>: New elements.
14221 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
14222 char32_type_node, signed_char32_type_node, char16_array_type_node,
14223 char32_array_type_node): New defines.
14224 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
14225 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
14226 (lex_string): Support CPP_STRING{16,32}, match updated
14227 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
14228 (lex_charconst): Support CPP_CHAR{16,32}.
14229 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
14230 and CPP_STRING{16,32}.
14231
deb984e6
PB
142322008-04-18 Paolo Bonzini <bonzini@gnu.org>
14233
14234 PR bootstrap/35457
14235 * aclocal.m4: Regenerate.
14236 * configure: Regenerate.
14237
cb91fab0
JH
142382008-04-18 Jan Hubicka <jh@suse.cz>
14239
14240 * except.c (dw2_size_of_call_site_table,
14241 sjlj_size_of_call_site_table): Use vector API for call_site_record.
14242
14243 * cgraphbuild.c (build_cgraph_edges): Update.
14244 * tree-pass.h: Update comment.
14245 * final.c (leaf_function_p): Update.
14246 (leaf_renumber_regs): Update.
14247 (rest_of_clean_state): Update.
14248 * omp-low.c (expand_omp_parallel): Update.
14249 * ipa-reference.c (analyze_function): Update.
14250 * reorg.c (find_end_label): Update.
14251 (optimize_skip): Update.
14252 (fill_simple_delay_slots): Update.
14253 (fill_simple_delay_slots): Update.
14254 (make_return_insns): Update.
14255 (dbr_schedule): Update.
14256 * gimple-low.c (record_vars_into): Update.
14257 * cfgbuild.c (make_edges): Update.
14258 * function.c (assign_stack_local): Update.
14259 (assign_parm_adjust_stack_rtl): Update.
14260 (locate_and_pad_parm): Update.
14261 (allocate_struct_function): Do not initialize stack_alignment_needed
14262 and preferred_stack_boundary here.
14263 (stack_protect_prologue): Update.
14264 (stack_protect_epilogue): Update.
14265 (expand_function_start): Initialize stack_alignment_needed,
14266 preferred_stack_boundary and max_jumptable_ents.
14267 (expand_function_end): Update.
14268 (free_after_compilation): Do not NULLify epilogue_delay_list.
14269 * function.h (struct rtl_data): Add stack_protect_guard,
14270 stack_alignment_needed,
14271 preferred_stack_boundary, epilogue_delay_list.
14272 (struct function): Remove value_histograms, stack_alignment_needed,
14273 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
14274 last_label_uid,
14275 unexpanded_var_list, stack_protect_guard.
14276 (current_function_epilogue_delay_list): Remove.
14277 * ipa-type-escape.c (analyze_function): Update.
14278 * gimplify.c (pop_gimplify_context): Update comment.
14279 * calls.c (expand_call): Update.
14280 (emit_library_call_value_1): Update.
14281 * except.c (set_nothrow_function_flags): Update.
14282 * cfgexpand.c (get_decl_align_unit): Update.
14283 (create_stack_guard): Update.
14284 (estimated_stack_frame_size): Update.
14285 (expand_used_vars): Update.
14286 (tree_expand_cfg): Free histogram earliers, init expansion variables.
14287 * explow.c (allocate_dynamic_stack_space): Update.
14288 * tree-ssa-live.c (remove_unused_locals): Update.
14289 * varasm.c (mark_constant_pool): Update.
14290 * tree-inline.c (remap_decls): Update.
14291 (initialize_cfun): Update.
14292 (declare_return_variable): Update.
14293 (inline_forbidden_p): Update.
14294 (expand_call_inline): Update.
14295 (declare_inline_vars): Update.
14296 (tree_function_versioning): Update.
14297 * tree-flow.h (value_histograms): New.
14298 (VALUE_HISTOGRAMS): New macro.
14299 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
14300 last_label_uid.
14301 * tree-cfg.c (set_bb_for_stmt): Update.
14302 (replace_by_duplicate_decl): Update.
14303 (move_block_to_fn): Update.
14304 (new_label_mapper): Update.
14305 (dump_function_to_file): Update.
14306 * ipa-struct-reorg.c (build_data_structure): Update.
14307 * cfgrtl.c (print_rtl_with_bb): Update.
14308 * reload1.c (reload): Update.
14309 (reload): Update.
14310 * config/i386/i386.c (setup_incoming_varargs_64,
14311 ix86_compute_frame_layout): Update.
14312 * config/arc/arc.c (arc_output_function_epilogue): Update.
14313
799cff46
MS
143142008-04-18 Marius Strobl <marius@FreeBSD.org>
14315
14316 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
14317 for FreeBSD as well.
14318 * gthr-posix95.h: Likewise.
14319
de907943
RS
143202008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
14321
14322 PR rtl-optimization/35838
14323 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
14324 out the byte offset of the first subreg.
14325
c2b814b9
UB
143262008-04-17 Uros Bizjak <ubizjak@gmail.com>
14327
14328 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
14329 to split_ti instead of three separate calls with single member arrays.
14330 (subti3 splitter): Ditto.
14331 (adddi3 splitter): Ditto with split_di.
14332 (subdi3 splitter): Ditto.
14333 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
14334 two separate calls with single member arrays. Swap match_dup
14335 operands 1 and 2 to better fit into the array.
14336 (negdi2 splitter): Ditto with split_di.
14337 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
14338 two separate calls with single member arrays. Swap match_dup operands
14339 6 and 7 to better fit into the array.
14340
ec2e9a15
L
143412008-04-17 H.J. Lu <hongjiu.lu@intel.com>
14342
14343 * config/i386/i386.c (sse_builtin_type): New.
14344 (bdesc_sse_args): Likewise.
14345 (bdesc_sse_3arg): Removed.
14346 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
14347 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
14348 IX86_BUILTIN_ROUNDPS.
14349 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
14350 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
14351 IX86_BUILTIN_ROUNDPS.
14352 (ix86_expand_sse_4_operands_builtin): Removed.
14353 (ix86_expand_sse_operands_builtin): New.
14354 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
14355 and CODE_FOR_sse4_1_roundps.
14356 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
14357 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
14358
e6477eaa
AM
143592008-04-17 Alan Modra <amodra@bigpond.net.au>
14360
14361 PR target/35907
14362 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
14363 regs before frame pop when needed. If use_backchain_to_restore_sp
14364 then load backchain into a temp reg to restore vr and vrsave. Add
14365 code to restore vr after frame pop if possible.
14366
ba2e1892
RG
143672008-04-17 Richard Guenther <rguenther@suse.de>
14368
14369 * tree-vn.c (expressions_equal_p): Do not check type
14370 equality or compatibility before calling operand_equal_p.
14371 * fold-const.c (operand_equal_p): Check equivalence of
14372 integer constants before bailing out due to signedness or
14373 precision differences.
14374 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
14375 spurious differences in type qualification. Ignore types
14376 for COMPONENT_REFs at all.
14377
d60819f8
CB
143782008-04-17 Christian Bruel <christian.bruel@st.com>
14379
14380 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
14381 msw_skip comparison.
22129589 14382
3d5e00a0
JJ
143832008-04-16 Jakub Jelinek <jakub@redhat.com>
14384
12e19e05
JJ
14385 PR c/35739
14386 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
14387 reg type.
14388
3d5e00a0
JJ
14389 PR tree-optimization/35899
14390 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
14391 rather than TREE_OPERAND.
14392
17c340e0
UB
143932008-04-16 Uros Bizjak <ubizjak@gmail.com>
14394
14395 PR target/35944
14396 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
14397 temporary registers. Change operand predicate to general_operand.
14398 (remainderxf3): Ditto.
14399
e544c850
RG
144002008-04-16 Richard Guenther <rguenther@suse.de>
14401
14402 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
14403 * tree-affine.c (aff_combination_expand): Look through some
14404 conversions.
14405
3d57d7ce
DK
144062008-04-15 Doug Kwan <dougkwan@google.com>
14407
14408 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
14409 for hex printing.
14410 * tree-pretty-print.c (dump_generic_node): Ditto.
14411 * final.c (output_addr_const): Ditto.
14412 * dwarf2out.c (output_cfi): Ditto.
14413 * c-pretty-print.c (pp_c_integer_constant): Ditto.
14414 * print-rtl.c (print_rtx): Ditto.
14415 * print-tree.c (print_node_brief, print_node): Ditto.
14416 * c-common.c (match_case_to_enum_1): Ditto.
14417 * sched-vis.c (print_value): Ditto.
14418 * config/i386/i386.c (print_operand): Cast to long unsigned int
14419 for hex printing.
14420
d98c89de
DS
144212008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
14422 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
14423 MS Windows VirtualProtect function.
14424
69c32ec8
JH
144252008-04-15 Jan Hubicka <jh@suse.cz>
14426
14427 * gengtype.c (write_root): Param_is argument is OK.
14428 * expr.c (expand_expr_real_1): Update call of get_exception_*.
14429 * function.h: Include varray.h
14430 (rtl_eh): New stucture based on except.c one.
14431 (call_site_record): New forward declaration and vector type.
14432 * calls.c (emit_call_1): Do not call
14433 note_current_region_may_contain_throw.
14434 * except.c (eh_status): Remove cur_region, try_region since they are
14435 unused.
14436 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
14437 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22129589 14438 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
69c32ec8
JH
14439 Remove call_site_data_used, call_site_data_size.
14440 Turn call_site_record into vector in function.h.
14441 (note_current_region_may_contain_throw): Remove.
14442 (get_exception_pointer, get_exception_filter): Do not take struct
14443 function argument; update.
14444 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
14445 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
14446 build_post_landing_pads, dw2_build_landing_pads,
14447 sjlj_assign_call_site_values, sjlj_mark_call_sites,
22129589 14448 sjlj_emit_function_enter, sjlj_emit_function_enter,
69c32ec8
JH
14449 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
14450 sjlj_build_landing_pads, finish_eh_generation,
14451 remove_exception_handler_label, remove_eh_handler,
14452 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
14453 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
14454 add_action_record, collect_one_action_chain, add_call_site,
14455 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
14456 sjlj_output_call_site_table, output_function_exception_table,
14457 * except.h (note_current_region_may_contain_throw): Remove
14458 (get_exception_pointer, get_exception_filter): Do not take struct
14459 function argument.
14460 * Makefile.in (GTFILES): Put varargs before struct function.
14461
bd1f29d9
EB
144622008-04-15 Eric Botcazou <ebotcazou@adacore.com>
14463
14464 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
14465 punt for STRING_CST.
14466 (get_constraint_for): Deal with STRING_CST here instead.
14467
3bb3bb2d
RG
144682008-04-15 Richard Guenther <rguenther@suse.de>
14469
14470 * tree-ssa-propagate.c (substitute_and_fold): Substitute
14471 statements in a basic-block with a backward walk. Do not
14472 substitute into dead statements but instead remove those.
14473
d9338cf0
RG
144742008-04-15 Richard Guenther <rguenther@suse.de>
14475
14476 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
14477 to zero, thus disable creation of SFTs.
14478
7e80c6bf
EB
144792008-04-15 Eric Botcazou <ebotcazou@adacore.com>
14480
14481 * tree-predcom.c (suitable_reference_p): Return false if the
14482 reference can throw.
14483
b97d8153
JJ
144842008-04-15 Jakub Jelinek <jakub@redhat.com>
14485
14486 PR c/35751
14487 * c-decl.c (finish_decl): If extern or static var has variable
14488 size, set TREE_TYPE (decl) to error_mark_node.
14489
d0599470
RAE
144902008-04-15 Rafael Espindola <espindola@google.com>
14491
b97d8153 14492 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
14493 variable arg1.
14494
649caaad
RG
144952008-04-15 Richard Guenther <rguenther@suse.de>
14496
14497 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
14498 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
14499 (visit_reference_op_load): Do walk vuse-vdef chains on
14500 vn_reference_lookup.
14501 (visit_reference_op_store): But do not here.
14502 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
14503 vn_reference_lookup.
14504 (vn_lookup_with_vuses): But do so here.
14505
55d7d0fa
ILT
145062008-04-14 Ian Lance Taylor <iant@google.com>
14507
14508 * fold-const.c (fold_overflow_warning): Remove assertion.
14509
2c4eec69
BE
145102008-04-15 Ben Elliston <bje@au.ibm.com>
14511
14512 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
14513 temp1 local variables.
14514
145152008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
14516
14517 PR target/35661
14518 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
14519 ".text.unlikely" section as executable.
14520
07acc7b3
JW
145212008-04-14 James E. Wilson <wilson@tuliptree.org>
14522
14523 * config/ia64/ia64.c (rtx_needs_barrier): Handle
14524 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
14525 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
14526 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
14527 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
14528 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
14529 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
14530
4c9db6e0
ILT
145312008-04-14 Ian Lance Taylor <iant@google.com>
14532
14533 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
14534 * fold-const.c (fold_comparison): If appropriate, test
14535 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
14536 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
14537 reassociating a pointer type.
14538 * doc/invoke.texi (Optimize Options): Document that
14539 -fstrict-overflow applies to pointer wraparound.
14540
305da3ec
JH
145412008-04-13 Jan Hubicka <jh@suse.cz>
14542
14543 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
14544
298ac1dd
AP
145452008-04-12 Andrew Pinski <pinskia@gmail.com>
14546
14547 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
14548 we are going to "save the world".
14549
70a7c7f1
HPN
145502008-04-13 Hans-Peter Nilsson <hp@axis.com>
14551
14552 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
14553 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
14554 operand 0 constraint, not "=".
14555
ad7aacba
JW
145562008-04-11 James E. Wilson <wilson@tuliptree.org>
14557
14558 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
14559
9d6facc7
L
145602008-04-11 H.J. Lu <hongjiu.lu@intel.com>
14561
14562 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
14563 of size of positions_needed * CHAR_BIT.
14564
4fe663b0
L
145652008-04-11 H.J. Lu <hongjiu.lu@intel.com>
14566
14567 PR middle-end/35897
14568 * dse.c (store_info): Change positions_needed to unsigned
14569 HOST_WIDE_INT.
14570 (lowpart_bitmask): New.
14571 (record_store): Cast to unsigned HOST_WIDE_INT for
14572 positions_needed. Assert width <= size of positions_needed *
14573 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
14574 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
14575 lowpart_bitmask to set mask.
14576
9fdd7520
BS
145772008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
14578
14579 * config/bfin/constraints.md: New file.
14580 * config/bfin/bfin.md: Include it.
14581 (adddi3): Use satisfies_constraint functions instead of the old macros.
14582 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
14583 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
14584 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
14585 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
14586 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
14587 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
14588 EXTRA_CONSTRAINT): Delete.
14589 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
14590 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
14591 of the old macros.
14592 * config/bfin/bfin.c: Include "tm-constrs.h".
14593 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
14594 Use satisfies_constraint functions instead of the old macros.
14595 * doc/md.texi (Blackfin Constraints): Update file name reference.
14596
0a4bf1d3
RG
145972008-04-11 Richard Guenther <rguenther@suse.de>
14598
14599 PR tree-optimization/35869
14600 * tree-vrp.c (execute_vrp): Move switch statement update after
14601 jump threading. Schedule another cfg cleanup run.
14602
21516d64
VR
146032008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
14604
14605 PR c/35744
14606 * attribs.c (decl_attributes): Return early on errorneous node.
14607
0598f31b
OR
146082008-04-10 Oleg Ryjkov <olegr@google.com>
14609
14610 * tree.h (struct tree_base): Added a new flag default_def_flag.
14611 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
14612
a1fcb9a1
KK
146132008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
14614
14615 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
14616
6ef5fab0
JDA
146172008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14618
14619 PR target/35768
14620 * pa.md: Define mode iterator P. Define mode attribute dwc.
14621 (dcacheflush): Update pattern to use iterator P and attribute dwc.
14622 (icacheflush): Likewise.
14623 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
14624 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
14625
e47f8bba
BE
146262008-04-11 Ben Elliston <bje@au.ibm.com>
14627
14628 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
14629
2893f753
RAE
146302008-04-10 Rafael Espindola <espindola@google.com>
14631
b97d8153 14632 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
14633 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
14634 (extract_range_from_expr): The same.
14635
5fb79e4c
AN
146362008-04-10 Adam Nemet <anemet@caviumnetworks.com>
14637
14638 * config/mips/mips.md (GPR2): New mode iterator.
14639 (seq): Add comment.
14640 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
14641 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
14642 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
14643 Rewrite these to take two modes, the mode of comparison and the
14644 mode of the destination.
14645 * config/mips/mips.c (mips_expand_scc): Instead of having
14646 paradoxical subreg as destination, expand "narrowing" scc if mode
14647 of comparison is SI and target is requested in DI mode.
14648 (mips_emit_int_order_test): Update comment. Make mode of
14649 comparison match CMP0 rather than TARGET. When creating inverse
14650 target use mode of TARGET.
14651
63d628b2
AN
146522008-04-10 Adam Nemet <anemet@caviumnetworks.com>
14653
14654 * gcov-dump.c (tag_summary): Only print summaries for the first
14655 GCOV_COUNTERS_SUMMABLE counters.
14656
6dd18eb1
UB
146572008-04-10 Uros Bizjak <ubizjak@gmail.com>
14658
14659 * config/i386/i386.md (absneg): New code iterator.
14660 (absnegprefix): New code attribute.
14661 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
14662 patterns using absneg code iterator.
14663 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
14664 using absneg code iterator.
14665 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
14666 *neg<mode>2 patterns using absneg code iterator.
14667 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14668 *negextendsfdf2 patterns using absneg code iterator.
14669 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
14670 *negextendsfxf2 patterns using absneg code iterator.
14671 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
14672 *negextendsfdf2 patterns using absneg code iterator.
14673 * config/i386/sse.md (<code><mode>2): Macroize expander from
22129589 14674 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6dd18eb1 14675
f40bee31
AK
146762008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
14677
14678 * config/s390/s390.h: Remove the remains of the recent search
14679 & replace action of current_function_outgoing_args_size.
14680
19aec6b0
IR
146812008-04-10 Ira Rosen <irar@il.ibm.com>
14682
14683 PR tree-optimization/35821
14684 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
14685 NEW_STMT_LIST is not NULL.
14686
ee8f0bd7
DE
146872008-04-09 David Edelsohn <edelsohn@gnu.org>
14688
14689 PR libstdc++/35597
14690 * toplev.c (process_options): Remove -ffunction-sections debugging
14691 warning.
14692
3a3a1fe1
PB
146932008-04-09 Peter Bergner <bergner@vnet.ibm.com>
14694
14695 PR middle-end/PR28690
14696 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
14697 than gen_rtx_fmt_ee to perform more canonicalizations.
14698
e0941605
JDA
146992008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14700
14701 PR driver/35665
14702 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
14703
2f9ea521
RG
147042008-04-09 Richard Guenther <rguenther@suse.de>
14705
14706 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
14707 (dump_function_to_file): Dump function arguments with types.
14708
02765a37
RG
147092008-04-08 Richard Guenther <rguenther@suse.de>
14710
14711 * fold-const.c (fold_widened_comparison): Do not allow
14712 sign-changes that change the result.
14713
a0f39282
JJ
147142008-04-08 Janis Johnson <janis187@us.ibm.com>
14715
14716 PR target/35839
14717 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
14718 kinds of indirect references.
14719
7f62878c
DE
147202008-04-08 David Edelsohn <edelsohn@gnu.org>
14721
14722 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
14723 GNU Fortran language string.
14724
a1a6e271
RAE
147252008-04-08 Rafael Espindola <espindola@google.com>
14726
14727 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
14728 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
14729 * tree.h (tree_call_nonnegative_warnv_p): New.
14730
57b9e367
JH
147312008-04-08 Jan Hubicka <jh@suse.cz>
14732
14733 * function.c (free_after_compilation): Clear out regno_reg_rtx
14734 pointer.
14735
a95c8615
PB
147362008-04-08 Peter Bergner <bergner@vnet.ibm.com>
14737
14738 Revert
14739 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
14740
14741 PR middle-end/PR28690
14742 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
14743 same precedence as REG_POINTER and MEM_POINTER operands.
14744
903b3003
RG
147452008-04-08 Richard Guenther <rguenther@suse.de>
14746
14747 PR middle-end/35834
14748 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
14749 for adding index to base.
14750
0b03b302
KT
147512008-04-08 Kai Tietz <kai.tietz@onevision.com>
14752
14753 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
14754 (MINGW_ENABLE_EXECUTE_STACK): New.
14755 (IN_LIBGCC2): For libgcc include windows.h file for
14756 function declarations.
14757
582be0a1
HPN
147582008-04-08 Hans-Peter Nilsson <hp@axis.com>
14759
14760 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
14761 and tem2 if tem1 is not a REG or MULT.
14762
38173d38
JH
147632008-04-08 Jan Hubicka <jh@suse.cz>
14764
14765 * function.h (incomming_args): Break out of struct function.
14766 (function_subsections): Break out of struct function.
14767 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
14768 return_rtx and hard_reg_initial_vals from struct function.
14769 Kill inl_max_label_num.
14770 (current_function_pops_args, current_function_args_info,
14771 current_function_args_size, current_function_args_size,
14772 current_function_pretend_args_size,
14773 current_function_outgoing_args_size,
14774 current_function_internal_arg_pointer, current_function_return_rtx):
14775 Kill compatibility accestor macros.
14776 * builtins.c (expand_builtin_apply_args_1): Update.
14777 (expand_builtin_next_arg): Update.
14778 * df-scan.c (df_get_call_refs): Update.
14779 * dbxout.c (dbxout_function_end): Update.
14780 * dwarf2out.c (dwarf2out_switch_text_section): Update.
14781 (output_line_info): Update.
14782 (secname_for_decl): Update.
14783 (dwarf2out_var_location): Update.
14784 * function.c (free_after_compilation): Update.
14785 (assign_parm_find_stack_rtl): Update.
14786 (assign_parms): Update.
14787 (expand_dummy_function_end): Update.
14788 (expand_function_end): Update.
14789 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
14790 (expand_call): Update.
14791 (emit_library_call_value_1): Update.
14792 (store_one_arg): Update.
14793 * varasm.c (initialize_cold_section_name): Update.
14794 (unlikely_text_section): Update.
14795 (unlikely_text_section_p): Update.
14796 (assemble_start_function): Update.
14797 (assemble_end_function): Update.
14798 (default_section_type_flags): Update.
14799 (switch_to_section): Update.
14800 * integrate.c (set_decl_abstract_flags): Update.
14801 (get_hard_reg_initial_val): Update.
14802 (has_hard_reg_initial_val): Update.
14803 (allocate_initial_values): Update.
14804 * resource.c (init_resource_info): Update.
14805 * config/alpha/alpha.c (NUM_ARGS): Update.
14806 (direct_return): Update.
14807 (alpha_va_start): Update.
14808 (alpha_sa_size): Update.
14809 (alpha_initial_elimination_offset): Update.
14810 (alpha_expand_prologue): Update.
14811 (alpha_start_function): Update.
14812 (alpha_expand_epilogue): Update.
14813 (unicosmk_initial_elimination_offset):
14814 * config/alpha/alpha.md (call expander): Update.
14815 * config/s390/s390.c (s390_register_info): Update.
14816 (s390_register_info): Update.
14817 (s390_frame_info): Update.
14818 (s390_initial_elimination_offset): Update.
14819 (s390_build_builtin_va_list): Update.
14820 (s390_va_start): Update.
14821 * config/spu/spu.c (direct_return): Update.
14822 (spu_expand_prologue): Update.
14823 (spu_initial_elimination_offset): Update.
14824 (spu_build_builtin_va_list): Update.
14825 (spu_va_start): Update.
14826 * config/sparc/sparc.c (sparc_init_modes): Update.
14827 (sparc_compute_frame_size): Update.
14828 (function_value): Update.
14829 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
14830 * config/i386/i386.md (return expander): Update.
14831 * config/i386/i386.c (ix86_va_start): Update.
14832 (ix86_can_use_return_insn_p): Update.
14833 (ix86_compute_frame_layout): Update.
14834 (ix86_expand_epilogue): Update.
14835 * config/sh/sh.c (output_stack_adjust): Update.
14836 (calc_live_regs): Update.
14837 (sh_expand_prologue): Update.
14838 (sh_builtin_saveregs): Update.
14839 (sh_va_start): Update.
14840 (initial_elimination_offset): Update.
14841 (sh_allocate_initial_value): Update.
14842 (sh_function_ok_for_sibcall): Update.
14843 (sh_get_pr_initial_val): Update.
14844 * config/sh/sh.md (return expander): Update.
14845 * config/avr/avr.c (frame_pointer_required_p): UPdate.
14846 * config/crx/crx.c (crx_compute_frame): UPdate.
14847 (crx_initial_elimination_offset): UPdate.
14848 * config/xtensa/xtensa.c (compute_frame_size): Update
14849 (xtensa_builtin_saveregs): Update.
14850 (xtensa_va_start): Update.
14851 (order_regs_for_local_alloc): Update.
14852 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
14853 (xstormy16_expand_builtin_va_start): Update.
14854 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
14855 * config/m68hc11/m68hc11.md (return expanders): Update.
14856 * config/m68hc11/m68hc11.c (expand_prologue): Update.
14857 (expand_epilogue): Update.
14858 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
14859 (cris_simple_epilogue): Update.
14860 (cris_expand_prologue): Update.
14861 (cris_expand_epilogue): Update.
14862 * config/iq2000/iq2000.c (iq2000_va_start): Update.
14863 (compute_frame_size): Update.
14864 * config/mt/mt.c (mt_compute_frame_size): Update.
14865 * config/mn10300/mn10300.c (expand_prologue): Update.
14866 (expand_epilogue): Update.
14867 (initial_offset): Update.
14868 (mn10300_builtin_saveregs):
14869 * config/mn10300/mn10300.md (return expander): Update.
14870 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
14871 (ia64_initial_elimination_offset): Update.
14872 (ia64_initial_elimination_offset): Update.
14873 (ia64_expand_prologue): Update.
14874 * config/m68k/m68k.md (return expander): Update.
14875 * config/rs6000/rs6000.c (rs6000_va_start): Update.
14876 (rs6000_stack_info): Update.
14877 * config/mcore/mcore.c (layout_mcore_frame): Update.
14878 (mcore_expand_prolog): Update.
14879 * config/arc/arc.c (arc_compute_frame_size): Update.
14880 * config/score/score3.c (score3_compute_frame_size): Update.
14881 * config/score/score7.c (score7_compute_frame_size): Update.
14882 * config/arm/arm.c (use_return_insn): Update.
14883 (thumb_find_work_register): Update.
14884 (arm_compute_save_reg_mask): Update.
14885 (arm_output_function_prologue): Update.
14886 (arm_output_epilogue): Update.
14887 (arm_size_return_regs): Update.
14888 (arm_get_frame_offsets): Update.
14889 (arm_expand_prologue): Update.
14890 (thumb_exit): Update.
14891 (thumb_unexpanded_epilogue): Update.
14892 (thumb1_output_function_prologue): Update.
14893 * config/pa/pa.md (return expander): Update.
14894 * config/pa/pa.c (compute_frame_size): Update.
14895 (hppa_builtin_saveregs): Update.
14896 * config/mips/mips.c (mips_va_start): Update.
14897 (mips16_build_function_stub): Update.
14898 (mips_compute_frame_info): Update.
14899 (mips_restore_gp): Update.
14900 (mips_output_function_prologue): Update.
14901 (mips_expand_prologue): Update.
14902 * config/v850/v850.c (compute_frame_size): Update.
14903 (expand_prologue): * config/mmix/mmix.c (along): update.
14904 (mmix_initial_elimination_offset): update.
14905 (mmix_reorg): update.
14906 (mmix_use_simple_return): update.
14907 (mmix_expand_prologue): update.
14908 (mmix_expand_epilogue): Update.
14909 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
14910 (emit_link_insn): Update.
14911
5d9b8bb4
AS
149122008-04-08 Anatoly Sokolov <aesok@post.ru>
14913
22129589
AS
14914 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
14915 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
5d9b8bb4 14916 instructions.
22129589 14917 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
5d9b8bb4
AS
14918 atmega103 device.
14919
3e029763
JH
149202008-04-07 Jan Hubicka <jh@suse.cz>
14921
14922 * function.h (rtl): Rename to x_rtl.
14923 (crtl): New define.
14924 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
14925 frame_offset, stack_check_probe_note, arg_pointer_save_area,
14926 used_temp_slots avail_temp_slots, temp_slot_level,
14927 nonlocal_goto_handler_labels): Update accesstors.
14928 (rtl): New global variable.
14929 (struct function): Move some fileds to rtl_data.
14930 (get_arg_pointer_save_area): Update prototype.
14931 * builtins.c (expand_builtin_setjmp_receiver): Update call of
14932 get_arg_pointer_save_area.
14933 * expr.c (init_expr): Update
14934 * function.c (get_frame_size): Update
14935 (assign_stack_local): Update
14936 (expand_function_end): Update.
14937 (get_art_pointer_save_area): Update
22129589 14938 * function.h
3e029763
JH
14939 * emit-rtl.c (rtl): Declare.
14940 (regno_reg_rtx): Declare.
14941 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
14942 Update.
14943 (gen_reg_rtx): Update.
14944 * varasm.c (n_deferred_constatns): Update accestor.
14945 (init_varasm_status): Do not allocate varasm_status.
14946 (force_const_mem, get_pool_size, output_constant_pool): Update.
14947 * stmt.c (force_label_rtx): Do not use x_ prefixes.
14948 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
14949 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
14950 * sparc/sparc.h (INIT_EXPANDERS): Update.
14951 * ia64/ia64.h (INIT_EXPANDERS): Update.
14952
c3be2598
JW
149532008-04-07 James E. Wilson <wilson@tuliptree.org>
14954
14955 * reload.c (push_secondary_reload): Add missing break to for loop.
14956
46b71b03
PB
149572008-04-07 Peter Bergner <bergner@vnet.ibm.com>
14958
14959 PR middle-end/PR28690
14960 * rtlanal.c: Update copyright years.
14961 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
14962 as REG_POINTER and MEM_POINTER operands.
14963 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
14964 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
14965 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
14966 * gcse.c: Update copyright years.
14967 (pre_delete): Call gen_reg_rtx_and_attrs.
14968 (hoist_code): Likewise.
14969 (build_store_vectors): Likewise.
14970 (delete_store): Likewise.
14971 * loop-invariant.c (move_invariant_reg): Likewise.
14972 Update copyright years.
14973
64ef8953
UB
149742008-04-07 Uros Bizjak <ubizjak@gmail.com>
14975
14976 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
14977 control string instead of quoted.
14978
4218dc2d 149792008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 14980
64ef8953
UB
14981 * doc/rtl.texi: Rewrite of subreg section.
14982
8502420b
KT
149832008-04-07 Kai Tietz <kai.tietz@onevision.com>
14984
64ef8953
UB
14985 PR/35842
14986 * config/i386/i386.c (legitimize_pic_address): Add treating
14987 of dllimport SYM_REF's.
14988 (legitimize_dllimport_symbol): Add prototype.
8502420b 14989
39fcde8f
EB
149902008-04-07 Eric Botcazou <ebotcazou@adacore.com>
14991
14992 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
14993 reference in constructor with non self-referential type.
14994
9dd9bf80
EB
149952008-04-07 Eric Botcazou <ebotcazou@adacore.com>
14996
14997 Removal of Return with Depressed Stack Pointer support
14998 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
14999 (ECF_SP_DEPRESSED): Likewise.
15000 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
15001 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
15002 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
15003 (expand_call): Do not test ECF_SP_DEPRESSED.
15004 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
15005 * function.c (keep_stack_depressed): Delete.
15006 (handle_epilogue_set): Likewise.
15007 (update_epilogue_consts): Likewise.
15008 (emit_equiv_load): Likewise.
15009 (thread_prologue_and_epilogue_insns): Remove support for Return with
15010 Depressed Stack Pointer.
15011 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
15012
3633df5a
RG
150132008-04-06 Richard Guenther <rguenther@suse.de>
15014
15015 PR tree-optimization/35400
15016 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
15017 information from SSA_NAMEs.
15018
5dc77808
AS
150192008-04-06 Anatoly Sokolov <aesok@post.ru>
15020
15021 * config/avr/avr.h (avr_mega_p): Remove declaration.
15022 (AVR_MEGA): Remove macro.
15023 * config/avr/avr.c (avr_mega_p): Remove variable.
15024 (avr_override_options): Remove inicializion of avr_mega_p.
15025 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
15026 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
15027 (avr_jump_mode): (Ditto.).
15028 (avr_output_progmem_section_asm_op): (Ditto.).
15029 (avr_asm_init_sections): (Ditto.).
15030 (avr_asm_init_sections): (Ditto.).
15031 (avr_rtx_costs): (Ditto.).
15032 * config/avr/avr.md: (Ditto.).
22129589 15033 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5dc77808
AS
15034 '__AVR_MEGA__'.
15035
8c51effa
RG
150362008-04-06 Richard Guenther <rguenther@suse.de>
15037
15038 PR tree-optimization/35842
15039 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
15040 is_gimple_invariant_address.
15041
3135ce84
FXC
150422008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
15043
15044 * gcc.c (default_compilers): Sync Fortran extensions list with
15045 that in fortran/lang-specs.h.
15046 * doc/invoke.texi: Likewise.
15047 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
15048 * dwarf2out.c (gen_compile_unit_die): Likewise.
15049
d7d7db8b
TC
150502008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
15051
15052 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
15053
27183bba
UB
150542008-04-05 Uros Bizjak <ubizjak@gmail.com>
15055
15056 PR target/12329
15057 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
15058 attribute is used for nested functions.
15059
9e016eba
JH
150602008-04-05 Jan Hubicka <jh@suse.cz>
15061
9fb7564e
JH
15062 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
15063
9e016eba
JH
15064 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
15065 letter argument.
15066 (dump_files): Update.
15067 (enable_rtl_dump_file): Do not accept letter argument.
15068 * tree-pass.h (dump_file_info): Remove letter argument.
15069 * toplev.c (decode_d_option): Update -da handling.
15070 * toplev.h (enable_rtl_dump_file): Update prototype.
15071 * passes.c (register_one_dump_file): Do not accept IPA argument; work
15072 it out based on pass type.
15073 (register_dump_files_1): Likewise.
15074 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
15075 (execute_one_pass): Sanity check that IPA passes are called at IPA
15076 level and RTL passes at RTL level.
9e016eba
JH
15077 (execute_pass_list): IPA pass can not be after or subpass of
15078 GIMPLE/RTL pass.
15079 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
15080 disallov RTL subpasses of IPA subpasses.
15081
23ef6d21
BE
150822008-04-05 Ben Elliston <bje@au.ibm.com>
15083
15084 * tree-cfg.c (need_fake_edge_p): Return false for calls to
15085 builtins that return exactly once and do not throw. Cache call to
15086 call_expr_flags.
15087
3c2397cd
AH
150882008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
15089
15090 PR rtl-optimization/34916
15091 PR middle-end/35519
15092 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
15093 between instruction pairs.
15094
9eb3a0dd
N
150952008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
15096
15097 * doc/invoke.texi: Document -mbitops for SH.
15098 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
15099 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
15100 * config/sh/sh.c (print_operand): Add %t operand code.
15101 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
15102 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
15103 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
15104 (extendqihi2): Likewise.
15105 (movqi_i): Likewise.
15106 (insv): Use bset, bclr and bst instructions for SH2A if possible.
15107 (extv): Use bld instruction for SH2A if possible.
15108 (extzv): Likewise.
15109 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
15110 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
15111 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
15112 (bset.b, bclr.b): Define peepholes.
15113 * config/sh/sh.opt (mbitops): New option.
15114
fdf4f148
JJ
151152008-04-04 Janis Johnson <janis187@us.ibm.com>
15116
15117 PR target/35620
15118 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
15119 and view convert expression.
15120
3088d404
JJ
151212008-04-04 Jakub Jelinek <jakub@redhat.com>
15122
15123 PR target/35364
15124 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
15125
8b96a312
L
151262008-04-04 H.J. Lu <hongjiu.lu@intel.com>
15127
15128 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
15129
15130 * config/i386/cpuid.h (bit_AES): New.
15131 (bit_PCLMUL): Likewise.
15132
15133 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
15134 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
15135 SSE2 if AES or PCLMUL is enabled.
15136 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
15137 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
15138 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
15139 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
15140 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
15141 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
15142 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
15143 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
15144 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
15145 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
15146 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
15147 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
15148 __builtin_ia32_aeskeygenassist128 and
15149 __builtin_ia32_pclmulqdq128.
15150 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
15151 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
15152 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
15153
15154 * config/i386/i386.h (TARGET_AES): New.
15155 (TARGET_PCLMUL): Likewise.
15156 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
15157
15158 * config/i386/i386.md (UNSPEC_AESENC): New.
15159 (UNSPEC_AESENCLAST): Likewise.
15160 (UNSPEC_AESDEC): Likewise.
15161 (UNSPEC_AESDECLAST): Likewise.
15162 (UNSPEC_AESIMC): Likewise.
15163 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 15164 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
15165
15166 * config/i386/i386.opt (maes): New.
15167 (mpclmul): Likewise.
15168
15169 * config/i386/sse.md (aesenc): New pattern.
15170 (aesenclast): Likewise.
15171 (aesdec): Likewise.
15172 (aesdeclast): Likewise.
15173 (aesimc): Likewise.
15174 (aeskeygenassist): Likewise.
15175 (pclmulqdq): Likewise.
15176
15177 * config/i386/wmmintrin.h: New.
15178
15179 * doc/extend.texi: Document AES and PCLMUL built-in function.
15180
15181 * doc/invoke.texi: Document -maes and -mpclmul.
15182
e8924938
PB
151832008-04-04 Paolo Bonzini <bonzini@gnu.org>
15184
15185 * function.c (free_after_parsing): Replace with
15186 cxx_push_function_context from C++ front-end.
15187 (allocate_struct_function): Don't call langhook.
15188 * langhooks.h (struct lang_hooks_for_functions): Delete.
15189 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
15190 member "function".
15191 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
15192 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
15193 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
15194 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
15195 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
15196 remove LANG_HOOKS_FUNCTION_INITIALIZER.
15197 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
15198
15199 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
15200 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22129589 15201
05008a0c
JJ
152022008-04-04 Jakub Jelinek <jakub@redhat.com>
15203
15204 PR c/35440
15205 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
15206 for all types.
15207
c071e8bc
RG
152082008-04-04 Richard Guenther <rguenther@suse.de>
15209
15210 PR middle-end/35823
15211 * fold-const.c (optimize_minmax_comparison): Use the correct
15212 type for the constant in the simplified comparison.
15213
f4a1dd0d
ZM
152142008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
15215
15216 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
15217 Pass L2 size as "--param l2-cache-size" to the compiler.
15218 (decode_l2_cache): New function to decode L2 cache parameters using
15219 0x8000006 extended cpuid function.
15220 (detect_caches_amd): Determine parameters of L2 cache using
15221 decode_l2_caches function.
15222 (decode_caches_intel): Decode L2 cache parameters.
15223 (detect_caches_intel): Determine L2 cache parameters using
15224 decode_caches_intel and decode_l2_caches functions.
15225
3ee909cb
BW
152262008-04-03 Bob Wilson <bob.wilson@acm.org>
15227
15228 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
15229 secondary input reload for subword loads from the constant pool.
15230
6db07dcb
JJ
152312008-04-03 Janis Johnson <janis187@us.ibm.com>
15232
383e91e4
JJ
15233 PR target/35713
15234 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
15235 constants of the appropriate size for runtime calculations.
15236
6db07dcb
JJ
15237 PR c/35712
15238 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
15239 decimal-float literal constant zero.
15240
5da250fc
JJ
152412008-04-03 Jakub Jelinek <jakub@redhat.com>
15242
79addd1f
JJ
15243 PR c/35738
15244 * c-parser.c (c_parser_omp_atomic): Call
15245 default_function_array_conversion on the RHS.
15246
5da250fc
JJ
15247 PR middle-end/35818
15248 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
15249 call is_variable_sized if decl has incomplete type.
15250
940f3b52
L
152512008-04-03 H.J. Lu <hongjiu.lu@intel.com>
15252
15253 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
15254
6ac935c1
AN
152552008-04-03 Adam Nemet <anemet@caviumnetworks.com>
15256
15257 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
15258 iterators.
64ef8953 15259 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
15260 (sgt<u>): Merge sgt and sgtu into new expander.
15261 (sgt, sgtu): Remove expanders.
64ef8953 15262 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
15263 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
15264 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
15265 *sgtu_<mode>_mips16 into new pattern.
15266 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
15267 (sge<u>): Merge sge and sgeu into new expander.
15268 (sge, sgeu): Remove expanders.
15269 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
15270 new pattern.
15271 (*sge_<mode>, second *sge_<mode>): Remove patterns.
15272 (slt<u>): Merge slt and sltu into new expander.
15273 (slt, sltu): Remove expanders.
64ef8953 15274 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
15275 (*slt_<mode>, *sltu_<mode>): Remove patterns.
15276 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
15277 *sltu_<mode>_mips16 into new pattern.
15278 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
15279 (sle<u>): Merge sle and sleu into new expander.
15280 (sle, sleu): Remove expanders.
64ef8953 15281 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
15282 (*sle_<mode>, *sleu_<mode>): Remove patterns.
15283 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
15284 *sleu_<mode>_mips16 into new pattern.
15285 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
15286
6b0c2336
JH
152872008-04-03 Jan Hubicka <jh@suse.cz>
15288
15289 PR tree-optimization/35795
15290 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
15291 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
15292 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
15293 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
15294 * score/score3.c (score3_output_mi_thunk): Likewise.
15295 * score/score7.c (score7_output_mi_thunk): Likewise.
15296 * mips/mips.c (mips_output_mi_thunk): Likewise.
15297
b47ee386
RG
152982008-04-03 Richard Guenther <rguenther@suse.de>
15299
15300 * tree-vrp.c (extract_range_from_unary_expr): Handle all
15301 conversions. Simplify code.
15302
2a7428c0
KK
153032008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
15304
15305 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
15306
6cba282a
TT
153072008-04-03 Tom Tromey <tromey@redhat.com>
15308 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15309
15310 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
15311 * config/bfin/t-bfin-linux (generated_files): Add
15312 linux-sysroot-suffix.h.
15313 * doc/install.texi (Prerequisites): Require make 3.80.
15314 * doc/sourcebuild.texi (Front End Directory): Document new
15315 variable.
15316 * Makefile.in (generated_files): New variable.
15317 (ALL_HOST_OBJS): New variable.
15318 ($(ALL_HOST_OBJS)): New target.
15319
9ff420f1
PB
153202008-04-03 Paolo Bonzini <bonzini@gnu.org>
15321
6b0c2336
JH
15322 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
15323 (remap_block): Call id->transform_lang_insert_block instead
15324 of langhook.
15325 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
15326 Set id.transform_lang_insert_block to NULL.
15327 (clone_body): Move to cp/optimize.c
15328 * tree-inline.h (struct copy_body_data): Change
15329 transform_lang_insert_block to function pointer.
15330 (copy_generic_body, copy_decl_no_change): Export.
15331 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
15332 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
15333 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
15334
15335 * c-tree.h (insert_block): Kill.
15336 * c-decl.c (insert_block): Kill.
9ff420f1 15337
d2784db4
PB
153382008-04-03 Paolo Bonzini <bonzini@gnu.org>
15339
6b0c2336
JH
15340 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
15341 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
15342 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
15343 argument.
15344 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
15345 argument, call {push,pop}_function_context from here.
15346 * c-parser.c: Use c_{push,pop}_function_context.
15347
15348 * function.c (push_function_context_to): Move meat ...
15349 (push_function_context): ... here. Simplify.
15350 * function.c (pop_function_context_from): Move meat ...
15351 (pop_function_context): ... here. Simplify.
15352 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
15353 leave_nested).
15354 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
15355 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
15356 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
15357 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 15358
9e0aebca
BE
153592008-04-03 Ben Elliston <bje@au.ibm.com>
15360
15361 * expmed.c (extract_force_align_mem_bit_field): Remove.
15362
55187c8a
RG
153632008-04-03 Richard Guenther <rguenther@suse.de>
15364
15365 PR middle-end/35800
15366 * expr.h (try_casesi): Adjust prototype.
15367 * expr.c (try_casesi): Take fallback label as extra parameter.
15368 Use that for gen_casesi if default_label is NULL.
15369 * stmt.c (expand_case): Pass fallback label to try_casesi,
15370 make sure to fill gaps with a fallback label if default_label
15371 is not present.
15372
d7087dd2
DH
153732008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
15374
15375 PR target/35801
15376 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
15377
609023ff
BE
153782008-04-03 Ben Elliston <bje@au.ibm.com>
15379
15380 * expmed.c (extract_split_bit_field): Remove if (0) code.
15381 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
15382 (do_ds_constraint): Likewise.
15383
93d45d9e
JM
153842008-04-02 Joseph Myers <joseph@codesourcery.com>
15385
15386 * doc/cppopts.texi (-dU): Document.
15387 * c-common.h (flag_dump_macros): Update comment.
15388 * c-opts.c (handle_OPT_d): Handle -dU.
15389 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
15390 dump_queued_macros, cb_used_define, cb_used_undef): New.
15391 (init_pp_output): Handle -dU.
15392 (cb_line_change): Call dump_queued_macros.
15393 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
15394
e6b69d0e
AS
153952008-04-02 Anatoly Sokolov <aesok@post.ru>
15396
22129589 15397 * config/avr/predicates.md (io_address_operand): New predicate.
e6b69d0e
AS
15398 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
15399 * config/avr/avr.c (avr_io_address_p): Remove function.
22129589 15400 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
e6b69d0e
AS
15401 'avr_io_address_p' function.
15402 (out_movhi_r_mr): (Ditto.).
15403 (out_movqi_mr_r): (Ditto.).
15404 (out_movhi_mr_r): (Ditto.).
15405 (avr_address_cost): (Ditto.).
15406
7b198002
UB
154072008-04-02 Uros Bizjak <ubizjak@gmail.com>
15408
15409 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
15410 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
15411 in 32bit mode when XMM registers are available to avoid store
15412 forwarding stalls.
15413 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
15414 corresponding post-reload splitters.
15415
abe08645
L
154162008-04-02 H.J. Lu <hongjiu.lu@intel.com>
15417
15418 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
15419 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
15420 __builtin_ia32_roundss.
15421 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
15422 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
15423 __builtin_ia32_roundss.
15424 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
15425 IX86_BUILTIN_SHUFPD here.
15426
94237c92
L
154272008-04-02 H.J. Lu <hongjiu.lu@intel.com>
15428
15429 * config/i386/i386.md (plogic): New.
15430 (plogicprefix): Likewise.
15431
15432 * config/i386/mmx.md (mmx_<code><mode>3): New.
15433 (mmx_and<mode>3): Removed.
15434 (mmx_ior<mode>3): Likewise.
15435 (mmx_xor<mode>3): Likewise.
15436
15437 * config/i386/sse.md (<code><mode>3): New.
15438 (*<code><mode>3): Likewise.
15439 (*<code><mode>3): Likewise.
15440 (<code><mode>3): Likewise.
15441 (*sse_<code><mode>3): Likewise.
15442 (*sse2_<code><mode>3): Likewise.
15443 (<code>tf3): Likewise.
15444 (*<code>tf3): Likewise.
15445 (and<mode>3): Likewise.
15446 (*and<mode>3): Likewise.
15447 (ior<mode>3): Removed.
15448 (*ior<mode>3): Likewise.
15449 (xor<mode>3): Likewise.
15450 (*xor<mode>3): Likewise.
15451 (*and<mode>3): Likewise.
15452 (*ior<mode>3): Likewise.
15453 (*xor<mode>3): Likewise.
15454 (and<mode>3): Likewise.
15455 (*sse_and<mode>3): Likewise.
15456 (*sse2_and<mode>3): Likewise.
15457 (andtf3): Likewise.
15458 (*andtf3): Likewise.
15459 (ior<mode>3): Likewise.
15460 (*sse_ior<mode>3): Likewise.
15461 (*sse2_ior<mode>3): Likewise.
15462 (iortf3): Likewise.
15463 (*iortf3): Likewise.
15464 (xor<mode>3): Likewise.
15465 (*sse_xor<mode>3): Likewise.
15466 (*sse2_xor<mode>3): Likewise.
15467 (xortf3): Likewise.
15468 (*xortf3): Likewise.
15469
b7814a18
RG
154702008-04-02 Richard Guenther <rguenther@suse.de>
15471
15472 PR tree-optimization/14495
15473 PR tree-optimization/34793
15474 * tree-vrp.c (struct switch_update): New structure.
15475 (to_remove_edges, to_update_switch_stmts): New VECs.
15476 (simplify_switch_using_ranges): New function. Remove not taken
15477 case labels and edges.
15478 (simplify_stmt_using_ranges): Call it.
15479 (identify_jump_threads): Mark edges we have queued for removal
15480 so we don't thread them.
15481 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
15482 case label vector.
15483 * tree-cfg.c (group_case_labels): Deal with missing default label.
15484 (tree_verify_flow_info): Allow missing default label.
15485 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
15486 (emit_case_nodes): Likewise.
15487 (expand_case): Do not rely on the default label to be present.
15488 * expr.c (try_casesi): Deal with NULL default_label.
15489 (do_tablejump): Likewise.
15490
8aea0bf0
RG
154912008-04-02 Richard Guenther <rguenther@suse.de>
15492
15493 PR tree-optimization/14495
15494 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
15495 SWITCH_EXPR here ...
15496 (vrp_visit_switch_stmt): ... but here (new function).
15497 (find_case_label_index): New helper function.
15498 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
15499
3f1c2278
PB
155002008-04-02 Paolo Bonzini <bonzini@gnu.org>
15501
15502 * fwprop.c: Fix ISO-C99ism.
15503
da0f6381
PB
155042008-04-02 Paolo Bonzini <bonzini@gnu.org>
15505
15506 PR bootstrap/35752
15507 * Makefile.in (objdir): Set it here.
15508 * configure.ac: Not here. Find dynamic linker characteristics.
15509 * exec-tool.in: Use them.
15510 * aclocal.m4: Regenerate.
15511 * configure: Regenerate.
15512
4846b435
PB
155132008-04-02 Paolo Bonzini <bonzini@gnu.org>
15514
15515 * expr.c (expand_var): Delete it.
15516 * expr.h (expand_var): Delete prototype.
15517 * function.c (expand_function_start): Use expand_decl instead.
15518 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
15519 langhook.
15520
4fefbcdb
AH
155212008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
15522
15523 PR rtl-optimization/35542
15524 * fwprop.c (forward_propagate_and_simplify): Replace
15525 loc_reg_mentioned_in_p with reg_mentioned_p.
15526
460d667d
PB
155272008-04-02 Paolo Bonzini <bonzini@gnu.org>
15528
4fefbcdb 15529 PR rtl-optimization/35281
460d667d
PB
15530 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
15531 (propagate_rtx_1): Handle PR_HANDLE_MEM.
15532 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
15533 (varying_mem_p): Move above propagate_rtx.
15534 (all_uses_available_at): Do not check MEMs.
15535
a26a02d7
RAE
155362008-04-02 Rafael Espindola <espindola@google.com>
15537
15538 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
15539 (register_edge_assert_for_2): Split the cond argument.
15540 (register_edge_assert_for_1): Adjust for the change in
15541 register_edge_assert_for_2.
15542 (register_edge_assert_for): Split the cond argument.
15543 (find_switch_asserts): Adjust for the change in
15544 register_edge_assert_for.
15545
e8930cc1
KT
155462008-04-02 Kai Tietz <kai.tietz@onevision.com>
15547
15548 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 15549 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 15550 offsets for 64-bit mingw.
b97d8153 15551 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 15552 abi for x86_64-pc-mingw.
e8930cc1 15553
70b7b037
RG
155542008-04-02 Richard Guenther <rguenther@suse.de>
15555
15556 * tree-vrp.c (extract_range_from_assert): Make sure to not
15557 produce range min/max with TREE_OVERFOW set.
15558 If merging a anti-range and a range keep the anti-range if
15559 the range covers all values of the type.
15560 (register_edge_assert_for_2): Only allow sign-changing
15561 conversions in detecting canonical range checks. Also
15562 register an assert for the unsigned name if useful.
15563
15564 PR tree-optimization/35787
15565 * tree-vrp.c (vrp_val_max): New function.
15566 (vrp_val_min): Likewise.
15567 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
15568 (vrp_val_is_min): Likewise.
15569 (supports_overflow_infinity): Use vrp_val_{min,max}.
15570 (negative_overflow_infinity): Likewise.
15571 (positive_overflow_infinity): Likewise.
15572 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
15573 (is_positive_overflow_infinity): Likewise.
15574 (is_overflow_infinity): Likewise.
15575 (avoid_overflow_infinity): Use vrp_val_{min,max} and
15576 vrp_val_is_{min,max}.
15577 (set_and_canonicalize_value_range): Canonicalize anti-ranges
15578 to ranges if possible. Avoid empty ranges.
15579
10743280
JDA
155802008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15581
15582 PR middle-end/35705
15583 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
15584 the expression is a function address.
15585
7151ffbe
GH
155862008-04-01 George Helffrich <george@gcc.gnu.org>
15587
623f8e39 15588 PR fortran/35154, fortran/23057
7151ffbe
GH
15589 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
15590 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
15591 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
15592 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
15593 in common.
15594 (dbxout_syms): Check for COMMON-based symbol and wrap in
15595 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
15596 in bracket for efficiency.
15597
15598 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
15599 using DW_TAG_common_block + member offset.
15600 (add_pubname_string): New function.
15601 (dw_expand_expr): New function to find block name and offset for
15602 COMMON var.
15603 (common_check): New function to check whether symbol in Fortran COMMON.
15604 (gen_variable_die): If COMMON, use DW_TAG_common_block.
15605
dc197ab9
VR
156062008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
15607
15608 PR c/35436
15609 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
15610
9e9b5341
BE
156112008-04-02 Ben Elliston <bje@au.ibm.com>
15612
15613 * config/v850/v850.md (casesi): Remove if (0) code.
15614 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
15615 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
15616
380edc9f
UB
156172008-04-01 Uros Bizjak <ubizjak@gmail.com>
15618
15619 * config/i386/i386.md (rex64suffix): New mode attribute.
15620 (floathi<mode>2): Disable expander for SSE math.
15621 (*floathi<mode>2_1): New insn insn_and_split pattern.
15622 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
15623 corresponding post-reload splitters.
15624 (*floathi<mode>2_i387): New macroized insn pattern.
15625 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
15626 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
15627 insn_and_split pattern.
15628 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
15629 New macroized instruction patterns and corresponding post-reload
15630 splitters.
15631 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
15632 and corresponding post-reload splitters.
15633 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
15634 New macroized instruction patterns.
15635 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
15636 macroized instruction patterns and corresponding post-reload splitters.
15637 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
15638 corresponding post-reload splitters.
15639 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
15640 New macroized instruction patterns.
15641 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
15642 corresponding post-reload splitters.
15643 (*floatsi<mode>2_i387): New macroized instruction patterns.
15644
78e8956b
L
156452008-04-01 H.J. Lu <hongjiu.lu@intel.com>
15646
15647 * config/i386/i386.md (smaxmin): New.
15648 (umaxmin): Likewise.
15649 (maxminiprefix): Likewise.
15650 (maxminfprefix): Likewise.
15651 (<code><mode>3): Likewise.
15652 (smin<mode>3): Removed.
15653 (smax<mode>3): Likewise.
15654
15655 * config/i386/mmx.md (mmx_<code>v2sf3): New.
15656 (mmx_<code>v4hi3): Likewise.
15657 (mmx_<code>v8qi3): Likewise.
15658 (mmx_smaxv2sf3): Removed.
15659 (mmx_sminv2sf3): Likewise.
15660 (mmx_umaxv8qi3): Likewise.
15661 (mmx_smaxv4hi3): Likewise.
15662 (mmx_uminv8qi3): Likewise.
15663 (mmx_sminv4hi3): Likewise.
15664
15665 * config/i386/sse.md (<addsub><mode>3): New.
15666 (*<addsub><mode>3): Likewise.
15667 (<sse>_vm<addsub><mode>3): Likewise.
15668 (<maxmin><mode>3): Likewise.
15669 (*<maxmin><mode>3_finite): Likewise.
15670 (*<maxmin><mode>3): Likewise.
15671 (<sse>_vm<maxmin><mode>3): Likewise.
15672 (sse3_h<addsub>v4sf3): Likewise.
15673 (sse3_h<addsub>v2df3): Likewise.
15674 (<maxmin>v16qi3): Likewise.
15675 (*<maxmin>v16qi3): Likewise.
15676 (<maxmin>v8hi3): Likewise.
15677 (*<maxmin>v8hi3): Likewise.
15678 (*sse4_1_<maxmin><mode>3): Likewise.
15679 (*sse4_1_<maxmin><mode>3): Likewise.
15680 (add<mode>3): Removed.
15681 (*add<mode>3): Likewise.
15682 (<sse>_vmadd<mode>3): Likewise.
15683 (sub<mode>3): Likewise.
15684 (*sub<mode>3): Likewise.
15685 (<sse>_vmsub<mode>3): Likewise.
15686 (smin<mode>3): Likewise.
15687 (*smin<mode>3_finite): Likewise.
15688 (*smin<mode>3): Likewise.
15689 (<sse>_vmsmin<mode>3): Likewise.
15690 (smax<mode>3): Likewise.
15691 (*smax<mode>3_finite): Likewise.
15692 (*smax<mode>3): Likewise.
15693 (<sse>_vmsmax<mode>3): Likewise.
15694 (sse3_haddv4sf3): Likewise.
15695 (sse3_haddv2df3): Likewise.
15696 (sse3_hsubv4sf3): Likewise.
15697 (sse3_hsubv2df3): Likewise.
15698 (umaxv16qi3): Likewise.
15699 (*umaxv16qi3): Likewise.
15700 (smaxv8hi3): Likewise.
15701 (*smaxv8hi3): Likewise.
15702 (*sse4_1_smax<mode>3): Likewise.
15703 (*sse4_1_umax<mode>3): Likewise.
15704 (uminv16qi3): Likewise.
15705 (*uminv16qi3): Likewise.
15706 (sminv8hi3): Likewise.
15707 (*sminv8hi3): Likewise.
15708 (*sse4_1_smin<mode>3): Likewise.
15709 (*sse4_1_umin<mode>3): Likewise.
15710
220f1c29
RAE
157112008-04-01 Rafael Espindola <espindola@google.com>
15712
15713 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 15714 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
15715 is_gimple_min_invariant instead of is_gimple_val.
15716
7f9766e4
JM
157172008-04-01 Joseph Myers <joseph@codesourcery.com>
15718
15719 * doc/include/gpl_v3.texi: Update for manpage generation.
15720 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
15721 gpl.texi.
15722 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
15723 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
15724 gpl_v3.texi instead of gpl.texi.
15725 (gpl.pod): New.
15726
d4c32e1d
JJ
157272008-04-01 Jakub Jelinek <jakub@redhat.com>
15728
15729 PR pch/13675
15730 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
15731
764a79ed
RAE
157322008-04-01 Rafael Espindola <espindola@google.com>
15733
15734 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
15735 (extract_code_and_val_from_cond): Use
15736 extract_code_and_val_from_cond_with_ops.
15737
113c63b8
JH
157382008-04-01 Jan Hubicka <jh@suse.cz>
15739
15740 * function.c (free_after_compilation): Free epilogue_delay_list.
15741 (prepare_function_start): Assert that previous compilation was freed.
15742
ec24c3a3
JH
157432008-04-01 Jan Hubicka <jh@suse.cz>
15744 Jim Wilson <wilson@tuliptree.org>
15745 Andreas Tobler <andreast@gcc.gnu.org>
15746
15747 PR middle-end/35781
15748 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
15749 rtl.emit instead cfun->emit.
15750 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
15751 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
15752
1b82c3aa
BE
157532008-04-01 Ben Elliston <bje@au.ibm.com>
15754
15755 * doc/c-tree.texi (Function Basics): Fix grammatical error.
15756
2f908293
SP
157572008-03-31 Seongbae Park <seongbae.park@gmail.com>
15758
15759 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
15760 New options
15761 (fprofile-use): Add var flag_profile_use
380edc9f
UB
15762 * coverage.c (coverage_begin_output): Do not open a gcno file for
15763 output only if -ftest-coverage is set.
2f908293 15764 Do not add getpwd() to gcda file path.
380edc9f 15765 (build_gcov_info): Check the new flag
2f908293
SP
15766 flag_profile_datafile_relative_path.
15767 (coverage_init): Use profile_data_prefix.
15768 Read profile counter only if flag_profile_use is set.
15769 * opts.c (common_handle_option): New option fprofile-use=,
15770 fprofile-dir=, fprofile-generate=.
15771 * toplev.c (profile_data_prefix): New variable definition.
15772 * toplev.h (profile_data_prefix): New declaration.
15773 * doc/invoke.tex (Option Summary, Optimization Options):
15774 Add new options.
15775
1def9c3f
JW
157762008-03-31 James E. Wilson <wilson@tuliptree.org>
15777
380edc9f
UB
15778 * varasm.c (output_constant_pool_1): In LABEL_REF check,
15779 use tmp consistently.
048ffb8f 15780
1def9c3f
JW
15781 PR target/35695
15782 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
15783 * config/ia64/ia64.c (rtx_needs_barrier): Handle
15784 UNSPEC_FR_RECIP_APPROX_RES.
15785 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
15786
bb686a19
VR
157872008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
15788
15789 PR c/35750
15790 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
15791
a12bdb97
AP
157922008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
15793
15794 PR middle-end/30186
15795 * fold-const.c (fold_indirect_ref_1): Support accessing non first
15796 element of the vector via a pointer.
15797
2d4bba80
ILT
157982008-03-31 Ian Lance Taylor <iant@google.com>
15799
380edc9f 15800 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 15801
bd60bab2
JH
158022008-03-31 Jan Hubicka <jh@suse.cz>
15803
15804 * builtins.c (expand_builtin_setjmp_receiver): Update call of
15805 get_arg_pointer_save_area.
15806 * expr.c (init_expr): Just clear out rtl.expr.
15807 * function.c (free_after_compilation): Clear out whole RTL structure.
15808 (get_func_frame_size): Merge into ...
15809 (get_frame_size): ... this one.
15810 (assign_stack_local_1): Merge into ...
15811 (assign_stack_local): ... this one.
15812 (expand_function_end): Update call of get_arg_pointer_save_area.
15813 (get_art_pointer_save_area): Remove cfun argument.
15814 * function.h (emit_status): regno_pointer_align does not need length
15815 attribute. Move x_regno_reg_rtx to ...
15816 (regno_reg_rtx): ... new global array.
15817 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
15818 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
15819 apply_args_value, forced_labels, stack_pointer_delta):
15820 Update accestors.
bd60bab2
JH
15821 (struct varasm_status): Move here from varasm.c
15822 (struct rtl_data): New. Move here some fields from struct function.
15823 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
15824 frame_offset, stack_check_probe_note, arg_pointer_save_area,
15825 used_temp_slots avail_temp_slots, temp_slot_level,
15826 nonlocal_goto_handler_labels): Update accesstors.
15827 (rtl): New global variable.
15828 (struct function): Move some fileds to rtl_data.
15829 (get_arg_pointer_save_area): Update prototype.
15830 * emit-rtl.c (rtl): Declare.
15831 (regno_reg_rtx): Declare.
380edc9f
UB
15832 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
15833 Update.
bd60bab2
JH
15834 (gen_reg_rtx): Update.
15835 (init_virtual_regs): Do not tate emit_status argument.
15836 (init_emit): Do not allocate emit.
15837 * varasm.c (varasm_statuc): Move to function.h.
15838 (n_deferred_constatns): Update accestor.
15839 (init_varasm_status): Do not allocate varasm_status.
15840 (force_const_mem, get_pool_size, output_constant_pool): Update.
15841 * stmt.c (force_label_rtx): Do not use x_ prefixes.
15842 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
15843
66f91b93
ZD
158442008-03-31 Zdenek Dvorak <ook@ucw.cz>
15845
15846 PR rtl-optimization/35729
15847 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
15848 references.
15849
66e1ecfe
L
158502008-03-31 H.J. Lu <hongjiu.lu@intel.com>
15851
15852 PR target/32000
15853 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
15854 load/store if memory is unaligned.
15855 (*movti_rex64): Likewise.
15856
15857 * config/i386/predicates.md (misaligned_operand): New.
15858
550386ad
AP
158592008-03-31 Andrew Pinski <pinskia@gmail.com>
15860
15861 PR tree-opt/35431
15862 * tree-ssa-phiopt.c (conditional_replacement): Return early for
15863 complex types.
15864
4e483a22
JB
158652008-03-31 Jan Beulich <jbeulich@novell.com>
15866
15867 * config/ia64/constraints.md: Add 'j' constraint.
15868 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
15869 (movdi_internal): Likewise.
15870
39ffbac9
VR
158712008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
15872
15873 PR c/35748
15874 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
15875
23594c97
L
158762008-03-30 H.J. Lu <hongjiu.lu@intel.com>
15877
15878 PR target/35757
15879 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
15880 proper error message for the third argument on blendpd and
15881 blendps.
15882
15883 * config/i386/sse.md (blendbits): New.
15884 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15885
8f0e2671
EB
158862008-03-30 Eric Botcazou <ebotcazou@adacore.com>
15887
15888 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
15889
96648603
RG
158902008-03-30 Richard Guenther <rguenther@suse.de>
15891
15892 PR middle-end/31023
15893 * fold-const.c (fold_sign_changed_comparison): Do leave
15894 conversions to base-types alone.
15895
3ac0963a
AP
158962008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
15897
15898 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
15899 the link register if one altivec register is be saved.
15900
744c6d6e
BE
159012008-03-30 Ben Elliston <bje@au.ibm.com>
15902
15903 * final.c (final_scan_insn): Remove if (0) code.
15904
dbc518f0
VR
159052008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
15906
15907 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
15908
ad387dad
L
159092008-03-28 H.J. Lu <hongjiu.lu@intel.com>
15910
15911 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
15912 of V4SFmode to ix86_binary_operator_ok.
15913
9aba5d22
UB
159142008-03-28 Uros Bizjak <ubizjak@gmail.com>
15915
15916 * config/i386/i386.c (override_options): Initialize
15917 ix86_veclib_handler to ix86_veclibabi_svml when
15918 -mveclibabi=svml is used.
15919 (ix86_veclibabi_svml): New function for SVML ABI style
15920 vectorization support.
15921 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
15922
2d3cd5d5
RAE
159232008-03-28 Rafael Espindola <espindola@google.com>
15924
15925 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
15926 (tree_binary_nonnegative_warnv_p): Make it public.
15927 (tree_single_nonnegative_warnv_p): Make it public.
15928 (tree_invalid_nonnegative_warnv_p): Make it public.
15929 (tree_unary_nonzero_warnv_p): Make it public.
15930 (tree_binary_nonzero_warnv_p): Make it public
15931 (tree_single_nonzero_warnv_p): Make it public.
15932 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
15933 (extract_range_from_binary_expr): Split the expr argument.
15934 (extract_range_from_unary_expr): Split the expr argument.
15935 (extract_range_from_comparison): Split the expr argument.
15936 (extract_range_from_expr): Use the new aux functions.
15937 (vrp_evaluate_conditional_warnv): Use
15938 vrp_evaluate_conditional_warnv_with_ops.
15939 * tree.h (tree_unary_nonzero_warnv_p): Declare.
15940 (tree_binary_nonzero_warnv_p): Declare.
15941 (tree_single_nonzero_warnv_p): Declare.
15942 (tree_expr_nonzero_warnv_p): Declare.
15943 (tree_unary_nonnegative_warnv_p): Declare.
15944 (tree_binary_nonnegative_warnv_p): Declare.
15945 (tree_single_nonnegative_warnv_p): Declare.
15946 (tree_invalid_nonnegative_warnv_p): Declare.
15947
2ab8dbf4
RG
159482008-03-28 Richard Guenther <rguenther@suse.de>
15949
15950 PR tree-optimization/30317
15951 PR tree-optimization/30911
15952 PR tree-optimization/34793
15953 * tree-vrp.c (set_and_canonicalize_value_range): New function.
15954 (struct assert_locus_d): New member EXPR.
15955 (register_new_assert_for): Add EXPR parameter to support
15956 ASSERT_EXPR <name, expr OP limit>.
15957 (register_edge_assert_for_1): Adjust callers.
15958 (find_assert_locations): Likewise.
9aba5d22 15959 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
15960 (extract_range_from_assert): Handle ASSERT_EXPRs
15961 of the form ASSERT_EXPR <name, expr OP limit>.
15962 (register_edge_assert_for_2): New helper registering
15963 asserts for comparisons. Recognize range tests of the form
15964 (unsigned)i - CST1 OP CST2.
15965 (register_edge_assert_for_1): Use it.
15966 (register_edge_assert_for): Likewise.
15967 (needs_overflow_infinity): Integer sub-types
15968 do not need overflow infinities.
15969 (vrp_val_is_max): The extreme values of integer sub-types
15970 are those of the base type.
15971 (vrp_val_is_min): Likewise.
15972 * tree.def (ASSERT_EXPR): Document extra allowed conditional
15973 expressions.
15974
fc4f3261
NC
159752008-03-28 Nick Clifton <nickc@redhat.com>
15976
f6d2671e 15977 PR target/31110
fc4f3261 15978 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 15979 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 15980
501fb355
AP
159812008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
15982
15983 PR target/31334
15984 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
15985 const_vector when all the vectors are constant.
15986
ff779f98
BW
159872008-03-27 Bob Wilson <bob.wilson@acm.org>
15988
15989 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
15990 comparisons.
15991 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
15992 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
15993 (scc_sf): New.
15994 (s<code>_sf): Use new scc_sf attribute for opcode names.
15995
e980df8e
TT
159962008-03-27 Tom Tromey <tromey@redhat.com>
15997
15998 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
15999 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
16000 config/spu/t-spu-elf, config/i386/t-interix,
16001 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
16002 config/i386/x-darwin, config/i386/x-mingw32,
16003 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
16004 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
16005 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
16006 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
16007 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
16008 config/rs6000/x-darwin, config/rs6000/t-rs6000,
16009 config/score/t-score-elf, config/arm/t-strongarm-pe,
16010 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
16011 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
16012 Revert automatic dependency patch.
16013
c84555eb
L
160142008-03-27 H.J. Lu <hongjiu.lu@intel.com>
16015
16016 PR target/35657
16017 * config/i386/i386.c (ix86_function_arg_boundary): Align
16018 decimal floating point to its natural boundary.
16019
ffd837fe
RG
160202008-03-27 Richard Guenther <rguenther@suse.de>
16021
16022 PR middle-end/35716
16023 * fold-const.c (fold_comparison): Restrict distinct decl
16024 comparison folding to VAR_DECLs and PARM_DECLs. Do not
16025 solely rely on operand_equal_p.
16026
6b4e94bc
RG
160272008-03-27 Richard Guenther <rguenther@suse.de>
16028
16029 PR c/32511
16030 * c-common.c (handle_weak_attribute): Reject combination of
16031 weak and inline.
16032
62bc00e2
RG
160332008-03-27 Richard Guenther <rguenther@suse.de>
16034
16035 PR tree-optimization/32810
16036 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
16037 conversions from DECL_INITIAL.
16038 (fold_const_aggregate_ref): Likewise from constructor elements.
16039
72425608
ZD
160402008-03-27 Zdenek Dvorak <ook@ucw.cz>
16041
16042 * tree-affine.h (aff_combination_expand): Declare.
16043 (get_inner_reference_aff): Likewise.
16044 * tree-affine.c (aff_combination_expand): Split out from
16045 tree_to_aff_combination_expand.
16046 (get_inner_reference_aff): New function.
16047 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
16048 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
16049 (struct lim_aux_data): sm_done field removed.
16050 (mem_ref_loc_p, mem_ref_locs_p): New types.
16051 (struct mem_ref): Added id, stored, accesses_in_loop,
16052 indep_loop, dep_loop, indep_ref, dep_ref fields.
16053 Removed is_stored, locs and next fields.
16054 (memory_accesses): New variable.
16055 (movement_possibility): Do not allow moving statements
16056 that store to memory.
16057 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
16058 New functions.
16059 (determine_max_movement): For statements with memory references,
16060 find the outermost loop in that the reference is independent.
16061 (move_computations_stmt): Mark the virtual operands for renaming.
16062 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
16063 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
16064 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
16065 add_vop_ref_mapping, create_vop_ref_mapping_loop,
16066 create_vop_ref_mapping, analyze_memory_references,
16067 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
16068 get_all_locs_in_loop, ref_always_accessed_p,
16069 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
16070 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
16071 store_motion_loop, store_motion): New functions.
16072 (struct vop_to_refs_elt): New type.
16073 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
16074 memref_hash, memref_eq, hoist_memory_references): Rewritten.
16075 (schedule_sm): Replaced by...
16076 (execute_sm): ... this.
16077 (determine_lsm_ref, hoist_memory_references,
16078 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
16079 find_more_ref_vops, free_mem_ref, free_mem_refs,
16080 determine_lsm_loop, determine_lsm): Removed.
16081 (tree_ssa_lim_finalize): Free data structures used by store motion.
16082 (tree_ssa_lim): Call analyze_memory_references. Use
16083 store_motion instead of determine_lsm.
72425608 16084
a929bc28
PB
160852008-03-27 Paolo Bonzini <bonzini@gnu.org>
16086
16087 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
16088 rename tmake_file to m68hc11/t-m68hc11.
16089 (mcore): Set inhibit_libc to true.
16090 * config.host (alpha*-dec-*vms*): Set extra_programs.
16091 (interix3*): Don't use host_xmake_file.
16092 * configure.ac: Let config.gcc override inhibit_libc.
16093 * configure: Regenerate.
16094
16095 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
16096 * config/t-openbsd-thread: Remove commented out lines.
22129589 16097
a929bc28
PB
16098 * config/x-interix: Remove.
16099
16100 * config/m68hc11/t-m68hc11-gas: Rename to...
16101 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
16102
16103 * config/mcore/t-mcore: Remove T_CFLAGS.
16104 * config/mcore/t-mcore-pe: Likewise.
16105
60d26958
PB
161062008-03-27 Paolo Bonzini <bonzini@gnu.org>
16107
16108 * configure.ac: Replace custom __GNU_SOURCE test with
16109 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
16110 * aclocal.m4: Regenerate.
16111 * configure: Regenerate.
16112 * config.in: Regenerate.
16113
bd03c084
RG
161142008-03-27 Richard Guenther <rguenther@suse.de>
16115
16116 * fold-const.c (target.h): Include.
16117 (fold_comparison): Fold comparison of addresses of decls
16118 that bind locally or of constants. Consolidate address folding code.
16119 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
16120 results from fold_binary_to_constant.
16121 (compare_values_warnv): Likewise.
16122
87a72aa8
AP
161232008-03-27 Andrew Pinski <pinskia@gmail.com>
16124
16125 PR middle-end/35429
16126 * fold-const.c (fold_truthop): Check for integeral types when folding
16127 a == 0 && b == 0 and a != 0 || b != 0 .
16128
6e1b3420
EB
161292008-03-26 Eric Botcazou <ebotcazou@adacore.com>
16130
16131 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
16132
33558d94
AS
161332008-03-26 Andreas Schwab <schwab@suse.de>
16134
16135 * doc/invoke.texi: Fix use of @item vs. @itemx.
16136
f6a9a9af
TT
161372008-03-26 Tom Tromey <tromey@redhat.com>
16138
16139 * Makefile.in (build/gensupport.o, build/print-rtl.o,
16140 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
16141 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
16142 build/gencodes.o, build/genconditions.o, build/genconfig.o,
16143 build/genconstants.o, build/genemit.o, build/genextract.o,
16144 build/genflags.o, build/genmddeps.o, build/genopinit.o,
16145 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
16146 options.h.
16147
2041e75c
RG
161482008-03-26 Richard Guenther <rguenther@suse.de>
16149
16150 Revert
16151 2008-03-26 Richard Guenther <rguenther@suse.de>
16152
16153 * fold-const.c (target.h): Include.
16154 (fold_comparison): Fold comparison of addresses of two decls
16155 that bind locally. Consolidate address folding code.
16156
aefa9d43
KG
161572008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16158
16159 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
16160 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
16161 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
16162 dconstsqrt2, dconstthird, dconste and/or dconst10.
16163 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
16164 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
16165 dconstsqrt2, dconste): Delete.
16166 (init_emit_once): Likewise. Simplify initializing dconstm1.
16167 Constify variable.
16168 * real.c (get_real_const): New.
16169 * real.h (dconst3, dconst10, dconstm2, dconstthird,
16170 dconstsqrt2, dconste): Delete.
16171 (real_value_const, get_real_const): New.
16172
35dd7cc3
L
161732008-03-26 H.J. Lu <hongjiu.lu@intel.com>
16174
16175 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
16176
16177 * config/i386/i386.c (ix86_function_arg_boundary): Check
16178 BIGGEST_ALIGNMENT instead of 128.
16179 (setup_incoming_varargs_64): Likewise.
16180
f91ed78d
TT
161812008-03-26 Tom Tromey <tromey@redhat.com>
16182
16183 * Makefile.in (DEPFILES): Add missing '/'.
16184
4990038d
RG
161852008-03-26 Richard Guenther <rguenther@suse.de>
16186
16187 * fold-const.c (target.h): Include.
16188 (fold_comparison): Fold comparison of addresses of two decls
16189 that bind locally. Consolidate address folding code.
16190
813ab1d7
NC
161912008-03-26 Nick Clifton <nickc@redhat.com>
16192
16193 PR target/31232
16194 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
16195 not allow INT+INT as a legitimate addressing mode.
16196
cf3135aa
RG
161972008-03-26 Richard Guenther <rguenther@suse.de>
16198
16199 * tree-flow.h (widen_bitfield): Remove declaration.
16200 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
16201 (widen_bitfield): Remove function.
16202 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
16203 code.
16204
fd88fd09
AP
162052008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
16206
22ec849c 16207 PR target/31558
fd88fd09
AP
16208 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
16209 error_mark_node's.
16210
fb959f72
RS
162112008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
16212
16213 PR rtl-optimization/35232
16214 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
16215 (forget_old_reloads_1, forget_marked_reloads): Don't clear
16216 reg_reloaded_call_part_clobbered here.
16217 (reload_regs_reach_end_p): New function.
16218 (reload_reg_rtx_for_input): New variable.
16219 (reload_reg_rtx_for_output): Likewise.
16220 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22129589 16221 when reassigning a pseudo register. Load reloadreg from
fb959f72
RS
16222 reload_reg_rtx_for_input, moving the mode and register
16223 calculation to...
16224 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
16225 instead of the original when deciding whether an input reload
16226 would be a no-op or whether an output reload can be deleted.
16227 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
16228 when setting up new_spill_reg_store. Load it from
16229 reload_reg_rtx_for_output, moving the mode and register
16230 calculation to...
16231 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
16232 instead of the original when deciding whether an output reload
16233 would be a no-op. Do the same when modifying insn notes.
16234 Use rtx_equal_p instead of == to compare the registers.
16235 (inherit_piecemeal_p): Take a mode and two register numbers
16236 as argument.
16237 (emit_reload_insns): Clear new_spill_reg_store for every hard
16238 register in the reload register. Remove spill registers
16239 from reg_reloaded_valid before considering whether to record
16240 inheritance information for them. Use reload_reg_rtx_for_output
16241 instead of reg_rtx when recording output reloads. Use
16242 reload_reg_rtx_for_input instead of reg_rtx when recording
16243 input reloads. Set or clear reg_reloaded_call_part_clobbered
16244 at the same time as setting reg_reloaded_valid.
16245 (delete_output_reload): Add a new_reload_reg parameter and use it
16246 instead of rld[j].reg_rtx.
16247 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
16248 calls accordingly.
16249
a8c86f3f
TT
162502008-03-25 Tom Tromey <tromey@redhat.com>
16251
16252 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
16253 (build/genattr.o): Likewise.
16254 (build/genattrtab.o): Likewise.
16255 (build/gencodes.o): Likewise.
16256 (build/genconfig.o): Likewise.
16257 (build/genconstants.o): Likewise.
16258 (build/genemit.o): Likewise.
16259 (build/genextract.o): Likewise.
16260 (build/genflags.o): Likewise.
16261
f4d3e7fd 162622008-03-25 Bob Wilson <bob.wilson@acm.org>
22129589 16263
f4d3e7fd
BW
16264 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
16265 instead of size_int for integer types.
16266 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
16267 to match type of MINUS_EXPR.
22129589 16268
55d059d3
TT
162692008-03-25 Tom Tromey <tromey@redhat.com>
16270
16271 * configure: Rebuilt.
16272 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
16273 Makefile.
16274
2fe3178b
TT
162752008-03-25 Tom Tromey <tromey@redhat.com>
16276
16277 * config/x-solaris (host-solaris.o): Update.
16278 * config/x-linux (host-linux.o): Update.
16279 * config/x-hpux (host-hpux.o): Update.
16280 * config/x-darwin (host-darwin.o): Update.
16281 * config/v850/t-v850e (v850-c.o): Update.
16282 * config/v850/t-v850 (v850-c.o): Update.
16283 * config/t-vxworks (vxworks.o): Update.
16284 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 16285 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
16286 * config/spu/t-spu-elf (spu-c.o): Update.
16287 (spu.o): Remove.
16288 * config/sh/t-symbian (sh-c.o): Update.
16289 (symbian.o): Update.
16290 * config/sh/t-sh (sh-c.o): Update.
16291 * config/score/t-score-elf (score7.o, score3.o): Update.
16292 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
16293 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
16294 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
16295 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
16296 (rs6000.o): Remove.
16297 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
16298 * config/m32c/t-m32c (m32c-pragma.o): Update.
16299 * config/ia64/t-ia64 (ia64-c.o): Update.
16300 * config/i386/x-mingw32 (host-mingw32.o): Update.
16301 * config/i386/x-i386 (driver-i386.o): Update.
16302 * config/i386/x-darwin (host-i386-darwin.o): Update.
16303 * config/i386/x-cygwin (host-cygwin.o): Update.
16304 * config/i386/t-nwld (nwld.o): Update.
16305 * config/i386/t-netware (netware.o): Update.
16306 * config/i386/t-interix (winnt.o): Update.
16307 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
16308 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
16309 msformat-c.o): Update.
16310 * config/bfin/t-bfin-linux (generated_files): Add
16311 linux-sysroot-suffix.h.
16312 * config/arm/t-wince-pe (pe.o): Update.
16313 * config/arm/t-strongarm-pe (pe.o): Update.
16314 * config/arm/t-pe (pe.o): Update.
16315 * config/arm/t-arm (arm-c.o): Update.
16316 * doc/install.texi (Prerequisites): Require make 3.80.
16317 * Makefile.in: Remove .o targets.
16318 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
16319 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
16320 (simple_generated_h, simple_generated_c): Move earlier.
16321 (generated_files): New variable.
16322 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
16323 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
16324 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
16325 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
16326 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
16327 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
16328 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
16329 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
16330 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
16331 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
16332 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
16333 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
16334 (.c.o): Remove.
16335 (COMPILE.base, COMPILE): New variables.
16336 (%.o): New pattern rule.
16337 (ALL_HOST_OBJS): New variable.
16338 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
16339 (dummy-checksum.o, cc1-checksum.o): Remove.
16340 (DRIVER_SHLIB): New variable.
16341 (DRIVER_DEFINES): Use it.
16342 (gencondmd.c): Move out of build/.
16343 (s-conditions): Update.
16344 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
16345 (ALL_BUILD_OBJS): Likewise.
16346 (build/%.o): Use BUILDCOMPILE.
16347 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
16348 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
16349 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
16350 build/gencheck.o, build/gencodes.o, build/genconditions.o,
16351 build/genconfig.o, build/genconstants.o, build/genemit.o,
16352 build/genextract.o, build/genflags.o, build/genmddeps.o,
16353 build/genopinit.o, build/genoutput.o, build/genpeep.o,
16354 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
16355 build/gen-protos.o, build/scan.o, build/fix-header.o,
16356 build/scan-decls.o): Simplify.
16357 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
16358 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
16359 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 16360 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 16361 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 16362 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 16363 * configure: Rebuilt.
4acc3f42
UB
16364 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
16365 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 16366
5ade1ed2
DG
163672008-03-25 Douglas Gregor <doug.gregor@gmail.com>
16368
4acc3f42
UB
16369 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
16370 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 16371
de6adfa2
N
163722008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
16373
16374 * config/sh/constraints.md (Pso, Psz): New constraints.
16375 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
16376 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
16377
f326a6cb
N
163782008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
16379
4acc3f42 16380 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
16381 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
16382
b4b0018b
N
163832008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
16384
16385 * config/sh/sh.md (prefetch): Add condition for SH2A target.
22129589 16386 (prefetch_sh2a): New.
b4b0018b 16387
e990551a
JS
163882008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
16389 Naveen.H.S <naveen.hs@kpitcummins.com>
16390
16391 * config/sh/constraints.md (I28): New constraint.
16392 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 16393 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 16394
561642fa
AP
163952008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
16396 Jayant Sonar <Jayant.sonar@kpitcummins.com>
16397 Naveen.H.S <naveen.hs@kpitcummins.com>
16398
16399 * config/sh/sh.c (SH_ATTRIBUTES): Define.
16400 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
16401 (print_operand): Handle resbank in %@ operand code.
16402 (sh_encode_section_info): New.
16403 (push_regs): Add conditions for resbank.
16404 (sh_expand_epilogue): Likewise.
16405 (sh_insert_attributes): Likewise.
16406 (sh_attribute_table): Likewise.
16407 (sh_handle_resbank_handler_attribute): New.
16408 (sh2a_handle_function_vector_handler_attribute): New.
16409 (sh2a_is_function_vector_call): New.
16410 (sh2a_get_function_vector_number): New.
16411 (sh2a_function_vector_p): New.
16412 (sh_cfun_resbank_handler_p): New.
16413 * config/sh/sh.md (calli): Emit jsr/n if possible.
16414 (calli_tbr_rel): New.
16415 (calli_pcrel): Emit jsr/n if possible.
16416 (return_i): Emit rts/n if possible.
16417 (call_valuei_tbr_rel): New.
16418 (call_valuei_pcrel): Add condition for SH2A target.
16419 (call_value): Likewise.
16420 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
16421 (sh2a_get_function_vector_number): Likewise.
16422 (sh2a_is_function_vector_call): Likewise.
16423 * doc/extend.texi: Document TBR relative addressing of SH2A.
16424 (resbank): Add description for SH2A.
16425
1b24a790
RG
164262008-03-24 Richard Guenther <rguenther@suse.de>
16427
16428 PR c/22371
16429 * gimplify.c (gimplify_modify_expr): For frontend type-correct
16430 pointer assignments change conversions according to middle-end rules.
16431 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
16432 * configure.ac: Include type checking in yes.
16433 * configure: Regenerate.
16434
52249a2e
MLI
164352008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16436
16437 * diagnostic.c (diagnostic_count_diagnostic): Delete.
16438 (diagnostic_report_diagnostic): Update. Handle ICEs here.
22129589 16439
37ca4602
NS
164402008-03-24 Nathan Sidwell <nathan@codesourcery.com>
16441
16442 * gthr-vxworks.h (UNUSED): Define.
16443
2ff8644d
L
164442008-03-23 H.J. Lu <hongjiu.lu@intel.com>
16445
9aba5d22 16446 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 16447
1c42f5c6
ZM
164482008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
16449
16450 * doc/extend.texi (Function Attributes): Add missing comma in the
16451 example of the "alloc_size" attribute.
22129589 16452
808e68bb
UB
164532008-03-23 Uros Bizjak <ubizjak@gmail.com>
16454
16455 Revert:
16456 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
16457
16458 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16459 32bit host.
16460
16461 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
16462
16463 PR target/35496
16464 * stor-layout.c (update_alignment_for_field): Set minimum alignment
16465 of the underlying type of a MS bitfield layout to the natural
16466 alignment of the type.
16467
16468 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
16469
16470 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
16471 to their natural alignment to avoid store forwarding stalls.
16472
1b738915
RG
164732008-03-22 Richard Guenther <rguenther@suse.de>
16474
16475 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
16476 For PHI nodes verify the address is invariant.
16477 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
16478 (get_symbol_constant_value): Use is_gimple_min_invariant.
16479 (maybe_fold_stmt_indirect): Likewise.
16480
18b526e8
RS
164812008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
16482
16483 PR rtl-optimization/33927
16484 * Makefile.in (dse.o): Depend on $(TM_P_H).
16485 * expr.h (extract_low_bits): Declare.
16486 * expmed.c (extract_low_bits): New function.
16487 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
16488 * dse.c: Include tm_p.h.
16489 (find_shift_sequence): Remove the read_reg argument and return the
16490 read value. Emit the instructions instead of returning them.
16491 Iterate on new_mode rather than calculating it each time.
16492 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
16493 source to NEW_MODE and extract_low_bits to convert the shifted
16494 value to READ_MODE.
16495 (replace_read): Allow the load and store to have different mode
16496 classes. Use extract_low_bits when SHIFT == 0. Create the shift
16497 or extraction instructions before trying the replacement. Update
16498 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
16499
48e55066
UB
165002008-03-22 Uros Bizjak <ubizjak@gmail.com>
16501
16502 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
16503 to their natural alignment to avoid store forwarding stalls.
16504
94e98316
AP
165052008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
16506
e8afc0cb 16507 PR target/27946
94e98316
AP
16508 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
16509 encouraging but not allowing gprs for input;
16510 change the input constraint to !f#r.
16511 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
16512 gprs for output;
16513 change the output constraint to !f#r.
16514
7fb1431b
UB
165152008-03-21 Uros Bizjak <ubizjak@gmail.com>
16516
16517 PR target/13958
16518 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
16519 corresponding post-reload splitters.
16520 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
16521 when x87 FP math is selected.
16522 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
16523 New function prototype.
16524 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
16525 unreachable function to ease macroization of insn patterns.
16526
ed2024ba
MJ
165272008-03-21 Martin Jambor <mjambor@suse.cz>
16528
16529 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
16530 reference dumps if ddr is NULL or dependence is unknown.
16531
06644a07
KK
165322008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
16533
16534 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
16535 unsigned extension into account.
16536 (ATOMIC_COMPARE_AND_SWAP): Likewise.
16537 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
16538 Do computations on a scratch register.
16539
ad6003f2
RG
165402008-03-21 Richard Guenther <rguenther@suse.de>
16541
16542 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
16543 Use is_gimple_min_invariant instead of TREE_INVARIANT.
16544 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
16545 * tree-ssa-dom.c (record_equality): Likewise.
16546 * tree-inline.c (copy_body_r): Likewise.
16547 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
16548 TREE_INVARIANT.
16549
2acdc1fb
KK
165502008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
16551
16552 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
16553 as 'delete_unused' argument.
16554
16ac8575
RG
165552008-03-20 Richard Guenther <rguenther@suse.de>
16556
16557 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
16558 special casing of constant qualifiers.
16559 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
16560 care about them in general.
16561 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
16562 regardless of their type.
16563 (fold_stmt_r): Forcefully fold *& if we end up with that.
16564
433d52fd
PB
165652008-03-20 Paul Brook <paul@codesourcery.com>
16566
16567 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
16568 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
16569 linker flags.
16570 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
16571 definition.
16572 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
16573 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
16574
7621f5d5
VR
165752008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
16576
16577 * common.opt (Wmudflap): New option.
16578 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
16579 (mx_register_decls): Likewise.
16580 (mudflap_finish_file): Likewise.
16581 * doc/invoke.texi: Document -Wno-mudflap.
16582
165832008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
16584
16585 * c-format.c (replace_format_name_to_system_name): New.
16586 (cmp_attribs): New.
16587 (convert_format_name_to_system_name): New.
16588 (decode_format_attr): Add use of convert_format_name_to_system_name.
16589 (format_types_orig): Add gnu_ prefix to names.
16590 (check_format_info_main): Special treating of \0 escaped names for
16591 supporting multi-character format specifiers as I32, I64.
16592 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
16593 (gnu_target_overrides_format_attributes): New.
16594 * c-format.h: Add structure target_ovr_attr to hold
16595 system specific formatter names.
16596 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
16597 msformat-c.o file to c_target_objs and cxx_target_objs.
16598 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16599 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
16600 (TARGET_N_FORMAT_TYPES): New.
16601 * config/i386/msformat-c.c: New.
16602 * config/i386/t-cygming: Add build rule for msformat-c.o.
16603 * doc/extend.texi: Add new format names gnu_* and ms_* and
16604 further details.
16605 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
16606
4e359692
IR
166072008-03-20 Ira Rosen <irar@il.ibm.com>
16608
16609 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
16610 optimizations turned on under -O3.
16611 (ftree-vectorize): Add that the flag is turned on with -O3.
16612
41129be2
BE
166132008-03-20 Ben Elliston <bje@au.ibm.com>
16614
16615 * regmove.c (try_auto_increment): Fix spelling error in comment.
16616 * final.c (final_scan_insn): Likewise.
16617
1b1d8f88
UB
166182008-03-20 Uros Bizjak <ubizjak@gmail.com>
16619
16620 PR target/14552
16621 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
16622 allocator preferences for "y" and "r" class registers.
16623 ("*mov<mode>_internal"): Ditto.
16624 ("*movv2sf_internal_rex64"): Ditto.
16625 ("*movv2sf_internal"): Ditto.
16626
05e6ee93
MM
166272008-03-19 Michael Matz <matz@suse.de>
16628
16629 PR middle-end/35616
16630 * calls.c (expand_call): Check overlap of arguments with call
16631 address for sibcalls.
16632
cd7e0bd4
UB
166332008-03-19 Uros Bizjak <ubizjak@gmail.com>
16634
16635 PR target/35496
16636 * stor-layout.c (update_alignment_for_field): Set minimum alignment
16637 of the underlying type of a MS bitfield layout to the natural
16638 alignment of the type.
16639
8ddbbcae
JH
166402008-03-19 Jan Hubicka <jh@suse.cz>
16641
16642 PR other/35094
16643 * toplev.c (decode_d_option): Handle all CPP flags.
16644 * tree-vrp.c: Update tree_pass descriptors.
16645 * regrename.c: Update tree_pass descriptors.
16646 * fwprop.c: Update tree_pass descriptors.
16647 * doc/invoke.texi: Remove documentation of dropped -d? flags.
16648 * tree-into-ssa.c: Update tree_pass descriptors.
16649 * tree-dump.c: Update tree_pass descriptors.
16650 * tree-complex.c: Update tree_pass descriptors.
16651 * tree-dump.h: Update tree_pass descriptors.
16652 * see.c: Update tree_pass descriptors.
16653 * cgraphbuild.c: Update tree_pass descriptors.
16654 * tracer.c: Update tree_pass descriptors.
16655 * tree-loop-distribution.c: Update tree_pass descriptors.
16656 * cgraph.c: Update tree_pass descriptors.
16657 * postreload-gcse.c: Update tree_pass descriptors.
16658 * postreload.c: Update tree_pass descriptors.
16659 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
16660 * tree-tailcall.c: Update tree_pass descriptors.
16661 * tree-pass.h (tree_opt_pass): Rename to ...
16662 (opt_pass) ... this one; add "type" field and remove letter field.
16663 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
16664 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
16665 all_lowering_passes): Update declaration.
16666 * ipa-cp.c: Update tree_pass descriptors.
16667 * final.c: Update tree_pass descriptors.
16668 * omp-low.c: Update tree_pass descriptors.
16669 * tree-ssa-dse.c: Update tree_pass descriptors.
16670 * ipa-reference.c: Update tree_pass descriptors.
16671 * tree-ssa-uncprop.c: Update tree_pass descriptors.
16672 * auto-inc-dec.c: Update tree_pass descriptors.
16673 * reorg.c: Update tree_pass descriptors.
16674 * cgraphunit.c: Update tree_pass descriptors.
16675 * tree-ssa-copyrename.c: Update tree_pass descriptors.
16676 * tree-ssa-ccp.c: Update tree_pass descriptors.
16677 * df-core.c: Update tree_pass descriptors.
16678 * mode-switching.c: Update tree_pass descriptors.
16679 * tree-nomudflap.c: Update tree_pass descriptors.
16680 * modulo-sched.c: Update tree_pass descriptors.
16681 * ipa-pure-const.c: Update tree_pass descriptors.
16682 * cse.c: Update tree_pass descriptors.
16683 * web.c: Update tree_pass descriptors.
16684 * tree-stdarg.c: Update tree_pass descriptors.
16685 * tree-ssa-math-opts.c: Update tree_pass descriptors.
16686 * tree-ssa-dom.c: Update tree_pass descriptors.
16687 * tree-nrv.c: Update tree_pass descriptors.
16688 * tree-ssa-alias.c: Update tree_pass descriptors.
16689 * loop-init.c: Update tree_pass descriptors.
16690 * gimple-low.c: Update tree_pass descriptors.
16691 * ipa-inline.c: Update tree_pass descriptors.
16692 * tree-ssa-sink.c: Update tree_pass descriptors.
16693 * global.c: Update tree_pass descriptors.
16694 * ifcvt.c: Update tree_pass descriptors.
16695 * jump.c: Update tree_pass descriptors.
16696 * predict.c: Update tree_pass descriptors.
16697 * tree-ssa-loop.c: Update tree_pass descriptors.
16698 * recog.c: Update tree_pass descriptors.
16699 * dse.c: Update tree_pass descriptors.
16700 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
16701 * tree-eh.c: Update tree_pass descriptors.
16702 * regmove.c: Update tree_pass descriptors.
16703 * local-alloc.c
16704 * function.c: Update tree_pass descriptors.
16705 * tree-vectorizer.c: Update tree_pass descriptors.
16706 * gcse.c: Update tree_pass descriptors.
16707 * ipa-type-escape.c: Update tree_pass descriptors.
16708 * tree-if-conv.c: Update tree_pass descriptors.
16709 * init-regs.c: Update tree_pass descriptors.
16710 * ipa.c: Update tree_pass descriptors.
16711 * tree-ssa-phiopt.c: Update tree_pass descriptors.
16712 * rtl-factoring.c: Update tree_pass descriptors.
16713 * lower-subreg.c: Update tree_pass descriptors.
16714 * bt-load.c: Update tree_pass descriptors.
16715 * tree-dfa.c: Update tree_pass descriptors.
16716 * except.c: Update tree_pass descriptors.
16717 * emit-rtl.c: Update tree_pass descriptors.
16718 * cfgexpand.c: Update tree_pass descriptors.
16719 * tree-cfgcleanup.c: Update tree_pass descriptors.
16720 * cfgcleanup.c: Update tree_pass descriptors.
16721 * tree-ssa-pre.c: Update tree_pass descriptors.
16722 * tree-sra.c: Update tree_pass descriptors.
16723 * tree-mudflap.c: Update tree_pass descriptors.
16724 * tree-ssa-copy.c: Update tree_pass descriptors.
16725 * cfglayout.c: Update tree_pass descriptors.
16726 * tree-ssa-forwprop.c: Update tree_pass descriptors.
16727 * tree-ssa-dce.c: Update tree_pass descriptors.
16728 * tree-ssa.c: Update tree_pass descriptors.
16729 * regclass.c: Update tree_pass descriptors.
16730 * integrate.c: Update tree_pass descriptors.
16731 * tree-optimize.c: Update tree_pass descriptors.
16732 * tree-ssa-phiprop.c: Update tree_pass descriptors.
16733 * tree-object-size.c: Update tree_pass descriptors.
16734 * combine.c: Update tree_pass descriptors.
16735 * tree-outof-ssa.c: Update tree_pass descriptors.
16736 * bb-reorder.c: Update tree_pass descriptors.
16737 * stack-ptr-mod.c: Update tree_pass descriptors.
16738 * var-tracking.c: Update tree_pass descriptors.
16739 * tree-profile.c: Update tree_pass descriptors.
16740 * tree-vect-generic.c: Update tree_pass descriptors.
16741 * reg-stack.c: Update tree_pass descriptors.
16742 * sched-rgn.c: Update tree_pass descriptors.
16743 * tree-ssa-structalias.c: Update tree_pass descriptors.
16744 * tree-cfg.c: Update tree_pass descriptors.
16745 * passes.c (current_pass): Update declaration.
16746 (finish_optimization_passes): Update.
16747 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
16748 (register_one_dump_file, register_dump_files_1, next_pass_1):
5617c135 16749 Update arguments.
8ddbbcae
JH
16750 (init_optimization_passes): Update handling of new types.
16751 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
16752 * ipa-struct-reorg.c: Update tree_pass descriptors.
16753 * tree-ssa-reassoc.c: Update tree_pass descriptors.
16754 * combine-stack-adj.c: Update tree_pass descriptors.
16755 * cfgrtl.c: Update tree_pass descriptors.
16756 * dce.c: Update tree_pass descriptors.
16757 * tree-ssanames.c: Update tree_pass descriptors.
16758
8cb3ee37
RG
167592008-03-19 Richard Guenther <rguenther@suse.de>
16760
16761 PR middle-end/35609
4990038d
RG
16762 * tree-ssa.c (walk_data): New structure.
16763 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
16764 instead of "is".
16765 (execute_early_warn_uninitialized): Compute post-dominators.
16766 Initialize always_executed before processing each basic block.
16767
34614fff
MP
167682008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
16769
16770 PR target/35504
16771 * config/i386/i386.c (x86_this_parameter): Calculate correct location
16772 of "this" pointer when "regparm = N" or "fastcall" is in effect.
16773
c15477fb
RW
167742008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16775
16776 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
16777
ac5dc795
PB
167782008-03-18 Paolo Bonzini <bonzini@gnu.org>
16779
34614fff
MP
16780 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
16781 is true.
16782 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
16783 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
16784 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
16785 target after ignore has been set, and move there also the commputation
16786 of subtarget and original_target.
16787 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
16788 (LANG_HOOKS_INITIALIZER): Remove it.
16789 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 16790
b80280f2
RG
167912008-03-18 Richard Guenther <rguenther@suse.de>
16792
16793 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
16794 found an expression with constants, note that in the VN for the lhs.
16795 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
16796 fold them to constants if possible. Run cleanup_cfg if done so.
16797 (execute_pre): Return todo.
16798 (do_pre): Likewise.
16799 (execute_fre): Likewise.
16800 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
16801 of constants.
16802 (get_prop_source_stmt): Look through pointer conversions.
16803
2e28e797
JH
168042008-03-18 Jan Hubicka <jh@suse.cz>
16805
16806 * tree-pretty-print.c: Include predict.h.
16807 (dump_generic_node): Dump predictor.
16808 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
16809 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
16810 * gimple-low.c (lower_stmt): Likewise.
16811 * expr.c (expand_expr_real): Likewise.
16812 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
16813 them.
16814 (build_predict_expr, build_predict_expr): New.
16815 * predict.h (predictor_name, build_predict_expr): Update.
16816 * c-typeck.c (c_finish_bc_stmt): Add prediction.
16817 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
16818 * predict.def (PRED_CONTINUE): Update hitrate.
16819 * tree.def (PREDICT_EXPR): Define.
16820 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
16821 do not handle BIND_EXPR.
16822 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
16823 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
16824 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
16825 operands.
16826
52f1c7ed
MM
168272008-03-18 Michael Matz <matz@suse.de>
16828
16829 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
16830
c8ae0bec
RG
168312008-03-18 Richard Guenther <rguenther@suse.de>
16832
16833 * tree-gimple.h (is_gimple_invariant_address): Declare.
16834 (is_gimple_constant): Likewise.
16835 * tree-gimple.c (is_gimple_constant): New function.
16836 (is_gimple_invariant_address): Likewise.
16837 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
16838 and is_gimple_invariant_address.
16839 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
16840 previous change.
16841 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
16842 an addressable base.
16843
8119fc93
JJ
168442008-03-18 Jakub Jelinek <jakub@redhat.com>
16845
16846 PR middle-end/35611
16847 * gimplify.c (gimplify_expr): Gimplify second operand of
16848 OMP_ATOMIC_LOAD.
16849
c4e5b5a8
RG
168502008-03-17 Richard Guenther <rguenther@suse.de>
16851
16852 PR tree-optimization/19637
16853 * fold-const.c (fold_unary): Remove restrictions of removing
16854 intermediate pointer-conversions (P2)(P1)P0.
16855 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
16856 conversion to void pointer.
16857 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
16858
fcb9237b
JW
168592008-03-16 James E. Wilson <wilson@tuliptree.org>
16860
16861 PR debug/31510
16862 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
16863 emulated thread local variables.
16864
461f8762
RG
168652008-03-16 Richard Guenther <rguenther@suse.de>
16866
16867 PR middle-end/35607
16868 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
16869 expand TREE_INVARIANT operations that are not gimple invariant.
16870
2a31c49c
HPN
168712008-03-16 Hans-Peter Nilsson <hp@axis.com>
16872
16873 * doc/extend.texi (Alignment): Say that the ABI controls
16874 the __alignof__ for non-strict-alignment targets rather
16875 than being a recommendation.
16876
80efdb6a
PB
168772008-03-15 Paul Brook <paul@codesourcery.com>
16878
16879 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
16880 annotations.
16881 (arm_output_fn_unwind): Mark functions that can not be unwound.
16882
ff069900
PB
168832008-03-15 Paul Brook <paul@codesourcery.com>
16884
16885 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
16886 extension instructions.
16887
87e1e42b
RG
168882008-03-15 Richard Guenther <rguenther@suse.de>
16889
16890 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
16891 and fold constant aggregate refs.
16892 (fold_const_aggregate_ref): Handle string constants
16893 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
16894 (evaluate_stmt): Simplify now that ccp_fold folds constant
16895 aggregate refs.
16896
ef87d898
PB
168972008-03-15 Paul Brook <paul@codesourcery.com>
16898
16899 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
16900 (extzv): Use gen_extzv_t2.
16901 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
16902
ed97ddc6
RG
169032008-03-15 Richard Guenther <rguenther@suse.de>
16904
16905 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
16906 (fold_const_aggregate_ref): Likewise.
16907 (get_value): Return NULL if we don't have any values.
16908 (ccp_finalize): Set const_val to NULL after freeing it.
16909 * tree-flow.h (get_symbol_constant_value): Declare.
16910 (fold_const_aggregate_ref): Likewise.
16911 * tree-ssa-sccvn.c (try_to_simplify): Use them.
16912
1fd89060
RG
169132008-03-15 Richard Guenther <rguenther@suse.de>
16914
16915 PR middle-end/35593
16916 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
16917 to not produce negative array indices if not allowed. Add
16918 parameter to indicate that.
16919 (maybe_fold_offset_to_component_ref): Allow negative array
16920 indices only for the first member of a structure.
16921 (maybe_fold_offset_to_reference): Allow negative array indices.
16922 (maybe_fold_stmt_addition): Likewise.
16923
693092fb 169242008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 16925 Anatoly Sokolov <aesok@post.ru>
693092fb 16926
b97d8153 16927 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
16928 (avr_arch): Add ARCH_AVR6.
16929 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5617c135 16930 (initial_elimination_offset): Initialize and use 'avr_pc_size'
693092fb
BH
16931 instead of fixed value 2.
16932 (print_operand_address): Use gs() asm specifier instead of pm().
16933 (avr_assemble_integer): (Ditto.).
16934 (avr_output_addr_vec_elt): (Ditto.).
16935 (print_operand): Handle "!" code.
22129589 16936 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
16937 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
16938 (AVR_HAVE_EIJMP_EICALL): Define.
16939 (AVR_3_BYTE_PC): Redefine.
16940 (AVR_2_BYTE_PC): (Ditto.).
16941 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
16942 (LINK_SPEC): Add atmega2560 and atmega2561.
22129589 16943 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
693092fb 16944 (crtm2561.o).
22129589 16945 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
16946 for 3 byte PC devices.
16947 (call_value_insn): (Ditto.).
16948 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
16949 (indirect_jump): Use only for for 2 byte PC devices.
16950 (*tablejump): (Ditto.).
16951 (*indirect_jump_avr6): Add insn.
16952 (*tablejump_rjmp): Don't use for 3 byte PC devices.
22129589 16953 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
16954 instead of ijmp for 3 byte PC devices.
16955 (__tablejump2__): (Ditto.).
b97d8153 16956 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22129589 16957 (MULITLIB_DIRNAMES): (Ditto.).
693092fb
BH
16958 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
16959
ab555a5b
UB
169602008-03-15 Uros Bizjak <ubizjak@gmail.com>
16961
16962 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
16963 "sse2_umulsidi3". Use V1DI mode for operand 0.
16964 ("mmx_psadbw"): Use V1DI mode for operand 0.
16965 * config/i386/i386-modes.def (V1SI): New vector mode.
16966 * config/i386/i386.c (struct builtin_description)
16967 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
16968 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
16969 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
16970 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
16971 v1di_ftype_v8qi_v8qi type.
16972 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
16973
16974 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
16975 __builtin_ia32_pmuludq]: Fix the mode of return value.
16976
8f78ed0e
RG
169772008-03-15 Richard Guenther <rguenther@suse.de>
16978
16979 PR middle-end/35595
16980 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
16981 being a PHI_NODE.
16982
66e58b33 169832008-03-14 Bob Wilson <bob.wilson@acm.org>
22129589 16984
66e58b33
BW
16985 * doc/invoke.texi (Option Summary, Xtensa Options): Document
16986 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
16987 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
16988 unless TARGET_SERIALIZE_VOLATILE is enabled.
16989 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
16990 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
16991 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
16992
896c8b96
RG
169932008-03-14 Richard Guenther <rguenther@suse.de>
16994
16995 PR tree-optimization/34172
16996 * tree-flow.h (refs_may_alias_p): Declare.
16997 (get_single_def_stmt): Likewise.
16998 (get_single_def_stmt_from_phi): Likewise.
16999 (get_single_def_stmt_with_phi): Likewise.
17000 * tree-dfa.c (refs_may_alias_p): New function.
17001 (get_single_def_stmt): Likewise.
17002 (get_single_def_stmt_from_phi): Likewise.
17003 (get_single_def_stmt_with_phi): Likewise.
17004 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
17005 (vn_reference_lookup_1): New helper function.
17006 (vn_reference_lookup): Walk the virtual use-def chain to
17007 continue searching for a match if the def does not alias the
17008 reference we are looking for.
17009
75dd1ae2
DE
170102008-03-14 David Edelsohn <edelsohn@gnu.org>
17011
17012 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
17013 archive and Perzl. Update The Written Word listing.
17014
3d45dd59
RG
170152008-03-14 Richard Guenther <rguenther@suse.de>
17016
17017 PR tree-optimization/34043
17018 PR tree-optimization/33989
17019 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
17020 when doing FRE.
17021 (bitmap_find_leader): Use extra argument to verify dominance
17022 relationship inside a basic-block.
17023 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
17024 (find_leader_in_sets): Adjust.
17025 (create_component_ref_by_pieces): Take extra argument for
17026 dominance check, handle lookup failures.
17027 (find_or_generate_expression): Likewise.
17028 (create_expression_by_pieces): Likewise.
17029 (insert_into_preds_of_block): Adjust.
17030 (create_value_expr_from): If asked for, verify all operands
17031 are in the blocks AVAIL_OUT set.
17032 (make_values_for_stmt): Check for SSA_NAMEs that are life
17033 over an abnormal edge.
17034 (compute_avail): Remove such check.
17035 (do_SCCVN_insertion): New function.
17036 (eliminate): If we do not find a leader suitable for replacement
17037 insert a replacement expression from SCCVN if available.
17038 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
17039 (struct vn_ssa_aux): Add needs_insertion flag.
17040 * tree-ssa-sccvn.c (may_insert): New global flag.
17041 (copy_reference_ops_from_ref): Value-number union member access
17042 based on its size, not type and member if insertion is allowed.
17043 (visit_reference_op_load): For a weak match from union type
17044 punning lookup a view-converted value and insert a SSA_NAME
17045 for that value if that is not found.
17046 (visit_use): Make dumps shorter. Do not disallow value numbering
17047 SSA_NAMEs that are life over an abnormal edge to constants.
17048 (free_scc_vn): Release inserted SSA_NAMEs.
17049 (run_scc_vn): New flag to specify whether insertion is allowed.
17050 Process SSA_NAMEs in forward order.
17051 * tree-ssa-loop-im.c (for_each_index): Handle invariant
17052 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
17053 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
17054 pointer type to/from integral types that do not change the
17055 precision to regular conversions.
17056
52eaae97
UB
170572008-03-13 Uros Bizjak <ubizjak@gmail.com>
17058
17059 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
17060 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
17061 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
17062 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
17063 input arguments and the mode of return value. Built-in functions
17064 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 17065
5f5f0635
AD
170662008-03-13 Alon Dayan <alond@il.ibm.com>
17067 Olga Golovanevsky <olga@il.ibm.com>
17068
17069 PR tree-optimization/35041
17070 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
17071 to locate the right position in a statement.
17072
1359ef39
UB
170732008-03-13 Uros Bizjak <ubizjak@gmail.com>
17074
17075 PR target/34000
17076 PR target/35553
17077 * config/i386/xmmintrin.h: Change all static inline functions to
17078 extern inline and add __gnu_inline__ attribute.
17079 * config/i386/bmintrin.h: Ditto.
17080 * config/i386/smmintrin.h: Ditto.
17081 * config/i386/tmmintrin.h: Ditto.
17082 * config/i386/mmintrin-common.h: Ditto.
17083 * config/i386/ammintrin.h: Ditto.
17084 * config/i386/emmintrin.h: Ditto.
17085 * config/i386/pmmintrin.h: Ditto.
17086 * config/i386/mmintrin.h: Ditto.
17087 * config/i386/mm3dnow.h: Ditto.
17088
d0fb20be
JJ
170892008-03-13 Jakub Jelinek <jakub@redhat.com>
17090
17091 PR middle-end/35185
17092 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
17093 (lower_omp_2): New function.
17094 (lower_omp_1, lower_omp): Rewritten.
17095
20cef83a
DS
170962008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
17097
17098 PR 35054
17099 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
17100 with the phrase "Microsoft Windows compilers".
17101 (Push/Pop Macro Pragmas): New subsection. Document
17102 #pragma push_macro and pragma pop_macro.
17103
5dea0c19
PB
171042008-03-12 Paul Brook <paul@codesourcery.com>
17105
17106 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
17107
d1b85efb
PB
171082008-03-12 Paul Brook <paul@codesourcery.com>
17109
17110 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
17111 (thumb2_alusi3_short): Exclude PLUS and MINUS.
17112 (thumb2_addsi_shortim): Rename ...
17113 (thumb2_addsi_short): ... to this. Allow register operands.
17114 (thumb2_subsi_short): New pattern.
17115 (thumb2_one_cmplsi2_short,
17116 thumb2_negsi2_short): New patterns and peepholes.
17117
09754904
PB
171182008-03-12 Paul Brook <paul@codesourcery.com>
17119
09754904
PB
17120 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
17121
a7438d6d
UB
171222008-03-12 Uros Bizjak <ubizjak@gmail.com>
17123
17124 * config/i386/i386.md (int_cond): New code iterator.
17125 (fp_cond): Ditto.
17126 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
17127 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
17128 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
17129 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
17130 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
17131 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
17132 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
17133 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
17134
954954d1
PB
171352008-03-12 Paul Brook <paul@codesourcery.com>
17136
17137 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
17138 instead of {arm,thumb}_compute_save_reg_mask.
17139 (output_return_instruction): Ditto.
17140 (thumb_unexpanded_epilogue): Ditto.
17141 (thumb1_expand_prologue): Ditto.
17142 (thumb1_output_function_prologue): Ditto.
17143 (arm_set_return_address): Ditto.
17144 (thumb_set_return_address): Ditto.
17145 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
17146 regs to achieve stack alignment.
17147 (thumb1_compute_save_reg_mask): Fix compiler warning.
17148 (arm_output_epilogue): Use offsets->saved_regs_mask.
17149 Adjust stack pointer by poping call clobered registers.
17150 (arm_expand_prologue): Use offsets->saved_regs_mask.
17151 Adjust stack pointer by pushing extra registers.
d0fb20be 17152 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 17153
c83bd37c
PB
171542008-03-12 Paolo Bonzini <bonzini@gnu.org>
17155
17156 PR tree-opt/35422
17157 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
17158 conversion to the operands of a multiplication.
17159
67514449
RG
171602008-03-12 Richard Guenther <rguenther@suse.de>
17161
17162 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
17163 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
17164 * timevar.def (TV_TREE_PHIPROP): Add.
17165 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
17166 pass description. Use TV_TREE_PHIPROP.
17167 * tree-ssa-forwprop.c: Remove phiprop code.
17168
7c8f7639
JJ
171692008-03-12 Jakub Jelinek <jakub@redhat.com>
17170
17171 PR middle-end/35549
17172 * omp-low.c (maybe_lookup_decl): Constify first argument.
17173 (use_pointer_for_field): Change last argument from bool to
17174 omp_context *. Disallow shared copy-in/out in nested
17175 parallel if decl is shared in outer parallel too.
17176 (build_outer_var_ref, scan_sharing_clauses,
17177 lower_rec_input_clauses, lower_copyprivate_clauses,
17178 lower_send_clauses, lower_send_shared_vars): Adjust callers.
17179
62878103
VK
171802008-03-12 Victor Kaplansky <victork@il.ibm.com>
17181 Ira Rosen <irar@il.ibm.com>
17182
17183 * tree-vectorizer.c (free_stmt_vec_info): New function.
17184 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
17185 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
17186 * tree-vectorizer.h (free_stmt_vec_info): Declare.
17187 * tree-vect-transform.c (vectorizable_conversion): Free
17188 vec_oprnds0 if it was allocated.
17189 (vect_permute_store_chain): Remove unused VECs.
17190 (vectorizable_store): Free VECs that are allocated in the..
17191 function.
17192 (vect_transform_strided_load, vectorizable_load): Likewise.
17193 (vect_remove_stores): Simplify the code.
17194 (vect_transform_loop): Move code to vect_remove_stores().
17195 Call vect_remove_stores() and free_stmt_vec_info().
17196
9dbd54be
JDA
171972008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17198
17199 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
17200 TARGET_HPUX. Revise comment.
17201 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
17202 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
17203 Use sr4 variant of `be' instruction when not generating PIC code.
17204 (attr_length_call): Adjust for above change.
17205
76a7d3ca
AP
172062008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
17207
17208 * ipa-reference.c (static_execute): Remove module_statics_const and
17209 associated setting code.
17210
40cca4f9
UB
172112008-03-11 Uros Bizjak <ubizjak@gmail.com>
17212
17213 PR target/35540
17214 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
17215 predicate for operand 1.
17216 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
17217 Use earlyclobber modifier for operand 1. Remove support for
17218 memory operands.
1b1d8f88 17219 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
17220 Use earlyclobber modifier for operand 1. Remove support for
17221 memory operands.
17222
ec6237e4 172232008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 17224 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
17225
17226 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
17227 (arm_compute_save_reg0_reg12_mask): Always
17228 check if register 11 must be saved. Always safe hard frame pointer
17229 when frame_pointer_needeed.
17230 (arm_compute_save_reg_mask): Save IP and PC
17231 only with apcs frames.
17232 (arm_output_epilogue): Adjust Thumb2 codepath to
17233 be also invoked and work for ARM non-apcs frames.
17234 (arm_expand_prologue): Don't bother saving IP
17235 for non-apcs frame, since it's not clobbered by
17236 prologue code. Implement non-apcs frame
17237 layout.
17238
2f6025a1
PB
172392008-03-11 Paolo Bonzini <bonzini@gnu.org>
17240
17241 PR rtl-optimization/35281
17242 * expr.c (convert_move): Use a new pseudo for the intermediate
17243 from_mode->word_mode result.
17244
30e257e5
PB
172452008-03-11 Paolo Bonzini <bonzini@gnu.org>
17246
ec6237e4
PB
17247 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
17248 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
17249 * toplev.c (compile_file): Don't call it.
30e257e5 17250
ab669042
UB
172512008-03-11 Uros Bizjak <ubizjak@gmail.com>
17252
17253 PR middle-end/35526
17254 * expr.c (store_expr): Call emit_block_move if the mode
17255 of "temp" RTX is BLKmode.
17256
1ffe34d9 172572008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 17258 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
17259
17260 PR tree-optimization/31358
17261 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
17262 the step with a NULL_TREE.
17263 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
17264 to sizetype if type is a pointer type.
17265 (add_candidate_1): Don't convert the base and step to
17266 the generic type if the orginal type is a pointer type.
17267 (add_iv_value_candidates): Use sizetype for the step
17268 if type is a pointer type.
17269 (cand_value_at): Likewise.
17270 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
17271 for pointer types.
17272 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
17273 Don't convert the tem affine to the type.
17274 (add_elt_to_tree): Use sizetype for the step if a pointer.
17275 Use POINTER_PLUS_EXPR for pointers.
17276 (aff_combination_to_tree): Use sizetype for the step if a
17277 pointer.
17278
dd6d5236
VM
172792008-03-10 Vladimir Makarov <vmakarov@redhat.com>
17280
17281 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
17282 Remove commutativity hint.
17283
8b46837c
JJ
172842008-03-10 Jakub Jelinek <jakub@redhat.com>
17285
5df27e4a
JJ
17286 PR c/35438
17287 PR c/35439
17288 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
17289 errorneous type. Check that v is a VAR_DECL.
17290
8b46837c
JJ
17291 PR middle-end/35099
17292 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
17293
725c2d32
L
172942008-03-10 H.J. Lu <hongjiu.lu@intel.com>
17295
17296 PR tree-optimization/35494
17297 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
17298 may be overriden at link and run time.
17299
3ba404df
RG
173002008-03-10 Richard Guenther <rguenther@suse.de>
17301
17302 PR tree-optimization/34677
17303 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
17304 (poolify_tree): Likewise.
17305 (modify_expr_template): Likewise.
17306 (poolify_modify_stmt): Likewise.
17307 (insert_fake_stores): Handle all component-ref style stores
17308 in addition to INDIRECT_REF. Also handle complex types.
17309 Do not poolify the inserted load.
17310 (realify_fake_stores): Do not rebuild the tree but only
17311 make it a SSA_NAME copy.
17312 (init_pre): Remove initialzation of modify_expr_template.
17313 Do not allocate modify_expr_node_pool.
17314 (fini_pre): Do not free modify_expr_node_pool.
17315
97e38a92
PB
173162008-03-10 Paul Brook <paul@codesourcery.com>
17317
17318 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
17319 to avoid conflicts.
17320
bd4dc3cd 173212008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 17322 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 17323
bd4dc3cd
PB
17324 * config/arm/cortex-r4.md: New.
17325 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
17326 insn attributes.
17327 * config/arm/arm.md: Include cortex-r4.md.
17328 (insn): Add smmls, sdiv and udiv values.
17329 (generic_sched): Don't use generic scheduling for Cortex-R4.
17330 (arm_issue_rate): New function.
17331 (TARGET_SCHED_ISSUE_RATE): Define.
17332
9886a872
SP
173332008-03-10 Sebastian Pop <sebastian.pop@amd.com>
17334
17335 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
17336
e5eff6a3
RG
173372008-03-10 Richard Guenther <rguenther@suse.de>
17338
17339 * tree-ssa-pre.c (get_sccvn_value): Simplify.
17340 (compute_avail): Do not add stmt uses to AVAIL_OUT.
17341
0d4c700c
PB
173422008-03-10 Paolo Bonzini <bonzini@gnu.org>
17343
17344 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
17345 Set default to true.
17346
802e3f8c
RW
173472008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17348
17349 * c.opt (Wsynth): Deprecate.
17350 * doc/invoke.texi (Option Summary, Warning Options): Document
17351 -Wno-format-contains-nul.
17352
be3d4789
UB
173532008-03-09 Uros Bizjak <ubizjak@gmail.com>
17354
17355 PR target/35496
3b509e33 17356 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
17357 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
17358
e83a75a7
IR
173592008-03-09 Ira Rosen <irar@il.ibm.com>
17360
17361 * config/rs6000/rs6000.c (builtin_description): Rename vector
17362 left shift operations.
17363 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
17364 (altivec_vsl<VI_char>): Rename to ...
17365 (ashl<mode>3): ... new name.
17366 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
17367 gen_ashlv4si3.
17368 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
17369
fc9161c1
RG
173702008-03-08 Richard Guenther <rguenther@suse.de>
17371
17372 * coverage.h (tree_coverage_counter_addr): Declare.
17373 * coverage.c (tree_coverage_counter_addr): New function.
17374 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
17375 before using again.
17376 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
17377 (tree_gen_one_value_profiler): Likewise.
17378 (tree_gen_ic_profiler): Likewise.
17379 (tree_gen_average_profiler): Likewise.
17380 (tree_gen_ior_profiler): Likewise.
17381
49a1fb2d
RG
173822008-03-08 Richard Guenther <rguenther@suse.de>
17383
17384 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
17385 (vn_binary_op_insert): Likewise.
17386 (vn_unary_op_lookup): Likewise.
17387 (vn_unary_op_insert): Likewise.
17388 (vn_nary_op_lookup): Declare.
17389 (vn_nary_op_insert): Likewise.
17390 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
17391 and binary hashes, use a single obstack for unary_op_pool
17392 and binary_op_pool.
17393 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
17394 a single struct vn_nary_op_s. Store tree code length and
17395 a variable number of operands.
17396 (struct vn_reference_op_struct): Remove unused op2.
17397 (vn_reference_op_eq): Do not compare op2.
17398 (vn_reference_op_compute_hash): Do not compute hash of op2.
17399 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
17400 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
17401 with vn_nary_op_compute_hash.
17402 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
17403 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
17404 vn_nary_op_lookup.
17405 (vn_unary_op_insert, vn_binary_op_insert): Replace with
17406 vn_nary_op_insert.
17407 (visit_unary_op): Call nary functions.
17408 (visit_binary_op): Likewise.
17409 (process_scc): Adjust for struct vn_tables_s changes.
17410 (allocate_vn_table): Likewise.
17411 (free_vn_table): Likewise.
17412 * tree-vn.c (vn_add): Call nary functions.
17413 (vn_lookup): Likewise.
17414
2725b75c
JJ
174152008-03-08 Jakub Jelinek <jakub@redhat.com>
17416
17417 PR target/35498
17418 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
17419 wdst back after sync_compare_and_swapqhi_internal.
17420
10a97ae6
UB
174212008-03-08 Uros Bizjak <ubizjak@gmail.com>
17422
17423 PR target/22152
17424 * config/i386/i386-modes.def (V1DI): New vector mode.
17425 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
17426 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
17427 (MMXMODE248): Ditto.
17428 (MMXMODE): Add V1DI mode.
17429 (mmxvecsize): Change DI mode to V1DI mode.
17430 ("mov<mode>): Use MMXMODEI8 mode iterator.
17431 ("*mov<mode>_internal_rex64"): Ditto.
17432 ("*mov<mode>_internal"): Ditto.
17433 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
17434 ("mmx_sub<mode>3"): Ditto.
17435 ("mmx_adddi3"): Remove insn pattern.
17436 ("mmx_subdi3"): Ditto.
17437 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
17438 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
17439 ("mmx_ashl<mode>3"): Ditto.
17440 ("mmx_lshrdi3"): Remove insn pattern.
17441 ("mmx_ashldi3"): Ditto.
17442 * config/i386/i386.c (classify_argument): Handle V1DImode.
17443 (function_arg_advance_32): Ditto.
17444 (function_arg_32): Ditto.
17445 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
17446 mmx_addv1di3 insn pattern.
17447 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
17448 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
17449 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
17450 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
17451 Remove definitions of built-in functions.
17452 (V1DI_type_node): New node.
17453 (v1di_ftype_v1di_int): Ditto.
17454 (v1di_ftype_v1di_v1di): Ditto.
17455 (v2si_ftype_v2si_si): Ditto.
17456 (v4hi_ftype_v4hi_di): Remove node.
17457 (v2si_ftype_v2si_di): Ditto.
17458 (ix86_init_mmx_sse_builtins): Handle V1DImode.
17459 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
17460 Redefine builtins using def_builtin_const with *_ftype_*_int node.
17461 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
17462 Add new builtins using def_builtin_const.
17463 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
17464 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
17465 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
17466 * config/i386/mmintrin.h (__v1di): New typedef.
17467 (_mm_add_si64): Cast arguments to __v1di type.
17468 (_mm_sub_si64): Ditto.
17469 (_mm_sll_pi16): Cast __count to __v4hi type.
17470 (_mm_sll_pi32): Cast __count to __v2si type.
17471 (_mm_sll_si64): Cast arguments to __v1di type.
17472 (_mm_srl_pi16): Cast __count to __v4hi type.
17473 (_mm_srl_pi32): Cast __count to __v2si type.
17474 (_mm_srl_si64): Cast arguments to __v1di type.
17475 (_mm_sra_pi16): Cast __count to __v4hi type.
17476 (_mm_sra_pi32): Cast __count to __v2si type.
17477 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
17478 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
17479 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
17480 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
17481 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
17482 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
17483 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
17484 (_mm_srai_pi32): Use __builtin_ia32_psradi.
17485 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
17486 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
17487 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
17488 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
17489
08c3b5b0
JM
174902008-03-07 Joseph Myers <joseph@codesourcery.com>
17491
17492 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
17493
efc05e3c
PB
174942008-03-07 Peter Bergner <bergner@vnet.ibm.com>
17495
17496 PR target/35373
17497 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
17498 reg+const addressing for Altivec modes. Don't generate reg+reg
17499 addressing for TFmode or TDmode quantities.
17500
cf7bc668
PB
175012008-03-07 Paolo Bonzini <bonzini@gnu.org>
17502
17503 * c-common.c (vector_types_convertible_p): Call langhook
17504 instead of comptypes.
17505
b0940154
AP
175062008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
17507
17508 PR tree-opt/35402
17509 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
17510 integral and scalar float variables which have a
17511 NULL DECL_INITIAL.
17512
48081aae
NF
175132008-03-06 Nathan Froyd <froydnj@codesourcery.com>
17514
17515 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
17516 dwarf_register_span hook when emitting unwind information for
17517 register-to-memory saves.
17518 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
17519 (rs6000_frame_related): Remove call to spe_synthesize_frame.
17520
251923f5
JJ
175212008-03-06 Jakub Jelinek <jakub@redhat.com>
17522
17523 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
17524 for the same VAR_DECL.
17525
e8645a40
TT
175262008-03-06 Tom Tromey <tromey@redhat.com>
17527
17528 * treelang: Delete.
17529 * doc/standards.texi (Standards): Don't mention treelang.
17530 * doc/invoke.texi (Overall Options): Don't mention treelang.
17531 * doc/install.texi (Prerequisites): Don't mention bison or
17532 treelang.
17533 (Configuration): Don't mention treelang.
17534 (Building): Likewise.
17535 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
17536
97efb03a
PB
175372008-03-06 Paolo Bonzini <bonzini@gnu.org>
17538
17539 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
17540 word-extractions out of a multi-word object.
17541
fc0f49f3
RG
175422008-03-06 Richard Guenther <rguenther@suse.de>
17543
17544 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
17545 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
17546 result type and precision.
17547 * expr.c (get_inner_reference): Set unsignedp based on the result
17548 type of BIT_FIELD_REF.
17549 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
17550 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
17551 (try_instantiate_multiple_fields): Likewise. Use the correct type
17552 for BIT_FIELD_REF.
17553 (sra_build_assignment): Likewise.
17554 (sra_build_elt_assignment): Likewise.
17555 (sra_explode_bitfield_assignment): Likewise.
17556 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
17557 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
17558 set BIT_FIELD_REF_UNSIGNED.
17559 (vectorizable_load): Likewise.
17560
e186ff69
AK
175612008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
17562
17563 * cse.c (cse_extended_basic_block): Invalidate artificial defs
17564 at bb start.
17565
4c067742
RG
175662008-03-06 Richard Guenther <rguenther@suse.de>
17567
17568 * alias.c (struct alias_set_entry): Move has_zero_child field
17569 to pack with alias_set.
17570
23880b97
L
175712008-03-05 H.J. Lu <hongjiu.lu@intel.com>
17572
17573 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
17574 32bit host.
17575
6ab81302
ILT
175762008-03-05 Ian Lance Taylor <iant@google.com>
17577
17578 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
17579
4218dc2d 175802008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
17581
17582 * fwprop.c (update_df): Support width and offset parameters of
17583 df_ref_create.
17584 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
17585 global_conflicts): Change DF_REF_EXTRACT to either
17586 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
17587 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17588 * df-scan.c (df_ref_record, df_defs_record,
17589 df_ref_create_structure, df_def_record_1, df_uses_record,
17590 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
17591 df_bb_refs_collect, df_entry_block_defs_collect,
17592 df_exit_block_uses_collect): Support new width and offset fields.
17593 (ref_extract_pool): New storage pool.
17594 (df_free_ref): New function.
17595 (df_reg_chain_unlink, df_free_collection_rec,
17596 df_sort_and_compress_refs): Call df_free_ref.
17597 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
17598 of df_ref_extract.
17599 (df_ref_create_structure): Allocate df_ref_extract if offset and
17600 width fields are used.
17601 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22129589 17602 (df_uses_record): Get offset and width from ZERO_EXTRACT
ca9052ce
KZ
17603 and SIGN_EXTRACT.
17604 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
17605 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
17606 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17607 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
17608 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
17609 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
17610 (df_ref_extract): New structure.
17611 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
17612 (df_ref_create): Add width and offset parameters.
22129589 17613
63d195d5
RG
176142008-03-05 Richard Guenther <rguenther@suse.de>
17615
17616 * tree-ssa-structalias.c (get_constraint_for_component_ref):
17617 Use ranges_overlap_p.
17618 (offset_overlaps_with_access): Rename
17619 to ranges_overlap_p and move ...
17620 * tree-flow-inline.h (ranges_overlap_p): ... here.
17621
17622 * tree.h (get_inner_reference, handled_component_p): Update
17623 comments.
17624
17625 * tree.h (record_component_aliases, get_alias_set,
17626 alias_sets_conflict_p, alias_sets_must_conflict_p,
17627 objects_must_conflict_p): Move declarations ...
17628 * alias.h (record_component_aliases, get_alias_set,
17629 alias_sets_conflict_p, alias_sets_must_conflict_p,
17630 objects_must_conflict_p): ... here.
17631 Include coretypes.h.
17632 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
17633
ea7e6d5a
AH
176342008-03-05 Aldy Hernandez <aldyh@redhat.com>
17635
17636 * cfg.c: Include tree-flow.h.
17637 (remove_edge_raw): Call redirect_edge_var_map_clear.
17638 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
17639 * tree-flow-inline.h (redirect_edge_var_map_def): New.
17640 (redirect_edge_var_map_result): New.
17641 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
17642 PENDING_STMT use with redirect_edge_var_map_*.
17643 * tree-ssa.c (edge_var_maps): New definition.
17644 (redirect_edge_var_map_add): New.
17645 (redirect_edge_var_map_clear): New.
17646 (redirect_edge_var_map_dup): New.
17647 (redirect_edge_var_map_vector): New.
17648 (redirect_edge_var_map_destroy): New.
17649 (ssa_redirect_edge): Replace PENDING_STMT use with
17650 redirect_edge_var_map_*.
17651 (flush_pending_stmts): Same.
17652 (delete_tree_ssa): Destroy edge var map.
17653 * tree-flow.h (struct _edge_var_map): New.
17654 Define edge_var_map vector type.
17655 Declare redirect_edge_var_map_* prototypes.
17656 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
17657 * tree-cfg.c (reinstall_phi_args): Replace
17658 PENDING_STMT use with redirect_edge_var_map_*.
17659
1bdcf037
RG
176602008-03-05 Richard Guenther <rguenther@suse.de>
17661
17662 PR tree-optimization/35472
17663 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
17664 whose single use_stmt has a overlapping set of loaded and
17665 stored symbols as that use_stmt might be a noop assignment then.
17666
fec5fe47
JS
176672008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
17668
17669 * gthr-rtems.h: Implement __gthread_mutex_destroy.
17670
e55f42fb
RG
176712008-03-05 Richard Guenther <rguenther@suse.de>
17672
17673 PR c++/35336
17674 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
17675 should be constants.
17676 * tree-cfg.c (verify_expr): Verify it.
17677 * fold-const.c (fold_truthop): Remove code generating
17678 BIT_FIELD_REFs of structure bases.
17679 (fold_binary): Likewise.
17680 (fold_ternary): Position and size of BIT_FIELD_REFs are
17681 always host integers.
17682 (make_bit_field_ref): Remove.
17683 (optimize_bit_field_compare): Remove.
17684 (all_ones_mask_p): Remove.
17685
1da266fe
GL
176862008-03-05 Gabor Loki <loki@gcc.gnu.org>
17687
17688 PR gcc/33009
17689 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
17690 (split_block_and_df_analyze): New. Split basic block and rebuild
17691 dataflow.
17692 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
17693 SPLIT_BLOCK.
17694 (split_pattern_seq): Likewise.
17695 (erase_matching_seqs): Likewise.
17696 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
17697
07c40d0b
GK
176982008-03-04 Geoff Keating <geoffk@apple.com>
17699
17700 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
17701 declaration and code.
17702 (tree_invalid_nonnegative_warnv_p): Likewise.
17703
4c754988
SB
177042008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
17705
17706 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
17707 examples. Truncate option-names then causing overfull hbox.
17708
399fe3e1
JDA
177092008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17710
17711 PR target/35222
17712 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
17713 on hpux10.
17714 * configure: Rebuilt.
17715
e918a58a
RAE
177162008-03-04 Rafael Espindola <espindola@google.com>
17717
17718 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
17719 (tree_unary_nonnegative_warnv_p): New.
17720 (tree_binary_nonnegative_warnv_p): New.
17721 (tree_single_nonnegative_warnv_p): New.
17722 (tree_invalid_nonnegative_warnv_p): New.
17723 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
17724
ee8ea087
MLI
177252008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17726
17727 PR 28322
17728 * opts.c (handle_option): Postpone 'unknown option' errors only for
17729 warning options.
17730
b5220972
L
177312008-03-04 H.J. Lu <hongjiu.lu@intel.com>
17732
17733 PR target/35453
17734 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
17735 (_SIDD_XXX): This.
17736
74dd418c
RAE
177372008-03-04 Rafael Espindola <espindola@google.com>
17738
17739 * fold-const.c (tree_unary_nonzero_warnv_p): New.
17740 (tree_binary_nonzero_warnv_p): New.
17741 (tree_single_nonzero_warnv_p): New.
17742 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
17743
5ce0e197
UB
177442008-03-04 Uros Bizjak <ubizjak@gmail.com>
17745
17746 PR middle-end/35456
17747 * fold-const.c (fold_cond_expr_with_comparison): Prevent
17748 transformations for modes that have signed zeros.
17749 * ifcvt.c (noce_try_abs): Ditto.
17750
2c7c6f54
JM
177512008-03-04 Joseph Myers <joseph@codesourcery.com>
17752
17753 * config/i386/i386.c (override_options): Force
17754 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
17755
b7884852
JH
177562008-03-04 Jan Hubicka <jh@suse.cz>
17757
17758 PR c++/35262
17759 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
17760 in last commit.
17761
ab65b56b
DS
177622008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
17763
17764 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 17765 label to probe the stack.
ab65b56b 17766
c262f705
DS
177672008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
17768
17769 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
17770 (__gthr_win32_mutex_destroy): Declare.
17771 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
17772 __gthr_win32_mutex_destroy.
17773 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
17774
44682fab
JH
177752008-03-03 Jan Hubicka <jh@suse.cz>
17776
17777 PR c++/35262
17778 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
17779 aggressive on inlining cold calls.
17780
9a327766
RG
177812008-03-03 Richard Guenther <rguenther@suse.de>
17782
17783 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
17784 struct copies into the expression table.
17785 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
17786 (try_to_simplify): Likewise.
17787 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
17788 integral and pointer arguments which do not change the
17789 precision to NOP_EXPRs.
17790 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
17791 VIEW_CONVERT_EXPR case.
17792
6a732743
SP
177932008-03-02 Sebastian Pop <sebastian.pop@amd.com>
17794
17795 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
17796 defined in a loop at depth 0 is invariant.
17797 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
17798 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
17799 be called at loop depth 0.
17800
0e5997c0
JJ
178012008-03-02 Jakub Jelinek <jakub@redhat.com>
17802
17803 PR driver/35420
17804 * gcc.c (process_command): Update copyright notice dates.
17805 * gcov.c (print_version): Likewise.
17806 * gcov-dump.c (print_version): Likewise.
17807 * mips-tfile.c (main): Likewise.
17808 * mips-tdump.c (main): Likewise.
17809
393eda6a
MLI
178102008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17811
17812 PR 24924
17813 * c-common.c (flag_permissive): Delete.
17814 (constant_expression_warnings): Check flags first.
17815 (constant_expression_error): New.
17816 * c-common.h (flag_permissive): Delete.
17817 (constant_expression_error): Declare.
17818 * flags.h (flag_permissive): Declare. Update description.
17819 * diagnostic.c (pedwarn): Update.
17820 (permerror): New.
17821 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
17822 (permissive_error_kind): New.
17823 * toplev.c (flag_permissive): Define. Update description.
17824 * toplev.h (permissive_error_kind): Declare.
17825 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
17826 (pedwarn_c90): Use pedantic_warning_kind.
17827 * c-opts.c (c_common_post_options): flag_permissive does not affect
17828 flag_pedantic_errors.
17829
9677aa89
JM
178302008-03-02 Joseph Myers <joseph@codesourcery.com>
17831
17832 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
17833 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
17834 __absvsi2, __absvDI2): Use unsigned arithmetic.
17835
f3130d75 178362008-03-02 Andi Kleen <ak@suse.de>
ab669042 17837 Richard Guenther <rguenther@suse.de>
f3130d75
AK
17838
17839 * struct-equiv.c: Remove file.
17840 * cfg_cleanup.c (condjump_equiv_p): Remove.
17841 * Makefile.in (OBJS-common): Remove struct-equiv.o.
17842 (struct-equiv.o): Remove rule.
17843 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22129589 17844 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
f3130d75
AK
17845 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
17846
89c3cbc6
AO
178472008-03-01 Alexandre Oliva <aoliva@redhat.com>
17848
17849 * ifcvt.c (noce_process_if_block): Try to handle only the then
17850 block if the else block exists but isn't suitable.
17851
5eb4a9af
JB
178522008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
17853
17854 PR gcc/35063
17855 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
17856 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
17857 regression from previous patch.
17858
4dabf736
JB
178592008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
17860
17861 PR gcc/35063
17862 * gthr.h: Add __gthread_mutex_destroy as a function that must be
17863 implemented.
17864 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
17865 * gthr-single.h (__gthread_mutex_destroy): Likewise.
17866 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
17867 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
17868 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
17869 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
17870 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
17871 (__gthread_mutex_destroy_function): Rename to
17872 __gthread_mutex_destroy.
17873 * gthr-dce.h (__gthread_mutex_destroy): Call
17874 pthread_mutex_destroy.
17875 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
17876 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
17877 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
17878
63642d5a
AO
178792008-03-01 Alexandre Oliva <aoliva@redhat.com>
17880
17881 * df-scan.c (df_ref_chain_change_bb): Simplify.
17882 (df_insn_change_bb): Add new_bb argument. Simplify. Call
17883 set_block_for_insn if there's any change.
17884 * df.h ((df_insn_change_bb): Fix prototype.
17885 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
17886 df_insn_change_bb, don't call set_block_for_insn.
17887 * emit-rtl.c (reorder_insns): Likewise.
17888 * haifa-sched.c (move_insn): Likewise.
17889
e0651058
AO
178902008-03-01 Alexandre Oliva <aoliva@redhat.com>
17891
17892 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
17893
d2b6be72
AO
178942008-03-01 Alexandre Oliva <aoliva@redhat.com>
17895
17896 * tree-flow-inline.h (next_readonly_imm_use): Return
17897 NULL_USE_OPERAND_P after the end.
17898
2fb5f2af
RG
178992008-03-01 Richard Guenther <rguenther@suse.de>
17900
17901 PR tree-optimization/35411
17902 * tree-sra.c (sra_build_assignment): Split conversion to
17903 final type to a separate statement if we are not assigning
17904 to a register.
17905
c17ee676
FXC
179062008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
17907
17908 * fold-const.c (fold_convertible_p): Correct the logic to follow
17909 that in fold_convert().
17910
f31c9f09
DG
179112008-02-29 Douglas Gregor <doug.gregor@gmail.com>
17912
17913 PR c++/35315
17914 * tree-inline.c (build_duplicate_type): When we make a
17915 duplicate type, make it unique in the canonical types system.
17916
966e8f4d
TT
179172008-02-29 Tom Tromey <tromey@redhat.com>
17918
17919 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
17920 input_file_stack_history, input_file_stack_restored): Remove.
17921 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17922 * input.h (struct file_stack): Remove.
17923 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
17924 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
17925 Likewise.
17926 * diagnostic.h (struct diagnostic_context) <last_module>: Change
17927 type.
17928 (diagnostic_last_module_changed): Add 'map' argument.
17929 (diagnostic_set_last_function): Likewise.
17930 * diagnostic.c (undiagnostic_report_current_module): Iterate using
17931 line map, not input_file_stack.
17932 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
17933
3cbe0ba6
PB
179342008-02-29 Paul Brook <paul@codesourcery.com>
17935
17936 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
17937
d96ae4d4
PB
179382008-02-29 Paul Brook <paul@codesourcery.com>
17939
17940 * config/arm/ieee754-df.S (muldf3): Use RET macros.
17941
5be891a4
RG
179422008-02-29 Richard Guenther <rguenther@suse.de>
17943
17944 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
17945 vn_lookup_or_add.
17946 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
17947 value for comparing for a store match.
17948 (simplify_unary_expression): Do nothing for SSA_NAMEs.
17949 (try_to_simplify): Do not do a full-blown reference lookup.
17950
b0fbea13
KK
179512008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
17952
17953 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
17954 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
17955
17956 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
17957
0c96231b
SP
179582008-02-29 Sebastian Pop <sebastian.pop@amd.com>
17959
17960 * tree-loop-linear.c (try_interchange_loops): Compare memory access
17961 strides against cache sizes.
17962
d973ac5a
KK
179632008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
17964
17965 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
17966 constant to fpul.
17967
4613543f
RS
179682008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
17969
17970 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
17971 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
17972 is smaller than the original promoted value.
17973 (simplify_subreg): If OP is a SUBREG, try to preserve its
17974 SUBREG_PROMOTED_VAR_P information.
17975
cbfb21c1
SB
179762008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
17977
17978 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
17979 (VN_INFO_GET): Allocate new objects on the obstack.
17980 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
17981 for rpo_numbers_temp, for consistency.
17982 (free_scc_vn): Free the obstack.
17983
dea61d92
SP
179842008-02-28 Sebastian Pop <sebastian.pop@amd.com>
17985
17986 * doc/invoke.texi: Document -ftree-loop-distribution.
17987 * tree-loop-distribution.c: New.
17988 * tree-pass.h (pass_loop_distribution): New.
17989 * graphds.h (struct graph): Add htab_t indices.
17990 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
17991 * tree-vectorizer.c (rename_variables_in_loop): Extern.
17992 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
17993 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
17994 * tree-data-ref.c (debug_data_dependence_relations): New.
17995 (dump_data_dependence_relation): Also print data references.
17996 (free_data_ref): Extern.
17997 (same_access_functions): Moved...
17998 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
17999 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
18000 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
18001 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
18002 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
18003 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
18004 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
18005 New.
dea61d92
SP
18006 (build_rdg): Initialize rdg->indices htab.
18007 (free_rdg, stores_from_loop, ref_base_address,
18008 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
18009 have_similar_memory_accesses_1, ref_base_address_1,
18010 remove_similar_memory_refs): New.
18011 * tree-data-ref.h: Depend on tree-chrec.h.
18012 (debug_data_dependence_relations, free_data_ref): Declared.
18013 (same_access_functions): ... here.
5ce0e197
UB
18014 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
18015 New.
dea61d92
SP
18016 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
18017 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
18018 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
18019 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
18020 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
18021 rdg_vertex_for_stmt): Declared.
18022 (struct rdg_edge): Add level.
18023 (RDGE_LEVEL): New.
18024 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
18025 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
18026 Declared.
dea61d92
SP
18027 (rdg_has_similar_memory_accesses): New.
18028 * tree-vect-analyze.c: Remove unused static decls.
18029 * lambda.h (dependence_level): New.
18030 * common.opt (ftree-loop-distribution): New.
22129589 18031 * tree-flow.h (mark_virtual_ops_in_bb,
dea61d92
SP
18032 slpeel_tree_duplicate_loop_to_edge_cfg,
18033 rename_variables_in_loop): Declared.
18034 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
18035 (OBJS-common): Add tree-loop-distribution.o.
18036 (tree-loop-distribution.o): New rule.
18037 * tree-cfg.c (mark_virtual_ops_in_bb): New.
18038 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
18039 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
18040
dde75838
JM
180412008-02-28 Joseph Myers <joseph@codesourcery.com>
18042
18043 PR target/33963
18044 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
18045 other than structures and unions.
18046
3b302421
RG
180472008-02-28 Richard Guenther <rguenther@suse.de>
18048
18049 Revert:
18050 2008-02-26 Richard Guenther <rguenther@suse.de>
18051
18052 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18053 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18054 (lookup_decl_from_uid): Declare.
18055 (remove_decl_from_map): Likewise.
18056 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18057 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18058 (decl_for_uid_map): New global hashtable mapping DECL_UID
18059 to the decl tree.
18060 (init_ttree): Allocate it.
18061 (insert_decl_to_uid_decl_map): New helper function.
18062 (make_node_stat): Insert new decls into the map.
18063 (copy_node_stat): Likewise.
18064 (lookup_decl_from_uid): New function.
18065 (remove_decl_from_map): Likewise.
18066 (print_decl_for_uid_map_statistics): New helper.
18067 (dump_tree_statistics): Call it.
18068
18069 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18070 (referenced_var_iterator): Adjust.
18071 (FOR_EACH_REFERENCED_VAR): Adjust.
18072 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18073 (num_referenced_vars): Adjust.
18074 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18075 (first_referenced_var): Remove.
18076 (end_referenced_vars_p): Likewise.
18077 (next_referenced_var): Likewise.
18078 (referenced_var_iterator_set): New helper function.
18079 * tree-dfa.c (referenced_var_lookup): Adjust.
18080 (referenced_var_check_and_insert): Likewise.
18081 (remove_referenced_var): Likewise.
18082 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18083 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18084 (verify_call_clobbering): Likewise.
18085 (verify_memory_partitions): Likewise.
18086 (init_tree_ssa): Allocate bitmap instead of hashtable for
18087 referenced_vars.
18088 (delete_tree_ssa): Adjust.
18089 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18090 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18091 (compute_tag_properties): Likewise.
18092 (set_initial_properties): Likewise.
18093 (find_partition_for): Likewise.
18094 (update_reference_counts): Likewise.
18095 (dump_may_aliases_for): Likewise.
18096 * tree-ssa-operands.c (add_virtual_operand): Likewise.
18097 (add_call_clobber_ops): Likewise.
18098 (add_call_read_ops): Likewise.
18099 (get_asm_expr_operands): Likewise.
18100 * tree-into-ssa.c (dump_decl_set): Likewise.
18101 (update_ssa): Likewise.
18102 * tree-sra.c (scan_function): Likewise.
18103 (decide_instantiations): Likewise.
18104 (scalarize_parms): Likewise.
18105 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18106 (dsa_named_for): Likewise.
18107 * tree-ssa-structalias.c (update_alias_info): Likewise.
18108 (merge_smts_into): Likewise.
18109
2a1ed4fc
DD
181102008-02-27 David Daney <ddaney@avtrex.com>
18111
18112 PR target/34409
18113 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
18114 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
18115 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
18116 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
18117 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
18118
c92712d1
UB
181192008-02-27 Uros Bizjak <ubizjak@gmail.com>
18120
18121 PR target/25477
18122 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
18123 (BUILT_IN_NEXTTOWARD): Remove.
18124 (BUILT_IN_NEXTTOWARDF): Ditto.
18125 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
18126 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
18127
a8bafc43
TT
181282008-02-27 Tom Tromey <tromey@redhat.com>
18129
18130 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
18131 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
18132
8220334a
JB
181332008-02-27 Jan Beulich <jbeulich@novell.com>
18134
18135 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
18136 update the respective field on newdecl.
18137
8bf6e270
RE
181382008-02-27 Revital Eres <eres@il.ibm.com>
18139
18140 PR rtl-optimization/34999
18141 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
18142 crossing edges that ends with a call insn.
18143 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
18144 call insn and clear the EDGE_CROSSING flag of the crossing edge
18145 when fixing fallthru edges.
18146
7fb52af2
RG
181472008-02-27 Richard Guenther <rguenther@suse.de>
18148
3b302421 18149 PR middle-end/35390
7fb52af2
RG
18150 * fold-const.c (fold_unary): Return the correct argument,
18151 converted to the result type.
18152
70582b3a
RG
181532008-02-27 Richard Guenther <rguenther@suse.de>
18154
18155 PR middle-end/34971
18156 * expr.c (expand_expr_real_1): Assert on rotates that operate
18157 on partial modes.
18158 * fold-const.c (fold_binary): Use the types precision, not the
18159 bitsize of the mode if folding rotate expressions. Build rotates
18160 only for full modes.
18161
a25a8f3b
JJ
181622008-02-27 Jakub Jelinek <jakub@redhat.com>
18163
18164 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
18165 and CPP_PRAGMA_EOL.
18166 * c-pragma.c (pragma_ns_name): New typedef.
18167 (registered_pp_pragmas): New variable.
18168 (c_pp_lookup_pragma): New function.
18169 (c_register_pragma_1): If flag_preprocess_only, do nothing
18170 for non-expanded pragmas, for expanded ones push pragma's
18171 namespace and name into registered_pp_pragmas vector.
18172 (c_invoke_pragma_handler): Register OpenMP pragmas even when
18173 flag_preprocess_only, don't register GCC pch_preprocess
18174 pragma if flag_preprocess_only.
18175 * c-opts.c (c_common_init): Call init_pragma even if
18176 flag_preprocess_only.
18177 * c-pragma.c (c_pp_lookup_pragma): New prototype.
18178 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
18179 cpp_register_pragma if flag_preprocess_only.
18180
369239ef
RW
181812008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18182
18183 PR c/28800
18184 * c-parser.c (c_parser_translation_unit): Warn for empty
18185 translation unit, not empty source file.
18186
f5c630c3
PB
181872008-02-26 Paul Brook <paul@codesourcery.com>
18188
18189 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
18190 operand for Thumb-2.
18191 * config/arm/arm.h (reg_class): Add CORE_REGS.
18192 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
18193 (BASE_REG_CLASS): Use CORE_REGS.
18194 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
18195 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
18196 (REGNO_OK_FOR_INDEX_P): Exclude SP.
18197 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
18198 ARM_REGNO_OK_FOR_INDEX_P.
18199 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
18200 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
18201 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
18202 (ldm/stm peepholes): Ditto.
18203 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
18204 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
18205 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
18206 * config/arm/constraints.md: Enable "k" constraint on ARM.
18207
0d158b6e
BE
182082008-02-27 Ben Elliston <bje@au.ibm.com>
18209
18210 * config/rs6000/rs6000.c: Annotate cache line size field in all
18211 instances of struct processor_costs.
18212
7d817ebc
DE
182132008-02-26 David Edelsohn <edelsohn@gnu.org>
18214
18215 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
18216 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
18217 jump_bypass): New counters.
18218 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
18219 * dce.c (gate_ud_dce): Same.
18220 (gate_fast_dce): Same.
18221 * dse.c (gate_dse1): New function.
18222 (gate_dse2): New function.
18223 (gate_dse): Merge results of new gate functions.
18224 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
18225 (gate_handle_jump_bypass): Add dbg_cnt.
18226 (gate_handle_gcse): Add dbg_cnt.
18227 * ifcvt.c (gate_handle_if_conversion): Same.
18228 (gate_handle_if_after_combine): Same.
18229 (gate_handle_if_after_reload): Same.
18230 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
18231
a19b7d46
EW
182322008-02-26 Edmar Wienskoski <edmar@freescale.com>
18233
18234 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
18235 line sizes.
18236 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
18237
317c435f
JM
182382008-02-26 Jason Merrill <jason@redhat.com>
18239
18240 PR c++/35315
22129589 18241 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
317c435f
JM
18242 alone if it's the naming decl for the type's main variant.
18243
2d593c86
TT
182442008-02-26 Tom Tromey <tromey@redhat.com>
18245
18246 * system.h (USE_MAPPED_LOCATION): Poison.
18247 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
18248 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
18249 (make_goto_expr_edges): Likewise.
18250 (remove_bb): Likewise.
18251 (execute_warn_function_return): Likewise.
18252 * basic-block.h (struct edge_def) <goto_locus>: Change type to
18253 location_t.
18254 * c-common.c (fname_decl): Remove old location code.
18255 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
18256 location code.
18257 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
18258 variant.
18259 (ASM_INPUT_SOURCE_LOCATION): Likewise.
18260 (gen_rtx_ASM_INPUT): Likewise.
18261 (gen_rtx_ASM_INPUT_loc): Likewise.
18262 (get_rtx_asm_OPERANDS): Remove.
18263 * cfglayout.c (insn_locators_alloc): Remove old location code.
18264 (set_curr_insn_source_location): Likewise.
18265 (curr_insn_locator): Likewise.
18266 * print-tree.c (print_node): Remove old location code.
18267 * tree-mudflap.c (mf_varname_tree): Remove old location code.
18268 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
18269 * cfgexpand.c (expand_gimple_cond_expr): Don't use
18270 location_from_locus.
18271 (construct_exit_block): Remove old location code.
18272 * emit-rtl.c (force_next_line_note): Remove old location code.
18273 * profile.c (branch_prob): Remove old location code.
18274 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
18275 LOC_LINE): Remove old-location variants.
18276 * langhooks.c (lhd_print_error_function): Remove old location
18277 code.
18278 * configure, config.in: Rebuilt.
18279 * configure.ac (--enable-mapped-location): Remove.
18280 * c-decl.c (c_init_decl_processing): Remove old location code.
18281 (finish_function): Likewise.
18282 * recog.c (decode_asm_operands): Remove old location code.
18283 * c-pch.c (c_common_read_pch): Remove old location code.
18284 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
18285 variants.
18286 * gimple-low.c (lower_function_body): Remove old location code.
18287 * toplev.c (unknown_location): Remove.
18288 (push_srcloc): Remove old-location variant.
18289 (process_options): Remove old location code.
18290 (lang_dependent_init): Likewise.
18291 * input.h (UNKNOWN_LOCATION): Move definition.
18292 (location_t): Undeprecate.
18293 (source_locus): Remove.
18294 (location_from_locus): Remove.
18295 (struct location_s): Remove.
18296 Remove all old-location code.
18297 (input_line, input_filename): Remove.
18298 * final.c (final_scan_insn): Remove old location code.
18299 * diagnostic.c (diagnostic_build_prefix): Remove
18300 USE_MAPPED_LOCATION test.
18301 * tree.h (gimple_stmt) <locus>: Now a location_t.
18302 (tree_exp) <locus>: Likewise.
18303 (DECL_IS_BUILTIN): Remove old-location variant.
18304 (annotate_with_file_line, annotate_with_locus): Likewise.
18305 (expr_locus, set_expr_locus): Update.
18306 * tree.c (build1_stat): Remove old location code.
18307 (last_annotated_node): Remove.
18308 (annotate_with_file_line): Remove old-location variant.
18309 (annotate_with_locus): Likewise.
18310 (expr_location): Remove old location code.
18311 (set_expr_location): Likewise.
18312 (expr_has_location): Likewise.
18313 (expr_locus): Likewise.
18314 (set_expr_locus): Likewise.
18315 (expr_filename): Don't use location_from_locus.
18316 (expr_lineno): Likewise.
18317 * rtl-error.c (location_for_asm): Remove old location code.
18318 * c-lex.c (cb_line_change): Remove old location code.
18319 (fe_file_change): Likewise.
18320 (cb_def_pragma): Likewise.
18321 (c_lex_with_flags): Likewise.
18322 * gengtype.c (do_typedef): Don't special-case location types.
18323 (define_location_structures): Remove.
18324 (main): Don't call define_location_structures.
18325 * tree-pretty-print.c (dump_implicit_edges): Remove old location
18326 code.
18327
4f01eeb4
MLI
183282008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18329
cd7e0bd4 18330 PR 26264
4f01eeb4
MLI
18331 * builtins.def (BUILT_IN_STDARG_START): Remove.
18332 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
18333 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18334 * tree-inline.c (inline_forbidden_p_1): Likewise.
22129589 18335
bbd59cf4
RG
183362008-02-26 Richard Guenther <rguenther@suse.de>
18337
18338 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18339 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18340 (lookup_decl_from_uid): Declare.
18341 (remove_decl_from_map): Likewise.
18342 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18343 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18344 (decl_for_uid_map): New global hashtable mapping DECL_UID
18345 to the decl tree.
18346 (init_ttree): Allocate it.
18347 (insert_decl_to_uid_decl_map): New helper function.
18348 (make_node_stat): Insert new decls into the map.
18349 (copy_node_stat): Likewise.
18350 (lookup_decl_from_uid): New function.
18351 (remove_decl_from_map): Likewise.
18352 (print_decl_for_uid_map_statistics): New helper.
18353 (dump_tree_statistics): Call it.
18354
18355 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18356 (referenced_var_iterator): Adjust.
18357 (FOR_EACH_REFERENCED_VAR): Adjust.
18358 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18359 (num_referenced_vars): Adjust.
18360 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18361 (first_referenced_var): Remove.
18362 (end_referenced_vars_p): Likewise.
18363 (next_referenced_var): Likewise.
18364 (referenced_var_iterator_set): New helper function.
18365 * tree-dfa.c (referenced_var_lookup): Adjust.
18366 (referenced_var_check_and_insert): Likewise.
18367 (remove_referenced_var): Likewise.
18368 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18369 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18370 (verify_call_clobbering): Likewise.
18371 (verify_memory_partitions): Likewise.
18372 (init_tree_ssa): Allocate bitmap instead of hashtable for
18373 referenced_vars.
18374 (delete_tree_ssa): Adjust.
18375 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18376 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18377 (compute_tag_properties): Likewise.
18378 (set_initial_properties): Likewise.
18379 (find_partition_for): Likewise.
18380 (update_reference_counts): Likewise.
18381 (dump_may_aliases_for): Likewise.
18382 * tree-ssa-operands.c (add_virtual_operand): Likewise.
18383 (add_call_clobber_ops): Likewise.
18384 (add_call_read_ops): Likewise.
18385 (get_asm_expr_operands): Likewise.
18386 * tree-into-ssa.c (dump_decl_set): Likewise.
18387 (update_ssa): Likewise.
18388 * tree-sra.c (scan_function): Likewise.
18389 (decide_instantiations): Likewise.
18390 (scalarize_parms): Likewise.
18391 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18392 (dsa_named_for): Likewise.
18393 * tree-ssa-structalias.c (update_alias_info): Likewise.
18394 (merge_smts_into): Likewise.
18395
16302daf
MLI
183962008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18397
18398 PR 34351
18399 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
18400 * c-opts.c (c_common_handle_option): Wall enables
18401 Wvolatile-register-var.
18402 * common.opt: Move Wvolatile-register-var to...
18403 * c.opt: ...here.
22129589 18404
e8fc888d
MLI
184052008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18406
18407 * common.opt (Wlarger-than=): New.
18408 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
18409 -Wlarger-than=.
18410 * opts.c (common_handle_option): Handle -Wlarger-than=.
18411 * optc-gen.awk: Likewise.
18412 * opth-gen.awk: Likewise.
18413 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
18414 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22129589 18415
683d6ff9
MLI
184162008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18417
18418 * c-common.c (match_case_to_enum_1): Add appropriate
18419 OPT_W* parameter to warning.
18420 (c_do_switch_warnings): Likewise.
18421 * c-typeck.c (warning_init): Add one more parameter following
18422 'warning' function.
18423 (push_init_level): Update call to warning_init.
18424 (pop_init_level): Likewise.
18425 (add_pending_init): Likewise.
18426 (output_init_element: Likewise.
18427
369dcbd9
MLI
184282008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18429
18430 PR 28322
18431 * toplev.c (toplev_main): If there are warnings or error, print
18432 errors for ignored options.
18433 * opts.c (ignored_options): New static variable.
18434 (postpone_unknown_option_error): New.
18435 (print_ignored_options): New.
18436 (handle_option): Postpone errors for unknown -Wno-* options.
18437 * opts.h (print_ignored_options): Declare.
22129589 18438
23dc794c
RS
184392008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
18440
18441 * config/mips/mips.md (loadgp_blockage, blockage): Change type
18442 to "ghost".
18443
381a258b
RG
184442008-02-25 Richard Guenther <rguenther@suse.de>
18445
18446 Revert:
18447 2008-02-25 Richard Guenther <rguenther@suse.de>
18448
18449 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18450 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18451 (lookup_decl_from_uid): Declare.
18452 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18453 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18454 (decl_for_uid_map): New global hashtable mapping DECL_UID
18455 to the decl tree.
18456 (init_ttree): Allocate it.
18457 (insert_decl_to_uid_decl_map): New helper function.
18458 (make_node_stat): Insert new decls into the map.
18459 (copy_node_stat): Likewise.
18460 (lookup_decl_from_uid): New function.
18461 (print_decl_for_uid_map_statistics): New helper.
18462 (dump_tree_statistics): Call it.
18463
18464 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18465 (referenced_var_iterator): Adjust.
18466 (FOR_EACH_REFERENCED_VAR): Adjust.
18467 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18468 (num_referenced_vars): Adjust.
18469 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18470 (first_referenced_var): Remove.
18471 (end_referenced_vars_p): Likewise.
18472 (next_referenced_var): Likewise.
18473 (referenced_var_iterator_set): New helper function.
18474 * tree-dfa.c (referenced_var_lookup): Adjust.
18475 (referenced_var_check_and_insert): Likewise.
18476 (remove_referenced_var): Likewise.
18477 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18478 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18479 (verify_call_clobbering): Likewise.
18480 (verify_memory_partitions): Likewise.
18481 (init_tree_ssa): Allocate bitmap instead of hashtable for
18482 referenced_vars.
18483 (delete_tree_ssa): Adjust.
18484 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18485 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18486 (compute_tag_properties): Likewise.
18487 (set_initial_properties): Likewise.
18488 (find_partition_for): Likewise.
18489 (update_reference_counts): Likewise.
18490 (dump_may_aliases_for): Likewise.
18491 * tree-ssa-operands.c (add_virtual_operand): Likewise.
18492 (add_call_clobber_ops): Likewise.
18493 (add_call_read_ops): Likewise.
18494 (get_asm_expr_operands): Likewise.
18495 * tree-into-ssa.c (dump_decl_set): Likewise.
18496 (update_ssa): Likewise.
18497 * tree-sra.c (scan_function): Likewise.
18498 (decide_instantiations): Likewise.
18499 (scalarize_parms): Likewise.
18500 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18501 (dsa_named_for): Likewise.
18502 * tree-ssa-structalias.c (update_alias_info): Likewise.
18503 (merge_smts_into): Likewise.
18504
89453ec7
JB
185052008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
18506
18507 PR fortran/29549
18508 * doc/invoke.texi (-fcx-limited-range): Document new option.
18509 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 18510 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 18511
8cc6d3e0
JB
185122008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
18513
18514 PR c/35162
18515 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
18516 actual behaviour and C99.
22129589 18517
cd679487
BE
185182008-02-26 Ben Elliston <bje@au.ibm.com>
18519
18520 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
18521 (ASM_CPU_POWER6_SPEC): Likewise.
18522 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
18523 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
18524 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
18525
7660c722
RG
185262008-02-25 Richard Guenther <rguenther@suse.de>
18527
18528 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
18529 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
18530 (lookup_decl_from_uid): Declare.
18531 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
18532 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
18533 (decl_for_uid_map): New global hashtable mapping DECL_UID
18534 to the decl tree.
18535 (init_ttree): Allocate it.
18536 (insert_decl_to_uid_decl_map): New helper function.
18537 (make_node_stat): Insert new decls into the map.
18538 (copy_node_stat): Likewise.
18539 (lookup_decl_from_uid): New function.
18540 (print_decl_for_uid_map_statistics): New helper.
18541 (dump_tree_statistics): Call it.
18542
18543 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
18544 (referenced_var_iterator): Adjust.
18545 (FOR_EACH_REFERENCED_VAR): Adjust.
18546 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
18547 (num_referenced_vars): Adjust.
18548 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
18549 (first_referenced_var): Remove.
18550 (end_referenced_vars_p): Likewise.
18551 (next_referenced_var): Likewise.
18552 (referenced_var_iterator_set): New helper function.
18553 * tree-dfa.c (referenced_var_lookup): Adjust.
18554 (referenced_var_check_and_insert): Likewise.
18555 (remove_referenced_var): Likewise.
18556 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
18557 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18558 (verify_call_clobbering): Likewise.
18559 (verify_memory_partitions): Likewise.
18560 (init_tree_ssa): Allocate bitmap instead of hashtable for
18561 referenced_vars.
18562 (delete_tree_ssa): Adjust.
18563 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
18564 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
18565 (compute_tag_properties): Likewise.
18566 (set_initial_properties): Likewise.
18567 (find_partition_for): Likewise.
18568 (update_reference_counts): Likewise.
18569 (dump_may_aliases_for): Likewise.
18570 * tree-ssa-operands.c (add_virtual_operand): Likewise.
18571 (add_call_clobber_ops): Likewise.
18572 (add_call_read_ops): Likewise.
18573 (get_asm_expr_operands): Likewise.
18574 * tree-into-ssa.c (dump_decl_set): Likewise.
18575 (update_ssa): Likewise.
18576 * tree-sra.c (scan_function): Likewise.
18577 (decide_instantiations): Likewise.
18578 (scalarize_parms): Likewise.
18579 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
18580 (dsa_named_for): Likewise.
18581 * tree-ssa-structalias.c (update_alias_info): Likewise.
18582 (merge_smts_into): Likewise.
18583
2e4e39f6
AK
185842008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
18585
18586 PR target/35258
18587 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
18588 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
18589 * alias.h (nonoverlapping_memrefs_p): Likewise.
18590
891984af
JB
185912008-02-25 Jan Beulich <jbeulich@novell.com>
18592
c92712d1 18593 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
18594 * config/i386/netware-libgcc.exp: Add __bswap?i2,
18595 __emultls_get_address, __emultls_register_common,
18596 __floatundi?f, and _Unwind_GetIPInfo.
18597 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
18598 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
18599 (gen_regparm_prefix): Likewise.
18600 (i386_nlm_encode_section_info): Sync with
18601 config/i386/winnt.c:i386_pe_encode_section_info().
18602 (i386_nlm_maybe_mangle_decl_assembler_name): New.
18603 i386_nlm_mangle_decl_assembler_name): New.
18604 (netware_override_options): New.
18605 * config/i386/netware.h (netware_override_options): Declare.
18606 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
18607 (i386_nlm_mangle_decl_assembler_name): Declare.
18608 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
18609
98266db0
BE
186102008-02-25 Ben Elliston <bje@au.ibm.com>
18611
18612 PR other/32948
18613 * c-decl.c (grokdeclarator): Remove unused local variables
18614 `typedef_type' and `type_as_written'.
18615 * bb-reorder.c
18616 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
18617 unused local variable `has_hot_blocks'.
18618 (fix_crossing_conditional_branches): Remove unused local variable
18619 `prev_bb'.
22129589 18620
93e50125
UB
186212008-02-25 Uros Bizjak <ubizjak@gmail.com>
18622
18623 PR middle-end/19984
18624 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
18625 using DEF_C99_BUILTIN.
18626 (BUILT_IN_NANF): Ditto.
18627 (BUILT_IN_NANL): Ditto.
18628
0de5a32f 186292008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 18630 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
18631
18632 * modulo-sched.c (calculate_must_precede_follow): Address TODO
18633 regarding the order of two dependent insns in the same row.
18634
d4cba6d4
EB
186352008-02-25 Eric Botcazou <ebotcazou@adacore.com>
18636
18637 * stor-layout.c (layout_decl): Do not bump the alignment of a
18638 bit-field to more than byte alignment if it is packed.
18639
642639ce
DE
186402008-02-24 David Edelsohn <edelsohn@gnu.org>
18641
18642 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
18643 e300c2 and e300c3.
18644
faebccf9
DN
186452008-02-24 Diego Novillo <dnovillo@google.com>
18646
18647 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
18648
18649 PR 33738
18650 * tree-vrp.c (vrp_evaluate_conditional): With
18651 -Wtype-limits, emit a warning when comparing against a
18652 constant outside the natural range of OP0's type.
18653 * c.opt (Wtype-limits): Move ...
18654 * common.opt (Wtype-limits): ... here.
18655
88c7f01b 186562008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
18657
18658 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
18659 * config/rs6000/e300c2c3.md: New file.
18660 * config/rs6000/rs6000.c (processor_costs): Add new costs for
18661 e300c2 and e300c3.
18662 (rs6000_override_options): Add e300c2 and e300c3 cases to
18663 processor_target_table. Do not allow usage of Altivec or Spe
18664 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
18665 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
18666 * config/rs6000/rs6000.h (processor_type): Add
18667 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
18668 (ASM_CPU_SPEC): Add e300c2 and e300c3.
18669 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
18670 and ppce300c3. Include e300c2c3.md.
18671
153fbec8
DE
186722008-02-23 David Edelsohn <edelsohn@gnu.org>
18673
18674 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
18675 instead of TARGET_STRICT_ALIGN.
18676
03d4f106
JM
186772008-02-23 Joseph Myers <joseph@codesourcery.com>
18678
18679 * explow.c (memory_address): Assert that the generated address is
18680 valid.
18681
fb220235
FXC
186822008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
18683
18684 PR target/25477
18685 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
18686 * config/darwin-ppc-ldouble-patch.def: New file.
18687 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
18688 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
18689 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
18690 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
18691 New functions.
fb220235 18692
f79db4f6
AP
186932008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
18694
18695 PR rtl-opt/33512
18696 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
18697 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
18698
bb1f73c2
AP
186992008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
18700
18701 PR pch/35027
18702 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
18703 file" warning condtional on -Winvalid-PCH.
18704
8ddcfde1
DJ
187052008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
18706
18707 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
18708
84495fd9
UB
187092008-02-23 Uros Bizjak <ubizjak@gmail.com>
18710
18711 PR target/22076
22129589 18712 PR target/34256
84495fd9
UB
18713 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
18714 prevent reload from using MMX registers.
18715 (*mov<mode>_internal): Ditto.
18716 (*movv2sf_internal_rex64): Ditto.
18717 (*movv2sf_internal): Ditto.
18718
73c17ad2
RW
187192008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18720
18721 PR documentation/31569
18722 * doc/install.texi2html: Use makeinfo --no-number-sections.
18723
61dd226f
NF
187242008-02-22 Nathan Froyd <froydnj@codesourcery.com>
18725
18726 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
18727 ensure that we can address an entire entity > 8 bytes. Don't
18728 generate reg+reg addressing for such data.
18729
2165fd38
NF
187302008-02-22 Nathan Froyd <froydnj@codesourcery.com>
18731
18732 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
18733 strings when optimizing for size, unless the target cares about
18734 alignment.
18735
ad5ebb34
TT
187362008-02-22 Tom Tromey <tromey@redhat.com>
18737
18738 * regclass.c (current_pass): Remove declaration.
18739
34d02d17
AS
187402008-02-22 Anatoly Sokolov <aesok@post.ru>
18741
18742 * config/avr/libgcc.S (__RAMPZ__): Define.
18743 (__do_copy_data): Add for devices with 128KB code memory.
18744
a4899c01
NF
187452008-02-22 Nathan Froyd <froydnj@codesourcery.com>
18746
18747 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
18748 Use spe_abi.
18749 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
18750
fe82487e
HPN
187512008-02-22 Hans-Peter Nilsson <hp@axis.com>
18752
18753 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
18754 GENNONACR_REGS.
18755
ae311566
RW
187562008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18757
18758 PR c/19999
18759 * c-typeck.c (build_binary_op): Warn about floating point
18760 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
18761
a2db2771
JJ
187622008-02-21 Janis Johnson <janis187@us.ibm.com>
18763
18764 PR target/34526
18765 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
18766 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
18767 add vrsave.
18768 (rs6000_override_options): Set altivec_abi as default, not override,
18769 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
18770 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
18771 is used; use new member spe_abi.
18772 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
18773 spe_abi and altivec_abi.
18774
89fd06fb
TB
187752008-02-22 Tomas Bily <tbily@suse.cz>
18776
18777 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
18778
703fdf5a
RW
187792008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18780
18781 PR bootstrap/35273
18782 * config.build (build_file_translate): Set to `CMD //c' only if
18783 it works.
18784 * Makefile.in (build_file_translate): Improve comment.
18785
0ca16832
JH
187862008-02-21 Jan Hubicka <jh@suse.cz>
18787
18788 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
18789 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
18790 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
18791
c754abbf
MM
187922008-02-21 Michael Matz <matz@suse.de>
18793
18794 PR target/35264
18795 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
18796
85845bb9
UB
187972008-02-21 Uros Bizjak <ubizjak@gmail.com>
18798
18799 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
18800 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
18801 as insn constraint.
18802 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
18803 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
18804 SSE_VEC_FLOAT_MODE_P as insn constraint.
18805 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
18806 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
18807 sse4a_movntdf using MODEF mode iterator.
18808 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
18809 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
18810 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
18811 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
18812 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
18813 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
18814 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
18815
dedd42d5
RG
188162008-02-21 Richard Guenther <rguenther@suse.de>
18817
18818 * tree.def (PAREN_EXPR): New tree code.
18819 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
18820 and PAREN_EXPR.
18821 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
18822 * expr.c (expand_expr_real_1): Likewise.
18823 * tree-inline.c (estimate_num_insns_1): Likewise.
18824 * tree-complex.c (expand_complex_move): Likewise.
18825 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
18826 as plain x.
18827
7a3cb3ab
KK
188282008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
18829
18830 PR target/35225
18831 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
18832
6d4d15b8
KK
188332008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
18834
18835 PR target/35190
18836 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
18837
18838 * config/sh/sh.c (find_barrier): Don't go past
18839 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
18840
6d4a8967
DD
188412008-02-20 DJ Delorie <dj@redhat.com>
18842
18843 * config/h8300/h8300.md (insv): Force source operand to be a register.
18844
18845 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
18846 as a jump, not as a plain insn.
22129589 18847
a214518f
SP
188482008-02-20 Seongbae Park <seongbae.park@gmail.com>
18849
18850 * doc/invoke.texi (Warning Options): Add new option
18851 -Wframe-larger-than=.
18852 (-Wframe-larger-than): Document.
18853
18854 * flags.h (warn_frame_larger_than, frame_larger_than_size):
18855 Add declarations for new option variables.
18856
18857 * final.c (final_start_function): Check the frame size
18858 before emission and issue a Wframe-larger-than warning.
18859
18860 * opts.c (warn_frame_larger_than, frame_larger_than_size):
18861 Add definitions for new option variables.
18862 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
18863
18864 * common.opt (Wframe-larger-than=): New option.
18865
993ac7c7
UB
188662008-02-20 Uros Bizjak <ubizjak@gmail.com>
18867
18868 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
18869 (<sse>_div<mode>3): Ditto.
18870 (<sse>_vmdiv<mode>3): Ditto.
18871 (<sse>_vmsqrt<mode>2): Ditto.
18872 (*smax<mode>3): Ditto.
18873 (sse5_frcz<mode>2): Ditto.
18874 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
18875 as insn constraint.
18876
4cd8e76f
RG
188772008-02-20 Richard Guenther <rguenther@suse.de>
18878
18879 PR middle-end/35265
18880 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
18881 be happy with INTEGRAL_TYPE_P.
18882
41bb1f06
RG
188832008-02-20 Richard Guenther <rguenther@suse.de>
18884
18885 * fold-const.c (split_tree): Associate floatig-point expressions
18886 if flag_associative_math is set.
18887
2dc0f633
RG
188882008-02-20 Richard Guenther <rguenther@suse.de>
18889
18890 * tree.h (fold_real_zero_addition_p): Declare.
18891 * fold-const.c (fold_real_zero_addition_p): Export.
18892 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
18893 floating-point operations with zero and one.
18894
1c8bd6a3
PB
188952008-02-20 Paolo Bonzini <bonzini@gnu.org>
18896
4b40b2a5
UB
18897 * doc/install.texi: Correct references to CFLAGS, replacing them
18898 with BOOT_CFLAGS. Document flags used during bootstrap for
18899 target libraries.
22129589 18900
d6023b50
UB
189012008-02-20 Uros Bizjak <ubizjak@gmail.com>
18902
18903 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
18904 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
18905 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
18906 insn constraint.
18907 (smin<mode>3): Ditto from similar patterns.
18908 (smax<mode>3): Ditto.
18909 (*ieee_smin<mode>3): Ditto.
18910 (*ieee_smax<mode>3): Ditto.
18911 * config/i386/sse.md (sse): New mode attribute.
18912 (mov<mode>): Macroize expander from movv4sf and movv2df using
18913 SSEMODEF2P mode iterator.
18914 (<sse>_movnt<mode>): Ditto from similar patterns. Use
18915 SSE_VEC_FLOAT_MODE_P as insn constraint.
18916 (storent<mode>): Ditto.
18917 (storent<mode>): Macroize expander from storentsf and storentdf using
18918 MODEF mode iterator.
18919 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
18920 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
18921 (abs<mode>2): Ditto from similar patterns.
18922 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
18923 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
18924 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
18925 (<sse>_vmsqrt<mode>2): Ditto.
18926 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
18927 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
18928 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
18929 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
18930 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
18931 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
18932 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
18933 insn constraint.
18934 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
18935 iterator and SSE_FLOAT_MODE_P as insn constraint.
18936 (<sse>_ucomi): Ditto from similar patterns.
18937 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
18938 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
18939 SSE_VEC_FLOAT_MODE_P as insn constraint.
18940 (vcond<mode>): Ditto from similar patterns.
18941 (and<mode>3, *and<mode>3): Ditto.
18942 (<sse>_nand<mode>3): Ditto.
18943 (ior<mode>3, *ior<mode>3): Ditto.
18944 (xor<mode>3, *xor<mode>3): Ditto.
18945 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
18946 iterator and SSE_FLOAT_MODE_P as insn constraint.
18947 (*nand<mode>3): Ditto from similar patterns.
18948 (*ior<mode>3): Ditto.
18949 (*xor<mode>3): Ditto.
18950
76a893cf
IR
189512008-02-20 Ira Rosen <irar@il.ibm.com>
18952
18953 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
18954 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
18955 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
18956
daac0317
JH
189572008-02-19 Jan Hubicka <jh@suse.cz>
18958
a8971bdb
UB
18959 * predict.c (tree_bb_level_predictions): Remove variable next
18960 mistakely introduced by previous commit.
daac0317 18961
3e4b9ad0
JH
189622008-02-19 Jan Hubicka <jh@suse.cz>
18963
18964 * predict.c (predict_paths_leading_to): Rewrite.
18965 (predict_paths_for_bb): New.
18966 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
18967
a0e527e3
RW
189682008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18969
18970 PR bootstrap/35218
18971 * Makefile.in (build_file_translate): New.
18972 (gcc-vers.texi): Use it for translating $(abs_srcdir).
18973 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
18974 * configure.ac (build_file_translate): Substitute it.
18975 * configure: Regenerate.
18976
9d5cee3d
JH
189772008-02-19 Jan Hubicka <jh@suse.cz>
18978
18979 PR rtl-optimization/34408
3e4b9ad0
JH
18980 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
18981 invalid sharing.
9d5cee3d 18982
8723e2fe
JH
189832008-02-19 Jan Hubicka <jh@suse.cz>
18984
18985 PR middle-end/28779
3e4b9ad0
JH
18986 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
18987 call_expr.
8723e2fe 18988
5ba5440f
L
189892008-02-19 H.J. Lu <hongjiu.lu@intel.com>
18990
18991 PR Ada/35186
18992 * config/i386/i386-modes.def: Revert the last DI alignment
18993 change until Ada people can look into it.
18994
c01c261d
NC
189952008-02-19 Nick Clifton <nickc@redhat.com>
18996
18997 * opts.c (print_specific_help): Fix typo in --help text.
18998
2e834acb
JJ
189992008-02-19 Jakub Jelinek <jakub@redhat.com>
19000
19001 PR target/35239
19002 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
19003 32-bit inline asm without asm alternatives for host GCC < 3.0.
19004
9cadd7f7
RG
190052008-02-19 Richard Guenther <rguenther@suse.de>
19006
19007 PR tree-optimization/34989
19008 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
19009 Allow propagation to INDIRECT_REF if we can simplify only.
19010
ffc30173
MLI
190112008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19012
19013 * c-common.c (warn_for_collisions_1): Use appropriate option when
19014 warning.
19015
b3eaaf1a
NC
190162008-02-19 Nick Clifton <nickc@redhat.com>
19017
19018 PR other/31349
a8971bdb 19019 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
19020 (handle_options): Fix indentation.
19021 (print_filtered_help): If no language-specific options were
19022 displayed tell the user how to list all the options supported by
19023 the language's front-end.
19024 (print_specific_help): Fix indentation and remove duplicate line.
19025 (common_handle_option): Handle the -v option.
19026 For --help enable the display of undocumented options if the -v
19027 switch has been included on the command line.
19028 For --help= check for overlaps in the arguments between the option
19029 classes and the language names and issue a warning when they
19030 cannot be disambiguated.
19031 * c.opt (v): Pass on to the common option handler.
19032
22129589 190332008-02-19 Revital Eres <eres@il.ibm.com>
de82c453
RE
19034
19035 * modulo-sched.c (sms_schedule): Change dump message when
19036 create_ddg function fails.
19037 (try_scheduling_node_in_cycle): Rename row to cycle.
19038 (print_partial_schedule): Rename CYCLE to ROW.
19039
32159434 190402008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
19041 Zdenek Dvorak <ook@ucw.cz>
19042
19043 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
19044
0e93e1b4
UB
190452008-02-19 Uros Bizjak <ubizjak@gmail.com>
19046
19047 PR target/33555
19048 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
19049 (*x86_movdicc_0_m1_se): Ditto.
19050
02d353cf
UB
190512008-02-19 Uros Bizjak <ubizjak@gmail.com>
19052
19053 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
19054 (CMPtype): Define as __gcc_CMPtype.
19055 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
19056 (CMPtype): Define as __gcc_CMPtype.
19057
35dee980
HPN
190582008-02-19 Hans-Peter Nilsson <hp@axis.com>
19059
19060 Support valgrind 3.3 for --enable-checking=valgrind.
19061 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
19062 here.
19063 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
19064 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
19065 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
19066 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
19067 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
19068 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
19069 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
19070 respectively.
19071 * ggc-zone.c: Similar.
19072 * ggc-page.c: Similar.
19073
27e03cf1
PB
190742008-02-19 Paul Brook <paul@codesourcery.com>
19075
19076 PR target/35071
19077 * config/arm/ieee754-df.S: Fix do_it typo.
19078 * config/arm/ieee754-sf.S: Fix do_it typo.
19079
287a7d41
L
190802008-02-18 H.J. Lu <hongjiu.lu@intel.com>
19081
19082 PR target/35189
19083 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
19084 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
19085 (OPTION_MASK_ISA_SSE_SET): Likewise.
19086 (OPTION_MASK_ISA_SSE2_SET): Likewise.
19087 (OPTION_MASK_ISA_SSE3_SET): Likewise.
19088 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
19089 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
19090 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
19091 (OPTION_MASK_ISA_SSE4_SET): Likewise.
19092 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
19093 (OPTION_MASK_ISA_SSE5_SET): Likewise.
19094 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
19095 (OPTION_MASK_ISA_MMX_UNSET): Updated.
19096 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
19097 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
19098 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
19099 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
19100 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
19101 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
19102 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
19103 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
19104 (OPTION_MASK_ISA_SSE4): Removed.
19105 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 19106 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
19107 (override_options): Don't turn on implied SSE/MMX bits in
19108 ix86_isa_flags.
19109
feaffcaa
L
191102008-02-18 H.J. Lu <hongjiu.lu@intel.com>
19111
19112 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
19113 32bit host.
19114
b2ae828d
JY
191152008-02-18 Joey Ye <joey.ye@intel.com>
19116
19117 PR middle-end/34921
19118 * tree-nested.c (insert_field_into_struct): Set type alignment
19119 to field alignment if the former is less than the latter.
19120
8d855c3d
JJ
191212008-02-18 Jakub Jelinek <jakub@redhat.com>
19122
19123 * BASE-VER: Set to 4.4.0.
19124
923158be
RW
191252008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19126
19127 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
19128 * doc/cfg.texi: Likewise.
19129 * doc/extend.texi: Likewise.
19130 * doc/gty.texi: Likewise.
19131 * doc/invoke.texi: Likewise.
19132 * doc/loop.texi: Likewise.
19133 * doc/md.texi: Likewise.
19134 * doc/passes.texi: Likewise.
19135 * doc/rtl.texi: Likewise.
19136 * doc/sourcebuild.texi: Likewise.
19137 * doc/tm.texi: Likewise.
19138 * doc/tree-ssa.texi: Likewise.
19139
f0a77246
RG
191402008-02-17 Richard Guenther <rguenther@suse.de>
19141
19142 PR middle-end/35227
19143 * tree-complex.c (init_parameter_lattice_values): Handle parameters
19144 without default definition.
19145
e09deb14
RG
191462008-02-17 Richard Guenther <rguenther@suse.de>
19147
19148 PR tree-optimization/35231
19149 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
19150 if A | B != 1.
19151
e6528d32
UB
191522008-02-17 Uros Bizjak <ubizjak@gmail.com>
19153
19154 Revert:
22129589 19155 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
e6528d32
UB
19156 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
19157 libgcc_cmp_return mode.
19158
93e052a8
MLI
191592008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19160
19161 PR c/28368
19162 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
19163
2a49e6f8
RC
191642008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
19165
19166 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
19167 multilibs.
19168
0ee2ea09
RW
191692008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19170
19171 * doc/c-tree.texi: Use `@.' where appropriate.
19172 * doc/extend.texi: Likewise.
19173 * doc/install.texi: Likewise.
19174 * doc/invoke.texi: Likewise.
19175 * doc/loop.texi: Likewise.
19176 * doc/makefile.texi: Likewise.
19177 * doc/md.texi: Likewise.
19178 * doc/passes.texi: Likewise.
19179 * doc/standards.texi: Likewise.
19180 * doc/tm.texi: Likewise.
19181
ac84c062
JJ
191822008-02-15 Jakub Jelinek <jakub@redhat.com>
19183
19184 PR middle-end/35196
19185 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
19186 in entry_bb.
19187 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
19188 rather than in entry_bb.
19189
6a9e8571
UB
191902008-02-15 Uros Bizjak <ubizjak@gmail.com>
19191
19192 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
19193 libgcc_cmp_return mode.
19194
6837b3b8
JJ
191952008-02-15 Jakub Jelinek <jakub@redhat.com>
19196
19197 PR middle-end/35130
19198 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
19199 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
19200
2e58df6e 192012008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 19202 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
19203
19204 PR tree-optimization/35164
19205 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
19206 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
19207 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
19208 Only propagate addresses which do not have abnormal SSA_NAMEs
19209 in their operands.
19210
206598fb
JM
192112008-02-15 Joseph Myers <joseph@codesourcery.com>
19212
19213 PR target/35088
19214 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
19215
18168b3f
JH
192162008-02-15 Jan Hubicka <jh@suse.cz>
19217
19218 PR middle-end/35149
19219 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
19220
6f6b8f81
UB
192212008-02-15 Uros Bizjak <ubizjak@gmail.com>
19222
19223 PR middle-end/34621
19224 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
19225 when calculating alignment_pad.
19226
979c67a5
UB
192272008-02-15 Uros Bizjak <ubizjak@gmail.com>
19228
19229 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
19230 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
19231 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
19232 and STACK_BOUNDARY define.
19233
101e174d
DS
192342008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
19235
19236 PR preprocessor/35061
19237 * c-pragma.c (handle_pragma_pop_macro): Check that
19238 pushed_macro_table has been allocated.
19239
928bc34f
EB
192402008-02-14 Eric Botcazou <ebotcazou@adacore.com>
19241
19242 PR middle-end/35136
19243 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
19244 (force_gimple_operand): Likewise.
19245 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
19246 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
19247 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
19248 (find_interesting_uses_address): Check addressability and alignment
19249 of the base expression only after substituting bases of IVs into it.
19250
a5bfb13a
MM
192512008-02-14 Michael Matz <matz@suse.de>
19252
19253 PR target/34930
19254 * function.c (instantiate_virtual_regs_in_insn): Reload address
19255 before falling back to reloading the whole operand.
19256
b49326f1
AK
192572008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
19258
19259 * config/s390/s390.c (s390_mainpool_start): Emit the pool
19260 before the first section switch note.
19261
021efafc
RW
192622008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19263
346341a4
RW
19264 * doc/bugreport.texi: Update copyright years.
19265 * doc/c-tree.texi: Likewise.
19266 * doc/cfg.texi: Likewise.
19267 * doc/cpp.texi: Likewise.
19268 * doc/cppinternals.texi: Likewise.
19269 * doc/fragments.texi: Likewise.
19270 * doc/frontends.texi: Likewise.
19271 * doc/gcc.texi: Likewise.
19272 * doc/gty.texi: Likewise.
19273 * doc/hostconfig.texi: Likewise.
19274 * doc/implement-c.texi: Likewise.
19275 * doc/libgcc.texi: Likewise.
19276 * doc/loop.texi: Likewise.
19277 * doc/makefile.texi: Likewise.
19278 * doc/options.texi: Likewise.
19279 * doc/passes.texi: Likewise.
19280 * doc/rtl.texi: Likewise.
19281 * doc/sourcebuild.texi: Likewise.
19282 * doc/standards.texi: Likewise.
19283 * doc/tree-ssa.texi: Likewise.
19284 * doc/trouble.texi: Likewise.
19285
021efafc
RW
19286 * doc/extend.texi: Use @: or add comma where appropriate.
19287 * doc/invoke.texi: Likewise.
19288 * doc/tm.texi: Likewise.
19289
583da60a
AM
192902008-02-14 Alan Modra <amodra@bigpond.net.au>
19291
19292 PR target/34393
19293 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
19294 to a reg.
19295
2a6627c2
JN
192962008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
19297
19298 * doc/md.texi (clz, ctz): Add reference.
19299 * doc/rtl.texi (clz, ctz): Likewise.
19300
1b0c753a
RW
193012008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19302
19303 PR other/35148
19304 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
19305 srcdir.
19306
03870a04
AK
193072008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
19308
19309 * config/s390/s390.c (struct constant_pool): New field
19310 emit_pool_after added.
19311 (s390_mainpool_start): Set the emit_pool_after flag according
19312 to the section switch notes.
19313 (s390_mainpool_finish): Consider emit_pool_after when emitting
19314 the literal pool at the end of the function.
19315 (s390_chunkify_start): Force literal pool splits at section
19316 switch notes.
19317
be71b673
MM
193182008-02-13 Michael Matz <matz@suse.de>
19319
19320 PR debug/35065
19321 * var-tracking.c (clobber_variable_part): Correctly traverse the
19322 list.
19323
fed39e22
MLI
193242008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19325
19326 PR 29673
19327 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
19328 Add -fdump-ipa-inline.
19329 * tree-dump.c (dump_files): Remove tree-inlined dump.
19330 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
22129589 19331
8665227f
RG
193322008-02-12 Richard Guenther <rguenther@suse.de>
19333
19334 PR tree-optimization/35171
19335 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
19336 default defs.
19337
8f768a5a
RG
193382008-02-12 Richard Guenther <rguenther@suse.de>
19339
19340 PR middle-end/35163
19341 * fold-const.c (fold_widened_comparison): Use get_unwidened in
19342 value-preserving mode. Disallow final truncation.
19343
81186f7b
EB
193442008-02-12 Eric Botcazou <ebotcazou@adacore.com>
19345
19346 PR middle-end/35136
19347 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
19348 code from here to...
19349 (force_gimple_operand): ...here.
19350
d7b8033f
JJ
193512008-02-12 Jakub Jelinek <jakub@redhat.com>
19352
e4521d11
JJ
19353 PR c++/35144
19354 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
19355 non-compatible pointers.
19356 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
19357 different FIELD_DECLs, try harder by comparing field offsets, sizes
19358 and types.
19359
d7b8033f
JJ
19360 PR inline-asm/35160
19361 * function.c (match_asm_constraints_1): Don't replace the same input
19362 multiple times.
19363
d6f77715
AS
193642008-02-12 Anatoly Sokolov <aesok@post.ru>
19365
19366 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
19367 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
19368 (expand_epilogue): Restore RAMPZ register.
19369 * config/avr/avr.md (RAMPZ_ADDR): New constant.
19370
35b35fd0
KT
193712008-02-11 Kai Tietz <kai.tietz@onevision.com>
19372
40049ccc 19373 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
19374 convention and alignment.
19375 (__chkstk): Force 8 byte stack alignment.
19376
a6e2d112 193772008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 19378 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
19379
19380 PR tree-optimization/33992
19381 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
19382 the zero we compare against.
19383
40049ccc
UB
193842008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
19385
19386 PR libfortran/35063
19387 * gthr-win32.h (__gthread_mutex_destroy_function): New function
19388 to CloseHandle after unlocking to prevent accumulation of handle
19389 count.
19390
4d811a05
JDA
193912008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19392
19393 PR middle_end/34150
19394 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
19395 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
19396 and update LABEL_NUSES during and after reload.
19397
e37f6a49
SB
193982008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
19399
19400 PR middle-end/34627
a3395528 19401 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
19402 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
19403
34917a10
RS
194042008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
19405
19406 PR bootstrap/35051
19407 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
19408 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
19409 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
19410 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
19411 * tree.h (get_type_static_bounds): Likewise.
19412
670b0231
RW
194132008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19414
19415 * doc/invoke.texi (Option Summary, C++ Dialect Options)
19416 (Objective-C and Objective-C++ Dialect Options, Warning Options):
19417 Make -Wfoo language annotations match what the compiler outputs.
19418
069c47ee
SL
194192008-02-08 Sa Liu <saliu@de.ibm.com>
19420
22129589 19421 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
069c47ee 19422 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 19423
ccd2a21e
HPN
194242008-02-08 Hans-Peter Nilsson <hp@axis.com>
19425
19426 * doc/extend.texi (Function Attributes) <noinline>: Mention
19427 asm ("") as method to keep calls.
19428
af47e6ac
MLI
194292008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19430
19431 PR other/32754
19432 * doc/options.texi (Options): Replace references to opts.sh with
19433 optc-gen.awk.
19434 * opts-common.c: Likewise.
19435 * optc-gen.awk: Likewise.
22129589 19436
96e2afa8
AK
194372008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
19438
19439 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
19440
194412008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
19442
19443 PR rtl-opt/33410
19444 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
22129589 19445 EXPR_LIST for the REG_EQUAL instead of a comparison with a
32891ff6
RH
19446 funny mode.
19447
c4ae80d9
UB
194482008-02-07 Uros Bizjak <ubizjak@gmail.com>
19449
19450 PR tree-optimization/35085
19451 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
19452 for operand entry oe2 in addition to operand entry oe3 in order to
19453 expose more opportunities for vectorizer sum reduction.
19454
72fb133f
KG
194552008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19456
19457 PR other/35107
19458 * Makefile.in (LIBS): Remove $(GMPLIBS).
19459 (cc1-dummy, cc1): Add $(GMPLIBS).
19460
20a415f8
JH
194612008-02-06 Jan Hubicka <jh@suse.cz>
19462
88b089d5 19463 PR target/23322
20a415f8
JH
19464 * i386.md (moddf_integer): Do not produce partial memory stalls for
19465 targets where it hurts.
19466
cc8d36a1
UB
194672008-02-06 Uros Bizjak <ubizjak@gmail.com>
19468
19469 PR target/35083
19470 * optabs.c (expand_float): Do not check for decimal modes when
19471 expanding unsigned integer through signed conversion.
19472
2ccd9cb2
NC
194732008-02-06 Nick Clifton <nickc@redhat.com>
19474
19475 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
19476 inside the clobber with a match_operand and duplicated operand
19477 number in the constraint.
19478 (ineqbranchsi): Delete redundant comment.
19479
ecb2366e
RC
194802008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
19481
22129589 19482 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
448b96d0
RC
19483 builtin_define ("__USE_INIT_FINI__").
19484 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
19485 -msx multilibs.
ecb2366e
RC
19486 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
19487
ccd4e386
RW
194882008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19489
19490 PR documentation/30330
19491 * doc/invoke.texi (C++ Dialect Options)
19492 (Objective-C and Objective-C++ Dialect Options, Warning Options):
19493 For each warning option -Wfoo that allows -Wno-foo, ensure both
19494 -Wfoo and -Wno-foo are listed in the option index. Fix index
19495 entry of -Wswitch-default, index -Wnormalized= including the
19496 `=', and -Wlarger-than-@var{len} including @var{len}.
19497
def7425b
UB
194982008-02-05 Uros Bizjak <ubizjak@gmail.com>
19499
19500 * config/i386/i386.md (floatunssisf2): Use
19501 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
19502 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
19503 Macroize expander using MODEF mode iterator.
19504
c1e7d240
DN
195052008-02-05 Diego Novillo <dnovillo@google.com>
19506
19507 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
19508
19509 PR 33738
def7425b 19510 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 19511
3a204175
KG
195122008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19513
19514 PR other/35070
19515 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
19516
7074bc2e
L
195172008-02-05 H.J. Lu <hongjiu.lu@intel.com>
19518
19519 PR target/35084
19520 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
19521 to indicate if a message should be generated.
19522 (init_cumulative_args): Updated.
19523 (function_value_32): Likewise.
19524
0f5098ae
JM
195252008-02-05 Joseph Myers <joseph@codesourcery.com>
19526
19527 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
19528
4a534152
UB
195292008-02-05 Uros Bizjak <ubizjak@gmail.com>
19530
19531 PR target/35083
19532 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
19533 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
19534
3467b230
DN
195352008-02-04 Diego Novillo <dnovillo@google.com>
19536
19537 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
19538
19539 PR 33738
19540 * tree-vrp.c (vrp_evaluate_conditional): With
19541 -Wtype-limits, emit a warning when comparing against a
19542 constant outside the natural range of OP0's type.
19543
22199fd2
RG
195442008-02-04 Richard Guenther <rguenther@suse.de>
19545
19546 PR middle-end/33631
19547 * expr.c (count_type_elements): Give for unions instead of
19548 guessing.
19549
1a1640db
RG
195502008-02-04 Richard Guenther <rguenther@suse.de>
19551
19552 PR middle-end/35043
19553 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
19554 to TYPE_DOMAINs base type instead of using bitsizetype here.
19555
0fcedd9c
JM
195562008-02-03 Jason Merrill <jason@redhat.com>
19557
19558 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
19559
a31cfd58
RW
195602008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19561
19562 PR other/29972
19563 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
19564 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
19565 (RS/6000 and PowerPC Options): Fix typos and markup.
19566 * doc/passes.texi (Tree-SSA passes): Likewise.
19567
6994f254
MM
195682008-02-02 Michael Matz <matz@suse.de>
19569
19570 PR target/35045
19571 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
19572 from record_last_reg_set_info.
19573 (record_last_reg_set_info): Take an RTX argument, iterate over all
19574 constituent hardregs.
19575 (record_last_set_info, record_opr_changes): Change calls to
19576 new signature or to record_last_reg_set_info_regno.
19577
27f56cb1
GP
195782008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
19579
19580 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
19581
3e836a31
HPN
195822008-02-01 Hans-Peter Nilsson <hp@axis.com>
19583
19584 PR rtl-optimization/34773
19585 * reg-notes.def (EQUAL): Mention significance of combination of
19586 REG_EQUAL and REG_RETVAL.
19587 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
19588 insn that has a REG_RETVAL.
19589
d5be1dd4
RS
195902008-02-01 Roger Sayle <roger@eyesopen.com>
19591
19592 PR bootstrap/33781
19593 * configure.ac (--enable-fixed-point): Disable unless explicitly
19594 requested on IRIX.
19595 * configure: Regenerate.
19596
7c9c2f2a
RG
195972008-02-01 Richard Guenther <rguenther@suse.de>
19598
19599 PR other/35042
19600 * invoke.texi (-finline-limit): Remove no longer true parts
19601 of the documentation. Note that there is no default value.
19602
a18c20ec
AP
196032008-02-01 Andrew Pinski <pinskia@gmail.com>
19604 Mark Mitchell <mark@codesourcery.com>
19605 Ben Elliston <bje@au.ibm.com>
19606
19607 PR c/29326
19608 * doc/extend.texi (Other Builtins): Document.
19609
dc9a511d
TB
196102008-01-31 Tom Browder <tom.browder@gmail.com>
19611
19612 * doc/c-tree.texi (Types): Fix grammar.
19613 (Expression trees): Ditto.
19614 * doc/passes.texi (Tree-SSA passes): Ditto.
22129589 19615
dc9a511d
TB
19616 * doc/configterms.texi (Configure Terms): Fix typo.
19617 * doc/cpp.texi (Common Predefined Macros): Ditto.
19618 * doc/md.texi (Machine Constraints): Ditto.
22129589 19619
dc9a511d
TB
19620 * doc/makefile.texi (Makefile): Add comma.
19621
5dc81ee9
TB
196222008-01-31 Tom Browder <tom.browder@gmail.com>
19623 Gerald Pfeifer <gerald@pfeifer.com>
22129589 19624
5dc81ee9
TB
19625 * doc/sourcebuild.texi (Front End): Remove references to CVS
19626 and CVSROOT/modules.
19627 (Texinfo Manuals): Replace reference to CVS by one to SVN.
19628 (Back End): Remove reference to CVS.
19629
5ca3d30c
RS
196302008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
19631
19632 PR target/34900
19633 * config/mips/mips.c (gen_load_const_gp): New function, taking a
19634 comment from...
19635 (mips16_gp_pseudo_reg): ...here.
19636 * config/mips/mips.md (load_const_gp): Replace with...
19637 (load_const_gp_<mode>): ...this :P-based insn.
19638
89fe7f1b
MLI
196392008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19640
19641 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
19642 options. Minor fixes.
19643 (-std): Move reference to standards closer to where language
19644 standards are first mentioned.
22129589 19645
1f7f6676
RS
196462008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
19647
19648 PR rtl-optimization/34995
19649 * reload.c (alternative_allows_const_pool_ref): Take an rtx
19650 parameter and return a bool. If the rtx parameter is nonnull,
19651 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
19652 (find_reloads): Update call accordingly. Pass the new operand
19653 if it needed no address reloads, otherwise pass null.
19654
2ae7b972
RH
196552008-01-30 Richard Henderson <rth@redhat.com>
19656
19657 PR c/34993
19658 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
19659 for unbounded arrays.
19660
493f36a7
SR
196612008-01-30 Silvius Rus <rus@google.com>
19662
19663 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
19664
d6951cae
JH
196652008-01-30 Jan Hubicka <jh@suse.cz>
19666
19667 PR target/34982
19668 * i386.c (init_cumulative_args): Use real function declaration when
19669 calling locally.
19670
f36a5a88
RS
196712008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
19672
19673 PR rtl-optimization/34998
19674 * global.c (build_insn_chain): Treat non-subreg_lowpart
19675 SUBREGs of pseudos as clobbering all the words covered by the
19676 SUBREG, not just all the bytes.
19677 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
19678 original df_ref rather than an extract parameter.
19679 (global_conflicts): Update call accordingly.
19680
393c0058
AK
196812008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
19682
19683 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
19684 the overflow check to make it easier to read.
19685 (__fixtfdi): Change the type of the ll member in union
19686 long_double to UDItype_x.
19687
1033ffa8
JJ
196882008-01-30 Jakub Jelinek <jakub@redhat.com>
19689
2bafad93
JJ
19690 PR middle-end/34969
19691 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
19692 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
19693 * tree-inline.c (fold_marked_statements): Call
19694 cgraph_update_edges_for_call_stmt if folding a call statement.
19695 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
19696 debug_generic_stmt calls, reset it back afterwards.
19697
1033ffa8
JJ
19698 PR c/35017
19699 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
19700 static decls.
19701 * c-typeck.c (build_external_ref): Don't pedwarn about
19702 static vars in current function's scope.
19703
ed32d842
JM
197042008-01-29 Joseph Myers <joseph@codesourcery.com>
19705
19706 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
19707
ea429753
BF
197082008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
19709
19710 PR c/35002
19711 * ipa-struct-reorg.c: Fix spelling.
19712 * params.def: Ditto.
19713
4f5c64b8
RG
197142008-01-29 Richard Guenther <rguenther@suse.de>
19715
19716 PR middle-end/35006
19717 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
19718 field.
19719 * tree-inline.c (remap_type): Increment remapping_type_depth
19720 around remapping types.
19721 (copy_body_r): Only add referenced variables if they are referenced
19722 from code, not types.
19723
7b3e2d46
DG
197242008-01-29 Douglas Gregor <doug.gregor@gmail.com>
19725
19726 PR c++/34055
19727 PR c++/34103
19728 PR c++/34219
19729 PR c++/34606
19730 PR c++/34753
19731 PR c++/34754
19732 PR c++/34755
19733 PR c++/34919
19734 PR c++/34961
19735 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
19736 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
19737
12720317
AH
197382008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
19739
19740 PR target/34412
22129589 19741 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
12720317
AH
19742 pointer for tiny stack.
19743
b814cc0a
BF
197442008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
19745
19746 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
19747
f46ff798
BF
197482008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
19749
19750 * config/vx-common.h: Fix typo in comment.
19751
e8b0eabc
ILT
197522008-01-28 Ian Lance Taylor <iant@google.com>
19753
19754 PR c++/34862
19755 PR c++/33407
19756 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19757 coalesce pointers if they have different DECL_NO_TBAA_P values.
19758 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
19759 between variables with different DECL_NO_TBAA_P values.
19760
2aa42e6e
NF
197612008-01-28 Nathan Froyd <froydnj@codesourcery.com>
19762
19763 PR 31535
19764 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
19765 are not legitimate small data references on SPE targets.
19766
4e2e9e9b
DD
197672008-01-28 David Daney <ddaney@avtrex.com>
19768
19769 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
19770
a26c7632
DD
197712008-01-28 David Daney <ddaney@avtrex.com>
19772
19773 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
19774
4f605349
JM
197752008-01-27 Joseph Myers <joseph@codesourcery.com>
19776
19777 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
19778 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
19779 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
19780 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
19781 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
19782 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
19783 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
19784 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
19785
9e148d6a
BF
197862008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
19787
19788 * basic-block.h (condjump_equiv_p): Fix comment.
19789
f749d3c6
BF
197902008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
19791
19792 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
19793 print_generic_stmt_indented): Fix comment.
19794
fed6d628
BF
197952008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
19796
19797 * configure.ac (__stack_chk_fail): Add detecion for availability
19798 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
19799 * configure: Regenerate.
19800
c01e4479
MK
198012008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
19802
19803 PR middle-end/34688
19804 * final.c (output_addr_const): Handle TRUNCATE.
19805
6e8c65f6
ZD
198062008-01-26 Zdenek Dvorak <ook@ucw.cz>
19807
19808 PR target/34711
19809 * tree-ssa-loop-ivopts.c (comp_cost): New type.
19810 (zero_cost, infinite_cost): New constants.
19811 (struct cost_pair): Change type of cost to comp_cost.
19812 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
19813 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
19814 New functions.
19815 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
19816 split_address_cost, ptr_difference_cost, difference_cost,
19817 get_computation_cost_at, get_computation_cost,
19818 determine_use_iv_cost_generic, determine_use_iv_cost_address,
19819 determine_use_iv_cost_condition, determine_use_iv_costs,
19820 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
19821 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
19822 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
19823 Change type of cost to comp_cost.
19824 (determine_iv_cost): Increase cost of non-original ivs, instead
19825 of decreasing the cost of original ones.
22129589 19826 (get_address_cost): Indicate the complexity of the addressing mode
6e8c65f6
ZD
19827 in comp_cost.
19828 (try_add_cand_for): Prefer using ivs not specific to some object.
19829 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
19830
c01e4479 198312008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
19832 Janis Johnson <janis187@us.ibm.com>
19833
19834 PR target/34814
19835 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
19836 (TARGET_INSTANTIATE_DECLS): Likewise.
19837 * target.h (expand_to_rtl_hook): New target hook.
19838 (instantiate_decls): Likewise.
19839 * function.c (instantiate_decl): Make non-static. Rename to...
19840 (instantiate_decl_rtl): ... this.
19841 (instantiate_expr): Use instantiate_decl_rtl.
19842 (instantiate_decls_1): Likewise.
19843 (instantiate_decls): Likewise.
19844 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
19845 * function.h (instantiate_decl_rtl): Add prototype.
19846 * cfgexpand.c (target.h): New include.
19847 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
19848 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
19849 (TARGET_INSTANTIATE_DECLS): Likewise.
19850 (TARGET_INITIALIZER): New target hooks added.
19851 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19852 New prototype.
19853 * config/rs6000/rs6000.c (tree-flow.h): New include.
19854 (machine_function): Add sdmode_stack_slot field.
19855 (rs6000_alloc_sdmode_stack_slot): New function.
19856 (rs6000_instantiate_decls): Likewise.
19857 (rs6000_secondary_memory_needed_rtx): Likewise.
19858 (rs6000_check_sdmode): Likewise.
19859 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
19860 (TARGET_INSTANTIATE_DECLS): Likewise.
19861 (rs6000_hard_regno_mode_ok): Allow SDmode.
19862 (num_insns_constant): Likewise. Handle _Decimal32 constants.
19863 (rs6000_emit_move): Handle SDmode.
19864 (function_arg_advance): Likewise.
19865 (function_arg): Likewise.
19866 (rs6000_gimplify_va_arg): Likewise. Add special handling of
19867 SDmode var args for 32-bit compiles.
19868 (rs6000_secondary_reload_class): Handle SDmode.
19869 (rs6000_output_function_epilogue): Likewise.
19870 (rs6000_function_value): Simplify if statement.
19871 (rs6000_libcall_value): Likewise.
19872 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
19873 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
19874 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
19875 (movsd_hardfloat): New define_insn.
19876 (movsd_softfloat): Likewise.
19877 (movsd_store): Likewise.
19878 (movsd_load): Likewise.
19879 (extendsddd2): Likewise.
19880 (extendsdtd2): Likewise.
19881 (truncddsd2): Likewise.
19882 (movdd_hardfloat64): Fixup comment.
19883 (UNSPEC_MOVSD_LOAD): New constant.
19884 (UNSPEC_MOVSD_STORE): Likewise.
19885
6f536f74
JJ
198862008-01-26 Jakub Jelinek <jakub@redhat.com>
19887
19888 PR c++/34965
19889 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
19890 TRUTH_XOR_EXPR.
19891 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
19892 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
19893 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
19894 and TRUTH_XOR_EXPR.
19895
ba6a1b78
DE
198962008-01-26 David Edelsohn <edelsohn@gnu.org>
19897
19898 PR target/34794
19899 * config.gcc: Separate AIX 5.3 from AIX 6.1.
19900 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19901 __LONGDOUBLE128 too.
19902 * config/rs6000/aix61.h: New file.
19903
1230d7f8
RS
199042008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
19905
19906 PR rtl-optimization/34959
19907 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
19908 popcount and parity rtxes the same mode as their operand.
19909 Truncate or extend the result to the return value's mode
19910 if necessary.
19911
dbc90b65
RS
199122008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
19913
19914 PR target/34981
19915 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
19916 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
19917 to GOT_VERSION_REGNUM.
19918 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
19919 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
19920 * config/mips/mips.c (mips_emit_call_insn): New function.
19921 (mips_call_tls_get_addr): Call mips_expand_call directly.
19922 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
19923 emit_call_insn.
19924 (mips16_build_call_stub): Likewise. Return the call insn or null.
19925 (mips_expand_call): Update the call to mips16_build_call_stub
19926 accordingly and a remove redundant condition. Assert that MIPS16
19927 stubs do not use lazy binding. Use mips_emit_call_insn and return
19928 the call insn.
19929 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
19930 TARGET_USE_GOT.
19931 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
19932 (mips_avoid_hazard): Remove hazard_set handling.
19933 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
19934 (UNSPEC_RESTORE_GP): ...this.
19935 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
19936 (FAKE_CALL_REGNO): Rename to...
19937 (GOT_VERSION_REGNUM): ...this.
19938 (type): Add "ghost" value. Add an associated insn reservation.
19939 (hazard_set): Remove.
19940 (exception_receiver): Rename to...
19941 (restore_gp): ...this and update the unspec identifier accordingly.
19942 (exception_receiver, nonlocal_got_receiver): New expanders.
19943 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
19944 FAKE_CALL_REGNO. Remove hazard_set attribute.
19945 (set_got_version, update_got_version): New patterns.
19946
763a27ee
DS
199472008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
19948
19949 PR target/34970
19950 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
19951
3725c0ca
JM
199522008-01-25 Joseph Myers <joseph@codesourcery.com>
19953
19954 PR other/31955
19955 * doc/install.texi2html: Generate gcc-vers.texi.
19956
0288980f
DD
199572008-01-25 DJ Delorie <dj@redhat.com>
19958
19959 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
19960
8d8da227
JM
199612008-01-25 Joseph Myers <joseph@codesourcery.com>
19962
19963 * config/c4x: Remove directory.
19964 * config.gcc (crx-*, mt-*): Mark obsolete.
19965 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
19966 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
19967 sh-*-rtemscoff*): Remove cases.
19968 * defaults.h (C4X_FLOAT_FORMAT): Remove.
19969 * real.c (encode_c4x_single, decode_c4x_single,
19970 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
19971 c4x_extended_format): Remove.
19972 * real.h (c4x_single_format, c4x_extended_format): Remove.
19973 * doc/extend.texi (interrupt, naked): Remove mention of attributes
19974 on C4x.
19975 (Pragmas): Remove comment about c4x pragmas.
19976 * doc/install.texi (c4x): Remove target-specific instructions.
19977 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
19978 * doc/md.texi (Machine Constraints): Remove C4x documentation.
19979 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
19980 refer to C4x source files as examples.
19981 (C4X_FLOAT_FORMAT): Remove documentation.
19982
fb7c3b05
BS
199832008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
19984
19985 * config/bfin/bfin.c (override_options): Reorder tests so that
19986 flag_pic gets enabled for -msep-data.
19987
dd3b33d7
RG
199882008-01-25 Richard Guenther <rguenther@suse.de>
19989
19990 PR middle-end/32244
19991 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
19992 to its bitfield precision if required.
19993
c256730c
JJ
199942008-01-25 Jakub Jelinek <jakub@redhat.com>
19995
19996 PR middle-end/33880
19997 * tree-nested.c (walk_omp_for): New function.
19998 (convert_nonlocal_reference, convert_local_reference): Call
19999 walk_omp_for on OMP_FOR.
20000 (convert_call_expr): Call walk_body on OMP_FOR's
20001 OMP_FOR_PRE_INIT_BODY.
20002
59805c3b
RG
200032008-01-25 Richard Guenther <rguenther@suse.de>
20004
20005 PR tree-optimization/34966
20006 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
20007 default defs and PHI_NODEs we have to insert after the
20008 defining statement.
20009
f84fe9b6
NC
200102008-01-24 Nick Clifton <nickc@redhat.com>
20011
20012 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
20013 Provide a default definition.
20014 (LIBGCC2_UNITS_PER_WORD): Likewise.
20015
20016 * config/stormy16/stormy16.c: Include df.h for the prototype
20017 for df_regs_ever_live_p.
20018 (xstormy16_expand_builtin_va_start): Convert the stack offset
20019 into a component_ref and then use POINTER_PLUS_EXPR to add it
20020 to the incoming_virtual_args_rtx.
20021 (xstormy16_gimplify_va_arg_expr): Rename to
20022 xstormy16_gimplify_va_arg_expr.
20023 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
20024 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
20025 xstormy16_gimplify_va_arg_expr.
20026 Fix up some formatting issues.
20027
20028 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
20029 Move to predicates.md.
20030 (xs_hi_general_operand): Likewise.
20031 (xs_hi_nonmemory_operand): Likewise.
20032 * config/stormy16/predicates.md:
20033 (xstormy16_carry_plus_operand): New predicate.
20034 (xs_hi_general_operand): New predicate.
20035 (xs_hi_nonmemory_operand): New predicate.
20036 * config/stormy16/stormy16-protos.h:
20037 (xstormy16_carry_plus_operand): Delete prototype.
20038 (xs_hi_general_operand): Likewise.
20039 (xs_hi_nonmemory_operand): Likewise.
20040
20041 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
20042 modifiers as they are no longer needed and they can trigger
20043 reload spill failures.
20044
20045 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
20046 with a match_operand in order to help reload.
20047
20048 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
20049 constraint with 'e' for the 8th alternative as this version of
20050 the mov.w instruction only accepts the lower 8 registers.
20051
d1f0728e
UB
200522008-01-25 Uros Bizjak <ubizjak@gmail.com>
20053
20054 PR target/34856
20055 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
20056 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
20057 vector elements.
20058
80e67011
JJ
200592008-01-25 Jakub Jelinek <jakub@redhat.com>
20060
20061 PR middle-end/33333
20062 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
20063
1525f2c3
GO
200642008-01-25 Golovanevsky Olga <olga@il.ibm.com>
20065
20066 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
20067 New functions.
20068 (remove_structure): Update allocations list before removing structure.
22129589 20069
bd91d743
OG
200702008-01-25 Golovanevsky Olga <olga@il.ibm.com>
20071
22129589 20072 * ipa-struct-reorg.c (is_safe_cond_expr,
bd91d743
OG
20073 create_new_stmts_for_cond_expr): Use integer_zerop function,
20074 that recognize not only zero-pointer, but zero-integer too.
20075
ae7a8ebc
BE
200762008-01-25 Ben Elliston <bje@au.ibm.com>
20077
20078 PR other/22232
20079 * fixproto: Escape "." in sed expression that strips leading "./".
20080
3371362c
L
200812008-01-24 H.J. Lu <hongjiu.lu@intel.com>
20082
20083 PR driver/34904
20084 * gcc.c (SWITCH_OK): Removed.
20085 (SWITCH_LIVE): Changed to bit.
20086 (SWITCH_FALSE): Likewise.
20087 (SWITCH_IGNORE): Likewise.
20088 (switchstr): Change live_cond to unsigned int.
20089 (process_command): Replace SWITCH_OK with 0.
20090 (do_self_spec): Likewise.
20091 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
20092 (give_switch): Likewise.
20093 (used_arg): Likewise.
20094 (do_spec_1): Set the SWITCH_IGNORE bit.
20095 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
20096 bits. Set the SWITCH_LIVE bit.
20097
5f1b2ee6
AK
200982008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
20099
20100 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
20101
986d97ed
RS
201022008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
20103
20104 PR tree-optimization/34472
20105 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
20106 parameter to a "bool *" and set *DATA to false if there is
20107 an unsafe access. Do not delete the structure here.
20108 (check_cond_exprs): Delete it here instead.
20109 (check_cond_exprs, exclude_cold_structs): Do not increase
20110 I when removing a structure.
20111
fcc44808
UB
201122008-01-24 Uros Bizjak <ubizjak@gmail.com>
20113
20114 PR target/34856
20115 * config/i386/i386.c (ix86_expand_vector_init): Consider only
20116 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
20117
134c2de3
JJ
201182008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
20119
20120 PR middle-end/34934
20121 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
20122 a fixed vector for stack.
20123
89bf8683
BE
201242008-01-24 Ben Elliston <bje@au.ibm.com>
20125
20126 PR c++/25701
20127 * doc/gcc.texi (Software development): Add a direntry for g++.
22129589 20128
02a4bca9
HPN
201292008-01-23 Hans-Peter Nilsson <hp@axis.com>
20130
6c660aeb
HPN
20131 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
20132 stale and straggling -fforce-addr comments above.
20133
02a4bca9
HPN
20134 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
20135 define.
20136 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
20137 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
20138
b4da9f9d
MM
201392008-01-23 Michael Matz <matz@suse.de>
20140
20141 PR debug/34895
20142 * dwarf2out.c (force_type_die): Use modified_type_die instead of
20143 gen_type_die.
20144
1b7af7b0
AK
201452008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
20146
20147 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
20148 malloc result type.
20149
19298da4
AS
201502008-01-23 Anatoly Sokolov <aesok@post.ru>
20151
20152 * config/avr/avr.c (avr_current_arch): New variable.
20153 (avr_arch_types): Add 'avr31' and 'avr51' entries.
20154 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
20155 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
22129589 20156 (avr_override_options): Init 'avr_current_arch'.
19298da4 20157 (base_arch_s): Move from here...
22129589
AS
20158 * config/avr/avr.h (base_arch_s): ... here. Add new members
20159 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19298da4 20160 'mega' to 'have_jmp_call'.
22129589 20161 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5617c135 20162 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19298da4 20163 macros.
22129589 20164 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19298da4 20165 architectures.
22129589 20166 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5617c135 20167 MULTILIB_MATCHES): Ditto.
19298da4 20168
b86b3ea3
RG
201692008-01-23 Richard Guenther <rguenther@suse.de>
20170
20171 PR middle-end/31529
20172 * cgraphunit.c (cgraph_reset_node): Always mark the node
20173 not reachable if it is not queued already.
20174
fa8d4a0f
BS
201752008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
20176
20177 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
20178 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
20179 (cputype_selected): New static variable.
20180 (bfin_handle_option): Set it if -mcpu is used.
20181 (override_option): Select default set of workarounds if no cpu type
20182 selected on the command line.
20183 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
20184
20185 From Michael Frysinger <michael.frysinger@analog.com>
20186 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
20187 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
20188
20189 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
20190 for bf547, bf523, bf524, and bf526.
20191 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
20192 bf526.
20193 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
20194 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
20195 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
20196 __ADSPBF547__ and __ADSPBF54x__ for bf547.
20197 * doc/invoke.texi (Blackfin Options): Document that
20198 -mcpu now accept bf547, bf523, bf524, and bf526.
20199
df1a98ae
EB
202002008-01-22 Eric Botcazou <ebotcazou@adacore.com>
20201
20202 PR rtl-optimization/34628
20203 * combine.c (try_combine): Stop and undo after the first combination
20204 if an autoincrement side-effect on the first insn has effectively
20205 been lost.
20206
1a23970d
DE
202072008-01-22 David Edelsohn <edelsohn@gnu.org>
20208
20209 PR target/34529
20210 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
20211 Offset addresses are not valid for Altivec or paired float modes.
20212
42a89d2d
JJ
202132008-01-22 Jakub Jelinek <jakub@redhat.com>
20214
61c3a446
JJ
20215 PR c++/34607
20216 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
20217 if DECL_INITIAL (decl) is error_mark_node.
20218
270e749d
JJ
20219 PR c++/34914
20220 * c-common.c (handle_vector_size_attribute): Only allow
20221 integral, scalar float and fixed point types. Handle OFFSET_TYPE
20222 the same way as pointer, array etc. types.
20223 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
20224
42a89d2d
JJ
20225 PR c++/34917
20226 * tree.c (build_type_attribute_qual_variant): Call
20227 build_qualified_type if attributes are equal, but quals are not.
20228
027b740e
MLI
202292008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20230
20231 PR 32102
20232 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
20233 * flags.h (warn_strict_aliasing): Remove.
20234 (warn_strict_overflow): Remove.
20235 * opts.c (warn_strict_aliasing): Remove.
20236 (warn_strict_overflow): Remove.
20237 * c-opts.c (c_common_handle_option): -Wall only sets
20238 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
20239 (c_common_post_options): Give default values to -Wstrict-aliasing
20240 and -Wstrict-overflow if they are uninitialized.
20241 * common.opt (Wstrict-aliasing): Specify Var and Init.
20242 (Wstrict-overflow): Likewise.
20243
4218dc2d 202442008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
20245
20246 PR rtl-optimization/26854
20247 PR rtl-optimization/34400
20248 PR rtl-optimization/34884
20249 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
20250 DF_RD->gen.
20251 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
20252 (df_rd_bb_info.expanded_lr_out): Deleted
20253 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
20254 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
20255 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
20256 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
20257 Removed code to allocate, initialize or free expanded_lr_out.
20258 (df_rd_bb_local_compute_process_def): Restructured to make more
20259 understandable.
20260 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
20261 sets if the sets are being trimmed.
20262
115e6e55
L
202632008-01-22 H.J. Lu <hongjiu.lu@intel.com>
20264
20265 PR bootstrap/32287
20266 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
20267 (as_vers): Likewise.
20268 * configure: Regenerated.
20269
f9d02384
MLI
202702008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20271
20272 PR middle-end/33092
20273 * tree-pass.h (pass_build_alias): New pass.
20274 * tree-ssa-alias.c (gate_build_alias): New.
20275 (pass_build_alias): New.
20276 * passes.c (init_optimization_passes): Add pass_build_alias after
20277 pass_create_structure_vars.
20278
0387c142
WG
202792008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
20280
20281 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
20282 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
20283 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
20284 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
20285 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
20286 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
20287 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
20288 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
20289 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
20290 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
20291 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
20292 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
20293 * config/s390/s390.md (FP_ALL): New mode iterator.
20294 (_d): New mode attribute.
20295 ("*signbit<mode>2>"): Changed mode of first operand.
20296 ("isinf<mode>2"): Changed mode of first operand.
20297 ("*TDC_insn"): Adaptation for DFP modes.
20298
1d4f5374
BE
202992008-01-22 Ben Elliston <bje@au.ibm.com>
20300
20301 * tree.c (check_qualified_type): Improve function description.
20302
33b45227
JM
203032008-01-21 Jason Merrill <jason@redhat.com>
20304
20305 PR c++/34196
20306 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
20307 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
20308 if it is set.
20309
79e168da
DD
203102008-01-21 DJ Delorie <dj@redhat.com>
20311
20312 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
20313 return zero.
20314
bb0c55f6
RG
203152008-01-21 Richard Guenther <rguenther@suse.de>
20316
20317 PR middle-end/34856
20318 * tree-cfg.c (verify_expr): Allow all invariant expressions
20319 instead of just constant class ones as reference argument.
20320 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
20321 like any other constant.
20322 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20323
94c54fea
L
203242008-01-21 H.J. Lu <hongjiu.lu@intel.com>
20325
20326 * regmove.c (fixup_match_1): Update call crossed frequencies.
20327
c54e3854
RG
203282008-01-21 Richard Guenther <rguenther@suse.de>
20329
20330 PR c/34885
20331 * tree-inline.c (setup_one_parameter): Deal with mismatched
20332 types using a VIEW_CONVERT_EXPR.
20333
b158b5c6
AD
203342008-01-21 Alon Dayan <alond@il.ibm.com>
20335 Olga Golovanevsky <olga@il.ibm.com>
22129589 20336
b158b5c6
AD
20337 PR tree-optimization/34701
20338 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
20339 when the structure size is not a power of 2.
20340
4218dc2d 203412008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
20342
20343 * doc/install.texi: Add doc for --enable-checking=df.
22129589 20344
539c54ba
KK
203452008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
20346
20347 PR rtl-optimization/34808
20348 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
20349
ecff8c1c
RS
203502008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
20351
20352 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
20353 input.
20354
4218dc2d 203552008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
20356
20357 PR rtl-optimization/26854
20358 PR rtl-optimization/34400
20359 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
20360 DF_RD->gen.
20361 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
20362 (df_rd_bb_info.expanded_lr_out): New.
20363 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
20364 * loop_iv.c (iv_analysis_loop_init): Ditto.
20365 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
20366 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
20367 Added code to allocate, initialize or free expanded_lr_out.
20368 (df_rd_bb_local_compute_process_def): Restructured to make
20369 more understandable.
20370 (df_rd_confluence_n): Add code to do nothing with fake edges and
20371 code to no apply invalidate_by_call sets if the sets are being trimmed.
20372 (df_lr_local_finalize): Renamed to df_lr_finalize.
20373 (df_live_local_finalize): Renamed to df_live_finalize.
20374
0decaff6
RS
203752008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
20376
20377 PR target/34831
20378 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
20379 deciding whether to use reciprocal instructions.
20380
d0b9dbd5
UB
203812008-01-19 Uros Bizjak <ubizjak@gmail.com>
20382
20383 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
20384 dwarf2out_note_section_used if cold_text_section is NULL.
20385
135a171d
JJ
203862008-01-19 Jakub Jelinek <jakub@redhat.com>
20387
20388 PR gcov-profile/34610
20389 * tree-cfg.c (make_edges): Mark both outgoing edges from
20390 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
20391 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
20392 from OMP_FOR and OMP_CONTINUE outgoing edges.
20393
20394 * tree-profile.c (tree_profiling): Return early if
20395 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
20396 at the end.
20397 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
20398 from cfun to child_cfun.
20399 * function.h (struct function): Add after_tree_profile bit.
20400
0a84fec6
AS
204012008-01-19 Anatoly Sokolov <aesok@post.ru>
20402
20403 * config/avr/avr.S (_exit): Disable interrupt.
20404
5aa52064
KZ
204052008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
20406 Steven Bosscher <stevenb.gcc@gmail.com>
20407
20408 PR rtl-optimization/26854
20409 PR rtl-optimization/34400
20410 * df-problems.c (df_live_scratch): New scratch bitmap.
20411 (df_live_alloc): Allocate df_live_scratch when doing df_live.
20412 (df_live_reset): Clear the proper bitmaps.
20413 (df_live_bb_local_compute): Only process the artificial defs once
20414 since the order is not important.
20415 (df_live_init): Init the df_live sets only with the variables
20416 found live by df_lr.
20417 (df_live_transfer_function): Use the df_lr sets to prune the
22129589 20418 df_live sets as they are being computed.
5aa52064
KZ
20419 (df_live_free): Free df_live_scratch.
20420
28a08168
ILT
204212008-01-18 Ian Lance Taylor <iant@google.com>
20422
20423 * common.opt: Add fmerge-debug-strings.
20424 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
20425 flag_merge_debug_strings rather than flag_merge_constants.
20426 * doc/invoke.texi (Option Summary): Mention
20427 -fmerge-debug-strings.
20428 (Debugging Options): Document -fmerge-debug-strings.
20429
1ea193c2
ILT
204302008-01-18 Ian Lance Taylor <iant@google.com>
20431
20432 PR c++/33407
20433 * tree.h (DECL_IS_OPERATOR_NEW): Define.
20434 (struct tree_function_decl): Add new field operator_new_flag.
20435 * tree-inline.c (expand_call_inline): When inlining a call to
20436 operator new, force the return value to go into a variable, and
20437 set DECL_NO_TBAA_P on that variable.
20438 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
20439
74ab34d3
UB
204402008-01-18 Uros Bizjak <ubizjak@gmail.com>
20441
20442 PR debug/34484
20443 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
20444 DWARF2_DEBUGGING_INFO.
20445 (dwarf2out_note_section_used): Ditto. Add prototype.
20446 (have_multiple_function_sections, text_section_used,
20447 cold_text_section_used, *cold_text_sections): Move declarations
20448 before their uses.
20449
9a75e92d 204502008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
20451
20452 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
20453 field and add signal_ra.
20454 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
20455 assignments to frame state pc. Move end of stack check after
20456 MD_FALLBACK_FRAME_STATE_FOR.
20457 (uw_update_context_1): Use frame state signal_regs if set, instead
20458 of checking signal_frame flag.
20459 (uw_update_context): Use frame state signal_ra if set.
20460 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
20461 * config/xtensa/linux-unwind.h: New file.
20462
9a75e92d 204632008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
20464
20465 * modulo-sched.c (get_sched_window): Fix comment typo.
20466
fae25b37
AM
204672008-01-17 Andrew MacLeod <amacleod@redhat.com>
20468
20469 PR tree-optimization/34648
20470 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
20471
2e152e16
AS
204722008-01-17 Anatoly Sokolov <aesok@post.ru>
20473
20474 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
20475 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
20476
185082a7
SP
204772008-01-17 Seongbae Park <seongbae.park@gmail.com>
20478
20479 PR rtl-optimization/34400
20480 * df-core.c (df_worklist_dataflow_overeager,
20481 df_worklist_dataflow_doublequeue): New functions.
20482 (df_worklist_dataflow): Two different worklist solvers.
20483 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
20484 New param.
20485
01a550c2
SP
204862008-01-16 Sebastian Pop <sebastian.pop@amd.com>
20487
20488 PR testsuite/34821
20489 * doc/invoke.texi: Document the dependence on pthread for fopenmp
20490 and ftree-parallelize-loops.
20491
80663107
MN
204922008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
20493
20494 PR rtl-optimization/34826
20495 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
20496
599824d2
AK
204972008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
20498
20499 * global.c (find_reg): Mark the eh regs as used if necessary.
20500 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
20501 * ra.h (struct allocno): no_eh_reg field added. Changed
20502 no_stack_reg type to bitfield.
20503
9328dd57
EB
205042008-01-17 Eric Botcazou <ebotcazou@adacore.com>
20505
20506 * tree.c (substitute_in_expr): Add missing 'break'.
20507
8a5b57cd
RG
205082008-01-17 Richard Guenther <rguenther@suse.de>
20509
20510 PR tree-optimization/34825
20511 * tree-ssa-math-opts.c (is_division_by): Do not recognize
20512 x / x as division to handle.
20513
e7ce29e7
JDA
205142008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20515
20516 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
20517 "-pthread" is specified.
20518 * pa-hpux11.h (LIB_SPEC): Likewise.
20519
9a75e92d 205202008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
20521 Peter Bergner <bergner@vnet.ibm.com>
20522
20523 PR rtl-optimization/33796
20524 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
20525
6595ec51
JDA
205262008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20527
20528 PR libgfortran/34699
20529 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
20530 static links.
20531 * pa-hpux10.h (LINK_SPEC): Likewise.
20532 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
20533
bdb55eae
RG
205342008-01-16 Richard Guenther <rguenther@suse.de>
20535
20536 PR middle-end/32628
20537 * fold-const.c (fold_convert_const_int_from_int): Do not
20538 set overflow if that occured only because of a sign extension
20539 change when converting from/to a sizetype with the same
20540 precision and signedness.
20541
2e2c7ce2
UB
205422008-01-16 Uros Bizjak <ubizjak@gmail.com>
20543
20544 PR debug/34249
20545 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
20546 location address to the correct place. Update copyright year.
20547
d49c149d
SP
205482008-01-16 Sebastian Pop <sebastian.pop@amd.com>
20549
20550 * lambda-code.c (lambda_transform_legal_p): Handle the case of
20551 no dependences in the dependence_relations vector.
20552
a03c6d64
JH
205532008-01-16 Jan Hubicka <jh@suse.cz>
20554
20555 PR rtl-optimization/31396
20556 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
20557 * cfg.c (dump_reg_info): Print it.
20558 * regs.h (struct reg_info_t): add freq_calls_crossed.
20559 (REG_FREQ_CALLS_CROSSED): New macro.
20560 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
20561 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
20562 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
20563 regmove_optimize): Update call crossed frequencies.
20564 * local-alloc.c (struct qty): Add freq_calls_crossed.
20565 (alloc_qty): Copute freq_calls_crossed.
20566 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
20567 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
20568 * ra.h (struct allocno): Add freq_calls_crossed.
20569
daf49354
SP
205702008-01-16 Sebastian Pop <sebastian.pop@amd.com>
20571
20572 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
20573 libgomp when compiling with ftree-parallelize-loops.
20574 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
20575
a1a5996d
RG
205762008-01-16 Richard Guenther <rguenther@suse.de>
20577
20578 PR tree-optimization/34769
20579 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
20580 * tree.c (int_cst_value): Instead make this function more
20581 permissive in what it accepts as valid input. Document this
20582 function always sign-extends the value.
20583
de4af523 205842008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 20585 Richard Guenther <rguenther@suse.de>
de4af523
JJ
20586
20587 PR c/34668
20588 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
20589 (gimple_fold_indirect_ref_rhs): ... this.
20590 (gimple_fold_indirect_ref): New function with foldings
20591 that preserve lvalueness.
20592 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
20593 * tree-flow.h (gimple_fold_indirect_ref): Declare.
20594 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
20595 to fold an INDIRECT_REF, fall back to the old use of
20596 fold_indirect_ref_1.
20597
6935bae7
SP
205982008-01-16 Sebastian Pop <sebastian.pop@amd.com>
20599
22129589 20600 * tree-data-ref.c (subscript_dependence_tester_1): Call
6935bae7
SP
20601 free_conflict_function.
20602 (compute_self_dependence): Same.
20603
a4b6974e
UB
206042008-01-16 Uros Bizjak <ubizjak@gmail.com>
20605
20606 PR debug/34249
20607 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
20608 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
20609 function global.
20610 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
20611 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
20612 for DWARF2_UNWIND_INFO targets.
20613
eb1387a0
RG
206142008-01-16 Richard Guenther <rguenther@suse.de>
20615
20616 PR c/34768
20617 * c-typeck.c (common_pointer_type): Do not merge inconsistent
20618 type qualifiers for function types.
20619
9326236d
JD
206202008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
20621
20622 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
20623 loop_iterator li from previous commit.
20624
206252008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
20626
20627 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
20628
1d4af1e8
SP
206292008-01-12 Sebastian Pop <sebastian.pop@amd.com>
20630
20631 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
20632 (parallelize_loops): Don't parallelize irreducible components.
20633
8103eebf
MLI
206342008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20635
20636 PR c++/24924
20637 * c-opts (c_common_post_options): Do not enable CPP
20638 flag_pedantic_errors by default.
22129589 20639
d556d181
EB
206402008-01-14 Eric Botcazou <ebotcazou@adacore.com>
20641
20642 PR rtl-optimization/31944
20643 * cse.c (remove_pseudo_from_table): New function.
20644 (merge_equiv_classes): Use above function to remove pseudo-registers.
20645 (invalidate): Likewise.
20646
726612d2
RG
206472008-01-13 Richard Guenther <rguenther@suse.de>
20648
20649 PR middle-end/34601
20650 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
20651 instead of TYPE_MODE to deal with calls from expand_one_error_var.
20652
51134e52
UB
206532008-01-13 Uros Bizjak <ubizjak@gmail.com>
20654
20655 * gcse.c (cprop_jump): Call validate_unshare_change instead of
20656 validate_change to unshare the source of the PC set.
20657
3097760b
JH
206582008-01-12 Jan Hubicka <jh@suse.cz>
20659
20660 PR middle-end/32135
20661 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
20662 references above array bounds. This might trigger bounds checks for
20663 pointers to arrays.
20664
42b22da8
SP
206652008-01-12 Sebastian Pop <sebastian.pop@amd.com>
20666
20667 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
20668 new_replaceable_dependencies.
20669
5db2e9ca
DK
206702008-01-12 Doug Kwan <dougkwan@google.com>
20671
20672 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
20673 instead of OPT_Wreturn_type in warning due to ignored return type
20674 qualifiers.
20675 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
20676 options included in -Wextra.
20677 * c.opt: New option -Wignored_qualifiers.
20678 * doc/invoke.texi (Warning Options, -Wextra): Add new option
20679 -Wignore_qualifiers.
20680 (-Wignored-qualifiers): Document.
20681 (-Wreturn-type): Remove description of functionality now handled
20682 by -Wignored-qualifiers.
20683
52ef2874
EB
206842008-01-12 Eric Botcazou <ebotcazou@adacore.com>
20685
20686 PR ada/33788
20687 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
20688 NOP_EXPR if it is between integral types with the same precision.
20689
a60b56a4
JH
206902008-01-12 Jan Hubicka <jh@suse.cz>
20691
20692 PR other/28023
20693 * invoke.texi (max-inline-recursive-depth): Fix default value.
20694
29ac1d9a
ZD
206952008-01-12 Zdenek Dvorak <ook@ucw.cz>
20696
20697 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
20698 correct type.
20699
166b25dc 207002008-01-11 Bob Wilson <bob.wilson@acm.org>
22129589 20701
166b25dc 20702 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22129589 20703
ad8151b7
JW
207042008-01-11 James E. Wilson <wilson@specifix.com>
20705
20706 PR target/26015
20707 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
20708
0d40cc60
AS
207092008-01-11 Anatoly Sokolov <aesok@post.ru>
20710
22129589
AS
20711 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
20712 save/restore frame pointer register and don't use 'call-prologues'
0d40cc60
AS
20713 optimization in function with "OS_task" attribute.
20714
15af420d
EB
207152008-01-11 Eric Botcazou <ebotcazou@adacore.com>
20716
20717 PR middle-end/31309
20718 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
20719 when copying to memory.
20720
c1e3e2d9
SB
207212008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
20722
20723 PR rtl-optimization/30905
20724 * cfgcleanup.c: Include dce.h
20725 (crossjumps_occured): New global variable.
20726 (try_crossjump_bb): Exit loop after finding a fallthru edge.
20727 If something changed, set crossjumps_occured to true.
20728 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
20729 Don't add/remove fake edges to exit here...
20730 (cleanup_cfg): ...but do it here, when crossjumping.
20731 Run a fast DCE when successful crossjumps occured in the latest
20732 iteration of try_optimize_cfg.
20733
8d0eca24
RG
207342008-01-11 Richard Guenther <rguenther@suse.de>
20735
20736 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
20737 (struct vn_unary_op_s): Likewise.
20738 (vn_reference_insert): Free old reference on hash collision.
20739
acfb3980
RA
207402008-01-10 Raksit Ashok <raksit@google.com>
20741
20742 PR rtl-optimization/27971
31bfe034
RA
20743 * combine.c (find_split_point): Split PLUS expressions which are
20744 inside a MEM rtx, and whose first operand is complex.
acfb3980 20745
b8a669d0
DD
207462008-01-10 DJ Delorie <dj@redhat.com>
20747
20748 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
20749 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
20750 (m32c_hard_regno_ok): Call the underlying function.
20751
d0f76c4b
RG
207522008-01-10 Richard Guenther <rguenther@suse.de>
20753
20754 PR middle-end/34683
20755 * tree-cfg.c (tree_merge_blocks): Do not go through the
20756 full-blown folding and stmt updating path if we just deal
20757 with virtual operands.
20758 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
20759 test for abnormal SSA_NAMEs.
20760
90d12f1f
AK
207612008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
20762
20763 PR middle-end/34641
20764 * reload.c (push_reload): Add assertions. All constants from
20765 reg_equiv_constant should have been used for replacing the respective
20766 pseudo earlier.
20767 (find_reloads_address): Invoke find_reloads_address_part for
20768 constant taken from the reg_equiv_constant array.
20769
71ae8557
SB
207702008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
20771
20772 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
20773 field (valnum) the first in the struct. Replace bools with
20774 unit bit fields.
20775
125e025e
RG
207762008-01-10 Richard Guenther <rguenther@suse.de>
20777
20778 PR tree-optimization/34651
20779 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
20780 types and ordering for masking and converting.
20781
64cbaace
SP
207822008-01-09 Sebastian Pop <sebastian.pop@amd.com>
20783
20784 PR tree-optimization/34017
20785 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
20786 also for PHI_NODE expressions.
20787
88743d3a
JH
207882008-01-09 Jan Hubicka <jh@suse.cz>
20789
20790 PR tree-optimization/34708
20791 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
20792 based on number of case labels.
20793 (init_inline_once): Remove switch_cost.
20794 * tree-inline.h (eni_weights_d): Remove switch_cost.
20795
c3e203cf
RG
207962008-01-09 Richard Guenther <rguenther@suse.de>
20797 Andrew Pinski <andrew_pinski@playstation.sony.com>
20798
20799 PR middle-end/30132
20800 * gimplify.c (gimplify_cond_expr): Do not create an addressable
20801 temporary if an rvalue is ok or an lvalue is not required.
20802
def49dd7
RG
208032008-01-09 Richard Guenther <rguenther@suse.de>
20804
20805 PR middle-end/34458
20806 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
20807 adjust return type.
20808
cbad2e09
RG
208092008-01-09 Richard Guenther <rguenther@suse.de>
20810
20811 PR middle-end/34679
20812 * tree.c (host_integerp): Check for sizetype only if the
20813 type is an integer type.
20814
59e5c37d
SB
208152008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
20816
20817 PR debug/26364
20818 * opts.c (decode_options): Disable inlining of functions called
20819 once if not in unit-at-a-time mode.
20820
712db60e
AO
208212008-01-09 Alexandre Oliva <aoliva@redhat.com>
20822
20823 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
20824
3fe2f42a
RG
208252008-01-08 Richard Guenther <rguenther@suse.de>
20826
20827 PR middle-end/31863
20828 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
20829 out early if the result will be unused.
20830
4d869718
UB
208312008-01-08 Uros Bizjak <ubizjak@gmail.com>
20832
20833 PR target/34709
20834 Revert:
20835
20836 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
20837 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22129589
AS
20838 for TARGET_RECIP.
20839
cedbd764 208402008-01-08 Jan Sjodin <jan.sjodin@amd.com>
22129589 20841
4d869718
UB
20842 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
20843 for vectorization tuned.
22129589 20844
a9990582
RG
208452008-01-08 Richard Guenther <rguenther@suse.de>
20846
20847 PR tree-optimization/34683
20848 * tree-ssa-operands.c (operand_build_cmp): Export.
20849 * tree-ssa-operands.h (operand_build_cmp): Declare.
20850 * tree-vn.c (vuses_compare): Remove.
20851 (sort_vuses): Use operand_build_cmp.
20852 (sort_vuses_heap): Likewise.
20853 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
20854 to re-use old VEC if available. Do not sort already sorted VUSEs.
20855 (vdefs_to_vec): Do not sort already sorted VDEFs.
20856
c90eee44
JJ
208572008-01-08 Jakub Jelinek <jakub@redhat.com>
20858
20859 PR middle-end/34694
20860 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
20861
8bce96f5
UB
208622008-01-08 Uros Bizjak <ubizjak@gmail.com>
20863
20864 PR target/34702
20865 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
20866 limitations of reciprocal sequences on x86 targets.
20867
4eefcc98
RG
208682008-01-08 Richard Guenther <rguenther@suse.de>
20869
20870 PR tree-optimization/34683
20871 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
20872
b69d564b
JJ
208732008-01-07 Jakub Jelinek <jakub@redhat.com>
20874
20875 PR target/34622
20876 * config/darwin.c (darwin_mergeable_string_section): Don't use
20877 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
20878
6b761851
UB
208792008-01-07 Uros Bizjak <ubizjak@gmail.com>
20880
20881 PR target/34682
20882 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
20883 negxf2. Macroize expander using X87MODEF mode iterator. Change
20884 predicates of op0 and op1 to register_operand.
8bce96f5
UB
20885 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
20886 expander using X87MODEF mode iterator. Change predicates of
20887 op0 and op1 to register_operand.
6b761851
UB
20888 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
20889 corresponding patterns and macroize using MODEF macro. Change
20890 predicates of op0 and op1 to register_operand and remove
20891 "m" constraint. Disparage "r" alternative with "!".
20892 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
20893 macroize using X87MODEF macro. Change predicates of op0 and op1
20894 to register_operand and remove "m" constraint. Disparage "r"
20895 alternative with "!".
20896 (absneg splitter with memory operands): Remove.
20897 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
20898 patterns and macroize using X87MODEF mode iterator.
20899 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
20900 Change predicate of op1 to register_operand.
20901 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 20902 for memory operands.
6b761851 20903
5ca0373f
NF
209042008-01-07 Nathan Froyd <froydnj@codesourcery.com>
20905
20906 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
20907
2eac9a76
RG
209082008-01-07 Richard Guenther <rguenther@suse.de>
20909
20910 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
20911 fields.
20912
b61ea03d
RG
209132008-01-07 Richard Guenther <rguenther@suse.de>
20914
20915 PR tree-optimization/34683
20916 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
20917 VOPs of the needed size to save memory. Use VEC_quick_push
20918 to save compile-time.
20919 (vdefs_to_vec): Likewise.
20920
c4bd75cd 209212008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 20922
6b761851
UB
20923 * config/spu/spu.md (divdf3): Genetate inline code for double
20924 division. The implementation doesn't handle INF or NAN, therefore it
20925 only applies when -ffinite-math-only is given.
c4bd75cd 20926
ba551ec2
PC
209272008-01-06 Paolo Carlini <pcarlini@suse.de>
20928
20929 PR libstdc++/34680
20930 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
20931 * doc/cpp.texi ([Common Predefined Macros]): Document.
20932
43db7979
UB
209332008-01-06 Uros Bizjak <ubizjak@gmail.com>
20934
20935 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
20936 order to use commutative addition instead of subtraction.
20937
2c460d12
RE
209382008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
20939 Mircea Namolaru <namolaru@il.ibm.com>
20940 Vladimir Yanovsky <yanov@il.ibm.com>
20941 Revital Eres <eres@il.ibm.com>
20942
20943 PR tree-optimization/34263
20944 * tree-outof-ssa.c (process_single_block_loop_latch,
20945 contains_tree_r): New functions.
20946 (analyze_edges_for_bb): Call process_single_block_loop_latch
20947 function to empty single-basic-block latch block if possible.
20948
5a37a60c
UB
209492008-01-05 Uros Bizjak <ubizjak@gmail.com>
20950
20951 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
20952 for TARGET_RECIP.
20953 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
20954
1a8a3a5e
RS
209552008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
20956
20957 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
20958
2a4430a6
RS
209592008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
20960
20961 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
20962
58fcda21
JJ
209632008-01-05 Jakub Jelinek <jakub@redhat.com>
20964
20965 PR tree-optimization/34618
20966 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
20967 flag from T.
20968
f1bf33ce
UB
209692008-01-05 Uros Bizjak <ubizjak@gmail.com>
20970
20971 PR target/34673
20972 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
20973 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
20974 Update copyright year.
20975
20976 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
20977 Update copyright year.
20978 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
20979 using NR fixup.
20980
12a6309e
ZZ
209812008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
20982
20983 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
20984 edge does not point to current bb before changing need_assert.
20985
bdb69bee
RG
209862008-01-04 Richard Guenther <rguenther@suse.de>
20987
20988 PR middle-end/34029
20989 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
20990 for verifying purposes if they are is_gimple_min_invariant.
20991
ffed8a01
AH
209922008-01-04 Aldy Hernandez <aldyh@redhat.com>
20993
20994 PR tree-optimization/34448
20995 PR tree-optimization/34465
20996 * gimplify.c (gimplify_init_constructor): Add new parameter
20997 notify_temp_creation. Use it.
20998 (gimplify_modify_expr_rhs): Take volatiles into account when
20999 optimizing constructors.
21000 Do not optimize constructors if gimplify_init_constructor will dump to
21001 memory.
21002 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
21003 * gcc.c-torture/compile/pr34448.c: New.
21004
b5ca517c
JJ
210052008-01-04 Jakub Jelinek <jakub@redhat.com>
21006
21007 PR gcov-profile/34609
21008 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
21009 return_slot if result is TREE_ADDRESSABLE.
21010
6a3d1d49
RS
210112008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
21012
21013 * config/mips/mips.md (sqrt_condition): Tweak comment.
21014 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
21015
6fc3c3c0
TT
210162008-01-03 Tom Tromey <tromey@redhat.com>
21017
b5ca517c 21018 PR c/34457
6fc3c3c0
TT
21019 * c-common.c (c_type_hash): Handle VLAs.
21020
045685a9
JH
210212008-01-03 Jan Hubicka <jh@suse.cz>
21022
21023 PR tree-optimization/31081
21024 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
21025 0 when inlining and not inlining to first basic block.
21026 (remap_decl): When var is initialized to 0, don't set default_def.
21027 (expand_call_inline): Set entry_bb.
21028 * tree-inline.h (copy_body_data): Add entry_bb.
21029
2092ee7d
JJ
210302008-01-03 Jakub Jelinek <jakub@redhat.com>
21031
cac67c08
JJ
21032 PR c++/34619
21033 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
21034 before returning.
21035
2092ee7d
JJ
21036 PR tree-optimization/29484
21037 * tree-inline.c (inline_forbidden_p_2): New function.
21038 (inline_forbidden_p): Disallow inlining if some static var
21039 has an address of a local LABEL_DECL in its initializer.
21040 * doc/extend.texi (Labels as Values): Document &&foo behaviour
21041 vs. inlining.
21042
2726bafe 210432008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
21044
21045 PR tree-optimization/34635
21046 * tree-data-ref.c (add_other_self_distances): Make sure that the
21047 evolution step is constant.
21048
99819c63
JJ
210492008-01-03 Jakub Jelinek <jakub@redhat.com>
21050
21051 PR middle-end/34608
12a6309e 21052 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 21053
1463dfa4
RS
210542008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
21055
21056 * tree-sra.c (scalarize_init): Insert the generate_element_init
21057 statements after the generate_element_zero statements.
21058
ee6ec666
RG
210592008-01-02 Richard Guenther <rguenther@suse.de>
21060
21061 PR middle-end/34093
21062 PR middle-end/31976
21063 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
21064 for very large number of operands instead of ICEing.
21065
6893e828
AN
210662008-01-02 Arthur Norman <acn1@cam.ac.uk>
21067
12a6309e 21068 PR target/34013
d0fb20be 21069 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
21070 while stack probing.
21071
1a7817e4
DG
210722008-01-01 Douglas Gregor <doug.gregor@gmail.com>
21073
6893e828 21074 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 21075 in C++0x mode.
1a7817e4 21076
882e337b
VR
210772008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
21078
21079 PR libmudflap/26442
21080 * tree-mudflap.c (mx_register_decls): Guard warning by
21081 !DECL_ARTIFICIAL check.
21082
f02ffa12
JJ
210832008-01-01 Jakub Jelinek <jakub@redhat.com>
21084
21085 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
21086 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
21087 sse5_perm<mode>): Fix constraints.