]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
profile.h: Really add it.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
3aa71f9d
L
12008-08-18 H.J. Lu <hongjiu.lu@intel.com>
2
3 * profile.h: Really add it.
4
f7bc085c
L
52008-08-18 H.J. Lu <hongjiu.lu@intel.com>
6
7 * mcf.c: Really add it.
8
52c76998
PY
92008-08-18 Paul Yuan <yingbo.com@gmail.com>
10 Vinodha Ramasamy <vinodha@google.com>
11
12 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
13 count_scale.
14 * value-prof.c (check_counter): Fix the counter if
15 flag_profile_correction is true.
16 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
17 tree_mod_subtract_transform):
18 Follow check_counter parameter change.
19 * common.opt (fprofile-correction): New option.
20 * mcf.c: New file.
3aa71f9d 21 * profile.h: Likewise.
52c76998
PY
22 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
23 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
24 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
25 functions.
26 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
27 flag_profile_correction is set.
28
808cc417
RS
292008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
30
31 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
32
1a87cf0c
TB
332008-08-18 Tomas Bily <tbily@suse.cz>
34
35 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
36 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
37 CONVERT_EXPR_P.
38 * tree-data-ref.c (split_constant_offset_1): Likewise.
39 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
40 * tree-sra.c (sra_walk_expr): Likewise.
41 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
42 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
43 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
44 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
45 Likewise.
46 * gimple.c (gimple_assign_unary_nop_p): Likewise.
47 * tree-vect-transform.c (vectorizable_type_demotion)
48 (vectorizable_type_promotion): Likewise.
49 * tree-inline.c (expand_call_inline):
50 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
51 (forward_propagate_addr_expr_1, forward_propagate_comparison)
52 (tree_ssa_forward_propagate_single_use_vars): Likewise.
53 * expr.c (expand_expr_real_1): Likewise.
54 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
55 (gimple_assign_unary_useless_conversion_p): Likewise.
56 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
57 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
58 * fold-const.c (fold_unary): Likewise.
59 * tree.h (CONVERT_EXPR_P): Likewise.
60 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
61 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
62 * tree-vrp.c:
63 (register_edge_assert_for_2, extract_range_from_unary_expr)
64 (register_edge_assert_for_1): Likewise.
65
9c02cf68
MLI
662008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
67
68 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
69 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
70 (enum real_value_const): Delete.
71 (get_real_const): Delete.
72 * real.c (get_real_const): Delete.
73 (dconst_e_ptr): Define.
74 (dconst_third_ptr): Define.
75 (dconst_sqrt2_ptr): Define.
76 * builtins.c: Update all callers.
77
e4658728
RG
782008-08-18 Richard Guenther <rguenther@suse.de>
79
80 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
81 statement iterator after statement removal.
82
3b7abfda
AT
832008-08-18 Andreas Tobler <a.tobler@schweiz.org>
84
85 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
86 (detect_processor_freebsd): Likewise.
87 (host_detect_local_cpu): Call newly added functions for FreeBSD.
88
2f9864e6
RG
892008-08-18 Richard Guenther <rguenther@suse.de>
90
91 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
92 and loads have the correct types.
93
d2e796ad
MLI
942008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
95
96 PR cpp/7263
97 * c-opts.c (cpp_opts): Remove static.
98 * c-parser.c (cpp_opts): Declare it extern.
99 (disable_extension_diagnostics): Handle cpp options.
100 (enable_extension_diagnostics): Likewise.
101
cbe5f3b3
MLI
1022008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
103
104 * diagnostics.c (permerror_at): Rename as permerror.
105 (permerror): Delete.
106 * toplev.h: Likewise.
107
11b08ee9
RG
1082008-08-18 Richard Guenther <rguenther@suse.de>
109
110 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
111 sdse1 and addressables2 passes. Replace dce1 with cddce1.
112 Move call_cdce before build_alias. Move copyrename2,
113 cunrolli and ccp2 beafore build_alias. Re-add addressable2
114 right after final inlining.
115 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
116 (pass_build_cfg): But instead via TODO_dump_func.
117
400196f1
RG
1182008-08-18 Richard Guenther <rguenther@suse.de>
119
120 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
121 element index.
122 (scalarize_init): If we failed to generate some initializers
123 do not generate zeros for not instantiated members. Instead
124 rely on the copy out.
125 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
126 about missing flow-sensitive alias info only if we have
127 aliases computed.
128
0859c412
NC
1292008-08-17 Nick Clifton <nickc@redhat.com>
130
131 * doc/extend.texi (Function Attributes): Fix typo in description
132 if hot function attribute.
133
e21d5757
DJ
1342008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
135 Richard Sandiford <rdsandiford@googlemail.com>
136
137 * doc/install.texi (--with-mips-plt): Document.
138 * doc/invoke.texi (-mplt, -mno-plt): Document.
139 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
140 and handle ${with_mips_plt}.
141 * config/mips/mips.opt (mplt): New option.
142 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
143 (TARGET_ABICALLS_PIC2): Likewise.
144 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
145 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
146 (ASM_SPEC): Use !mabi=* instead of !mabi*.
147 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
148 to decide whether to output ".option picX" directives.
149 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
150 Pass -call_nonpic rather than -KPIC for -mplt.
151 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
152 on the command line. Also remove it when -mabi=64 is used without
153 -msym32.
154 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
155 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
156 TARGET_ABICALLS_PIC0.
157 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
158 TARGET_ABICALLS.
159 (mips16_build_function_stub): Only output ".option pic" directives
160 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
161 (mips16_build_call_stub): Fix comment and remove redundant
162 ".set at"/"set .noat" directives.
163 (mips_function_rodata_section): Use the default behaviour for
164 TARGET_ABSOLUTE_ABICALLS.
165 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
166 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
167 (mips_restore_gp): Do nothing if the current function doesn't use
168 a global pointer.
169 (mips_expand_prologue): Only save $gp if the current function uses it.
170 Use a normal move for TARGET_ABICALLS_PIC0.
171 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
172
4817c43b
RS
1732008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
174
175 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
176 of function when handling GLOBAL_POINTER_REGNUM.
177
b38f3813
EB
1782008-08-16 Eric Botcazou <ebotcazou@adacore.com>
179
180 PR ada/20548
181 * common.opt (-fstack-check): Do not declare the variable here.
182 (-fstack-check=): New option variant.
183 * doc/invoke.texi (Code Gen Options): Document it.
184 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
185 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
186 (STACK_CHECK_STATIC_BUILTIN): New macro.
187 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
188 * opts.c: Include expr.h.
189 (common_handle_option) <OPT_fold_stack_check_>: New case.
190 <OPT_fstack_check>: Likewise.
191 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
192 consistently in the test for variable-sized types. Adjust for
193 new behaviour of flag_stack_check.
194 * explow.c: Include except.h.
195 (allocate_dynamic_stack_space): Do not take into account
196 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
197 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
198 for variable-sized parameters. Treat all parameters whose size is
199 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
200 stack checking is enabled.
201 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
202 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
203 if generic stack checking is enabled.
204 (expand_function_end): Adjust for new behaviour of flag_stack_check.
205 * reload1.c (reload): Likewise.
206 * stmt.c (expand_decl): Assert that all automatic variables have
207 fixed size at this point and remove dead code.
208 * flags.h (stack_check_type): New enumeration type.
209 (flag_stack_check): Declare.
210 * toplev.c (flag_stack_check): New global variable.
211 * Makefile.in (opts.o): Add dependency on EXPR_H.
212 (explow.o): Add dependency on except.h.
213
3898bf50
AH
2142008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
215
216 * config/avr/avr.c (avr_override_options): Reduce value of
217 PARAM_INLINE_CALL_COST.
218
e675826d
EB
2192008-08-15 Eric Botcazou <ebotcazou@adacore.com>
220
221 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
222 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
223 lieu of TYPE_MODE (type) throughout.
224
853ff9e2
JM
2252008-08-15 Joseph Myers <joseph@codesourcery.com>
226
227 * config/arm/arm.c (add_minipool_backward_ref): Check for
228 8-byte-aligned entries in second case of forcing insertion after a
229 particular entry. Change third case to avoid inserting
230 non-8-byte-aligned entries before 8-byte-aligned ones.
231
a214f4d6
RG
2322008-08-15 Richard Guenther <rguenther@suse.de>
233
234 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
235 strip components for unknown size accesses.
236
9381e3f1
WG
2372008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
238
239 * config/s390/2097.md New file.
240 * config/s390/s390.md ("z10prop" attribute): Define none,
241 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
242 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
243 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
244 possible values and apply them to insns as appropriate.
245 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
246 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
247 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
248 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
249 values.
250 ("bfp" mode attribute): Removed. Every occurence replaced
251 with <mode>.
252 * config/s390/s390.c (struct "z10_cost"): Updated entries.
253 * config/s390/2084.md (insn_reservation "x_itof"): Updated
254 type attribute.
255
4265559a
MLI
2562008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
257
258 PR c/28152
259 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
260 for keywords.
261
32ff1243
DN
2622008-08-14 Dorit Nuzman <dorit@il.ibm.com>
263
264 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
265 additional argument. Support reduction when duplication is needed due
266 to data-types of different sizes in the loop.
267 (get_initial_def_for_induction): Fix printout.
268 (vect_get_vec_def_for_stmt_copy): Support case where the
269 vec_stmt_for_operand is a phi node.
270 (vectorizable_reduction): Support reduction when duplication is needed
271 due to data-types of different sizes in the loop.
272 (vectorizable_call): Remove restriction to not vectorize in case we
273 have data-types of different sizes in the loop.
274 (vectorizable_conversion): Likewise.
275 (vectorizable_operation): Likewise.
276 (vectorizable_type_demotion): Likewise.
277 (vectorizable_type_promotion): Likewise.
278 (vectorizable_induction): Add restriction to not vectorize in case
279 we have data-types of different sizes in the loop.
280
ed6fa129
UB
2812008-08-14 Christophe Saout <christophe@saout.de>
282 Uros Bizjak <ubizjak@gmail.com>
283
284 PR target/37101
285 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
286 (*vec_concatv2di_rex64_sse4_1): Ditto.
287 (*vec_concatv2di_rex64_sse): Ditto.
288
2e1d2474
JJ
2892008-08-14 Jakub Jelinek <jakub@redhat.com>
290
291 PR middle-end/37103
292 * fold-const.c (fold_widened_comparison): Do not allow
293 sign changes that change the result even if shorter type
294 is wider than arg1_unw's type.
295
e026fa18
KH
2962008-08-13 Kazu Hirata <kazu@codesourcery.com>
297
298 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
299 Skip if the multilib testing specifies -march that does not
300 agree with the one specified in the testcase.
301
92693034
JM
3022008-08-13 Joseph Myers <joseph@codesourcery.com>
303
304 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
305 zero extend SImode values being converted to TFmode before passing
306 to libcalls.
307
9f3c9256
UW
3082008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
309
310 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
311 __PPU__ when targeting the Cell/B.E. PPU processor.
312
7aec7a38
EB
3132008-08-13 Eric Botcazou <ebotcazou@adacore.com>
314
315 * gimple.h (gimple_call_set_chain): Accept SSA variables.
316 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
317 Rematerialize the static chain, if any.
318 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
319 static chain.
320
70a1c2f9
L
3212008-08-13 H.J. Lu <hongjiu.lu@intel.com>
322
323 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
324 (new_loc_descr): Likewise.
325 (add_loc_descr): Likewise.
326 (size_of_loc_descr): Likewise.
327 (size_of_locs): Likewise.
328 (output_loc_operands): Likewise.
329 (output_loc_sequence): Likewise.
330 (new_reg_loc_descr): New.
331 (build_cfa_loc): Use it.
332 (build_cfa_aligned_loc): Likewise.
333 (one_reg_loc_descriptor): Likewise.
334 (based_loc_descr): Likewise.
335
4003301d
MLI
3362008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
337
338 PR 30551
339 * doc/invoke.texi (Wmain): Update.
340 * c-decl.c (start_decl): warn_main is only 0 or 1.
341 (start_function): Likewise. Fix formatting.
342 (finish_function): Delete redundant warning.
343 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
344 * c-opts (c_common_handle_option): -Wall only has effect if
345 warn_main is uninitialized. OPT_Wmain is automatically
346 handled. -pedantic also enables Wmain.
347 (c_common_post_options): Handle all logic for Wmain here.
348 * c-common.c (warn_main): Delete.
349 (check_main_parameter_types): Make pedwarns conditional on
350 OPT_Wmain.
351 * c-common.h (warn_main): Delete.
352
6cd7942d
L
3532008-08-13 H.J. Lu <hongjiu.lu@intel.com>
354
355 PR middle-end/36701
356 * expr.c (emit_group_store): Allocate stack temp with the
357 largest alignment when copying from register to stack.
358
99f536cc
RG
3592008-08-13 Richard Guenther <rguenther@suse.de>
360
361 * tree.h (maybe_fold_offset_to_address): Declare.
362 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
363 (ccp_fold): Handle pointer conversions the same as fold_stmt.
364 Likewise for POINTER_PLUS_EXPR.
365 (maybe_fold_offset_to_reference): Enable disabled code.
366 (maybe_fold_offset_to_address): New function.
367 (fold_stmt_r): Use it.
368 (fold_gimple_assign): Likewise.
369 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
370 (gimplify_expr): Likewise.
371
e3f05c4e
MLI
3722008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
373
374 * toplev.h (pedwarn_at): Fix declaration.
375
c71cfaaf
JM
3762008-08-13 Joseph Myers <joseph@codesourcery.com>
377
378 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
379 LINK_SPEC): Use %R in -Y P argument.
380
85790e66
MLI
3812008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
382
383 PR c/15236
384 * diagnostic.c (pedwarn_at): New.
385 * toplev.h (pedwarn_at): Declare.
386 * c-tree.h (build_enumerator): Update declaration.
387 * c-decl.c (finish_enum): Update comment.
388 (build_enumerator): Take a location parameter. Give a pedwarn but do
389 not perform any conversion.
390 * c-parser.c (c_parser_enum_specifier): Set correct location for
391 enumerator.
392
374035cb
MLI
3932008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
394
395 PR 35635
396 * c-common.c (conversion_warning): Use a switch. Ignore boolean
397 expressions except for conversions to signed:1 bitfields. Handle
398 COND_EXPR with constant operands.
399
25c6036a
RG
4002008-08-13 Richard Guenther <rguenther@suse.de>
401
402 PR tree-optimization/15255
403 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
404 (struct oecount_s): New struct and VEC types.
405 (cvec): New global.
406 (oecount_hash): New function.
407 (oecount_eq): Likewise.
408 (oecount_cmp): Likewise.
409 (zero_one_operation): New function.
410 (build_and_add_sum): Likewise.
411 (undistribute_ops_list): Perform un-distribution of multiplication
412 and division on the chain of summands.
413 (should_break_up_subtract): Also break up subtracts for factors.
414 (reassociate_bb): Delete dead visited statements.
415 Call undistribute_ops_list. Re-sort and optimize if it did something.
416 * passes.c (init_optimization_passes): Move DSE before
417 reassociation.
418 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
419 PHI nodes.
420
e1765251
JJ
4212008-08-12 Janis Johnson <janis187@us.ibm.com>
422
db79b0cd
JJ
423 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
424
e1765251
JJ
425 * doc/invoke.texi: Revert unintended checkin.
426
4d2b059d
NF
4272008-08-12 Nathan Froyd <froydnj@codesourcery.com>
428
429 PR libgomp/26165
4d2b059d
NF
430 * gcc.c (include_spec_function): Tweak call to find_a_file.
431
4c29307d
JJ
4322008-08-12 Jakub Jelinek <jakub@redhat.com>
433
c0285905
JJ
434 PR middle-end/37014
435 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
436 and TRUTH_ORIF_EXPR.
437 * dojump.c (do_jump): Likewise.
438
4c29307d
JJ
439 PR tree-optimization/37084
440 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
441 if id->regimplify, don't assume stmt is a cast assignment.
442
bad4f40b
AS
4432008-08-12 Anatoly Sokolov <aesok@post.ru>
444
ed6fa129 445 * final.c (final_scan_insn): Use app_enable/app_disable functions.
bad4f40b 446
905cd1b9
UW
4472008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
448
449 PR bootstrap/37097
450 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
451 by last change.
452
b8972354
UW
4532008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
454
455 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
456 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
457
458 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
459 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
460 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
461 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
462 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
463
464 * doc/tm.texi (Storage Layout): Remove documentation for
465 TARGET_FLOAT_FORMAT.
466
467 * simplify-rtx.c (simplify_binary_operation_1): Replace
468 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
469
4099e2c2
UW
4702008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
471
472 * real.h (struct real_format): New member has_sign_dependent_rounding.
473 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
474 spu_single_format, ieee_double_format, mips_double_format,
475 motorola_double_format, ieee_extended_motorola_format,
476 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
477 ieee_extended_intel_96_round_53_format, ibm_extended_format,
478 mips_extended_format, ieee_quad_format, mips_quad_format,
479 vax_f_format, vax_d_format, vax_g_format): Initialize it.
480 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
481
482 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
483 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
484 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
485 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
486 (ROUND_TOWARDS_ZERO): Likewise.
487
488 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
489 (FLOAT_MODE_FORMAT): New macro.
490 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
491 (MODE_COMPOSITE_P): ... this new macro.
492 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
493 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
494 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
495
496 * flags.h: Include "real.h".
497
498 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
499 REAL_MODE_FORMAT_COMPOSITE_P.
500 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
501
502 * doc/tm.texi (Storage Layout): Remove documentation of
503 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
504 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
505 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
506 they only apply to libgcc2.a.
507
e0bddf10
UW
5082008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
509
510 * config/spu/float_disf.c: New file.
511 * config/spu/float_unsdisf.c: New file.
512 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
513 (LIB2FUNCS_EXCLUDE): Define.
514
3e479de3
UW
5152008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
516 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
517
518 * real.h (struct real_format): New member round_towards_zero.
519 * real.c (round_for_format): Respect fmt->round_towards_zero.
520 (ieee_single_format, mips_single_format, motorola_single_format,
521 spu_single_format, ieee_double_format, mips_double_format,
522 motorola_double_format, ieee_extended_motorola_format,
523 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
524 ieee_extended_intel_96_round_53_format, ibm_extended_format,
525 mips_extended_format, ieee_quad_format, mips_quad_format,
526 vax_f_format, vax_d_format, vax_g_format): Initialize it.
527 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
528
529 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
530 real_format to choose rounding mode when calling MPFR functions.
531 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
532 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
533
534 * real.h (real_to_decimal_for_mode): Add prototype.
535 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
536 Respect target rounding mode when generating decimal representation.
537 (real_to_decimal): New stub for backwards compatibility.
538 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
539 real_to_decimal_for_mode instead of real_to_decimal.
540
541 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
542
88f091f5
UW
5432008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
544 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
545
546 * real.c (spu_single_format): New variable.
547 * real.h (spu_single_format): Declare.
548
549 * config/spu/spu.c (spu_override_options): Install SFmode format.
550 (spu_split_immediate): Use integer mode to operate on pieces of
551 floating-point values in all cases.
552
553 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
554 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
555 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
556
4230d0fe
UW
5572008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
558
559 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
560
359e19d5
UW
5612008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
562
563 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
564
2d7231a3
JJ
5652008-08-12 Jakub Jelinek <jakub@redhat.com>
566
567 PR c++/36688
568 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
569 on the VAR_DECL instead of TYPE_READONLY on its type.
570
ad2dd72a
IR
5712008-08-12 Ira Rosen <irar@il.ibm.com>
572
573 * tree-vectorizer.c: Depend on langhooks.h.
574 (supportable_widening_operation): Add two arguments. Support double
575 type conversions.
576 (supportable_narrowing_operation): Likewise.
577 * tree-vectorizer.h (supportable_widening_operation): Add two
578 arguments.
579 (supportable_narrowing_operation): Likewise.
580 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
581 supportable_widening_operation with correct arguments.
582 * tree-vect-transform.c (vectorizable_conversion): Likewise.
583 (vectorizable_type_demotion): Support double type conversions.
584 (vectorizable_type_promotion): Likewise.
585 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
586
7edfb083
MM
5872008-08-11 Michael Matz <matz@suse.de>
588
589 * i386/i386.c (override_options): Move initialisation from
590 flag_schedule_insns_after_reload to here from ...
591 (optimization_options): ... here.
592
6f21ff3e
JJ
5932008-08-11 Jakub Jelinek <jakub@redhat.com>
594
595 PR rtl-optimization/36998
596 * dwarf2out.c (compute_barrier_args_size_1,
597 compute_barrier_args_size): Temporarily remove assertions.
598
de9a4397
MLI
5992008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
600
601 PR middle-end/20644
602 * tree-ssa.c (struct walk_data): Add new flag
603 warn_possibly_uninitialized.
604 (warn_uninitialized_var): Use it.
605 (warn_uninitialized_vars): New.
606 (execute_early_warn_uninitialized): Call it.
607 (execute_late_warn_uninitialized): Likewise.
608
d47c3b4e
AP
6092008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
610
611 PR middle-end/36238
612 * reload1.c (gen_reload): Guard calls to get_secondary_mem
613 for memory subregs.
614
5e04ef8f
JH
6152008-08-09 Jan Hubicka <jh@suse.cz>
616
617 PR target/37055
618 * optabs.c (maybe_emit_unop_insn): Remove produced code if
619 expansion failed.
620 (expand_fix): Be prepared for expansion to fail.
621 (expand_sfix_optab): Remove instructions if expansion failed.
622
708fa3b5
AS
6232008-08-09 Anatoly Sokolov <aesok@post.ru>
624
625 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
626 avr31 architecture.
627 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
628 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
629
08d0963a
RS
6302008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
631
632 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
633 mips/t-libgcc-mips16 to tmake_file.
634 * config/mips/mips-protos.h (mips_call_type): New enum.
635 (mips_pic_base_register, mips_got_load): Declare.
636 (mips_restore_gp): Take an rtx argument.
637 (mips_use_pic_fn_addr_reg_p): Declare.
638 (mips_expand_call): Replace the sibcall_p argument with
639 a mips_call_type argument. Add a lazy_p parameter.
640 (mips_split_call): Declare.
641 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
642 (MIPS16_PIC_TEMP): Likewise.
643 (reg_class): Delete M16_NA_REGS.
644 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
645 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
646 (mips_split_hi_p): Declare.
647 * config/mips/mips.c (mips_split_hi_p): New array.
648 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
649 (mips_got_symbol_type_p): New function.
650 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
651 (mips16_stub_function_p): New function.
652 (mips16_local_function_p): Likewise.
653 (mips_use_pic_fn_addr_reg_p): Likewise.
654 (mips_cannot_force_const_mem): Return false for HIGHs.
655 Extend CONST_INT and symbolic handling to MIPS16, using
656 mips_symbol_insns to check that the base symbol type is a
657 legitimate constant. Reject GOT-based constants if
658 TARGET_MIPS16_PCREL_LOADS.
659 (mips_const_insns): Check targetm.cannot_force_const_mem when
660 decomposing a symbolic base and a large offset.
661 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
662 When calling a function that needs $25 from MIPS16 code,
663 move the target address into $25 separately and add a USE
664 to the call insn.
665 (mips16_gp_pseudo_reg): Insert the initializer immediately
666 before the first real insn.
667 (mips_pic_base_register, mips_got_load): New functions.
668 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
669 parameter to LOW_OUT. Say that it can be any valid SET_SRC
670 when splitting a load-address operation. Split SYMBOL_GOT_DISP
671 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
672 (mips_call_tls_get_addr): Update the call to mips_expand_call,
673 also passing NULL_RTX rather than const0_rtx as the aux argument.
674 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
675 instead of TARGET_EXPLICIT_RELOCS.
676 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
677 (mips_load_call_address): Replace the sibcall_p argument with
678 a mips_call_type argument. Use mips_got_load.
679 (mips16_local_alias): New structure.
680 (mips16_local_aliases): New variable.
681 (mips16_local_aliases_hash): New function.
682 (mips16_local_aliases_eq): Likewise.
683 (mips16_local_alias): Likewise.
684 (mips16_stub_function): Likewise.
685 (mips16_build_function_stub): Create a local alias for the target
686 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
687 .cpload directive and an R_MIPS_NONE relocation for the target
688 function, then load the alias rather than the function itself.
689 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
690 (mips16_copy_fpr_return_value): Use mips16_stub_function and
691 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
692 (mips16_build_call_stub): Replace the FN parameter with an
693 FN_PTR parameter. Force the address into a register if it
694 isn't a call_insn_operand; don't rely on the caller to do this.
695 If a call to a locally-defined and locally-binding MIPS16
696 function must be made indirectly, redirect the call to the
697 function's local alias. Use mips16_stub_function_p,
698 mips16_stub_function, mips_expand_call and use_reg.
699 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
700 Use explicit %hi and %lo accesses where possible.
701 Use MIPS_CALL to generate the correct code form of a
702 jal instruction. Add clobbers of $18 instead of uses.
703 Update the call to mips_emit_call_insn.
704 (mips_expand_call): Replace the SIBCALL_P argument with a
705 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
706 Take a LAZY_P parameter. Call mips16_build_call_stub first,
707 allowing it to modify the call address. Update the calls to
708 mips_load_call_address and mips_emit_call_insn.
709 (mips_split_call): New function.
710 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
711 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
712 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
713 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
714 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
715 if TARGET_MIPS16.
716 (mips_cprestore_slot): New function.
717 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
718 and use mips_cprestore_slot.
719 (mips_output_function_prologue): Handle TARGET_MIPS16 for
720 LOADGP_OLDABI.
721 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
722 then use a copygp_mips16 instruction to set up $28.
723 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
724 (mips16_lay_out_constants): Call split_all_insns_noflow.
725 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
726 false if TARGET_MIPS16.
727 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
728 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
729 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
730 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
731 MIPS16 code. Allow MIPS16 o32 PIC.
732 (mips_override_options): Allow MIPS16 o32 PIC.
733 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
734 after reload if TARGET_USE_GOT.
735 (UNSPEC_COPYGP): New constant.
736 (length): Use a default length of 8 for MIPS16 GOT loads.
737 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
738 (*got_page<mode>): Check mips_split_hi_p.
739 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
740 (unspec_got<mode>, unspec_call<mode>): New expanders.
741 (load_got<mode>, load_call<mode>): Remove the length attributes.
742 Use a got attribute instead of a type attribute.
743 (copygp_mips16): New insn.
744 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
745 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
746 (sibcall, sibcall_value, call, call_value): Update the calls
747 to mips_expand_call.
748 (call_internal, call_value_internal): Use mips_split_call.
749 (call_value_multiple_internal): Likewise.
750 (call_split): Move after call_internal (the insn it is split from).
751 (call_internal_direct, call_value_internal_direct): Turn into
752 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
753 (call_direct_split, call_value_direct_split): New patterns.
754 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
755 and use M16_REGS instead of M16_NA_REGS.
756 * config/mips/predicates.md (const_call_insn_operand): Replace
757 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
758 mips_use_pic_fn_addr_reg_p check.
759 (move_operand): Reject HIGHs if mips_split_hi_p.
760 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
761 (__mips16_floatunsisf): Inline __mips16_floatsisf.
762 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
763 * config/mips/libgcc-mips16.ver: New file.
764 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
765 $(srcdir)/config/mips/libgcc-mips16.ver.
766
7462a715
RS
7672008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
768
769 * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
770 (mips_unspec_address, mips_unspec_offset_high): Likewise.
771 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
772 (mips16_cfun_returns_in_fpr_p): Likewise.
773
57972505
RS
7742008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
775
776 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
777 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
778 rather than 4 to PC.
779
e538e028
RS
7802008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
781
782 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
783 (FUNCTION_PROFILER): Save the static chain pointer into $2
784 beforehand and restore it aftewards.
785 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
786 address directly into $25 and call the function through $25;
787 do not clobber $3. Pad the DImode version to cover the space
788 left by the deleted $25 <- $3 move.
789 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
790 the removal of the $25 <- $3 move.
791 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
792 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
793
b2b61607
RS
7942008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
795 Daniel Jacobowitz <dan@codesourcery.com>
796
797 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
798 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
799 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
800 * config/mips/mips.c (mips_start_function_definition): New function.
801 (mips_end_function_definition): Likewise.
802 (mips_output_function_prologue): Use mips_start_function_definition.
803 (mips_output_function_epilogue): Use mips_end_function_definition.
804 (build_mips16_function_stub): Use mips_start_function_definition
805 and mips_end_function_definition.
806 (build_mips16_call_stub): Likewise.
807
7c9577be
RG
8082008-08-09 Richard Guenther <rguenther@suse.de>
809
810 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
811 * gimple.h (gimple_call_fn): Adjust comment.
812 (gimple_call_set_fndecl): New function.
813 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
814 longer having bare FUNCTION_DECL operand.
815 (gimple_call_return_type): Likewise.
816 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
817
818 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
819 (gimple_mod_pow2): Likewise.
820 (gimple_mod_subtract): Likewise.
821 (gimple_ic): Likewise.
822 (gimple_stringop_fixed_value): Likewise.
823 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
824 longer having bare FUNCTION_DECL operand.
825 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
826 * omp-low.c (optimize_omp_library_calls): Likewise.
827 * cgraphunit.c (update_call_expr): Likewise.
828 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
829 (execute_convert_to_rsqrt): Likewise.
830 * cfgexpand.c (gimple_to_tree): Simplify.
831 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
832 bare FUNCTION_DECL operand.
833 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
834 (convert_gimple_call): Use gimple_call_fndecl.
835 * c-common.c (c_warn_unused_result): Likewise.
836
ca085fd7
MLI
8372008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
838
839 PR c/17880
840 * c-typeck.c (digest_init): Call verify_sequence_points from here.
841 (c_finish_return): Likewise.
842 (c_start_case): Likewise.
843 * c-common.c (warn_for_collisions_1): Use explicit location in
844 warning.
845 * c-parser.c (c_parser_condition): New. Call
846 verify_sequence_points.
847 (c_parser_paren_condition): Call c_parser_condition.
848 (c_parser_for_statement): Call c_parser_condition.
849
71205d17
MLI
8502008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
851
852 PR 36901
853 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
854 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
855 Moved from diagnostic.h
856 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
857 DK_PERMERROR.
858 (emit_diagnostic): New.
859 (warning0, pedwarn0): Delete.
860 (warning, warning_at, pedwarn, permerror): Return bool.
861 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
862 Moved to diagnostic.c.
863 (struct diagnostic_context): Use correct type for
864 classify_diagnostic.
865 (diagnostic_report_diagnostic): Update declaration.
866 (emit_diagnostic): Declare.
867 * errors.c (warning): Return bool.
868 * errors.h (warning): Update declaration.
869 * toplev.h (warning0, pedwarn0): Delete.
870 (warning, warning_at, pedwarn, permerror): Return bool.
871 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
872 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
873 inform. Update all calls.
874 (diagnose_mismatched_decls): Check return value of warning/pedwarn
875 before giving informative note.
876 (implicit_decl_warning): Likewise.
877 * c-typeck.c (build_function_call): Likewise.
878 * tree-sssa.c (warn_uninit): Likewise.
879 * builtins.c (gimplify_va_arg_expr): Likewise.
880
c73d5dd9
MLI
8812008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
882
883 PR 7651
884 * doc/invoke.texi (-Wextra): Move warning from here...
885 (-Wuninitialized): ... to here.
886
e73f7547
MLI
8872008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
888
889 PR 28875
890 * flags.h (set_Wunused): Delete
891 * toplev.c (process_options): Handle Wunused flags here.
892 * opts.c (maybe_warn_unused_parameter): Delete.
893 (common_handle_option): Replace set_Wunused by warn_unused.
894 (set_Wextra): Do not handle Wunused-parameter here.
895 (set_Wunused): Delete.
896 * c-opts.c (c_common_handle_option): Replace set_Wunused by
897 warn_unused.
898 * common.opt (Wunused): Add Var and Init.
899 (Wunused-function): Likewise.
900 (Wunused-label): Likewise.
901 (Wunused-parameter): Likewise.
902 (Wunused-value): Likewise.
903 (Wunused-variable): Likewise.
904
d40c9e33
PB
9052008-08-08 Peter Bergner <bergner@vnet.ibm.com>
906
e73f7547
MLI
907 * doc/invoke.texi: Add cpu_type power7.
908 * config.in (HAVE_AS_VSX): New.
909 * config.gcc: Add cpu_type power7.
910 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
911 VSX instructions.
912 * configure: Regenerate.
913 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
914 power5.
915 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
916 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
917 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
918
7910ae0c
DN
9192008-08-08 Dorit Nuzman <dorit@il.ibm.com>
920
921 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
922 type to vectorize.builtin_conversion.
923 (vectorizable_conversion): Likewise.
924 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
925 integral type as input.
926 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
927 FIX_TRUNC_EXPR.
928 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
929 and ALTIVEC_BUILTIN_VCTSXS.
930 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
931 formatting.
932
174ef36d
RG
9332008-08-08 Richard Guenther <rguenther@suse.de>
934
935 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
936 (surely_varying_stmt_p): Calls are varying only if they are
937 non-builtin and not indirect or have no result.
938 (ccp_fold): Re-instantiate code before the tuples merge.
939
0f336c35
RG
9402008-08-08 Richard Guenther <rguenther@suse.de>
941
942 PR tree-optimization/37056
943 * gimple.h (gimple_assign_rhs_class): New helper function.
944 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
945 unary operations properly.
946
b2077fd2
JH
9472008-08-07 Jan Hubicka <jh@suse.cz>
948
949 * i386.h (ix86_size_cost): Declare.
950 (ix86_cur_cost): New function macro.
951 * i386.md (peepholes expanding size and splitters): Predicate by
952 optimize_insn_for_speed_p.
953 (peepholes reduce size and splitters): Predicate by
954 optimize_insn_for_size_p.
955 * i386.c (ix86_size_cost): Rename from ...
956 (size_cost): This one.
957 (override_options): Update.
958 (decide_alg): Likewise.
959 (ix86_expand_clear): Use RTL profile.
960 (ix86_pad_returns): Use RTL profile.
961
a8ba47cb
JH
9622008-08-07 Jan Hubicka <jh@suse.cz>
963
964 * recog.c (split_all_insns): Set RTL profile
965 (peephole2_optimize): Likewise.
966 * function.c (thread_prologue_and_epilogue_insns): Likewise.
967 * combine.c (combine_instructions): Likewise.
968
03c3034e
KG
9692008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
970
971 * c-common.c (c_common_reswords): Also warn about keyword "bool".
972
b412869c
BW
9732008-08-07 Bob Wilson <bob.wilson@acm.org>
974
ed6fa129
UB
975 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
976 value in a6 after the set_frame_ptr insn.
b412869c 977
09828811
RH
9782008-08-07 Richard Henderson <rth@redhat.com>
979
980 PR debug/37033
981 * gcc.c (cpp_options): Pass along -g*.
982
874d42b9
JM
9832008-08-07 Joseph Myers <joseph@codesourcery.com>
984
985 * config/arm/arm.c (output_move_neon): Update comment describing
986 big-endian vector layout.
987 (arm_assemble_integer): Do not handle big-endian NEON vectors
988 specially.
989 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
990 neon_vget_lane<mode>_sext_internal,
991 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
992 element indices for big-endian.
993
058514b3
RH
9942008-08-07 Richard Henderson <rth@redhat.com>
995
996 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
997 * configure, config.in: Rebuild.
998 * debug.h (dwarf2out_do_cfi_asm): Declare.
999 * c-cppbuiltin.c (c_cpp_builtins): Use it.
1000 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
1001 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
1002 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
1003
9940eebd
JM
10042008-08-07 Joseph Myers <joseph@codesourcery.com>
1005
1006 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1007 movv2si_internal): Combine into mov<mode>_internal.
1008 (movv2si_internal_2): Remove.
1009
bdfd2026
JH
10102008-08-07 Jan Hubicka <jh@suse.cz>
1011
1012 PR target/37048
1013 * i386.md (single stringop patterns): Enable unconditionally.
1014
b53b23dc
L
10152008-08-07 H.J. Lu <hongjiu.lu@intel.com>
1016
1017 PR target/36992
1018 * config/i386/emmintrin.h (_mm_move_epi64): Use
1019 __builtin_ia32_movq128.
1020
1021 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
1022 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
1023
1024 * config/i386/sse.md (sse2_movq128): New.
1025
1026 * doc/extend.texi: Document __builtin_ia32_movq128.
1027
9aa4d3c1
RG
10282008-08-07 Richard Guenther <rguenther@suse.de>
1029
1030 PR middle-end/37042
1031 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
1032 pointers can access anything.
1033
18bd082d
JH
10342008-08-06 Jan Hubicka <jh@suse.cz>
1035
1036 * optabs.c (emit_unop_insn): Break out to ...
1037 (maybe_emit_unop_insn): ... this one.
1038 (expand_sfix_optab): Use maybe variant.
1039 * optabs.h (maybe_emit_unop_insn): Declare.
1040
1041 * i386.md (mov0 patterns): Enable by default.
1042 (FP conversion expanders): Disable expansion of code expanding
1043 sequences when instruction should be optimized for size.
1044 (single strinop patterns): Enable when optimizing for size.
1045 (string expanders): Disable expanding of code expanding sequences
1046 when optimizning instruction for size.
1047 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
1048 per BB basis.
1049 (ix86_fp_comparison_sahf_cost): Likewise.
1050 (ix86_expand_branch): Likewise.
1051 (ix86_expand_ashl_const): Likewise.
1052 (ix86_split_ashl): Likewise.
1053 (ix86_expand_strlen): Likewise.
1054 (ix86_emit_fp_unordered_jump): Likewie.
1055
2696a995
KG
10562008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1057
1058 * c-common.c: Fix typo.
1059 (c_common_reswords): Activate more C++ keyword warnings.
1060
1061 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
1062
7e99f74b 10632008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ed6fa129 1064
7e99f74b
MLI
1065 PR 26785
1066 * diagnostic.c (permerror_at): New.
1067 * toplev.h (permerror_at): Declare.
1068
4eee6569
VK
10692008-08-06 Victor Kaplansky <victork@il.ibm.com>
1070 Ira Rosen <irar@il.ibm.com>
1071
1072 * tree-vect-transform.c (vect_model_simple_cost): Return
1073 immediately if stmt is pure SLP.
1074 (vect_model_store_cost): Ditto.
1075 (vect_model_load_cost): Ditto.
1076 (vectorizable_store): Remove PURE_SLP check before call
1077 to vect_model_store_cost.
1078 (vect_model_store_cost): When checking whether stmt describe
1079 strided access, add a check that it is not slp_node.
1080
2d12797c
MLI
10812008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1082
1083 PR 8715
1084 * c-common.c (warn_for_sign_compare): New. Handle separately the
1085 case that 'constant' is zero.
1086 * c-typeck.c (build_binary_op): Move code to c-common.c
1087
0a2aaacc
KG
10882008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1089
1090 * config/alpha/alpha.c (alpha_preferred_reload_class,
1091 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
1092 alpha_output_mi_thunk_osf): Avoid C++ keywords.
1093 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
1094 * config/arm/arm.md: Likewise.
1095 * config/avr/avr-protos.h (preferred_reload_class,
1096 test_hard_reg_class, avr_simplify_comparison_p,
1097 out_shift_with_cnt, class_max_nregs): Likewise.
1098 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
1099 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
1100 preferred_reload_class, test_hard_reg_class): Likewise.
1101 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
1102 bfin_memory_move_cost, bfin_secondary_reload,
1103 bfin_output_mi_thunk): Likewise.
1104 * config/crx/crx.c (crx_secondary_reload_class,
1105 crx_memory_move_cost): Likewise.
1106 * config/frv/frv-protos.h (frv_secondary_reload_class,
1107 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
1108 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
1109 frv_secondary_reload_class, frv_class_likely_spilled_p,
1110 frv_class_max_nregs): Likewise.
1111 * config/h8300/h8300.c (h8300_classify_operand,
1112 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
1113 Likewise.
1114 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
1115 * config/ia64/ia64.c (ia64_preferred_reload_class,
1116 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
1117 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
1118 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
1119 Likewise.
1120 * config/m68hc11/m68hc11.c (preferred_reload_class,
1121 m68hc11_memory_move_cost): Likewise.
1122 * config/mcore/mcore.c (mcore_secondary_reload_class,
1123 mcore_reload_class): Likewise.
1124 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
1125 mips_class_max_nregs, mips_cannot_change_mode_class,
1126 mips_preferred_reload_class, mips_secondary_reload_class,
1127 mips_output_mi_thunk): Likewise.
1128 * config/mmix/mmix.c (mmix_preferred_reload_class,
1129 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
1130 Likewise.
1131 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1132 Likewise.
1133 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
1134 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
1135 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1136 * config/rs6000/rs6000.c (paired_expand_vector_init,
1137 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
1138 compare_section_name, rs6000_memory_move_cost): Likewise.
1139 * config/s390/s390.c (s390_emit_compare_and_swap,
1140 s390_preferred_reload_class, s390_secondary_reload,
1141 legitimize_pic_address, legitimize_tls_address,
1142 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
1143 s390_class_max_nregs): Likewise.
1144 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1145 * config/s390/s390.md: Likewise.
1146 * config/score/score-protos.h (score_secondary_reload_class,
1147 score_preferred_reload_class): Likewise.
1148 * config/score/score.c (score_preferred_reload_class,
1149 score_secondary_reload_class): Likewise.
1150 * config/score/score3.c (score3_output_mi_thunk,
1151 score3_preferred_reload_class, score3_secondary_reload_class,
1152 score3_hard_regno_mode_ok): Likewise.
1153 * config/score/score3.h (score3_preferred_reload_class,
1154 score3_secondary_reload_class): Likewise.
1155 * config/score/score7.c (score7_output_mi_thunk,
1156 score7_preferred_reload_class, score7_secondary_reload_class,
1157 score7_hard_regno_mode_ok): Likewise.
1158 * config/score/score7.h (score7_preferred_reload_class,
1159 score7_secondary_reload_class): Likewise.
1160 * config/sh/sh.c (prepare_move_operands, output_far_jump,
1161 output_branchy_insn, add_constant, gen_block_redirect,
1162 sh_insn_length_adjustment, sh_cannot_change_mode_class,
1163 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
1164 Likewise.
1165 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1166 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
1167 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
1168 xstormy16_preferred_reload_class): Likewise.
1169 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
1170 xtensa_expand_atomic, override_options,
1171 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
1172 Likewise.
1173 * reorg.c (try_merge_delay_insns): Likewise.
1174 * tree.c (merge_dllimport_decl_attributes): Likewise.
1175
1176 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
1177
1b77ee03
MM
11782008-08-06 Michael Matz <matz@suse.de>
1179
1180 * Makefile.in (write_entries_to_file): Quote words.
1181 * gengtype.c: (read_input_line): Skip over leading white-space.
1182
6d656178
MG
11832008-08-06 Marc Gauthier <marc@tensilica.com>
1184
1185 * config.gcc: Match more processor names for Xtensa.
1186 * configure.ac: Likewise.
1187 * doc/install.texi (Specific): Likewise.
1188 * configure: Regenerate.
1189
82d6e6fc
KG
11902008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1191
1192 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
1193 * calls.c (avoid_likely_spilled_reg): Likewise.
1194 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
1195 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
1196 * config/i386/i386.c (ix86_expand_special_args_builtin,
1197 ix86_secondary_reload): Likewise.
1198 * except.c (struct eh_region, gen_eh_region_catch,
1199 remove_unreachable_regions, duplicate_eh_regions,
1200 assign_filter_values, build_post_landing_pads,
1201 sjlj_find_directly_reachable_regions, remove_eh_handler,
1202 reachable_next_level, foreach_reachable_handler,
1203 can_throw_internal_1, can_throw_external_1,
1204 collect_one_action_chain): Likewise.
1205 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
1206 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
1207 * function.c (update_temp_slot_address, instantiate_new_reg,
1208 instantiate_virtual_regs_in_rtx,
1209 instantiate_virtual_regs_in_insn): Likewise.
1210 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
1211 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
1212 gimplify_cleanup_point_expr): Likewise.
1213 * ipa-cp.c (ipcp_lattice_changed): Likewise.
1214 * passes.c (next_pass_1): Likewise.
1215 * print-tree.c (print_node_brief, print_node): Likewise.
1216 * profile.c (branch_prob): Likewise.
1217 * tree-dump.c (dump_register): Likewise.
1218 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
1219 Likewise.
1220 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
1221 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
1222 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
1223 copy_arguments_for_versioning, copy_static_chain): Likewise.
1224 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
1225 add_new_name_mapping, register_new_name_mapping): Likewise.
1226 * tree-mudflap.c (mf_xform_derefs): Likewise.
1227 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
1228 get_init_expr, combine_chains): Likewise.
1229 * tree-pretty-print.c (dump_generic_node): Likewise.
1230 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
1231 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
1232 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
1233 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
1234
01973e26
L
12352008-08-06 H.J. Lu <hongjiu.lu@intel.com>
1236
1237 PR middle-end/37010
1238 * calls.c (expand_call): Use the biggest preferred stack
1239 boundary.
1240
46662f25
MM
12412008-08-06 Michael Matz <matz@suse.de>
1242
1243 PR target/36613
1244 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
1245 for reused reload, instead of overwriting them.
1246
e94a448f
L
12472008-08-06 H.J. Lu <hongjiu.lu@intel.com>
1248
1249 PR middle-end/37009
1250 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
1251 for incoming stack boundary.
1252
1253 * function.c (assign_parm_find_entry_rtl): Update
1254 parm_stack_boundary.
1255
1256 * function.h (rtl_data): Add parm_stack_boundary.
1257
1258 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
1259 parm_stack_boundary for incoming stack boundary.
1260
e088f04b
JM
12612008-08-06 Joseph Myers <joseph@codesourcery.com>
1262
1263 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
1264 for unrepresentable subregs or treat them as equal to other regs
1265 or subregs with the same register number.
1266
753b34d7
AH
12672008-08-06 Aldy Hernandez <aldyh@redhat.com>
1268
1269 PR middle-end/35432
1270 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
1271 if want_value.
1272
c3702ff9
JH
12732008-08-06 Jan Hubicka <jh@suse.cz>
1274
1275 * predict.c (maybe_hot_frequency_p): When profile is absent, all
1276 frequencies might be hot.
1277
e0a17959
AK
12782008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
1279
1280 * reload.c (find_reloads): Force constants into literal pool
1281 also if they are wrapped in a SUBREG.
1282
c275297b
MK
12832008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1284
1285 PR target/35659
1286 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
1287 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
1288 Don't allow predicated instructions for data speculation.
1289 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
1290 declaration.
1291
a0d33ff8
MK
12922008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1293
1294 * haifa-sched.c (extend_global): Split to extend_global_data and
1295 extend_region_data. Update all uses.
1296 (extend_all): Rename to extend_block_data.
1297
07da1cfc
MK
12982008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
1299
1300 * sched-rgn.c (new_ready): Check if instruction can be
1301 speculatively scheduled before attempting speculation.
1302 (debug_rgn_dependencies): Remove wrongful assert.
1303
c7133425
BW
13042008-08-05 Bob Wilson <bob.wilson@acm.org>
1305
1306 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
1307
fa1615d7
BW
13082008-08-05 Bob Wilson <bob.wilson@acm.org>
1309
1310 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
1311 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
1312 va_size, and type_size.
1313
8bd20621
JM
13142008-08-04 Jason Merrill <jason@redhat.com>
1315
1316 PR c++/37016
1317 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
1318 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
1319
8a24bf04
RH
13202008-08-05 Richard Henderson <rth@redhat.com>
1321
1322 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
1323 * configure: Rebuild.
1324
7352e27c
AP
13252008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1326
1327 PR tree-opt/37024
1328 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
1329 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
1330 is a conversion.
1331
d4ea4622
RH
13322008-08-05 Richard Henderson <rth@redhat.com>
1333
1334 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
1335 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
1336 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
1337 * common.opt (fdwarf2-cfi-asm): New.
1338 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
1339 * config.in, configure: Rebuild.
1340 * dwarf2asm.c (dw2_asm_output_data_raw): New.
1341 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
1342 (dw2_force_const_mem): Externalize.
1343 * dwarf2asm.h: Update.
1344 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
1345 generate a real label.
1346 (output_cfi_directive): New.
1347 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
1348 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
1349 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
1350 and .cfi_lsda.
1351 (dwarf2out_end_epilogue): Emit .cfi_endproc.
1352 (output_loc_operands_raw, output_loc_sequence_raw): New.
1353 (output_cfa_loc_raw): New.
1354
302c3d8e
PB
13552008-08-05 Paul Brook <paul@codesourcery.com>
1356
1357 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
1358 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
1359 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
1360 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
1361 * config/arm/arm.h (TARGET_VFPD32): Define.
1362 (TARGET_VFP3): Use TARGET_VFPD32.
1363 (fputype): Add FPUTYPE_VFP3D16.
1364 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
1365 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
1366 * config/arm/arm-cores.def: Add cortex-r4f.
1367 * config/arm/arm-tune.md: Regenerate.
1368
e3834d38
UW
13692008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1370
1371 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
1372 Reword some comments throughout the file.
1373
1374 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
1375 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
1376 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
1377 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
1378
1379 (MFC_START_ENABLE): Remove PPU-only define.
1380 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
1381 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
1382
1383 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
1384 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
1385 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
1386 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
1387 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
1388 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
1389 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
1390
1391 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
1392 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
1393 (mfc_sdcrt, mfc_sdcrtst): Likewise.
1394 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
1395
1396 (spu_read_machine_status): Fix typo.
1397
9e071d06
UW
13982008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1399
1400 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
1401 SUBREG of multi-word hard register.
1402 * config/spu/spu.c (valid_subreg): Likewise.
1403 (adjust_operand): Handle SUBREGs of multi-word hard registers.
1404
7eeef08e
RG
14052008-08-04 Richard Guenther <rguenther@suse.de>
1406
1407 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
1408 the candidate with the stripped base if that base is different
1409 from the original base even for offset zero.
1410
8f45dcf8
RG
14112008-08-04 Richard Guenther <rguenther@suse.de>
1412
1413 PR middle-end/36691
1414 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
1415 check for no_overflow.
1416
26c86972
RG
14172008-08-04 Richard Guenther <rguenther@suse.de>
1418
1419 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
1420
795dc4fc
PB
14212008-08-04 Paul Brook <paul@codesourcery.com>
1422
1423 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
1424 (arm_order_regs_for_local_alloc): New function.
1425 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
1426 prototype.
1427 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
1428
6fc3c2b2
L
14292008-08-04 H.J. Lu <hongjiu.lu@intel.com>
1430
1431 PR target/37012
1432 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
1433 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
1434 (ix86_expand_epilogue): Likewise.
1435
5b2314f6
L
14362008-08-04 H.J. Lu <hongjiu.lu@intel.com>
1437
1438 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
1439 in comments.
1440
b7c9c5ab
UB
14412008-08-03 Uros Bizjak <ubizjak@gmail.com>
1442
1443 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
1444 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
1445 (*movv2sf_internal_rex64): Ditto.
1446
22660666
JH
14472008-08-03 Jan Hubicka <jh@suse.cz>
1448
1449 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
1450 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
1451 * expmed.c (expand_smod_pow2): Likewise.
1452
5617c135
UB
14532008-08-03 Uros Bizjak <ubizjak@gmail.com>
1454
1455 PR target/36992
1456 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
1457 alternative 0 of operand 1.
1458 (*vec_concatv2di_rex64_sse): Ditto.
1459 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
1460 of operand 1.
1461 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
1462 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
1463 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
1464 (*movv2sf_internal_rex64): Ditto.
1465
ba63dfb9
RG
14662008-08-02 Richard Guenther <rguenther@suse.de>
1467
1468 PR target/35252
1469 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
1470 (ssedoublesizemode): New mode attribute.
1471 (sse_shufps): Call gen_sse_shufps_v4sf.
1472 (sse_shufps_1): Macroize.
1473 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
1474 (sse2_shufpd_1): Macroize.
1475 (vec_extract_odd, vec_extract_even): New expanders.
1476 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
1477 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
1478 * i386.c (ix86_expand_vector_init_one_nonzero): Call
1479 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
1480 (ix86_expand_vector_set): Likewise.
1481 (ix86_expand_reduc_v4sf): Likewise.
1482
c9234c8d
DK
14832008-08-01 Doug Kwan <dougkwan@google.com>
1484
1485 * matrix-reorg.c: Re-enable all code.
1486 (struct malloc_call_data): Change CALL_STMT to gimple type.
1487 (collect_data_for_malloc_call): Tuplify.
5617c135 1488 (struct access_site_info): Change STMT to gimple type.
c9234c8d
DK
1489 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
1490 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
1491 (struct free_info): Change STMT to gimple type.
5617c135 1492 (struct matrix_access_phi_node): Change PHI to gimple type.
c9234c8d
DK
1493 (get_inner_of_cast_expr): Remove.
1494 (may_flatten_matrices_1): Tuplify.
1495 (may_flatten_matrices): Ditto.
1496 (mark_min_matrix_escape_level): Ditto.
5617c135 1497 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
c9234c8d
DK
1498 (ssa_accessed_in_call_rhs): New
1499 (ssa_accessed_in_assign_rhs): New
1500 (record_access_alloc_site_info): Tuplify.
1501 (add_allocation_site): Ditto.
1502 (analyze_matrix_allocation_site): Ditto.
1503 (analyze_transpose): Ditto.
1504 (get_index_from_offset): Ditto.
1505 (update_type_size): Ditto.
1506 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
1507 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
1508 (analyze_accesses_for_phi_node): Tuplify.
1509 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
1510 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
1511 (analyze_matrix_accesses): Tuplify.
1512 (check_var_data): New call-back type for check_var_notmodified_p.
1513 (check_var_notmodified_p): Tuplify and use call-back struct to
1514 return statement found.
1515 (can_calculate_expr_before_stmt): Factor out statement related code
1516 into ...
1517 (can_calculate_stmt_before_stmt): New.
5617c135 1518 (check_allocation_function): Tuplify.
c9234c8d
DK
1519 (find_sites_in_func): Ditto.
1520 (record_all_accesses_in_func): Ditto.
1521 (transform_access_sites): Ditto.
1522 (transform_allocation_sites): Ditto.
1523 (matrix_reorg): Re-enable.
1524 (gate_matrix_reorg): Re-enable.
1525
07b11a21
JJ
15262008-08-01 Jakub Jelinek <jakub@redhat.com>
1527
1528 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
1529 for labels for which it hasn't been set yet. If it has been set,
1530 stop walking insns and continue with next worklist item.
1531 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
1532 if the only BARRIER is at the very end of a function.
1533
d015f7cc
L
15342008-08-01 H.J. Lu <hongjiu.lu@intel.com>
1535
1536 * cfgexpand.c (expand_stack_alignment): Assert that
1537 stack_realign_drap and drap_rtx must match.
1538
1539 * function.c (instantiate_new_reg): If DRAP is used to realign
1540 stack, replace virtual_incoming_args_rtx with internal arg
1541 pointer.
1542
678e7c65
RG
15432008-08-01 Richard Guenther <rguenther@suse.de>
1544
1545 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
1546 loop information only if we initialized it.
1547 (execute_pre): Call fini_pre with in_fre.
1548 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
1549 if we do not unroll because we hit max-completely-peeled-insns.
1550 Use our estimation for consistency, do allow shrinking.
1551
2568f82a
L
15522008-08-01 H.J. Lu <hongjiu.lu@intel.com>
1553
1554 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
1555 with MIN_STACK_BOUNDARY.
1556 (ix86_update_stack_boundary): Likewise.
1557 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
1558 STACK_BOUNDARY.
1559
1560 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
1561 (MIN_STACK_BOUNDARY): This.
1562
df8fa700
RG
15632008-08-01 Richard Guenther <rguenther@suse.de>
1564
1565 PR middle-end/36997
1566 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
1567
5c3554b7
RG
15682008-08-01 Richard Guenther <rguenther@suse.de>
1569
1570 PR tree-optimization/36988
1571 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
1572 do not matter if that doesn't change volatile qualification.
1573
47ad7893
PB
15742008-08-01 Paolo Bonzini <bonzini@gnu.org>
1575
1576 * configure.ac: Do not generate libada-mk. Do not subst
1577 host_cc_for_libada.
1578 * libada-mk.in: Remove.
1579 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
1580 * configure: Regenerate.
1581
15822008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
1583
8e352cd3
BS
1584 * tree-pass.h: Added comment about not dumping passes with name
1585 starting with star in struct opt_pass.
1586 * passes.c (register_dump_files_1): Don't do dump for a pass with
1587 name starting with star.
1588 * doc/passes.texi (Pass manager): Mention pass names and special
1589 meaning of star prefix to avoid dump.
1590
f2d6ca50
AN
15912008-07-31 Adam Nemet <anemet@caviumnetworks.com>
1592
1593 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
1594 to MIPS64r2.
1595 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
1596 (ISA_MIPS64R2): New macro.
1597 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
1598 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
1599 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
1600 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
1601 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
1602 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
1603 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
1604 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
1605 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
1606 Move up to keep list alphabetically sorted.
1607 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
1608 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
1609 processor.
1610 * doc/invoke.texi (MIPS Options): Add -mips64r2.
1611 (-march=@var{arch}): Add mips64r2.
1612
24f9c418
L
16132008-07-31 H.J. Lu <hongjiu.lu@intel.com>
1614
1615 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
1616
90d245c5
SE
16172008-07-31 Steve Ellcey <sje@cup.hp.com>
1618
1619 * expr.c (expand_assignment): Check for complete type.
1620
d2d93c32
L
16212008-07-31 H.J. Lu <hongjiu.lu@intel.com>
1622
1623 PR debug/36977
1624 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
1625
1626 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
1627 for stack alignment.
1628
5617c135 1629 * function.h (rtl_data): Add stack_realign_tried. Update comments.
d2d93c32 1630
c983efce
KK
16312008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1632
1633 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5617c135 1634 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
c983efce 1635
88e2c810
JJ
16362008-07-31 Jakub Jelinek <jakub@redhat.com>
1637
1638 PR rtl-optimization/36419
1639 * dwarf2out.c (barrier_args_size): New variable.
1640 (compute_barrier_args_size, compute_barrier_args_size_1): New
1641 functions.
1642 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
1643 if not called yet in the current function, use barrier_args_size
1644 array to find the new args_size value.
1645 (dwarf2out_frame_debug): Free and clear barrier_args_size.
1646
fc74cbc4
L
16472008-07-31 H.J. Lu <hongjiu.lu@intel.com>
1648
1649 PR debug/36980
1650 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
1651 rule 19.
1652
d7831fdb
L
16532008-07-31 H.J. Lu <hongjiu.lu@intel.com>
1654
1655 PR debug/36976
1656 * dwarf2out.c (dwarf2out_args_size_adjust): New.
1657 (dwarf2out_stack_adjust): Use it.
1658 (dwarf2out_frame_debug_expr): Likewise.
1659
12aea97a
RG
16602008-07-31 Richard Guenther <rguenther@suse.de>
1661
1662 PR tree-optimization/36978
1663 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
1664 the generated condition.
1665
2dc74010
RG
16662008-07-31 Richard Guenther <rguenther@suse.de>
1667
1668 * passes.c (init_optimization_passes): Always call
1669 pass_early_warn_uninitialized.
5617c135 1670 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2dc74010
RG
1671 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
1672 * doc/passes.texi (Warn for uninitialized variables): Adjust.
1673
b3e200e1
JJ
16742008-07-31 Jakub Jelinek <jakub@redhat.com>
1675
f9555f40
JJ
1676 PR c/36970
1677 * builtins.c (maybe_emit_free_warning): New function.
1678 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
1679 maybe_emit_free_warning for BUILT_IN_FREE.
1680
1e1d3887
JJ
1681 PR debug/36278
1682 * dwarf2out.c (get_context_die): New function.
1683 (force_decl_die, force_type_die): Use it.
1684 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
1685 returns NULL, force generation of DW_TAG_typedef and put that into
1686 DW_AT_import.
1687
b3e200e1
JJ
1688 PR preprocessor/36649
1689 * c-pch.c (c_common_read_pch): Save and restore
1690 line_table->trace_includes across PCH restore.
1691
01ddebf2
EB
16922008-07-30 Eric Botcazou <ebotcazou@adacore.com>
1693
1694 PR ada/36554
1695 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
1696
b8c71e40
RAE
16972008-07-30 Rafael Avila de Espindola <espindola@google.com>
1698
1699 PR 36974
b3e200e1 1700 * final.c (call_from_call_insn): Handle COND_EXEC.
b8c71e40 1701
90c700cd
L
17022008-07-30 H.J. Lu <hongjiu.lu@intel.com>
1703
1704 * builtins.c (std_gimplify_va_arg_expr): Replace
1705 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
1706 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1707
2e3f842f
L
17082008-07-30 Joey Ye <joey.ye@intel.com>
1709 H.J. Lu <hongjiu.lu@intel.com>
1710
1711 * builtins.c (expand_builtin_setjmp_receiver): Replace
1712 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
1713 (expand_builtin_apply_args_1): Likewise.
1714 (expand_builtin_longjmp): Need DRAP for stack alignment.
1715 (expand_builtin_apply): Likewise.
1716
1717 * caller-save.c (setup_save_areas): Call assign_stack_local_1
1718 instead of assign_stack_local to allow alignment reduction.
1719
1720 * calls.c (emit_call_1): Need DRAP for stack alignment if
1721 return pops.
1722 (expand_call): Replace virtual_incoming_args_rtx with
1723 crtl->args.internal_arg_pointer.
1724 * stmt.c (expand_nl_goto_receiver): Likewise.
1725
1726 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
1727 alignment and store to stack_alignment_estimated and
1728 max_used_stack_slot_alignment.
1729 (expand_one_var): Likewise.
1730 (expand_stack_alignment): New function.
1731 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
1732 and stack_alignment_estimated fields in rtl_data. Call
1733 expand_stack_alignment at end.
1734
1735 * defaults.h (INCOMING_STACK_BOUNDARY): New.
1736 (MAX_STACK_ALIGNMENT): Likewise.
1737 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
1738 (SUPPORTS_STACK_ALIGNMENT): Likewise.
1739
1740 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
1741 stack alignment when generating virtual registers.
1742
1743 * function.c (assign_stack_local): Renamed to ...
1744 (assign_stack_local_1): This. Add a parameter to indicate
1745 if it is OK to reduce alignment.
1746 (assign_stack_local): Use it.
1747 (instantiate_new_reg): Instantiate virtual incoming args rtx
1748 to vDRAP if stack realignment and DRAP is needed.
1749 (assign_parms): Collect parameter/return type alignment and
1750 contribute to stack_alignment_estimated.
1751 (locate_and_pad_parm): Likewise.
1752 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
1753 with crtl->args.internal_arg_pointer.
1754
1755 * function.h (rtl_data): Add new field drap_reg,
1756 max_used_stack_slot_alignment, stack_alignment_estimated,
1757 stack_realign_needed, need_drap, stack_realign_processed and
1758 stack_realign_finalized.
1759 (stack_realign_fp): New macro.
1760 (stack_realign_drap): Likewise.
1761
1762 * global.c (compute_regsets): Frame pointer is needed when
1763 stack is realigned. Can eliminate frame pointer when stack is
1764 realigned and dynamic realigned argument pointer isn't used.
1765
1766 * reload1.c (update_eliminables): Frame pointer is needed
1767 when stack is realigned.
1768 (init_elim_table): Can eliminate frame pointer when stack is
1769 realigned and dynamic realigned argument pointer isn't used.
1770
1771 * rtl.h (assign_stack_local_1): Declare new funtion.
1772
1773 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
1774 (TARGET_GET_DRAP_RTX): Likewise.
1775 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
1776 TARGET_GET_DRAP_RTX.
1777
5617c135 1778 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2e3f842f
L
1779
1780 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
1781 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
1782
17832008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
1784 H.J. Lu <hongjiu.lu@intel.com>
1785
1786 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
1787 vdrap_reg, stack_realign and drap_reg_saved.
1788 (add_cfi): Don't allow redefining CFA when DRAP is used.
1789 (reg_save): Handle stack alignment.
1790 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
1791 alignment. Don't generate DWARF information for (set fp sp)
1792 when DRAP is used.
1793 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
1794 to INVALID_REGNUM.
1795 (int_loc_descriptor): Move prototype forward. Also define if
1796 DWARF2_UNWIND_INFO is true.
1797 (output_cfa_loc): Handle DW_CFA_expression.
1798 (build_cfa_aligned_loc): New.
1799 (based_loc_descr): Update assert for stack realign. For local
1800 variables, use sp+offset when stack is aligned without drap and
1801 fp+offset when stack is aligned with drap. For arguments, use
1802 cfa+offset when drap is used to align stack.
1803
18042008-07-30 Joey Ye <joey.ye@intel.com>
1805 H.J. Lu <hongjiu.lu@intel.com>
1806
1807 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
1808 Break long line.
1809 (ix86_gen_andsp): New.
1810 (ix86_user_incoming_stack_boundary): Likewise.
1811 (ix86_default_incoming_stack_boundary): Likewise.
1812 (ix86_incoming_stack_boundary): Likewise.
1813 (ix86_can_eliminate): Likewise.
1814 (find_drap_reg): Likewise.
1815 (ix86_update_stack_boundary): Likewise.
1816 (ix86_get_drap_rtx): Likewise.
1817 (ix86_finalize_stack_realign_flags): Likewise.
1818 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
1819 (TARGET_GET_DRAP_RTX): Likewise.
1820 (override_options): Overide option value for new options.
1821 (ix86_function_ok_for_sibcall): Remove check for
1822 force_align_arg_pointer.
1823 (ix86_handle_cconv_attribute): Likewise.
1824 (ix86_function_regparm): Likewise.
5617c135 1825 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2e3f842f
L
1826 (ix86_va_start): Replace virtual_incoming_args_rtx with
1827 crtl->args.internal_arg_pointer.
1828 (ix86_select_alt_pic_regnum): Check DRAP register.
1829 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
1830 (ix86_compute_frame_layout): Compute frame layout wrt stack
1831 realignment.
5617c135 1832 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2e3f842f
L
1833 (ix86_expand_prologue): Decide if stack realignment is needed
1834 and generate prologue code accordingly.
1835 (ix86_expand_epilogue): Generate epilogue code wrt stack
1836 realignment is really needed or not.
1837
1838 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
1839 (ABI_STACK_BOUNDARY): Likewise.
1840 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
1841 (STACK_REALIGN_DEFAULT): Likewise.
1842 (INCOMING_STACK_BOUNDARY): Likewise.
1843 (MAX_STACK_ALIGNMENT): Likewise.
1844 (ix86_incoming_stack_boundary): Likewise.
1845 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
1846 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
1847 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
1848 (machine_function): Remove force_align_arg_pointer.
1849
1850 * config/i386/i386.md (BX_REG): New.
1851 (R13_REG): Likewise.
1852
1853 * config/i386/i386.opt (mforce_drap): New.
1854 (mincoming-stack-boundary): Likewise.
1855 (mstackrealign): Add Init(-1).
1856
1857 * config/i386/i386-protos.h (ix86_can_eliminate): New
1858
18592008-07-30 H.J. Lu <hongjiu.lu@intel.com>
1860
1861 * doc/extend.texi: Update force_align_arg_pointer.
1862
1863 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
1864 -mstackrealign.
1865
1866 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
1867 (INCOMING_STACK_BOUNDARY): Likewise.
1868 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
1869 (TARGET_GET_DRAP_RTX): Likewise.
1870
22129589
AS
18712008-07-30 Andreas Schwab <schwab@suse.de>
1872
1873 PR rtl-optimization/36929
1874 * dse.c (replace_inc_dec): Use emit_insn_before instead of
1875 add_insn_before and fix argument order.
1876 (replace_inc_dec_mem): Handle NULL rtx.
1877
35596784
AJ
18782008-07-30 Andrew Jenner <andrew@codesourcery.com>
1879
1880 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
22129589 1881 function.
35596784
AJ
1882 (arm_compute_initial_elimination_offset): Use it.
1883 (arm_compute_save_reg_mask): Include static chain save slot when
1884 calculating alignment.
1885 (arm_get_frame_offsets): Ditto.
1886 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
1887 that we can use to decrement the stack when the stack decrement
1888 could be too big for an immediate value in a single insn.
1889 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
1890
5f8ecf45
RG
18912008-07-30 Richard Guenther <rguenther@suse.de>
1892
1893 PR tree-optimization/36967
1894 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
1895 Release defs of statements we remove.
1896
44bfa35b
NF
18972008-07-30 Nathan Froyd <froydnj@codesourcery.com>
1898
22129589
AS
1899 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
1900 instead of NULL_RTVEC.
44bfa35b 1901
54ce9cc2
NF
19022008-07-30 Nathan Froyd <froydnj@codesourcery.com>
1903
1904 PR target/35866
1905
1906 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
1907 vector modes.
1908
f410e1b3
RAE
19092008-07-30 Rafael Avila de Espindola <espindola@google.com>
1910
5617c135
UB
1911 * final.c (call_from_call_insn): New.
1912 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
f410e1b3 1913
00afcaa0
PB
19142008-07-30 Paolo Bonzini <bonzini@gnu.org>
1915
1916 * configure.ac: Substitute ADA_CFLAGS.
1917 * configure: Regenerate.
1918 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
1919 * Makefile.in: Remove mention of X_* variables.
1920 * config/pa/x-ada-hpux10: Remove.
1921 * config/pa/x-ada: Remove.
1922
1923 * doc/fragments.texi: Update.
1924
f90354fd 19252008-07-30 Olivier Hainque <hainque@adacore.com>
c67a9338
OH
1926
1927 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
1928 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
1929 __dso_handle explicitly here.
1930
6715192c
MLI
19312008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1932
1933 PR 34389
1934 * c-typeck.c (build_binary_op): Encapsulate code into...
1935 * c-common.c (shorten_binary_op): ...this new function.
1936 (conversion_warning): Use the new function. Handle non-negative
1937 constant in bitwise-and.
1938 * c-common.h (shorten_binary_op): Declare.
22129589 1939
473e1062
OH
19402008-07-30 Olivier Hainque <hainque@adacore.com>
1941
1942 * scan.c (make_sstring_space): Add explicit conversions of
1943 allocator's return value.
1944 * fix-header.c (recognized_function): Likewise.
1945
70b1e376
RW
19462008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1947
1948 * doc/cpp.texi: Update to GFDL 1.2.
1949 * doc/gcc.texi: Do not list GPL as Invariant Section.
1950 * doc/gccint.texi: Likewise. Update copyright years.
1951 * doc/install.texi: Update copyright years.
1952
d161cb2d
AM
19532008-07-30 Alan Modra <amodra@bigpond.net.au>
1954
1955 PR target/36955
1956 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
1957 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
1958
54dfd46b
JH
19592008-07-29 Jan Hubicka <jh@suse.cz>
1960
1961 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
1962 (grokdeclarator): Likewise.
1963 * langhooks.c (lhd_warn_unused_global_decl): Use
1964 DECL_DECLARED_INLINE_P.
1965 * print-tree.c (print_node): Remove DECL_INLINE check.
1966
ce94d354
RG
19672008-07-29 Richard Guenther <rguenther@suse.de>
1968
1969 PR tree-optimization/36945
1970 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
1971 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
1972 Record invariant addresses un-decomposed.
1973 (copy_reference_ops_from_call): Record reference call
1974 arguments properly. Simplify.
1975 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
1976 helper split out from ...
1977 (create_component_ref_by_pieces): ... here. Simplify.
1978 Prepare for recursive invocation for call arguments.
1979 (create_expression_by_pieces): Adjust call to
1980 create_component_ref_by_pieces.
1981 (compute_avail): Process operand 2 of reference ops.
1982
0f3a057a
RG
19832008-07-29 Richard Guenther <rguenther@suse.de>
1984
5617c135 1985 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
0f3a057a 1986
11cc4546
JJ
19872008-07-29 Jakub Jelinek <jakub@redhat.com>
1988
1989 * c-format.c (check_format_types): Revert unwanted checkin.
1990
e90acd93
JH
19912008-07-29 Jan Hubicka <jh@suse.cz>
1992
1993 * flags.h (flag_really_no_inline): Remove.
1994 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
1995 * toplev.c (flag_really_no_inline): Remove.
1996 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
1997 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
1998 (cgraph_decide_inlining_incrementally): Likewise.
1999 (compute_inline_parameters): Likewise.
2000 * opts.c (decode_options): Simplify.
2001 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
2002 * common.opt (finline): Initialize to 1.
2003 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
2004
20052008-07-29 Jan Hubicka <jh@suse.cz>
bf08ebeb
JH
2006
2007 * predict.c (always_optimize_for_size_p): New function.
2008 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2009 optimize_edge_for_size_p, optimize_edge_for_speed_p,
2010 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
2011 functions.
2012 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
2013 * function.c (prepare_function_start): Set default profile.
2014 * function.h (rtl_data): Add maybe_hot_insn_p.
2015 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
2016 (construct_exit_block): Likewise.
2017 (tree_expand_cfg): Likewise.
2018 * basic-block.h
2019 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2020 optimize_edge_for_size_p, optimize_edge_for_speed_p,
2021 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
2022 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
2023 Declare.
2024
e27fb29c
MLI
20252008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2026
2027 PR 34985
2028 * c-decl.c (merge_decls): Merge USED flags.
22129589 2029
8c54989a
KK
20302008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
2031
2032 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
2033 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
2034 next_stack, lab_false and lab_over trees.
2035
4d2ad64c
RG
20362008-07-28 Richard Guenther <rguenther@suse.de>
2037
2038 PR tree-optimization/36957
2039 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
2040 (useless_type_conversion_p): Remove.
2041 (types_compatible_p): Remove.
2042 * gimple.h (tree_ssa_useless_type_conversion): Declare.
2043 (useless_type_conversion_p): Declare.
2044 (types_compatible_p): Declare.
2045 (gimple_expr_type): Return the base type only if it is
2046 trivially convertible to the subtype.
2047
f6e377f8
AT
20482008-07-28 Andreas Tobler <a.tobler@schweiz.org>
2049
2050 * configure.ac: Use the m4_do macro to concatenate the warnings into
2051 one string in ACX_PROG_CC_WARNING_OPTS,
2052 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2053 * configure: Regenerate.
2054
1961418e
RG
20552008-07-28 Richard Guenther <rguenther@suse.de>
2056
2057 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
2058 (insert_fake_stores): Remove.
2059 (realify_fake_stores): Likewise.
2060 (execute_pre): Remove dead code.
5617c135 2061 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1961418e
RG
2062 (find_func_aliases): Deal with it here instead.
2063 Re-enable gcc_unreachable call.
2064
726a989a
RB
20652008-07-28 Richard Guenther <rguenther@suse.de>
2066
2067 Merge from gimple-tuples-branch.
2068
2069 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
2070 * gimple.def: New file.
2071 * gsstruct.def: Likewise.
2072 * gimple-iterator.c: Likewise.
2073 * gimple-pretty-print.c: Likewise.
2074 * tree-gimple.c: Removed. Merged into ...
2075 * gimple.c: ... here. New file.
2076 * tree-gimple.h: Removed. Merged into ...
2077 * gimple.h: ... here. New file.
2078
2079 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
2080 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
2081 --enable-checking=gimple flag.
2082 * config.in: Likewise.
2083 * configure: Regenerated.
2084
2085 * tree-ssa-operands.h: Tuplified.
2086 * tree-vrp.c: Likewise.
2087 * tree-loop-linear.c: Likewise.
2088 * tree-into-ssa.c: Likewise.
2089 * tree-ssa-loop-im.c: Likewise.
2090 * tree-dump.c: Likewise.
2091 * tree-complex.c: Likewise.
2092 * cgraphbuild.c: Likewise.
2093 * tree-ssa-threadupdate.c: Likewise.
2094 * tree-ssa-loop-niter.c: Likewise.
2095 * tree-pretty-print.c: Likewise.
2096 * tracer.c: Likewise.
2097 * gengtype.c: Likewise.
2098 * tree-loop-distribution.c: Likewise.
2099 * tree-ssa-loop-unswitch.c: Likewise.
2100 * cgraph.c: Likewise.
2101 * cgraph.h: Likewise.
2102 * tree-ssa-loop-manip.c: Likewise.
2103 * value-prof.c: Likewise.
2104 * tree-ssa-loop-ch.c: Likewise.
2105 * tree-tailcall.c: Likewise.
2106 * value-prof.h: Likewise.
2107 * tree.c: Likewise.
2108 * tree.h: Likewise.
2109 * tree-pass.h: Likewise.
2110 * ipa-cp.c: Likewise.
2111 * tree-scalar-evolution.c: Likewise.
2112 * tree-scalar-evolution.h: Likewise.
2113 * target.h: Likewise.
2114 * lambda-mat.c: Likewise.
2115 * tree-phinodes.c: Likewise.
2116 * diagnostic.h: Likewise.
2117 * builtins.c: Likewise.
2118 * tree-ssa-alias-warnings.c: Likewise.
2119 * cfghooks.c: Likewise.
2120 * fold-const.c: Likewise.
2121 * cfghooks.h: Likewise.
2122 * omp-low.c: Likewise.
2123 * tree-ssa-dse.c: Likewise.
2124 * ipa-reference.c: Likewise.
2125 * tree-ssa-uncprop.c: Likewise.
2126 * toplev.c: Likewise.
2127 * tree-gimple.c: Likewise.
2128 * tree-gimple.h: Likewise.
2129 * tree-chrec.c: Likewise.
2130 * tree-chrec.h: Likewise.
2131 * tree-ssa-sccvn.c: Likewise.
2132 * tree-ssa-sccvn.h: Likewise.
2133 * cgraphunit.c: Likewise.
2134 * tree-ssa-copyrename.c: Likewise.
2135 * tree-ssa-ccp.c: Likewise.
2136 * tree-ssa-loop-ivopts.c: Likewise.
2137 * tree-nomudflap.c: Likewise.
2138 * tree-call-cdce.c: Likewise.
2139 * ipa-pure-const.c: Likewise.
2140 * c-format.c: Likewise.
2141 * tree-stdarg.c: Likewise.
2142 * tree-ssa-math-opts.c: Likewise.
2143 * tree-ssa-dom.c: Likewise.
2144 * tree-nrv.c: Likewise.
2145 * tree-ssa-propagate.c: Likewise.
2146 * ipa-utils.c: Likewise.
2147 * tree-ssa-propagate.h: Likewise.
2148 * tree-ssa-alias.c: Likewise.
2149 * gimple-low.c: Likewise.
2150 * tree-ssa-sink.c: Likewise.
2151 * ipa-inline.c: Likewise.
2152 * c-semantics.c: Likewise.
2153 * dwarf2out.c: Likewise.
2154 * expr.c: Likewise.
2155 * tree-ssa-loop-ivcanon.c: Likewise.
2156 * predict.c: Likewise.
2157 * tree-ssa-loop.c: Likewise.
2158 * tree-parloops.c: Likewise.
2159 * tree-ssa-address.c: Likewise.
2160 * tree-ssa-ifcombine.c: Likewise.
2161 * matrix-reorg.c: Likewise.
2162 * c-decl.c: Likewise.
2163 * tree-eh.c: Likewise.
2164 * c-pretty-print.c: Likewise.
2165 * lambda-trans.c: Likewise.
2166 * function.c: Likewise.
2167 * langhooks.c: Likewise.
2168 * ebitmap.h: Likewise.
2169 * tree-vectorizer.c: Likewise.
2170 * function.h: Likewise.
2171 * langhooks.h: Likewise.
2172 * tree-vectorizer.h: Likewise.
2173 * ipa-type-escape.c: Likewise.
2174 * ipa-type-escape.h: Likewise.
2175 * domwalk.c: Likewise.
2176 * tree-if-conv.c: Likewise.
2177 * profile.c: Likewise.
2178 * domwalk.h: Likewise.
2179 * tree-data-ref.c: Likewise.
2180 * tree-data-ref.h: Likewise.
2181 * tree-flow-inline.h: Likewise.
2182 * tree-affine.c: Likewise.
2183 * tree-vect-analyze.c: Likewise.
2184 * c-typeck.c: Likewise.
2185 * gimplify.c: Likewise.
2186 * coretypes.h: Likewise.
2187 * tree-ssa-phiopt.c: Likewise.
2188 * calls.c: Likewise.
2189 * tree-ssa-coalesce.c: Likewise.
2190 * tree.def: Likewise.
2191 * tree-dfa.c: Likewise.
2192 * except.c: Likewise.
2193 * except.h: Likewise.
2194 * cfgexpand.c: Likewise.
2195 * tree-cfgcleanup.c: Likewise.
2196 * tree-ssa-pre.c: Likewise.
2197 * tree-ssa-live.c: Likewise.
2198 * tree-sra.c: Likewise.
2199 * tree-ssa-live.h: Likewise.
2200 * tree-predcom.c: Likewise.
2201 * lambda.h: Likewise.
2202 * tree-mudflap.c: Likewise.
2203 * ipa-prop.c: Likewise.
2204 * print-tree.c: Likewise.
2205 * tree-ssa-copy.c: Likewise.
2206 * ipa-prop.h: Likewise.
2207 * tree-ssa-forwprop.c: Likewise.
2208 * ggc-page.c: Likewise.
2209 * c-omp.c: Likewise.
2210 * tree-ssa-dce.c: Likewise.
2211 * tree-vect-patterns.c: Likewise.
2212 * tree-ssa-ter.c: Likewise.
2213 * tree-nested.c: Likewise.
2214 * tree-ssa.c: Likewise.
2215 * lambda-code.c: Likewise.
2216 * tree-ssa-loop-prefetch.c: Likewise.
2217 * tree-inline.c: Likewise.
2218 * tree-inline.h: Likewise.
2219 * tree-iterator.c: Likewise.
2220 * tree-optimize.c: Likewise.
2221 * tree-ssa-phiprop.c: Likewise.
2222 * tree-vect-transform.c: Likewise.
2223 * tree-object-size.c: Likewise.
2224 * tree-outof-ssa.c: Likewise.
2225 * cfgloop.c: Likewise.
2226 * system.h: Likewise.
2227 * tree-profile.c: Likewise.
2228 * cfgloop.h: Likewise.
2229 * c-gimplify.c: Likewise.
2230 * c-common.c: Likewise.
2231 * tree-vect-generic.c: Likewise.
2232 * tree-flow.h: Likewise.
2233 * c-common.h: Likewise.
2234 * basic-block.h: Likewise.
2235 * tree-ssa-structalias.c: Likewise.
2236 * tree-switch-conversion.c: Likewise.
2237 * tree-ssa-structalias.h: Likewise.
2238 * tree-cfg.c: Likewise.
2239 * passes.c: Likewise.
2240 * ipa-struct-reorg.c: Likewise.
2241 * ipa-struct-reorg.h: Likewise.
2242 * tree-ssa-reassoc.c: Likewise.
2243 * cfgrtl.c: Likewise.
2244 * varpool.c: Likewise.
2245 * stmt.c: Likewise.
2246 * tree-ssanames.c: Likewise.
2247 * tree-ssa-threadedge.c: Likewise.
2248 * langhooks-def.h: Likewise.
2249 * tree-ssa-operands.c: Likewise.
2250 * config/alpha/alpha.c: Likewise.
2251 * config/frv/frv.c: Likewise.
2252 * config/s390/s390.c: Likewise.
2253 * config/m32c/m32c.c: Likewise.
2254 * config/m32c/m32c-protos.h: Likewise.
2255 * config/spu/spu.c: Likewise.
2256 * config/sparc/sparc.c: Likewise.
2257 * config/i386/i386.c: Likewise.
2258 * config/sh/sh.c: Likewise.
2259 * config/xtensa/xtensa.c: Likewise.
2260 * config/stormy16/stormy16.c: Likewise.
2261 * config/ia64/ia64.c: Likewise.
2262 * config/rs6000/rs6000.c: Likewise.
2263 * config/pa/pa.c: Likewise.
2264 * config/mips/mips.c: Likewise.
2265
0d48657d
SB
22662008-07-28 Simon Baldwin <simonb@google.com>
2267
2268 * c-pragma.c (handle_pragma_message): New function.
2269 (init_pragma): Register handle_pragma_message.
2270 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
2271 documentation.
2272
21e6dd8f
VK
22732008-07-27 Victor Kaplansky <victork@il.ibm.com>
2274
2275 PR tree-optimization/35252
2276 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
2277 REALPART_EXPR to be considered as same load operation.
2278
330e765e
EB
22792008-07-27 Eric Botcazou <ebotcazou@adacore.com>
2280
2281 PR tree-optimization/36830
2282 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
2283 (expressions_equal_p): Return false if only one operand is null.
2284
f0947430
GP
22852008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
2286
2287 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
2288 version requirements.
2289
4326ea40
OH
22902008-07-26 Olivier Hainque <hainque@adacore.com>
2291
2292 * collect2.c (symkind): New enum. Symbol kinds we care about.
2293 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
2294 code and head comment accordingly.
2295 (scan_prog_file): Use symkind names instead of bare integers.
22129589 2296
c37f4ba4
JH
22972008-07-25 Jan Hubicka <jh@suse.cz>
2298
5617c135
UB
2299 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
2300 DECL_INLINE.
c37f4ba4
JH
2301 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
2302 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
2303 * dojump.c (clear_pending_stack_adjust): Likewise.
2304 * print-tree.c (print_node): Ignore DECL_INLINE.
2305 * tree-inline.c (inlinable_function_p): Likewise.
22129589 2306
a51fa0f4
MM
23072008-07-25 Michael Meissner <gnu@the-meissners.org>
2308
2309 * doc/extend.texi (hot attribute): Document that the hot attribute
2310 turns on -O3 for some ports.
2311 (cold attribute): Document that the cold attribute turns on -Os
2312 for some ports
2313
2314 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
2315 reflect function specific option support.
2316
2317 * target.h (struct target_option_hooks): Add fields to say whether
2318 the cold attribute implies -Os and the hot attribute implies -O3.
2319
2320 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
2321 By default, do not turn on -Os for cold functions.
2322 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
2323 not turn on -O3 for hot functions.
2324
2325 * c-common.c (handle_hot_attribute): Use target hook to determine
2326 if hot functions should enable -O3.
2327 (handle_cold_attribute): Use target hook to determine if cold
2328 functions should enable -Os.
2329
2330 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
2331 (override_options): Move disable scheduling to
2332 optimization_options.
2333 (optimization_options): Disable scheduling here, not
2334 override_options.
2335 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2336 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2337
2338 * config/ia64/ia64.c (ia64_override_options): Move setting
2339 scheduling flags to ia64_optimization_options.
2340 (ia64_optimization_options): Disable scheduling options here, and
2341 not in ia64_override_options.
2342 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2343 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
2344
23452008-07-25 H.J. Lu <hongjiu.lu@intel.com>
2346
2347 PR target/36936
2348 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
2349
1fc8feb5
MJ
23502008-07-25 Martin Jambor <mjambor@suse.cz>
2351
2352 PR tree-optimization/36926
2353 * ipa-prop.c (ipa_analyze_call_uses): Call
2354 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
2355
42dec64c
JM
23562008-07-25 Joseph Myers <joseph@codesourcery.com>
2357
2358 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
2359 movv2si_internal): Add mem = reg alternative.
2360
7a946186
AT
23612008-07-25 Andreas Tobler <a.tobler@schweiz.org>
2362
2363 PR bootstrap/36918
2364 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
2365 DEFAULT_PCC_STRUCT_RETURN to 127.
2366
7e8b322a
JH
23672008-07-24 Jan Hubicka <jh@suse.cz>
2368
2369 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
2370 (build_cgraph_edges): Likewise.
2371 * cgraph.c (cgraph_node): Do not update assembler hash.
2372 (cgraph_remove_node): Drop non-unit-at-a-time code.
2373 * tree-pass.h (pass_O0_always_inline): Remove.
2374 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
2375 * toplev.c (process_options): Flag unit-at-a-time does not imply
2376 no section anchors.
2377 * cgraphunit.c: Update comments.
2378 (decide_is_function_needed): Drop non-unit-at-a-time mode.
2379 (cgraph_assemble_pending_functions): Remove.
2380 (cgraph_reset_node): Drop non-unit-at-a-time code.
2381 (cgraph_finalize_function): Likewise.
2382 (cgraph_analyze_function): Likewise.
2383 (cgraph_finalize_compilation_unit): Likewise.
2384 (cgraph_expand_function): Likewise.
2385 (cgraph_optimize): Likesise.
2386 (save_inline_function_body): Likewise.
2387 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
2388 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
2389 * ipa-inline.c: Update comments.
2390 (enum inlining_mode): remove INLINE_SPEED.
2391 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
2392 (cgraph_mark_inline_edge): Likewise.
2393 (try_inline): Likewise.
2394 (cgraph_decide_inlining_incrementally): Likewise.
2395 (cgraph_gate_inlining): Remove.
2396 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
2397 (cgraph_gate_early_inlining): Likewise.
2398 (gate_inline_passes): Remove.
2399 (pass_inline_parameters, pass_ipa_inline): Remove gates.
22129589 2400 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7e8b322a
JH
2401 pass_O0_always_inline): Remove.
2402 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
2403 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
2404 * opts.c (no_unit_at_a_time_default): Remove.
2405 (decode_options): Remove flag_unit_at_a_time reset and warning.
2406 * opts.h (no_unit_at_a_time_default): Remove.
2407 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
2408 early in GNU dialect.
2409 (merge_decls): Update comment; drop unit-at-a-time check.
2410 (finish_decl): Likewise.
2411 (grok_declaration): Remove flag_inline_trees code.
2412 (finish_functions): Return on function returning non-void on all
2413 statics.
2414 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
2415 * cfgexpand.c (expand_one_static_var): Remove.
2416 (expand_one_var): Remove expand_one_static_var call.
2417 (expand_used_vars_for_block): Remove flag_unit_a_time check.
2418 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
2419 and flag_unit_at_a-time compatibility checks.
2420 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
2421 * tree-inline.c (flag_inline_trees): Remove.
2422 (inlinable_function_p): Don't check it.
2423 (expand_call_inline): Remove non-unit-at-a-time code.
2424 * tree-inline.h (flag_inline_trees): Remove.
2425 * tree-optimize.c (execute_early_local_optimizations): Remove
2426 unit-at-a-time checks.
2427 (tree_rest_of_compilation): Likewise.
2428 * combine.c (setup_incoming_promotions): Likewise.
2429 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
2430 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
2431 * passes.c (pass_inline_parameters): Update comments; remove
2432 O0_alwaysinline pass.
2433 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
2434 (execute_one_pass): Likewise.
2435 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
2436 (ix86_function_sseregparm): Likewise.
2437 * arm.c (arm_function_in_section_p): Likewise.
2438 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
2439 * varpool.c: Update comments.
2440 (decide_is_variable_needed): Remove unit-at-a-time checks.
2441 (varpool_finalize_decl): Likewise.
2442
9ccd8574
KK
24432008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
2444
2445 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
2446 to 2 instead of -1.
5617c135 2447 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9ccd8574 2448
56b7e765
KT
24492008-07-24 Kai Tietz <kai.tietz@onevision.com>
2450
2451 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
2452 imp symbol extension.
2453
22129589 2454 2008-07-23 Ian Lance Taylor <iant@google.com>
11522353
ILT
2455
2456 * tree-vrp.c (infer_value_range): Ignore asm statements when
2457 looking for memory accesses for -fdelete-null-pointer-checks.
2458
e816b6b5
BE
24592008-07-24 Ben Elliston <bje@au.ibm.com>
2460
2461 * config/spu/spu-c.c (__vector_keyword): New variable.
2462 (vector_keyword): Likewise.
2463 (spu_categorize_keyword): New function.
2464 (spu_macro_to_expand): Likewise.
2465 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
2466 compiling an ISO C dialect.
2467
ce26ee21
BE
24682008-07-24 Ben Elliston <bje@au.ibm.com>
2469
2470 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
2471 conventional usage.
2472
7326a39e
AL
24732008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2474
2475 * configure: Regenerate.
2476 * configure.ac: Require texinfo 4.7.
2477 * doc/install.texi: Document texinfo 4.7 requirement.
2478
3e293154
MJ
24792008-07-23 Martin Jambor <mjambor@suse.cz>
2480
22129589 2481 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3e293154
MJ
2482 rather than for DECL_SAVED_TREE.
2483 * ipa-prop.c: Include diagnostic.h.
22129589 2484 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3e293154
MJ
2485 thoroughly.
2486 (ipa_detect_param_modifications): Function rewritten from scratch.
2487 (ipa_compute_jump_functions): Changed accesses to modification flags.
2488 (ipa_free_node_params_substructures): Update flags destruction.
2489 (ipa_node_duplication_hook): Update flags duplication.
2490 (ipa_print_all_params_modified): Updated flag access.
2491 * ipa-prop.h (struct ipa_param_flags): New structure.
22129589
AS
2492 (struct ipa_node_params): New field modification_analysis_done,
2493 modified_flags changed into param_flags.
2494 (ipa_is_ith_param_modified): Changed to use new flags.
3e293154
MJ
2495 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
2496
2497 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
2498 ipa-cp.c and split into two functions.
2499 (ipa_print_node_jump_functions): New function.
2500 (compute_scalar_jump_functions): New function.
2501 (type_like_member_ptr_p): New function.
2502 (compute_pass_through_member_ptrs): New function.
2503 (fill_member_ptr_cst_jump_function): New function.
2504 (determine_cst_member_ptr): New function.
2505 (compute_cst_member_ptr_arguments): New function.
2506 (ipa_compute_jump_functions): Complete rewrite.
2507 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
2508 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
2509 (struct ipa_member_ptr_cst): New structure.
2510 (union jump_func_value): New field member_cst.
2511 * ipa-cp.c (ipcp_lat_is_insertable): New function.
2512 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
2513 jump function types.
2514 (ipcp_print_all_lattices): Slight fprintf rearrangement.
2515 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
2516 instead of ipcp_print_all_jump_functions.
2517 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
2518 only for replacable scalars.
2519
2520 * doc/invoke.texi (Optimize options): Add description of
2521 -findirect-inlining.
2522 * common.opt (flag_indirect_inlining): New flag.
22129589 2523 * opts.c (decode_options): Set flag_indirect_inlining when
3e293154
MJ
2524 optimize >= 3.
2525
2526 * ipa-inline.c: Include ipa-prop.h.
2527 (inline_indirect_intraprocedural_analysis): New function.
2528 (inline_generate_summary): Allocate parameter and argument info
2529 structures, call inline_indirect_intraprocedural_analysis on each
22129589 2530 node when doing indirect inlining and deallocate indirect inlining
3e293154
MJ
2531 data structures in the end.
2532 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
2533 (free_all_ipa_structures_after_iinln): New function.
22129589 2534 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3e293154
MJ
2535 done.
2536 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
2537
2538 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
2539 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2540 of computing the frequency separately.
2541 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
2542 of computing the frequency separately.
22129589 2543 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3e293154
MJ
2544 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
2545 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
2546 (ipa_get_stmt_member_ptr_load_param): New function.
2547 (ipa_is_ssa_with_stmt_def): New function.
2548 (ipa_note_param_call): New function.
2549 (ipa_analyze_call_uses): New function.
2550 (ipa_analyze_stmt_uses): New function.
2551 (ipa_analyze_params_uses): New function.
2552 (ipa_free_node_params_substructures): Also free the param_calls linked
2553 list.
2554 (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
2555 (ipa_print_node_param_flags): New function.
2556 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
2557 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
2558 * ipa-prop.h (struct ipa_param_flags): New field called.
2559 (struct ipa_param_call_note): New structure.
2560 (struct ipa_node_params): New fields param_calls and
2561 uses_analysis_done.
2562 (ipa_is_ith_param_called): New function.
2563 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2564 ipa_analyze_params_uses and dump parameter flags.
2565
2566 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
2567 ipa_propagate_indirect_call_infos if performing indirect inlining,
2568 pass a new parameter new_edges to it.
2569 (add_new_edges_to_heap): New fucntion.
2570 (cgraph_decide_inlining_of_small_functions): New vector
2571 new_indirect_edges for newly found indirect edges , call
2572 ipa_propagate_indirect_call_infos after inlining.
2573 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
2574 inlining if performing indirect inlining. Call
2575 free_all_ipa_structures_after_iinln when doing so too.
2576 (inline_generate_summary): Do not call
2577 free_all_ipa_structures_after_iinln here.
2578 * ipa-prop.c (update_jump_functions_after_inlining): New function.
2579 (print_edge_addition_message): New function.
2580 (update_call_notes_after_inlining): New function.
2581 (propagate_info_to_inlined_callees): New function.
2582 (ipa_propagate_indirect_call_infos): New function.
2583 * ipa-prop.h: Include cgraph.h
2584 (struct ipa_param_call_note): Fields reordered, new field processed.
2585 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
2586 flag indirect_call.
2587 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
2588 rediscovered call statements.
2589 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
2590 (dump_cgraph_node): Dump also the indirect_call flag.
2591 (cgraph_clone_edge): Copy also the indirect_call flag.
2592 * tree-inline.c (copy_bb): Do not check for fndecls from call
2593 expressions, check for edge availability when moving clones.
2594 (get_indirect_callee_fndecl): New function.
2595 (expand_call_inline): If callee declaration is not apprent from
2596 the statement, try calling get_indirect_callee_fndecl. Do not
2597 issue warnings or call sorry when not inlinings an indirect edge.
2598 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
2599
2600 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
2601 bit more frandly to matching.
2602 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
2603 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
2604 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
22129589 2605
e62fe68a
MM
26062008-07-23 Michael Meissner <gnu@the-meissners.org>
2607
2608 PR 36907
2609 * opth-gen.awk: Suppress function specific features when building
2610 target libraries.
2611 * optc-gen.awk: Ditto.
2612
fcf73884
MLI
26132008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2614
2615 PR 35058
2616 * diagnostic.c (pedwarn): Add opt parameter.
2617 (pedwarn0): New.
2618 * c-tree.h (pedwarn_init): Add opt parameter.
2619 (pedwarn_c90): Likewise.
2620 (pedwarn_c99): Likewise.
2621 * c-errors.c (pedwarn_c99): Likewise.
2622 (pedwarn_c90): Likewise.
2623 * toplev.h (pedwarn): Update declaration.
2624 (pedwarn0): Declare.
2625 * c-lex.c: All calls to pedwarn changed.
2626 * builtins.c: All calls to pedwarn changed.
2627 * toplev.c: All calls to pedwarn changed.
2628 * c-decl.c: All calls to pedwarn changed.
2629 * c-typeck.c: All calls to pedwarn changed.
2630 * c-common.c: All calls to pedwarn changed.
2631 * c-parser.c: All calls to pedwarn changed.
22129589 2632
f5ae72a9
MM
26332008-07-23 Michael Meissner <gnu@the-meissners.org>
2634 Karthik Kumar <karthikkumar@gmail.com>
2635
2636 * attribs.c (file scope): Include c-common.h.
2637 (decl_attributes): Add support for #pragma GCC optimize and
2638 #pragma GCC option.
2639
2640 * targhooks.c (default_can_inline_p): New function that is the
2641 default for the TARGET_CAN_INLINE_P target hook.
2642
2643 * targhooks.h (default_can_inline_p): Add declaration.
2644
2645 * tree.c (cl_optimization_node): New static tree for building
2646 OPTIMIZATION_NODE tree.
2647 (cl_target_option_node): New static tree for building
2648 TARGET_OPTION_NODE tree.
2649 (cl_option_hash_table): New hash table for hashing
2650 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2651 (cl_option_hash_hash): New function to provide the hash value for
2652 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2653 (cl_option_hash_eq): New function to provide an equality test for
2654 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
2655 (tree_code_size): Add support for OPTIMIZATION_NODE and
2656 TARGET_OPTION_NODE trees.
2657 (tree_code_structure): Add support for OPTIMIZATION_NODE and
2658 TARGET_OPTION_NODE trees.
2659 (build_optimization_node): Build a tree that has all of the
2660 current optimization options.
2661 (build_target_option_node): Build a tree that has the target
2662 options that might be changed on a per function basis.
2663
2664 * tree.h (file scope): Include options.h.
2665 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
2666 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2667 (TREE_OPTIMIZATION): Ditto.
2668 (TREE_TARGET_SPECIFIC): Ditto.
2669 (struct tree_function_decl): Add fields for remembering the
2670 current optimization options and target specific options.
2671 (struct tree_optimization_option): New tree variant that remembers
2672 the optimization options.
2673 (struct tree_target_option): New tree variant that remembers the
2674 target specific flags that might change for compiling a particular
2675 function.
2676 (union tree_node): Include tree_optimization_option and
2677 tree_target_option fields.
2678 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
2679 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
2680 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
2681 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
2682 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
2683 optimization and target options.
2684 (optimization_default_node): New macro to refer to global_trees
2685 field.
2686 (optimization_current_node): Ditto.
2687 (optimization_cold_node): Ditto.
2688 (optimization_hot_node): Ditto.
2689 (target_option_default_node): Ditto.
2690 (target_option_current_node): Ditto.
2691 (current_option_pragma): Ditto.
2692 (current_optimize_pragma): Ditto.
2693
2694 * target.h (struct gcc_target): Add valid_option_attribute_p,
2695 target_option_save, target_option_restore, target_option_print,
2696 target_option_pragma_parse, and can_inline_p hooks.
2697
2698 * toplev.h (parse_optimize_options): Add declaration.
2699 (fast_math_flags_struct_set_p): Ditto.
2700
2701 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
2702 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
2703 optimize is used.
2704
2705 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
2706 tree_can_inline_p hook to see if one function can inline another.
2707 (cgraph_decide_inlining): Ditto.
2708 (cgraph_decide_inlining_incrementally): Ditto.
2709
2710 * opts.c (decode_options): Add support for running multiple times
2711 to allow functions with different target or optimization options
2712 than was specified on the command line.
2713 (fast_math_flags_struct_set_p): New function that is similar to
2714 fast_math_flags_set_p, except it uses the values in the
2715 cl_optimization structure instead of global variables.
2716
2717 * optc-gen.awk: Add support for TargetSave to allow a back end to
2718 declare new fields that need to be saved when using function
2719 specific options. Include flags.h and target.h in the options.c
2720 source. Add support for Save to indicate which options can be set
2721 for individual functions. Generate cl_optimize_save,
2722 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
2723 cl_target_option_restore, cl_target_option_print functions to
2724 allow functions to use different optimization or target options.
2725
2726 * opt-functions.awk (var_type_struct): Return the type used for
2727 storing the field in a structure.
2728
2729 * opth-gen.awk: Add support for TargetSave to allow a back end to
2730 declare new fields that need to be saved when using function
2731 specific options. Add support for Save to indicate which options
2732 can be set for individual functions. Only generate one extern for
2733 Mask fields. Generate cl_optimization and cl_target_option
2734 structures to remember optimization and target options.
2735
2736 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
2737 collecting new tree nodes.
2738 (TS_TARGET_OPTION): Ditto.
2739
2740 * c-decl.c (merge_decls): Merge function specific target and
2741 optimization options.
2742
2743 * function.c (invoke_set_current_function_hook): If the function
2744 uses different optimization options, change the global variables
2745 to reflect this.
2746
2747 * coretypes.h (struct cl_optimization): Add forward reference.
2748 (struct cl_target_option): Ditto.
2749
2750 * c-pragma.c (option_stack): New static vector to remember the
2751 current #pragma GCC option stack.
2752 (handle_pragma_option): New function to support #pragma GCC option
2753 to change target options.
2754 (optimize_stack): New static vector to remember the current
2755 #pragma GCC optimize stack.
2756 (handle_pragma_optimize): New function to support #pragma GCC
2757 optimize to change optimization options.
2758 (init_pragma): Add support for #pragma GCC optimize and #pragma
2759 GCC option.
2760
2761 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
2762 optimization options.
2763 (TARGET_OPTION_NODE): New tree code for remembering certain target
2764 options.
2765
2766 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
2767 TARGET_OPTION_NODE trees.
2768
2769 * common.opt (-O): Add Optimization flag.
2770 (-Os): Ditto.
2771 (-fmath-errno): Ditto.
2772 (-falign-functions): Add UInteger flag to make sure flag gets full
2773 int in cl_optimization structure.
2774 (-falign-jumps): Ditto.
2775 (-falign-labels): Ditto.
2776 (-falign-loops): Ditto.
2777 (-fsched-stalled-insns): Ditto.
2778 (-fsched-stalled-insns-dep): Ditto.
2779
2780 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
2781 definition.
2782 (TARGET_OPTION_SAVE): Ditto.
2783 (TARGET_OPTION_RESTORE): Ditto.
2784 (TARGET_OPTION_PRINT): Ditto.
2785 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2786 (TARGET_CAN_INLINE_P): Ditto.
2787 (TARGET_INITIALIZER): Add new hooks.
2788
2789 * tree-inline.c (tree_can_inline_p): New function to determine
2790 whether one function can inline another. Check if the functions
2791 use compatible optimization options, and also call the backend
2792 can_inline_p hook.
2793
2794 * tree-inline.h (tree_can_inline_p): Add declaration.
2795
2796 * c-common.c (c_common_attribute): Add support for option and
2797 optimize attributes.
2798 (handle_option_attribute): Add support for the option attribute to
2799 allow the user to specify different target options for compiling a
2800 specific function.
2801 (handle_optimize_attribute): Add support for the optimize
2802 attribute to allow the user to specify different optimization
2803 options for compiling a specific function.
2804 (handle_hot_attribute): Turn on -O3 optimization for this one
2805 function if it isn't the default optimization level.
2806 (handle_cold_attribute): Turn on -Os optimization for this one
2807 function if it insn't the default optimization.
2808 (const_char_p): New const char * typedef.
2809 (optimize_args): New static vector to remember the optimization
2810 arguments.
2811 (parse_optimize_options): New function to set up the optimization
5617c135 2812 arguments from either the optimize attribute or #pragma GCC optimize.
f5ae72a9
MM
2813
2814 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
2815 (builtin_define_std): Ditto.
2816
2817 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
5617c135 2818 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
f5ae72a9
MM
2819 (x86_64-*-*): Ditto.
2820
2821 * Makefile.in (TREE_H): Add options.h.
2822 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
2823
2824 * doc/extend.texi (option attribute): Document new attribute.
2825 (optimize attribute): Ditto.
2826 (hot attribute): Document hot attribute sets -O3.
2827 (cold attribute): Document cold attribute sets -Os.
2828 (#pragma GCC option): Document new pragma.
2829 (#pragma GCC optimize): Ditto.
2830
2831 * doc/options.texi (TargetSave): Document TargetSave syntax.
2832 (UInteger): Document UInteger must be used for certain flags.
2833 (Save): Document Save option to create target specific options
2834 that can be saved/restored on a function specific context.
2835
5617c135 2836 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
f5ae72a9
MM
2837 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
2838
5617c135 2839 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
f5ae72a9
MM
2840 (TARGET_OPTION_SAVE): Ditto.
2841 (TARGET_OPTION_RESTORE): Ditto.
2842 (TARGET_OPTION_PRINT): Ditto.
2843 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
2844 (TARGET_CAN_INLINE_P): Ditto.
2845
2846 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
2847 -mfpmath=sse,387.
2848 (-mfpmath=both): Ditto.
2849
28502008-07-23 Michael Meissner <gnu@the-meissners.org>
2851 Karthik Kumar <karthikkumar@gmail.com>
2852
5617c135 2853 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
f5ae72a9
MM
2854 (TARGET_POPCNT): Ditto.
2855 (TARGET_SAHF): Ditto.
2856 (TARGET_AES): Ditto.
2857 (TARGET_PCLMUL): Ditto.
2858 (TARGET_CMPXCHG16B): Ditto.
2859 (TARGET_RECIP): Move switch into target_flags.
2860 (TARGET_FUSED_MADD): Ditto.
2861 (ix86_arch_features): Make an unsigned char type.
2862 (ix86_tune_features): Ditto.
2863 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
2864 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
2865 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
2866
2867 * config/i386/i386.opt (arch): New TargetSave field to define
5617c135 2868 fields that need to be saved for function specific option support.
f5ae72a9
MM
2869 (tune): Ditto.
2870 (fpmath): Ditto.
2871 (branch_cost): Ditto.
2872 (ix86_isa_flags_explicit): Ditto.
2873 (tune_defaulted): Ditto.
2874 (arch_specified): Ditto.
2875 (-m128-long-double): Add Save flag to save option for target
2876 specific option support.
2877 (-m80387): Ditto.
2878 (-maccumulate-outgoing-args): Ditto.
2879 (-malign-double): Ditto.
2880 (-malign-stringops): Ditto.
2881 (-mfancy-math-387): Ditto.
2882 (-mhard-float): Ditto.
2883 (-mieee-fp): Ditto.
2884 (-minline-all-stringops): Ditto.
2885 (-minline-stringops-dynamically): Ditto.
2886 (-mms-bitfields): Ditto.
2887 (-mno-align-stringops): Ditto.
2888 (-mno-fancy-math-387): Ditto.
2889 (-mno-push-args): Ditto.
2890 (-mno-red-zone): Ditto.
2891 (-mpush-args): Ditto.
2892 (-mred-zone): Ditto.
2893 (-mrtd): Ditto.
2894 (-msseregparm): Ditto.
2895 (-mstack-arg-probe): Ditto.
2896 (-m32): Ditto.
2897 (-m64): Ditto.
2898 (-mmmx): Ditto.
2899 (-m3dnow): Ditto.
2900 (-m3dnowa): Ditto.
2901 (-msse): Ditto.
2902 (-msse2): Ditto.
2903 (-msse3): Ditto.
2904 (-msse4.1): Ditto.
2905 (-msse4.2): Ditto.
2906 (-msse4): Ditto.
2907 (-mno-sse4): Ditto.
2908 (-msse4a): Ditto.
2909 (-msse5): Ditto.
2910 (-mrecip): Move flag into target_flags.
2911 (-mcld): Ditto.
2912 (-mno-fused-madd): Ditto.
2913 (-mfused-madd): Ditto.
2914 (-mabm): Move flag into ix86_isa_flags.
2915 (-mcx16): Ditto.
2916 (-mpopcnt): Ditto.
2917 (-msahf): Ditto.
2918 (-maes): Ditto.
2919 (-mpclmul): Ditto.
2920
2921 * config/i386/i386-c.c: New file for #pragma support.
2922 (ix86_target_macros_internal): New function to #define or #undef
2923 target macros based when the user uses the #pragma GCC option to
2924 change target options.
2925 (ix86_pragma_option_parse): New function to add #pragma GCC option
2926 support.
2927 (ix86_target_macros): Move defining the target macros here from
2928 TARGET_CPU_CPP_BUILTINS in i386.h.
2929 (ix86_register_pragmas): Register the #pragma GCC option hook. If
2930 defined, initialize any subtarget #pragmas.
2931
2932 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
2933 REGISTER_TARGET_PRAGMAS.
2934
2935 * config/i386/t-i386: New file for x86 dependencies.
2936 (i386.o): Make dependencies mirror the include files used.
2937 (i386-c.o): New file, add dependencies.
2938
5617c135 2939 * config/i386/i386-protos.h (override_options): Add bool argument.
f5ae72a9
MM
2940 (ix86_valid_option_attribute_tree): Add declaration.
2941 (ix86_target_macros): Ditto.
2942 (ix86_register_macros): Ditto.
2943
2944 * config/i386/i386.c (ix86_tune_features): Move initialization of
2945 the target masks to initial_ix86_tune_features to allow functions
2946 to have different target options. Make type unsigned char,
2947 instead of unsigned int.
2948 (initial_ix86_tune_features): New static vector to hold processor
2949 masks for the tune variables.
2950 (ix86_arch_features): Move initialization of the target masks to
2951 initial_ix86_arch_features to allow functions to have different
5617c135 2952 target options. Make type unsigned char, instead of unsigned int.
f5ae72a9
MM
2953 (initial_ix86_arch_features): New static vector to hold processor
2954 masks for the arch variables.
2955 (enum ix86_function_specific_strings): New enum to describe the
2956 string options used for attribute((option(...))).
2957 (ix86_target_string): New function to return a string that
2958 describes the target options.
2959 (ix86_debug_options): New function to print the current options in
2960 the debugger.
2961 (ix86_function_specific_save): New function hook to save the
5617c135 2962 function specific global variables in the cl_target_option structure.
f5ae72a9
MM
2963 (ix86_function_specific_restore): New function hook to restore the
2964 function specific variables from the cl_target_option structure to
2965 the global variables.
2966 (ix86_function_specific_print): New function hook to print the
2967 target specific options in the cl_target_option structure.
2968 (ix86_valid_option_attribute_p): New function hook to validate
2969 attribute((option(...))) arguments.
2970 (ix86_valid_option_attribute_tree): New function that is common
2971 code between attribute((option(...))) and #pragma GCC option
5617c135 2972 support that parses the options and returns a tree holding the options.
f5ae72a9
MM
2973 (ix86_valid_option_attribute_inner_p): New helper function for
2974 ix86_valid_option_attribute_tree.
2975 (ix86_can_inline_p): New function hook to decide if one function
2976 can inline another on a target specific basis.
2977 (ix86_set_current_function); New function hook to switch target
2978 options if the user used attribute((option(...))) or #pragma GCC
2979 option.
2980 (ix86_tune_defaulted): Move to static file scope from
2981 override_options.
2982 (ix86_arch_specified): Ditto.
2983 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
2984 ix86_isa_flags.
2985 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
2986 (OPTION_MASK_ISA_ABM_SET): Ditto.
2987 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
2988 (OPTION_MASK_ISA_CX16_SET): Ditto.
2989 (OPTION_MASK_ISA_SAHF_SET): Ditto.
2990 (OPTION_MASK_ISA_AES_UNSET): Ditto.
2991 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
2992 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
2993 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
2994 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
2995 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
2996 (struct ptt): Move to static file scope from override_options.
2997 (processor_target_table): Ditto.
2998 (cpu_names): Ditto.
5617c135 2999 (ix86_handle_option): Add support for options that are now isa options.
f5ae72a9
MM
3000 (override_options): Add support for declaring functions that
3001 support different target options than were specified on the
3002 command line. Move struct ptt, processor_target_table, cpu_names,
3003 ix86_tune_defaulted, ix86_arch_specified to static file scope.
3004 Add bool argument. Fix up error messages so the appropriate error
3005 is given for either command line or attribute.
3006 (ix86_previous_fndecl): New static to remember previous function
3007 declaration to see if we need to change target options.
3008 (ix86_builtins_isa): New array to record the ISA of each builtin
3009 function.
3010 (def_builtin): Always create the builtin function, even if the
3011 current ISA doesn't support it.
3012 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
3013 tests for those builtins.
3014 (ix86_init_builtins): Remove TARGET_MMX test for calling
3015 ix86_init_mmx_sse_builtins.
3016 (ix86_expand_builtin): If the current ISA doesn't support a given
3017 builtin, signal an error.
3018 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
3019 (TARGET_SET_CURRENT_FUNCTION): Ditto.
3020 (TARGET_OPTION_SAVE): Ditto.
3021 (TARGET_OPTION_RESTORE): Ditto.
3022 (TARGET_OPTION_PRINT): Ditto.
3023 (TARGET_CAN_INLINE_P): Ditto.
3024
3571ae2e
RAE
30252008-07-22 Rafael Avila de Espindola <espindola@google.com>
3026
5617c135
UB
3027 * c-typeck.c (build_external_ref): Don't call assemble_external.
3028 * final.c (output_operand): Call assemble_external.
3571ae2e 3029
2e762884
DD
30302008-07-21 DJ Delorie <dj@redhat.com>
3031
3032 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
3033 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3034
a03f1b22
UW
30352008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3036
3037 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
3038 original insn and splitter contents into ...
3039 ("*div<mode>3_fast"): ... this new pattern. Enable only if
3040 flag_unsafe_math_optimizations. Add dummy scratch register.
3041 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
3042 !flag_unsafe_math_optimizations. Returns number with next
3043 highest magnitude if this is still less or equal to the true
3044 quotient in magnitude.
3045
099735e9 30462008-07-21 Rafael Avila de Espindola <espindola@google.com>
aa14403d
RAE
3047
3048 * Makefile.in: Replace toplev.h with TOPLEV_H.
3049 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
3050 * c-lex.c (fe_file_change): Don't set in_system_header.
3051 * c-parser.c (c_token): Remove in_system_header.
3052 (c_lex_one_token): Don't set in_system_header.
3053 (c_parser_set_source_position_from_token): Don't set in_system_header.
3054 * diagnostic.c (diagnostic_report_diagnostic): Use location from
3055 diagnostic_info.
3056 (warning_at): New.
3057 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
3058 * flags.h (in_system_header): Remove.
3059 * function.c (saved_in_system_header): Remove.
3060 (push_cfun): Don't set in_system_header.
3061 (pop_cfun): Don't set in_system_header.
3062 (push_struct_function): Don't set in_system_header.
3063 * input.h (expanded_location): Add sysp.
3064 (in_system_header_at): New.
3065 (in_system_header): New.
3066 * toplev.c (in_system_header): Remove.
3067 * toplev.h: Include input.h
3068 (warning_at): New.
3069 * tree-cfg.c (execute_warn_function_return): Call warning_at.
3070 * tree-ssa.c (warn_uninit): Call warning_at.
3071 (warn_uninitialized_var): Update calls to warn_uninit.
3072 (warn_uninitialized_phi): Update calls to warn_uninit.
3073 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
3074 (expand_location): Initialize xloc.sysp.
3075 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
3076 (tree_decl_with_vis): Remove in_system_header_flag.
3077
c499b300
AK
30782008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
3079
3080 PR target/36822
3081 * recog.c (asm_operand_ok): Change the order of the extra
3082 memory constraint checks.
3083
34a87fd4
AP
30842008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
3085
3086 PR tree-opt/36879
3087 * tree-switch-conversion.c (build_one_array): Call
22129589 3088 varpool_mark_needed_node and varpool_finalize_decl
34a87fd4
AP
3089 instead of assemble_variable.
3090
c72321c9
JH
30912008-07-19 Jan Hubicka <jh@suse.cz>
3092
3093 * cgraph.c (cgraph_add_new_function): Do early local passes.
3094 * tree-nrv.c (gate_pass_return_slot): New gate.
3095 (pass_nrv): Add the gate.
3096 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
3097 functions.
3098 (coalesce_ssa_name): Coalesce SSA names.
3099 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
3100 not optimizing so unused user vars remains visible.
3101 * common.opt (flag_tree_ter): Always enable by default.
3102 * tree-ssa-ter.c: Include flags.h
3103 (is_replaceable_p): Check that locations match; when aliasing is missing
3104 be conservative about loads.
3105 * tree-optimize.c (gate_init_datastructures): Remove.
3106 (pass_init_datastructures): New.
3107 * passes.c: Reorder passes so we always go into SSA.
3108
d6cc6ec9
JH
31092008-07-19 Jan Hubicka <jh@suse.cz>
3110
3111 * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
3112 * doc/invoke.texi (--combine): Likewise.
3113 (-finline-functions-called-once): Update levels when enabled.
3114 (-funit-at-a-time): Document new behaviour.
3115 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
3116 -fno-section-anchors when disabled explicitly.
3117 (inline params): They are not ignored now.
3118 (precompiled headers): Remove unit-at-a-time as being incompatible.
3119 * opts.c (decode_options): Handle unit-at-a-time as alias;
3120 imply -fno-section-anchors when toplevel reorder is disabled
3121 explicitly.
3122 * common.opt (ftoplevel-reorder): Set default value to 2.
3123 (funit-at-a-time): Set default value to 1.
3124 * config/rs6000/rs6000.c (optimization_options): Set section anchors
3125 to 2.
3126
1856c8dc
JH
31272008-07-19 Jan Hubicka <jh@suse.cz>
3128
3129 * builtins.c (expand_builtin_int_roundingfn,
3130 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
3131 it is not useful.
3132
bb9e4199
RG
31332008-07-19 Richard Guenther <rguenther@suse.de>
3134
3135 PR bootstrap/36864
3136 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
3137 * tree-ssa-sccvn.c (get_constant_value_id): New function.
3138 * tree-ssa-pre.c (get_expr_value_id): For newly created
3139 constant value-ids make sure to add the expression to its
3140 expression-set.
3141
a7ea9e29
JJ
31422008-07-19 Jakub Jelinek <jakub@redhat.com>
3143
3144 PR middle-end/36877
3145 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
3146 return value of the builtin is ignored.
3147
95331614
OH
31482008-07-19 Olivier Hainque <hainque@adacore.com>
3149
3150 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
3151 bits, a C conformant malloc implementation has to provide.
3152 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
3153
ea471af0
JM
31542008-07-19 Joseph Myers <joseph@codesourcery.com>
3155
3156 PR target/36780
3157 PR target/36827
3158 * reload.c (find_reloads_subreg_address): Only reload address if
3159 reloaded == 0, not for reloaded != 1.
3160
3161 Revert:
3162 2008-07-16 Joseph Myers <joseph@codesourcery.com>
3163 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3164 (m32c_legitimate_address_p): Handle "++rii" addresses created by
3165 m32c_legitimize_reload_address.
3166
3167 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
3168 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3169 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3170
fa8884d8
OH
31712008-07-19 Olivier Hainque <hainque@adacore.com>
3172
3173 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
3174 argument, saying whether nested array are to be collapsed
3175 into a single array type DIE with multiple subscripts.
3176 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
3177 issues, centralize the nested array types collapsing control and
3178 disable the transformation for Ada.
22129589 3179
72ea2555
UB
31802008-07-18 Uros Bizjak <ubizjak@gmail.com>
3181
3182 PR target/36786
3183 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
3184 x86_64_shift_adj.
3185 (x86_64_shift_adj_2): New expander.
3186 (x86_64_shift_adj_3): Ditto.
3187 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
3188 to split TImode operands.
3189 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
3190 (ix86_split_lshr): Ditto.
3191
c466b2cd
KVH
31922008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
3193
3194 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
3195 and __CHAR32_TYPE__.
3196 * c-typeck.c (digest_init): Support char16_t and char32_t.
3197 (set_nonincremental_init_from_string): Idem.
3198
c565a1e7
L
31992008-07-18 H.J. Lu <hongjiu.lu@intel.com>
3200
3201 PR middle-end/36859
3202 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
3203 PREFERRED_STACK_BOUNDARY.
3204 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
3205
5ae53a25
L
32062008-07-18 H.J. Lu <hongjiu.lu@intel.com>
3207
3208 PR middle-end/36858
3209 * function.c (locate_and_pad_parm): Cap boundary earlier.
3210
711b2998
JB
32112008-07-17 Julian Brown <julian@codesourcery.com>
3212
3213 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
3214 no-op for targets which don't use DLLs.
3215
0eae6bab
MJ
32162008-07-17 Martin Jambor <mjambor@suse.cz>
3217
3218 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
3219 that nodes are relevant by examining the node->analyzed flag.
3220 (ipcp_init_stage): Check which nodes are relevant, assert that the
3221 relevant ones are also required.
3222 (ipcp_propagate_stage): Check on the side arrays are properly
3223 allocated.
3224 (ipcp_print_all_jump_functions): Make sure not to touch any node
3225 that is not analyzed or an edge that does not have a corresponding
3226 entry in the on-the-side vectors.
3227 (ipcp_function_scale_print): Likewise.
3228 (ipcp_update_callgraph): Check that the node is relevant.
3229 (ipcp_insert_stage): Check that the node is relevant. Check there is
3230 an info for every node and edge.
3231 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
3232 (ipa_print_all_tree_maps): Likewise and a new variable info.
3233 (ipa_print_all_params_modified): Likewise.
3234 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
3235
19327a1a
RZ
32362008-07-17 Roman Zippel <zippel@linux-m68k.org>
3237
3238 PR target/25343
3239 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
3240
b08c5108
PB
32412008-07-17 Paolo Bonzini <bonzini@gnu.org>
3242
3243 PR rtl-optimization/36753
3244 * fwprop.c (use_killed_between): Don't shortcut
3245 single-definition global registers.
3246
7386e3ee
JH
32472008-07-16 Jan Hubicka <jh@suse.cz>
3248
3249 * cgraph.h (varpool_empty_needed_queue): Declare.
3250 * cgraphunit.c (output_in_order): Mark all variables as needed;
3251 empty the queue.
3252 * varpool.c (varpool_assemble_node): Update debug queue.
3253 (varpool_assemble_pending_decls): Don't do it here.
3254 (varpool_empty_needed_queue): New function.
3255
de498dd4
KG
32562008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3257
3258 * recog.c (peephole2_optimize): Fix formatting.
3259
48c54229
KG
32602008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3261
3262 * c-pch.c (get_ident): Avoid C++ keywords.
3263 * combine-stack-adj.c (single_set_for_csa): Likewise.
3264 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
3265 output_asm_insn): Likewise.
3266 * reload.c (push_secondary_reload, find_reusable_reload,
3267 push_reload, combine_reloads, find_reloads,
3268 debug_reload_to_stream): Likewise.
3269 * reload.h (struct reload): Likewise.
3270 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
3271 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
3272 emit_output_reload_insns): Likewise.
3273 * targhooks.c (default_secondary_reload): Likewise.
3274 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
3275
55d796da
KG
32762008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3277
3278 * recog.c (validate_change_1, validate_change,
3279 validate_unshare_change, validate_replace_rtx_1, struct
3280 funny_match, constrain_operands, peephole2_optimize): Avoid C++
3281 keywords.
3282 * reload.c (push_secondary_reload, secondary_reload_class,
3283 scratch_reload_class, find_valid_class, find_reusable_reload,
3284 push_reload, find_dummy_reload, find_reloads_address_1,
3285 find_reloads_address_part, find_equiv_reg): Likewise.
3286 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
3287 choose_reload_regs): Likewise.
3288 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
3289 Likewise.
3290 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3291 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
3292 * sched-rgn.c (concat_INSN_LIST): Likewise.
3293 * stor-layout.c (mode_for_size, mode_for_size_tree,
3294 smallest_mode_for_size): Likewise.
3295
d858f359
KG
32962008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3297
3298 * cfg.c (dump_reg_info): Avoid C++ keywords.
3299 * dwarf2asm.c (dw2_force_const_mem,
3300 dw2_asm_output_encoded_addr_rtx): Likewise.
72ea2555 3301 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
d858f359
KG
3302 * expmed.c (expand_shift): Likewise.
3303 * global.c (find_reg): Likewise.
3304 * graph.c (draw_edge): Likewise.
3305 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
3306 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
3307 widen_clz, widen_bswap, expand_parity, expand_unop,
3308 emit_cmp_and_jump_insn_1): Likewise.
3309 * postreload.c (reload_cse_simplify_operands): Likewise.
3310 * ra.h (add_neighbor): Likewise.
3311 * reg-stack.c (remove_regno_note, change_stack): Likewise.
3312 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
3313 record_reg_classes, copy_cost, record_address_regs,
3314 invalid_mode_change_p): Likewise.
3315 * regrename.c (regrename_optimize, scan_rtx_reg,
3316 dump_def_use_chain, find_oldest_value_reg,
3317 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
3318
1bc39d2f
DE
33192008-07-16 David Edelsohn <edelsohn@gnu.org>
3320
3321 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
3322 MASK_POWERPC64 for power4 in previous commit.
3323
bb95b4e7
OH
33242008-07-16 Olivier Hainque <hainque@adacore.com>
3325
3326 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
3327 instead of bare conversion to cast const-ness away.
3328
e2b2d01e
AS
33292008-07-16 Anatoly Sokolov <aesok@post.ru>
3330
3331 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
3332 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
3333 * config/xtensa/xtensa.c (xtensa_function_value): New function.
3334 (TARGET_FUNCTION_VALUE): Define.
3335
9a8d7941
DE
33362008-07-16 David Edelsohn <edelsohn@gnu.org>
3337
3338 * config/rs6000/rs6000.c (processor_target_table): Add
3339 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
3340
61945d8c
JM
33412008-07-16 Joseph Myers <joseph@codesourcery.com>
3342
3343 PR target/36827
3344 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
3345 (m32c_legitimate_address_p): Handle "++rii" addresses created by
3346 m32c_legitimize_reload_address.
3347
238fe3c5
RAE
33482007-07-16 Rafael Avila de Espindola <espindola@google.com>
3349
5617c135
UB
3350 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
3351 DECL_IN_SYSTEM_HEADER in sync.
238fe3c5 3352
2dfb6ce1
DB
33532008-07-15 Daniel Berlin <dberlin@dberlin.org>
3354
3355 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
3356 * tree-ssa-pre.c (pre_expr_eq): Ditto
3357 (get_constant_for_value_id): Take a type as an argument.
3358 (fully_constant_expression): Pass in type.
3359 (find_or_generate_expression): Short circuit constant case.
3360 (create_expression_by_pieces): Remove special casing of
3361 pointer_plus.
3362 (do_regular_insertion): Short circuit constant case.
3363 (do_partial_partial_insertion): Ditto.
3364
141368f0
KK
33652008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
3366
3367 PR target/36782
3368 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
3369
25ae96c7 33702008-07-15 Bob Wilson <bob.wilson@acm.org>
22129589 3371
25ae96c7
BW
3372 * config/xtensa/libgcc-xtensa.ver: New file.
3373 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
22129589 3374
60564289
KG
33752008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3376
3377 * df-problems.c (df_set_note): Avoid C++ keywords.
3378 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
3379 * dse.c (record_store, remove_useless_values): Likewise.
3380 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
3381 gen_reg_rtx_offset, operand_subword, change_address_1,
3382 change_address, adjust_address_1, offset_address,
3383 widen_memory_access, emit_copy_of_insn_after): Likewise.
3384 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
3385 * fwprop.c (should_replace_address, propagate_rtx_1,
3386 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
3387 Likewise.
3388 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
3389 gcse_emit_move_after, update_ld_motion_stores): Likewise.
3390 * lcm.c (compute_insert_delete, pre_edge_lcm,
3391 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
3392 * lower-subreg.c (resolve_reg_notes): Likewise.
3393 * mode-switching.c (optimize_mode_switching): Likewise.
3394
32e9fa48
KG
33952008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3396
3397 * bt-load.c (add_btr_def, migrate_btr_def,
3398 branch_target_load_optimize): Avoid C++ keywords.
3399 * caller-save.c (insert_restore, insert_save, insert_one_insn):
3400 Likewise.
3401 * combine.c (subst, simplify_set, make_extraction,
72ea2555 3402 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
32e9fa48 3403 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
72ea2555 3404 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
32e9fa48 3405
ac7ee6ad
RG
34062008-07-15 Richard Guenther <rguenther@suse.de>
3407
3408 PR middle-end/36369
3409 * c-common.c (strict_aliasing_warning): Do not warn for
3410 TYPE_REF_CAN_ALIAS_ALL pointers.
3411 (c_common_get_alias_set): may_alias types are not special.
3412 * tree.c (build_pointer_type_for_mode): Look up the may_alias
3413 attribute and set can_ref_all accordingly.
3414 (build_reference_type_for_mode): Likewise.
3415 * doc/extend.texi (may_alias): Clarify.
3416
96c72efe
KK
34172008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
3418
3419 PR target/36780
3420 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
3421 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
3422
cb8cc791
AP
34232008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3424
3425 PR target/31568
3426 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
3427 gcc_assert, instead call output_operand_lossage.
3428
e65d1ec6
KT
34292008-07-15 Kai Tietz <kai.tietz@onevision.com>
3430
3431 * builtins.c (std_canonical_va_list): Treat structure based
3432 va_list types.
3433
6926c713
BE
34342008-07-15 Ben Elliston <bje@au.ibm.com>
3435
3436 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
3437
df0ed6c5
RAE
34382007-07-14 Rafael Avila de Espindola <espindola@google.com>
3439
3440 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
3441 is set.
3442
f258e5e5
JH
34432008-07-14 Jan Hubicka <jh@suse.cz>
3444
3445 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
3446 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
3447 fix predicates and constraints.
3448 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
3449 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
3450
8abc1906
DK
34512008-07-14 Doug Kwan <dougkwan@google.com>
3452
3453 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
3454 additional option file arm/eabi.opt.
3455 * config/arm/eabi.h (File): New configuration file for EABI targets.
3456 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
3457 SUBSUBTARGET_EXTRA_SPECS.
3458 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
3459 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
3460 from STARTFILE_SPEC so that it can be referenced in an override.
3461 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
3462 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
3463 can be referenced in an override.
3464 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
3465 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
3466 so that it can be referenced in an override.
3467 (LINK_SPEC): Use BPABI_LINK_SPEC.
3468 * config/arm/eabi.opt (File): New.
3469
e63ea00c
RW
34702008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3471
3472 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
3473 (FIXED_VALUE_H): New variable.
3474 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
3475 input.h, fixed-value.h.
3476 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
3477 (BASIC_BLOCK_H): Use $(BITMAP_H).
3478 (FUNCTION_H): Add varray.h.
3479 (IPA_REFERENCE_H): Use $(BITMAP_H).
3480 (CGRAPH_H): Add $(BASIC_BLOCK_H).
3481 (DF_H): Use $(BITMAP_H).
3482 (GGC_H): Add statistics.h.
3483 (INSN_ADDR_H): New.
3484 (INSN_ATTR_H): Use it.
3485 (SYSTEM_H): Add safe-ctype.h, filenames.h.
3486 (INPUT_H): New.
3487 (SYMTAB_H): Add $(OBSTACK_H).
3488 (CPP_INTERNAL_H): New.
3489 (TREE_DUMP_H): Add tree-pass.h.
3490 (TREE_FLOW_H): Use $(BITMAP_H)
3491 (PRETTY_PRINT_H): Use $(INPUT_H).
3492 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
3493 (GSTAB_H): New.
3494 (BITMAP_H): New.
3495 (many object files): Fix lots of header dependencies throughout.
3496
a4e4a2d6
RW
34972008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3498
3499 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
3500 New macros.
3501 (s-gtyp-input): Use them to write tmp-gi.list.
3502 (echo_to_gi.list): Remove.
3503
caf55296
RG
35042008-07-14 Richard Guenther <rguenther@suse.de>
3505
3506 * tree-ssa-sccvn.c (pre_info): Remove.
3507 (switch_to_PRE_table): Likewise.
72ea2555 3508 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
caf55296
RG
3509 (set_hashtable_value_ids): Do not create value-ids for the
3510 optimistic tables.
3511 (run_scc_vn): Remove double test. Remove bogus special-case
3512 in value-number printing.
3513 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
3514 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
3515 SSA_NAME_VALUE.
3516 * tree-flow-inline.h (get_value_handle): Remove.
3517 * tree-flow.h (get_value_handle): Remove.
3518
145544ab
MJ
35192008-07-14 Martin Jambor <mjambor@suse.cz>
3520
3521 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
3522 in which we generate arithmetics is not a subrange.
3523
9bfb0f01
MJ
35242008-07-14 Martin Jambor <mjambor@suse.cz>
3525
3526 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
3527
f709638a
RG
35282008-07-14 Richard Guenther <rguenther@suse.de>
3529
72ea2555 3530 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
f709638a 3531
1f9e1fc6
AK
35322008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
3533
3534 PR target/36745
3535 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
3536 reload for symbol refs moved to r0 with -fPIC.
3537 (legitimize_pic_address): Use the target register as temporary
3538 reg if possible.
3539 (emit_symbolic_move): Adjust comment.
3540 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
3541 New expanders.
3542
5950c3c9
BE
35432008-07-14 Ben Elliston <bje@au.ibm.com>
3544
3545 * c-common.h (C_CPP_HASHNODE): New macro.
3546 * coretypes.h (struct cpp_token): Forward declare.
3547 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3548 the context-sensitive keyword method.
3549 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
3550 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
3551 expand_bool_pixel): New.
3552 (altivec_categorize_keyword): New function.
3553 (init_vector_keywords): New function.
3554 (rs6000_macro_to_expand): Likewise.
3555 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
3556 compiling an ISO C dialect.
3557
b463e8de
DB
35582008-07-13 Daniel Berlin <dberlin@dberlin.org>
3559
72ea2555 3560 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
b463e8de
DB
3561 (create_expression_by_pieces): Fix typo.
3562 (do_regular_insertion): Use debug counter here too.
3563
f49e46d8
HPN
35642008-07-14 Hans-Peter Nilsson <hp@axis.com>
3565
3566 PR target/35492.
3567 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
3568 CONST_OK_FOR_LETTER_P. All port-local users changed.
3569 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
3570 implement Kp matching power-of-two.
3571 (CONSTRAINT_LEN): Define to match.
3572 * config/cris/cris.md: Replace all use of constraint K with Kc.
3573 ("*btst*): Use Kp for operand 0 of last alternative.
3574
5d94a6d0
JDA
35752008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3576
3577 PR testsuite/36440
3578 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
3579 and quad formats.
3580
4d16a7b7
JH
35812008-07-13 Jan Hubicka <jh@suse.cz>
3582
3583 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
3584 to be mangled too.
3585
f4c91e0d
RG
35862008-07-13 Richard Guenther <rguenther@suse.de>
3587
3588 PR middle-end/36811
3589 * langhooks.c (lhd_print_error_function): Deal with recursive
3590 BLOCK trees.
3591
266ad5c8
JH
35922008-07-12 Jan Hubicka <jh@suse.cz>
3593
3594 * cgraph.c (assembler_name_hash): New static var.
3595 (hash_node_by_assembler_name, eq_assembler_name): New.
3596 (cgraph_node_for_asm): Use hashtable.
3597 (cgraph_remove_node): Maintain hashtable.
3598 (change_decl_assembler_name): Sanity check that names are not changing
3599 after aliasing was processed.
3600 * cgraph.h (varpoon_node): Add next GGC marker.
3601 * tree.c (decl_assembler_name_equal): Constify.
3602 (decl_assembler_name_hash): New.
3603 * tree.h (decl_assembler_name_equal): Constify.
3604 (decl_assembler_name_hash): Update.
3605
a5a12a83
DD
36062008-07-12 David Daney <ddaney@avtrex.com>
3607
3608 * config/mips/driver-native.c (host_detect_local_cpu): Handle
3609 sb1 and r5000 cpus.
3610
2feaae20
RS
36112008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
3612
3613 * doc/md.texi: Document the MIPS "v" constraint.
3614 * config/mips/mips.h (reg_class): Revert last change.
3615 (REG_CLASS_NAMES): Likewise.
3616 (REG_CLASS_CONTENTS): Likewise.
3617 * config/mips/mips.c (mips_regno_to_class): Likewise.
3618 * config/mips/constraints.md (v): Likewise, but add documentation.
3619 Add a comment to say that this constraint should not be used in
3620 gcc code.
3621
a428e1d4
DD
36222008-07-11 DJ Delorie <dj@redhat.com>
3623
3624 * config/h8300/h8300.md (length): Fix branch offset limit.
3625
22129589 36262008-07-11 Anatoly Sokolov <aesok@post.ru>
1cf0a7f1
AS
3627
3628 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
3629 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
3630 (avr_hard_regno_scratch_ok): New function.
3631 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
3632 * config/avr/avr.md (all peepholes that request a scratch register):
3633 Remove avr_peep2_scratch_safe use.
3634
eea1139b
ILT
36352008-07-11 Tom Tromey <tromey@redhat.com>
3636 Ian Lance Taylor <iant@google.com>
3637
3638 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
3639 (struct c_common_resword): Define.
3640 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
3641 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
3642 (c_common_reswords, num_c_common_reswords): Declare.
3643 * c-common.c (c_common_reswords): New global const array.
3644 (num_c_common_reswords): New const int.
3645 * c-parser.c (struct resword, reswords): Don't define.
3646 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
3647 (c_parse_init): Clarify mask code. Use c_common_reswords rather
3648 than reswords. If warning about C++ keywords, give them a special
3649 RID code.
3650 (c_lex_one_token): Warn about C++ keywords. Call
3651 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
3652 (c_parser_external_declaration): Look for RID_xxx rather than
3653 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
3654 (c_parser_statement_after_labels): Likewise.
3655 (c_parser_objc_class_instance_variables): Likewise.
3656 (c_parser_objc_class_declaration): Likewise.
3657 (c_parser_objc_try_catch_statement): Likewise.
3658 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
3659 (declspecs_add_type): Likewise.
3660
ec4d7730
AG
36612008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
3662
3663 * ggc-page.c (alloc_page):
3664 Substituting xmalloc, xcalloc with
3665 XNEWVEC and XCNEWVAR macros which add the
3666 needed casts.
3667
941a9479
RG
36682008-07-11 Richard Guenther <rguenther@suse.de>
3669
3670 PR tree-optimization/36765
3671 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
3672 aliases from HEAP vars to SMTs.
3673
8dd9a120
KG
36742008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3675
3676 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
3677 * configure.ac (loose_warn): Move -Wc++-compat from here...
3678 (strict_warn): ...to here.
3679 * configure: Regenerate.
3680
e68152b6
JM
36812008-07-10 Joseph Myers <joseph@codesourcery.com>
3682
3683 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
3684 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
3685 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
3686 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
3687 excluding more specific h8300-*-* and sh-*-* targets.
3688
6999afe1
DB
36892008-07-10 Daniel Berlin <dberlin@dberlin.org>
3690
72ea2555 3691 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
6999afe1
DB
3692 (eliminate): Ditto.
3693 (execute_pre): Call loop_optimizer_finalize in early exit.
3694
a182fb6b
JJ
36952008-07-10 Jakub Jelinek <jakub@redhat.com>
3696
b826efd9
JJ
3697 PR middle-end/36790
3698 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
3699 uids in the bitmap, not just VAR_DECL uids.
3700
a182fb6b
JJ
3701 PR rtl-optimization/36419
3702 * combine-stack-adj.c (adjust_frame_related_expr): New function.
3703 (combine_stack_adjustments_for_block): Call it if needed. Delete
3704 correct insn.
3705 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
3706 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
3707 prologue sp adjustment.
3708
15e1dac0
PM
37092008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
3710
3711 PR other/28322
a182fb6b 3712 * opts.c (print_ignored_options): Report postponed diagnostics for
15e1dac0 3713 unknown -Wno-* options as warnings, not errors.
a182fb6b
JJ
3714 (postpone_unknown_option_error): Renamed to...
3715 (postpone_unknown_option_warning): ... this.
15e1dac0 3716
62d33f08
DK
37172008-07-09 Doug Kwan <dougkwan@google.com>
3718
3719 Revert:
3720 2008-07-08 Doug Kwan <dougkwan@google.com>
3721
3722 * config/arm/arm.opt (mandroid): New option.
3723 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
3724 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
3725 (CC1_SPEC): Same.
3726 (CC1PLUS_SPEC): Same.
3727 (LIB_SPEC): Same.
3728 (STARTFILE_SPEC): Same.
3729 (ENDFILE_SPEC): Same.
3730 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
3731 used.
3732
256f27f1
RS
37332008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
3734
3735 PR target/35802
3736 * config/mips/mips.h (reg_class): Remove V1_REG.
3737 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
3738 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
3739 instead of V1_REGS.
3740 (mips_get_tp): New function.
3741 (mips_legitimize_tls_address): Use it.
3742 * config/mips/constraints.md (v): Delete.
3743 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
3744 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
3745 After reload, split into a move and ...
3746 (*tls_get_tp_<mode>_split): ...this new instruction.
3747
432b5555
DD
37482008-07-09 David Daney <ddaney@avtrex.com>
3749
3750 * config/mips/driver-native.c: Include coretypes.h and tm.h.
3751
d406b663
JJ
37522008-07-09 Jakub Jelinek <jakub@redhat.com>
3753
3754 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
3755 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
3756 Add c argument.
3757 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
3758 htab_delete should be called. Don't free c.
3759 (lookup_tmp_var): Create temp_htab lazily.
3760 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
3761 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
3762 callers.
3763 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
3764 lower_omp_ordered, lower_omp_critical, lower_omp_for,
22129589 3765 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
d406b663
JJ
3766 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
3767 * tree-sra.c (generate_element_init): Likewise.
3768 * tree-mudflap.c (execute_mudflap_function_ops,
3769 execute_mudflap_function_decls): Likewise.
3770 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
3771 * tree-gimple.h (struct gimplify_ctx): New type.
3772 (push_gimplify_context): Adjust prototype.
3773
b0a0ab2d
DB
37742008-07-09 Daniel Berlin <dberlin@dberlin.org>
3775
3776 * tree-ssa-pre.c (phi_translate_1): Update placement of
3777 add_to_value calls.
3778
dbc42c44
AS
37792008-07-09 Anatoly Sokolov <aesok@post.ru>
3780
3781 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
3782 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
3783 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
3784 * targhooks.c (default_hard_regno_scratch_ok): New function.
3785 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
3786 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
3787 * recog.c: Include "target.h".
3788 (peep2_find_free_register): Add check for global regs. Add target
3789 specific check.
3790 * Makefile.in (recog.o): Depend on target.h.
3791
28f16d05
KK
37922008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
3793
3794 * config/sh/sh.c (sh_canonical_va_list_type): New.
3795 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
3796
1ebc7e68
RA
37972008-07-09 Raksit Ashok <raksit@google.com>
3798
3799 * doc/invoke.texi (Option Summary): Mention new option
3800 -Wdisallowed-function-list=...
3801 (Warning Options): Document -Wdisallowed-function-list=...
3802 * common.opt (Wdisallowed-function-list=): New flag.
3803 * flags.h (warn_disallowed_functions): External definition of new
3804 boolean warning flag.
3805 (warn_if_disallowed_function_p): Declare new function.
3806 * opts.c (warning_disallowed_functions): New static variable.
3807 (warn_disallowed_functions): New boolean warning flag.
3808 (warn_if_disallowed_function_p): New function.
3809 (add_comma_separated_to_vector): Rename
3810 add_instrument_functions_exclude_list to this.
3811 (common_handle_option): Handle new option. Rename calls to
3812 add_instrument_functions_exclude_list into calls to
3813 add_comma_separated_to_vector.
3814 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
3815 based on flag warn_disallowed_functions.
3816
47d268d0
CB
38172008-07-09 Christian Bruel <christian.bruel@st.com>
3818
3819 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
3820 instead of get_attr_length.
3821
8ad97cfc
KG
38222008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3823
3824 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
3825 keywords.
3826 * genemit.c (gen_insn): Likewise.
3827 * gengtype.c (note_def_vec): Likewise.
3828 * gengtype.h (note_def_vec): Likewise.
3829 * genoutput.c (struct data, output_insn_data, process_template,
3830 gen_expand, gen_split, note_constraint): Likewise.
3831 * genrecog.c (new_decision, add_to_sequence, factor_tests,
3832 make_insn_sequence): Likewise.
3833 * gensupport.c (record_insn_name): Likewise.
3834
588021c0
DK
38352008-07-08 Doug Kwan <dougkwan@google.com>
3836
3837 * config/arm/arm.opt (mandroid): New option.
3838 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
3839 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
3840 (CC1_SPEC): Same.
3841 (CC1PLUS_SPEC): Same.
3842 (LIB_SPEC): Same.
3843 (STARTFILE_SPEC): Same.
3844 (ENDFILE_SPEC): Same.
3845 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
3846 used.
3847
9946ca2d
RA
38482008-07-08 Raksit Ashok <raksit@google.com>
3849
3850 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
3851 (set_storage_via_setmem): Fix expected_align parameter.
3852 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
3853 missing from the list.
3854 * doc/md.texi (movmem): Explicitly state that expected alignment is
3855 to be expressed in bytes.
3856 (setmem): Explicitly state that expected alignment is to be expressed
3857 in bytes.
3858
10932211
JM
38592008-07-08 Joseph Myers <joseph@codesourcery.com>
3860
3861 * reload.c (find_reloads_subreg_address): Do not require validity
3862 of address in original mode before reloading address.
3863
7039a415
TS
38642008-07-07 Tianwei Sheng <tianweis@google.com>
3865
3866 * df-core.c (df_remove_problem): Adjust the access to avoid out of
3867 bounds array access.
3868
4c44c315
JJ
38692008-07-08 Jakub Jelinek <jakub@redhat.com>
3870
72ea2555 3871 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4c44c315 3872
c9145754 38732008-07-05 Daniel Berlin <dberlin@dberlin.org>
22129589 3874
c9145754
DB
3875 Fix PR tree-optimization/23455
3876 Fix PR tree-optimization/35286
3877 Fix PR tree-optimization/35287
3878 * Makefile.in (OBJS-common): Remove tree-vn.o.
72ea2555 3879 (tree-vn.o): Remove.
c9145754
DB
3880 * dbgcnt.def: Add treepre_insert debug counter.
3881 * gcc/tree-flow.h (add_to_value): Updated for other changes.
3882 (debug_value_expressions): Ditto.
3883 (print_value_expressions): Ditto.
3884 * tree-pretty-print.c (dump_generic_node): Updated for
3885 VALUE_HANDLE removal.
3886 * tree-ssa-dom.c (record_equality): Ditto.
3887 (cprop_operand): Ditto.
3888 (lookup_avail_expr): Ditto.
3889 * tree-ssa-threadedge.c
3890 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
3891 (simplify_control_stmt_condition): Ditto.
3892 * tree.c (tree_code_size): Ditto.
3893 (tree_node_structure): Ditto.
3894 (iterative_hash_expr): Ditto.
3895 * tree.def: Ditto.
3896 * tree.h (VALUE_HANDLE_ID): Ditto.
3897 (VALUE_HANDLE_EXPR_SET): Ditto.
3898 (struct tree_value_handle): Ditto.
3899 (union tree_node): Ditto.
3900 * treestruct.def: Ditto.
3901 * tree-vn.c: Removed.
3902 * tree-ssa-pre.c: Rewritten entirely.
3903 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
3904 (constant_value_ids): Ditto.
3905 (vn_nary_op_t): Moved to header.
3906 (vn_phi_t): Ditto.
3907 (vn_reference_op_t): Ditto
3908 (vn_reference_t): Ditto.
3909 (next_value_id): New variable.
3910 (VN_INFO): Add an assert.
3911 (vn_constant_eq): New function.
3912 (vn_constant_hash): Ditto.
3913 (get_or_alloc_constant_value_id): Ditto.
3914 (value_id_constant_p): Ditto.
3915 (vn_reference_compute_hash): De-staticify.
3916 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
72ea2555
UB
3917 Disable some code with a FIXME. Remove VALUE_HANDLE use.
3918 (valueize_refs): Update opcode if it changes from ssa name to constant.
c9145754
DB
3919 (vn_reference_lookup_1): Add new argument.
3920 (vn_reference_lookup): Ditto.
3921 (vn_reference_lookup_pieces): New function.
72ea2555 3922 (vn_reference_insert): Add return type. Modify to deal with value ids.
c9145754
DB
3923 (vn_reference_insert_pieces): New function.
3924 (vn_nary_op_compute_hash): De-staticify.
3925 (vn_nary_op_eq): Ditto.
3926 (vn_nary_op_lookup_pieces): New function.
22129589 3927 (vn_nary_op_lookup): Add new argument.
c9145754 3928 (vn_nary_op_insert_pieces): New function.
72ea2555 3929 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
c9145754
DB
3930 (vn_phi_insert): Ditto.
3931 (visit_unary_op): Update for callee changes.
3932 (visit_binary_op): Ditto.
3933 (visit_reference_op_load): Ditto.
3934 (visit_reference_op_store): Ditto.
3935 (init_scc_vn): Init next_value_id, constant_to_value_id and
22129589 3936 constant_value_ids.
c9145754
DB
3937 (free_scc_vn): Free them.
3938 (set_hashtable_value_ids): New function.
3939 (run_scc_vn): Use it.
3940 (get_max_value_id): New function.
3941 (get_next_value_id): Ditto.
3942 (expressions_equal_p): Moved from tree-vn.c
3943 (sort_vuses): Ditto.
3944 (sort_vuses_heap): Ditto.
3945 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
3946 above).
3947 * tree.c (iterative_hash_hashval_t): Made non-static
3948 * tree.h (iterative_hash_hashval_t): Declare it.
22129589 3949
771578a0
MJ
39502008-07-08 Martin Jambor <mjambor@suse.cz>
3951
3952 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
3953 instead of ipa_create_node_params.
3954 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
3955 ipa_check_create_edge_args, free them with
3956 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
3957
3958 * ipa-prop.c: Include flags.h and tree-inline.h.
3959 (ipa_node_params_vector): New variable.
3960 (ipa_edge_args_vector): New variable.
3961 (edge_removal_hook_holder): New variable.
3962 (node_removal_hook_holder): New variable.
3963 (edge_duplication_hook_holder): New variable.
3964 (node_duplication_hook_holder): New variable.
3965 (ipa_detect_param_modifications): Check for presence of modified flags.
3966 (ipa_compute_jump_functions): Check for presence of jump functions.
3967 (ipa_free_edge_args_substructures): New function.
3968 (ipa_create_node_params): Removed.
3969 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
3970 (ipa_free_node_params_substructures): New function.
3971 (ipa_free_all_node_params): Changed to deallocate the on-the-side
3972 vector.
3973 (ipa_edge_removal_hook): New function.
3974 (ipa_node_removal_hook): New function.
3975 (duplicate_array): New function.
3976 (ipa_edge_duplication_hook): New function.
3977 (ipa_node_duplication_hook): New function.
3978 (ipa_register_cgraph_hooks): New function.
3979 (ipa_unregister_cgraph_hooks): New function.
3980 (free_all_ipa_structures_after_ipa_cp): New function.
22129589 3981
771578a0
MJ
3982 * ipa-prop.h: Include vec.h.
3983 (ipa_node_params_t): New typedef with vector types for it.
3984 (ipa_edge_args_t): New typedef with vector types for it.
3985 (IPA_NODE_REF): Changed to access an on-the-side vector.
3986 (IPA_EDGE_REF): Changed to access an on-the-side vector.
3987 (ipa_check_create_node_params): New function.
3988 (ipa_check_create_edge_args): New function.
22129589 3989
771578a0
MJ
3990 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
3991 all users.
22129589 3992
d2e506f2
TT
39932008-07-07 Tom Tromey <tromey@redhat.com>
3994
3995 * configure, config.in: Rebuilt.
3996 * configure.ac: Don't check for scandir or alphasort.
3997
bcbdbbb0
JM
39982008-07-07 Joseph Myers <joseph@codesourcery.com>
3999
4000 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
4001 types immediately after creating them.
4002
5cef5bf5
JM
40032008-07-07 Joseph Myers <joseph@codesourcery.com>
4004
4005 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
4006
fc93bcb6
FP
40072008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
4008
72ea2555
UB
4009 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
4010 dump_constraint_graph.
4011 (dump_constraint_edge): New function.
4012 (dump_constraint_graph): New function.
4013 (debug_constraint_graph): New function.
4014 (dump_constraint): Removed useless comparison.
4015 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
4016 (dump_constraint_graph): Declare.
4017 (debug_constraint_graph): Declare.
4018 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
fc93bcb6 4019
8432ea85
KT
40202008-07-07 Kai Tietz <kai.tietz@onevision.com>
4021
4022 * config/i386/i386.c (is_va_list_char_pointer): New.
4023 (ix86_va_start): Replace compare with ms_va_list_type_node
4024 by is_va_list_char_pointer.
4025 (ix86_gimplify_va_arg): Likewise.
4026
9088c1cc
MJ
40272008-07-07 Martin Jambor <mjambor@suse.cz>
4028
4029 * cgraph.c (cgraph_edge_max_uid): New variable.
4030 (struct cgraph_edge_hook_list): New type.
4031 (struct cgraph_node_hook_list): New type.
4032 (struct cgraph_2edge_hook_list): New type.
4033 (struct cgraph_2node_hook_list): New type.
4034 (first_cgraph_edge_removal_hook): New variable.
4035 (first_cgraph_node_removal_hook): New variable.
4036 (first_cgraph_edge_duplicated_hook): New variable.
4037 (first_cgraph_node_duplicated_hook): New variable.
4038 (cgraph_add_edge_removal_hook): New function.
4039 (cgraph_remove_edge_removal_hook): New function.
4040 (cgraph_call_edge_removal_hooks): New function.
4041 (cgraph_add_node_removal_hook): New function.
4042 (cgraph_remove_node_removal_hook): New function.
4043 (cgraph_call_node_removal_hooks): New function.
4044 (cgraph_add_edge_duplication_hook): New function.
4045 (cgraph_remove_edge_duplication_hook): New function.
4046 (cgraph_call_edge_duplication_hooks): New function.
4047 (cgraph_add_node_duplication_hook): New function.
4048 (cgraph_remove_node_duplication_hook): New function.
4049 (cgraph_call_node_duplication_hooks): New function.
4050 (cgraph_create_edge): Assign to edge uid.
4051 (cgraph_remove_edge): Call edge removal hooks.
4052 (cgraph_node_remove_callees): Call edge removal hooks.
4053 (cgraph_node_remove_callers): Call edge removal hooks.
4054 (cgraph_remove_node): Call node removal hooks.
4055 (cgraph_clone_edge): Call edge duplication hooks.
4056 (cgraph_clone_node): Call node duplication hooks.
4057
4058 * cgraph.h (cgraph_edge): New field uid.
4059 (cgraph_edge_hook): New type.
4060 (cgraph_node_hook): New type.
4061 (cgraph_2edge_hook): New type.
4062 (cgraph_2node_hook): New type.
4063
c71618c6
AT
40642008-07-07 Andreas Tobler <a.tobler@schweiz.org>
4065
4066 * config.in: Regenerate.
4067
3def1397
VP
40682008-07-07 Vladimir Prus <vladimir@codesourcery.com>
4069
4070 * gcc.c (print_sysroot): New.
4071 (option_map, display_help, process_command): Handle the
4072 -print-sysroot option.
4073 (main): Print the sysroot if requested.
4074 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
22129589 4075
40a420d5
RW
40762008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4077
4078 PR target/34780
4079 * unwind-pe.h (size_of_encoded_value): add attribute unused.
4080
85776d60
DJ
40812008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
4082
72ea2555 4083 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
85776d60
DJ
4084 (assign_parm_setup_block_p): Also check mode of entry_parm.
4085
bf87f41c
RG
40862008-07-07 Richard Guenther <rguenther@suse.de>
4087
4088 * tree-ssa-structalias.h (set_used_smts): Remove.
4089 * tree-ssa-structalias.c (used_smts): Likewise.
4090 (set_used_smts): Likewise.
4091 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
4092 call to set_used_smts.
4093
e5bae89b
RG
40942008-07-07 Richard Guenther <rguenther@suse.de>
4095
4096 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
4097 (new_var_info): Set it to false.
4098 (solution_set_add): Correctly handle pointers outside a var and
4099 inside a field.
4100 (type_safe): Treat variables with is_full_var properly.
4101 (do_sd_constraint): Likewise.
4102 (do_ds_constraint): Likewise.
4103 (process_constraint): Remove zeroing offset for !use_field_sensitive.
4104 (get_constraint_for_ptr_offset): New function.
4105 (get_constraint_for_component_ref): For addresses at least include
4106 the last field of the variable. Handle is_full_vars properly.
4107 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
4108 (handle_ptr_arith): Remove.
4109 (find_func_aliases): Simplify assignment handling.
4110 (create_function_info_for): For parameter and result varinfos set
4111 is_full_var flag.
4112 (create_variable_info_for): Set is_full_var flag whenever we
4113 just created a single varinfo for a decl.
4114 (init_alias_vars): Initialize use_field_sensitive from
4115 max-fields-for-field-sensitive parameter.
4116
115340c7
RG
41172008-07-07 Richard Guenther <rguenther@suse.de>
4118
4119 PR tree-optimization/36713
4120 * tree-flow-inline.h (is_call_used): New function.
4121 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
4122 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4123 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
4124
511e41e5
MK
41252008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
4126
4127 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
22129589 4128
bd0e50ee
MS
41292008-07-07 Mark Shinwell <shinwell@codesourcery.com>
4130
4131 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
4132
368b55f6
NS
41332008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
4134 Nathan Sidwell <nathan@codesourcery.com>
4135
4136 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
4137 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
4138 tmake_file.
4139 * config/m68k/t-linux: New.
4140 * doc/install.texi: Document m68k-*-linux is now multilibbed by
4141 default.
4142
41432008-07-07 Nathan Sidwell <nathan@codesourcery.com>
4144
4145 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
4146 * config/m68k/m68k-devices.def: Remove multilibs that only differ
4147 by MAC/EMAC.
4148
63ab5b8c
KG
41492008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4150
4151 * gcc.c (execute): Fix -Wc++-compat warning.
4152
9eb578c8
L
41532008-07-06 H.J. Lu <hongjiu.lu@intel.com>
4154
4155 PR target/36720
4156 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
4157 constant for little endian.
4158
60730ade
RS
41592008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
4160
4161 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
4162 mips_base_mips16 instead of TARGET_MIPS16.
4163 (mips_base_mips16): Declare.
4164 * config/mips/mips.c (mips_base_mips16): Make global.
4165 (was_mips16_p): Remove GTY marker.
4166 (was_mips16_pch_p): New variable.
4167 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
4168 (mips_override_options): Force to non-MIPS16 mode initially.
4169 Do not complain about MIPS16 PIC incompatibilities here.
4170 Only allow -mgpopt if -mexplicit-relocs is in force for
4171 non-MIPS16 code.
4172
bba09b5a
AT
41732008-07-06 Andreas Tobler <a.tobler@schweiz.org>
4174
4175 * configure.ac: Check for caddr_t, define to char * if not defined.
4176 * configure: Regenerate.
4177 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
4178 (mmap_gt_pch_use_address): Likewise.
4179 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
4180
ee7d4b57
RG
41812008-07-06 Richard Guenther <rguenther@suse.de>
4182
4183 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
4184 (new_var_info): Deal with it.
4185 (solution_set_add): Likewise.
4186 (bitpos_of_field): Make signed, fix.
4187 (struct fieldoff): Remove type and decl fields. Make size field
4188 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
4189 flags.
4190 (fieldoff_compare): Deal with it.
4191 (push_fields_onto_fieldstack): Remove has_union argument, glob
4192 adjacent non-pointer fields together.
4193 (create_function_info_for): Do not set has_union.
4194 (create_variable_info_for): Simplify.
4195
35cbb299
KT
41962008-07-06 Kai Tietz <kai.tietz@onevision.com>
4197
4198 * config.gcc (extra_headers): Add cross-stdarg.h for target
4199 x86_64-*-* and i?86-*-*.
4200 * config/i386/cross-stdarg.h: New.
4201 * builtins.c (std_fn_abi_va_list): New.
4202 (std_canonical_va_list_type): New.
4203 (stabilize_va_list): Replace va_list_type_node use by
4204 mtarget.canonical_va_list_type.
4205 (gimplify_va_arg_expr): Likewise.
4206 (expand_builtin_va_copy): Replace va_list_type_node use by
4207 mtarget.fn_abi_va_list.
4208 * tree-sra.c (is_va_list_type): New helper.
4209 (decl_can_be_decomposed_p): Replace
4210 va_list_type_node use by is_va_list_type.
4211 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
4212 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4213 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
4214 * config/i386/i386-protos.h (ix86_get_valist_type): New.
4215 (ix86_enum_va_list): New.
4216 * config/i386/i386.c (sysv_va_list_type_node): New.
4217 (ms_va_list_type_node): New.
4218 (ix86_function_type_abi): Remove sorry.
4219 (ix86_build_builtin_va_list_abi): New.
4220 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
4221 for 64-bit targets.
4222 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
4223 (ix86_init_builtins_va_builtins_abi): New.
4224 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
4225 for 64-bit targets.
4226 (ix86_handle_abi_attribute): New.
4227 (attribute_spec): Add sysv_abi and ms_abi.
4228 (ix86_fn_abi_va_list): New.
4229 (ix86_canonical_va_list_type): New.
4230 (ix86_enum_va_list): New.
4231 (TARGET_FN_ABI_VA_LIST): New.
4232 (TARGET_CANONICAL_VA_LIST_TYPE): New.
4233 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
4234 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
4235 (TARGET_CANONICAL_VA_LIST_TYPE): New.
4236 (TARGET_ENUM_VA_LIST): New.
4237 * expr.h (std_fn_abi_va_list): New.
4238 (std_canonical_va_list_type): New.
4239 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
4240 (TARGET_CANONICAL_VA_LIST_TYPE): New.
4241 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
4242 TARGET_CANONICAL_VA_LIST_TYPE.
4243 * target.h (struct gcc_target): Add fn_abi_va_list hook
4244 and canonical_va_list_type hook.
4245
0e4b00d6
AP
42462008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
4247
4248 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
4249 integral and pointer types.
4250
33c7eedf
RS
42512008-07-04 Roger Sayle <roger@eyesopen.com>
4252
72ea2555 4253 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
33c7eedf
RS
4254 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
4255
0dcd6f42
KK
42562008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
4257
4258 PR target/36684
72ea2555 4259 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
0dcd6f42 4260
04e78aa9
JJ
42612008-07-04 Jakub Jelinek <jakub@redhat.com>
4262
4263 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
4264 build_gimple_modify_stmt.
4265 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
4266 gimple operand. Use fold_build* instead of build*.
4267
0e1f4c6b
RG
42682008-07-04 Richard Guenther <rguenther@suse.de>
4269
4270 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
4271 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
4272 properly to compute the reachability set if we do field-sensitive PTA.
4273 * invoke.texi (max-fields-for-field-sensitive): Document default.
4274 * opts.c (decode_options): Set max-fields-for-field-sensitive to
4275 100 for optimize >= 2.
4276
bf8e9c49
KG
42772008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4278
4279 * ggc-zone.c (lookup_page_table_if_allocated,
4280 set_page_table_entry, zone_find_object_size, alloc_small_page,
4281 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
4282 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
4283 -Wc++-compat and/or -Wcast-qual warnings.
4284
1d3155fc
AM
42852008-07-04 Alan Modra <amodra@bigpond.net.au>
4286
4287 PR target/36634
4288 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
4289 pic_offset_table_rtx to be marked as used here.
4290 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
4291 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
4292 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
4293 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
4294 !TARGET_SECURE_PLT.
4295
aebde504
KG
42962008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4297
4298 * alloc-pool.c (hash_descriptor, eq_descriptor,
4299 alloc_pool_descriptor): Fix -Wc++-compat warnings.
4300 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
4301 Likewise.
4302 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
4303 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
72ea2555 4304 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
aebde504
KG
4305 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
4306 Likewise.
4307
52778e2a
EB
43082008-07-03 Eric Botcazou <ebotcazou@adacore.com>
4309
4310 * tree-flow.h (loop_only_exit_p): Declare.
4311 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
4312 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
4313 the number of iterations if it is constant. Otherwise, if this is the
4314 only possible exit of the loop, use the conservative estimate on the
4315 number of iterations of the entire loop if available.
4316
f92518d7
RS
43172008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
4318
4319 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
4320 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
4321 Add synchronization functions.
4322 * config/sync.c: New file.
4323 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
4324 (LIBGCC_SYNC_CFLAGS): Likewise.
4325
dcde22ac
UB
43262008-07-03 Uros Bizjak <ubizjak@gmail.com>
4327
4328 PR target/36710
4329 * config/i386/i386.md (mode): Add TF to "mode" attribute.
4330 (*pushtf_sse): New insn pattern.
4331 (pushtf splitters): New splitters.
4332
9d7e5c4d
MM
43332008-07-03 Michael Meissner <gnu@the-meissners.org>
4334
4335 PR middle-end/35736
4336 * predict.c (build_predict_expr): Use void_type_node for the tree
4337 type, instead of NULL_TREE.
4338
192f2d33
L
43392008-07-03 H.J. Lu <hongjiu.lu@intel.com>
4340
4341 * config/i386/i386.c (contains_aligned_value_p): Return true
4342 for TCmode.
4343 (ix86_data_alignment): Align TCmode to 128bits.
4344 (ix86_local_alignment): Likewise.
4345
70d3fcab
AH
43462008-07-03 Andrew Haley <aph@redhat.com>
4347
4348 PR bootstrap/33304
4349 * vec.h (VEC_TA): New.
4350 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
4351 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
4352 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
4353 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
4354 (C_COMMON_FIXED_TYPES): Remove first arg.
4355 (C_COMMON_FIXED_MODE_TYPES): Likewise.
4356 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
4357 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
4358 not to use empty macro arguments.
4359
1935a7ef
JM
43602008-07-02 Joseph Myers <joseph@codesourcery.com>
4361
4362 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
4363 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
4364 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
4365 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
4366 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
4367 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
4368 config/ia64/crtn.asm, config/m68hc11/larith.asm,
4369 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
4370 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
4371 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
4372 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
4373 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
4374 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
4375 config/rs6000/e500crtres64gpr.asm,
4376 config/rs6000/e500crtres64gprctr.asm,
4377 config/rs6000/e500crtrest32gpr.asm,
4378 config/rs6000/e500crtrest64gpr.asm,
4379 config/rs6000/e500crtresx32gpr.asm,
4380 config/rs6000/e500crtresx64gpr.asm,
4381 config/rs6000/e500crtsav32gpr.asm,
4382 config/rs6000/e500crtsav64gpr.asm,
4383 config/rs6000/e500crtsav64gprctr.asm,
4384 config/rs6000/e500crtsavg32gpr.asm,
4385 config/rs6000/e500crtsavg64gpr.asm,
4386 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
4387 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
4388 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
4389 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
4390 config/sparc/sol2-cn.asm: Remove .file directives.
4391
1b929c9a
RS
43922008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
4393
4394 * resource.c (mark_referenced_resources): Look inside
4395 UNSPEC_VOLATILEs and ASM_INPUTs.
4396
65c5f2a6
ILT
43972008-07-02 Ian Lance Taylor <iant@google.com>
4398
4399 * rtlanal.c (add_reg_note): New function.
4400 * rtl.h (add_reg_note): Declare.
4401 * auto-inc-dec.c (attempt_change): Use add_reg_note.
4402 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
4403 * builtins.c (expand_builtin_longjmp): Likewise.
4404 (expand_builtin_nonlocal_goto): Likewise.
4405 * calls.c (emit_call_1, expand_call): Likewise.
4406 * cfgexpand.c (add_reg_br_prob_note): Likewise.
4407 * cfglayout.c (fixup_reorder_chain): Likewise.
4408 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
4409 (commit_one_edge_insertion): Likewise.
4410 * combine.c (move_deaths, distribute_notes): Likewise.
4411 * df-problems.c (df_set_note): Likewise.
4412 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
4413 (set_unique_reg_note): Likewise.
4414 (emit_copy_of_insn_after): Likewise.
4415 * expr.c (expand_expr_real): Likewise.
4416 * gcse.c (add_label_notes): Likewise.
4417 * haifa-sched.c (create_check_block_twin): Likewise.
4418 * jump.c (mark_jump_label_1): Likewise.
4419 * loop-doloop.c (add_test, doloop_modify): Likewise.
4420 * loop-unswitch.c (compare_and_jump_seq): Likewise.
4421 * lower-subreg.c (move_eh_region_note): Likewise.
4422 * optabs.c (emit_libcall_block): Likewise.
4423 * predict.c (predict_insn): Likewise.
4424 (combine_predictions_for_insn): Likewise.
4425 * recog.c (peephole2_optimize): Likewise.
4426 * regmove.c (try_auto_increment): Likewise.
4427 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
4428 * reload.c (find_reloads): Likewise.
4429 * reload1.c (fixup_eh_region_note): Likewise.
4430 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
4431 * reorg.c (delete_prior_computation): Likewise.
4432 (delete_computation, dbr_schedule): Likewise.
4433 * config/pa/pa.c (legitimize_pic_address): Likewise.
4434 * config/sh/sh.c (sh_reorg): Likewise.
4435
ff473280
L
44362008-07-02 H.J. Lu <hongjiu.lu@intel.com>
4437
4438 PR target/36669
4439 * config/libgcc-glibc.ver: Add %exclude.
4440 * config/m32r/libgcc-glibc.ver: Likwise.
4441 * config/s390/libgcc-glibc.ver: Likwise.
4442 * config/sh/libgcc-glibc.ver: Likwise.
4443 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
4444
4445 * config/i386/libgcc-glibc.ver: New.
4446
4447 * config/i386/libgcc-x86_64-glibc.ver: Removed.
4448
44492008-07-02 H.J. Lu <hongjiu.lu@intel.com>
4450
4451 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
4452 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
4453 i[34567]86-*-linux*, x86_64-*-linux*. Add
4454 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
4455 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
4456 x86_64-*-linux*. Add i386/t-linux to tmake_file for
4457 i[34567]86-*-linux*, x86_64-*-linux*.
4458
4459 * libgcc-std.ver: Add empty GCC_4.4.0.
4460
4461 * mkmap-symver.awk: Support multiple versions per symbol.
4462
4463 * config/i386/i386.c (ix86_init_builtins): Always define
4464 __builtin_fabsq and __builtin_copysignq with fallbacks.
4465 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
4466 and __builtin_copysignq if SSE2 isn't available.
4467
4468 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
4469 (LIBGCC2_TF_CEXT): Likwise.
4470 (TF_SIZE): Likwise.
4471
4472 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
4473
4474 * config/i386/sfp-machine.h: Moved to libgcc.
4475
4476 * config/i386/sfp-machine.h: New.
4477 * config/i386/t-linux: Likwise.
4478
4479 * config/i386/t-darwin: Remove softfp_wrap_start and
4480 softfp_wrap_end.
4481 * config/i386/t-darwin64: Likewise.
4482
4483 * config/i386/t-fprules-softfp64: Renamed to ...
4484 * config/i386/t-fprules-softfp: This.
4485
4486 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
4487 and softfp_wrap_end.
4488
09357846
JM
44892008-07-02 Jason Merrill <jason@redhat.com>
4490
6010fae7
JM
4491 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
4492
09357846
JM
4493 * tree.c (ctor_to_list): New fn.
4494 * tree.h: Declare it.
4495 (CONSTRUCTOR_ELT): New macro.
4496 (CONSTRUCTOR_NELTS): New macro.
4497
795a337a
RG
44982008-07-02 Richard Guenther <rguenther@suse.de>
4499
4500 * tree-ssa-structalias.c (struct variable_info): Reorder
4501 to fill padding on 64bit hosts. Make collapsed_to an int.
4502 (get_varinfo_fc): Deal with that.
4503 (new_var_info): Likewise.
4504 (collapse_rest_of_var): Likewise.
4505
c9db365d
JS
45062008-07-02 Joshua Sumali <jsumali@redhat.com>
4507
4508 * doc/install.texi (--enable-java-home): Document.
4509 (--enable-aot-compile-rpm): Likewise.
4510 (--with-arch-directory): Likewise.
4511 (--with-os-directory): Likewise.
4512 (--with-origin-name): Likewise.
4513 (--with-arch-suffix): Likewise.
4514 (--with-jvm-root-dir): Likewise.
4515 (--with-jvm-jar-dir): Likewise.
4516 (--with-python-dir): Likewise.
4517
9e11641d
RG
45182008-07-02 Richard Guenther <rguenther@suse.de>
4519
4520 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
4521 from decls explicitly. Merge operand checking from tuples.
4522
3fe1efe4
MJ
45232008-07-02 Martin Jambor <mjambor@suse.cz>
4524
4525 * tree-switch-conversion.c: Included timevar.h which I forgot before.
22129589 4526
a167a676
MJ
45272008-07-02 Martin Jambor <mjambor@suse.cz>
4528
4529 * tree-switch-conversion.c: Included timevar.h
4530 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
4531
4532 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
4533
b1ae1681
MJ
45342008-07-02 Martin Jambor <mjambor@suse.cz>
4535
4536 * tree-switch-conversion.c: Corrected various comments and
4537 whitespace issues
4538 (build_constructors): Fixed minor formatting mistakes.
4539
4540 * invoke.texi (Optimize Options): Corrected the
4541 switch-conversion-max-branch-ratio parameter.
4542
5bc4fa7c
MS
45432008-07-02 Mark Shinwell <shinwell@codesourcery.com>
4544
4545 * final.c (asm_insn_count): Return zero for an empty asm body.
4546
5f0d975b
RG
45472008-07-02 Richard Guenther <rguenther@suse.de>
4548
4549 * bitmap.h (bitmap_set_bit): Return bool.
4550 (bitmap_clear_bit): Likewise.
4551 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
4552 write to the bitmap if it would.
4553 (bitmap_clear_bit): Likewise.
4554 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
4555 bitmap_set_bit return value.
4556 (add_pred_graph_edge): Likewise.
4557 (add_graph_edge): Likewise.
4558 (do_sd_constraint): Likewise.
4559 (do_ds_constraint): Likewise.
4560
7a6942ad
KG
45612008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4562
4563 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
4564 Fix -Wc++-compat and/or -Wcast-qual warnings.
4565 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
4566 gen_regparm_prefix): Likewise.
4567 * vmsdbgout.c (write_modbeg, lookup_filename,
4568 vmsdbgout_source_line, vmsdbgout_init): Likewise.
4569
20384976
DS
45702008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
4571
4572 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
4573 defaults.h definition apply.
4574
4d2a9850
DJ
45752008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
4576
4577 * function.c (assign_parm_remove_parallels): New.
4578 (assign_parm_setup_block_p): Do not return true for non-BLKmode
4579 PARALLELs.
4580 (assign_parm_setup_block): Do not handle them.
4581 (assign_parm_setup_reg, assign_parm_setup_stack): Call
4582 assign_parm_remove_parallels.
4583
f83c7f63
DJ
45842008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
4585
4586 * c-typeck.c (convert_for_assignment): Use
4587 vector_targets_convertible_p.
4588 * c-common.c (vector_targets_convertible_p): New.
4589 * c-common.h (vector_targets_convertible_p): New prototype.
4590 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
4591 opaque_p_V2SI_type_node.
4592
103a6411
SE
45932008-07-01 Steve Ellcey <sje@cup.hp.com>
4594
4595 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
4596 RFmode constants.
4597
f3e10a2b
UB
45982008-07-01 Uros Bizjak <ubizjak@gmail.com>
4599
4600 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
4601 TFmode constants via two element DImode vector for hosts with
4602 HOST_BITS_PER_WIDE_INT < 64.
4603 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
4604 also for HOST_BITS_PER_WIDE_INT < 64.
4605
c0d459f0
RG
46062008-07-01 Richard Guenther <rguenther@suse.de>
4607
4608 PR tree-optimization/36666
4609 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
4610 (get_constraint_exp_from_ssa_var): Split into ...
4611 (get_constraint_exp_for_temp): ... this ...
4612 (get_constraint_for_ssa_var): ... and that.
4613 Return constraint expressions for all touched sub-fields
4614 if the results address is not taken.
4615 (process_constraint): Remove assertion that aggregate
4616 assignments do not happen at this place.
4617 (get_constraint_for_component_ref): Add address_p argument.
4618 Return constraint expressions for all touched sub-fields
4619 if the results address is not taken.
4620 (do_deref): Use get_constraint_exp_for_temp.
4621 (get_constraint_for_1): Rename from ...
f3e10a2b 4622 (get_constraint_for): ... this. Add the old function as wrapper.
c0d459f0
RG
4623 (do_structure_copy): Use get_constraint_for_1.
4624
b6e99746 46252008-07-01 Martin Jambor <mjambor@suse.cz>
c0d459f0 4626
dcde22ac
UB
4627 * Makefile.in (tree-switch-conversion.o): Add.
4628 (OBJS-common): Add tree-swtch-conversion.o.
4629 * passes.c (init_optimization_passes): Add pass_convert_switch.
4630 * tree-pass.h: (pass_convert_switch): Add.
4631 * tree-switch-conversion.c: New file.
4632 * gcc.dg/tree-ssa/cswtch.c: New testcase.
4633 * common.opt (ftree-cswtch): New option.
4634 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4635 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
4636 * opts.c (decode_options): Set flag_tree_switch_conversion when
4637 optimization level is >= 2.
4638 * doc/invoke.texi (Optimize Options): Added description of
4639 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
b6e99746 4640
3043c804
KG
46412008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4642
4643 * config/darwin-driver.c (darwin_default_min_version): Fix
4644 -Wc++-compat warnings.
4645
f3e10a2b 46462008-06-30 Uros Bizjak <ubizjak@gmail.com>
33af070f
UB
4647
4648 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
4649 of operand 0.
4650
727683a5
KZ
46512008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
4652
f3e10a2b 4653 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
22129589 4654
370f38e8
KZ
46552008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
4656
a8f77bad 4657 PR rtl-optimization/34744
f3e10a2b 4658 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
dcde22ac 4659 (df_scan_free_internal): Free data structures not
370f38e8
KZ
4660 allocated in storage pools.
4661 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
f3e10a2b 4662 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
370f38e8
KZ
4663 df_scan_free_mws_vec.
4664 * dse.c (dse_step6): Free offset_map_p and offset_map_n
4665 unconditionally.
4666
5bb77598
L
46672008-06-30 H.J. Lu <hongjiu.lu@intel.com>
4668
4669 * config/i386/i386.c (contains_aligned_value_p): Return true
4670 for __float128.
33af070f 4671 (ix86_function_arg_boundary): Return its natural boundary
5bb77598
L
4672 for __float128.
4673 (return_in_memory_32): Don't check TDmode.
4674 (ix86_split_to_parts): Support splitting into 4 parts and
4675 support TFmode for 32bit target.
4676 (ix86_split_long_move): Support splitting into 4 parts.
4677 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
4678 for SSE2.
33af070f 4679 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5bb77598
L
4680 (ix86_init_builtins): Here.
4681 (ix86_scalar_mode_supported_p): Always return true for TFmode.
4682 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
22129589 4683 'q' and 'w', respectively.
5bb77598
L
4684
4685 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
4686 TARGET_64BIT.
4687 (movtf_internal): Likewise.
4688 (<code>tf2): Likewise.
4689 (*absnegtf2_sse): Likewise.
4690 (copysign<mode>3): Likewise.
4691 (copysign<mode>3_const): Likewise.
4692 (copysign<mode>3_var): Likewise.
4693 (define_split UNSPEC_COPYSIGN): Likewise.
4694 * config/i386/sse.md (*nandtf3): Likewise.
4695 (<code>tf3): Likewise.
4696 (*<code>tf3): Likewise.
4697
38aa4d08
JY
46982008-06-30 Joey Ye <joey.ye@intel.com>
4699 H.J. Lu <hongjiu.lu@intel.com>
4700
4701 * global.c (compute_regsets): Set frame_pointer_needed here.
33af070f 4702 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
38aa4d08 4703
aad416fb
AL
47042008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4705
4706 * doc/install.texi (specific): Expand Windows build notes.
4707
e2cefdd9
IR
47082008-06-30 Ira Rosen <irar@il.ibm.com>
4709
4710 PR tree-optimization/36648
4711 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
4712 number of prolog iterations by step. Fix the comment.
4713
183ae595
RG
47142008-06-30 Richard Guenther <rguenther@suse.de>
4715
4716 PR middle-end/36671
4717 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
4718 handle calls from ECF_MALLOC functions.
4719 (handle_pure_call): ECF_MALLOC functions do not return
4720 call-used memory.
4721 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
4722
c2058aa4
AS
47232008-06-29 Andreas Schwab <schwab@suse.de>
4724
6ae89ea8
AS
4725 * config/m68k/m68k.c (print_operand): Always print a float
4726 constant in hex.
4727 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
4728 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
4729 Remove macros.
4730
c2058aa4
AS
4731 * config/rs6000/x-linux64: Remove never used file.
4732
faf2ecc5
RG
47332008-06-29 Richard Guenther <rguenther@suse.de>
4734
4735 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
4736 prototype.
4737 (struct alias_info): Move ...
4738 * tree-ssa-alias.c: ... here.
4739 (update_alias_info): Declare.
4740 (compute_may_aliases): Call it.
4741 (update_alias_info): New function.
4742 * tree-ssa-structalias.c (update_alias_info): Move ...
4743 * tree-ssa-alias.c (update_alias_info_1): ... here.
4744 * tree-ssa-structalias.c (process_constraint_1): Remove
4745 unused from_call argument. Rename to ...
4746 (process_constraint): ... this. Delete old wrapper.
4747 (make_constraint_to): Adjust callers.
4748 (handle_const_call): Likewise.
4749 (handle_pure_call): Likewise.
4750 (init_base_vars): Likewise.
4751 (handle_lhs_call): Likewise. Remove unnecessary constraint.
4752 (find_func_aliases): We don't need structure copies for
4753 complex types.
4754 (make_constraint_from_anything): Remove.
4755 (create_variable_info_for): For globals make constraints
4756 from escaped, not from anything.
4757 (compute_points_to_sets): Do not call update_alias_info.
4758 (ipa_pta_execute): Use make_constraint_from.
4759
572e5ae3
KG
47602008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4761
4762 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
4763 (bitmap.o-warn, dominance.o-warn): New.
4764 * configure.ac (cxx_compat_warn): Delete.
4765 (loose_warn): Add -Wcast-qual and -Wc++-compat.
4766 * system.h: Remove #pragma diagnostic for -Wcast-qual and
4767 -Wc++-compat.
4768 * configure: Regenerate.
4769
4770 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
4771 warnings.
4772
4dc6c528
KG
47732008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4774
4775 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
4776 * df-scan.c (df_notes_rescan): Likewise.
4777 * ggc-page.c (set_page_table_entry): Likewise.
4778 * intl.c (gcc_gettext_width): Likewise.
4779 * varasm.c (get_unnamed_section, get_noswitch_section,
4780 get_section): Likewise.
4781
d1c1c79f
AJ
47822008-06-28 Andrew Jenner <andrew@codesourcery.com>
4783
4784 * regrename.c (build_def_use): Don't copy RTX.
4785
38bb2b65
SL
47862008-06-28 Sandra Loosemore <sandra@codesourcery.com>
4787
4788 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
4789 (Type Attributes): Fix nesting of @table and @subsection. Adjust
4790 punctuation. Use @ref instead of @xref.
4791 (Function Names): Remove stray @display/@end display.
4792 (C++ Attributes): Use @ref instead of @xref.
4793 (Deprecated Features): Fix punctuation around @xref.
4794 (Backwards Compatibility): Likewise.
4795 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
4796
624b157f
JM
47972008-06-28 Joseph Myers <joseph@codesourcery.com>
4798
4799 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
4800 constants for E500 double.
4801
ffba3fd0
UW
48022008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4803
4804 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
4805 element type of const_vector.
4806
f3e10a2b 48072008-06-28 Uros Bizjak <ubizjak@gmail.com>
7ae14d31
UB
4808
4809 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
4810 Remove FLAGS_REG clobber from expander pattern.
4811 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
4812 (anddi3, andsi3, andhi3, andqi3): Ditto.
4813 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
4814 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
4815 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
4816 (ashlsi3, ashlhi3, ashlqi3): Ditto.
4817 (ashrsi3, ashrhi3, ashrqi3): Ditto.
4818 (lshrsi3, lshrhi3, lshrqi3): Ditto.
4819 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
4820 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
4821
15c15196
RG
48222008-06-28 Richard Guenther <rguenther@suse.de>
4823
4824 * tree-ssa-structalias.c (callused_id, var_callused,
4825 callused_tree): Add.
4826 (handle_pure_call): New function.
4827 (find_func_aliases): Call it.
4828 (find_what_p_points_to): Handle the call-used set.
4829 (clobber_what_escaped): Likewise.
4830 (compute_call_used_vars): New function.
4831 (init_base_vars): Init the call-used variable.
4832 (do_sd_constraint): Do not propagate the solution from CALLUSED
4833 but use CALLUSED as a placeholder.
4834 (solve_graph): Likewise.
4835 * tree-flow-inline.h (gimple_call_used_vars): New function.
4836 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
4837 (compute_call_used_vars): Declare.
4838 * tree-ssa-alias.c (set_initial_properties): Call
4839 compute_call_used_vars.
4840 (reset_alias_info): Clear call-used variables.
4841 (add_call_clobber_ops): Assert we are not called for const/pure
4842 functions. Remove handling of them.
4843 (add_call_read_ops): Handle pure functions by adding the
4844 call-used set of variables as VUSEs.
4845 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
4846 (delete_tree_ssa): Free it.
4847 * tree-dfa.c (remove_referenced_var): Clear the var from the
4848 call-used bitmap.
4849
ff1c393b
KT
48502008-06-28 Kai Tietz <kai.tietz@onevision.com>
4851
4852 * tree.c (build_varargs_function_type_list): New.
4853 (build_function_type_list_1): New.
4854 (build_function_type_list): Use build_function_type_list_1.
4855 * tree.h (build_varargs_function_type_list): New.
4856
d74032d9
UW
48572008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4858
4859 PR target/34856
4860 * config/spu/spu.c (spu_builtin_splats): Do not generate
4861 invalid CONST_VECTOR expressions.
4862 (spu_expand_vector_init): Likewise.
4863
61698f54
RS
48642008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
4865
4866 * optabs.c (libfunc_decls): New variable.
4867 (libfunc_decl_hash, libfunc_decl_eq): New functions.
4868 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
4869 for the same function twice.
4870
f3e10a2b 48712008-06-27 Uros Bizjak <ubizjak@gmail.com>
934f2a96
UB
4872
4873 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
4874 ix86_expand_binary_operator directly.
4875 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
4876 for operand 2.
4877 (*ashrti3_1): Ditto.
4878 (*lshrti3_1): Ditto.
4879 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
4880 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
4881 using only one splitter. Conditionaly execute splitter before or
4882 after peephole2 pass.
4883 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
4884 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
4885 Use only one alternative in asm template.
4886 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
4887 in asm template.
4888 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
4889 "J" operand constraint for operand 2.
4890 (*ashldi3_cconly_rex64): Ditto.
4891 (*ashrdi3_cmp_rex64): Ditto.
4892 (*ashrdi3_cconly_rex64): Ditto.
4893 (*lshrdi3_cmp_rex64): Ditto.
4894 (*lshrdi3_cconly_rex64): Ditto.
4895 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
4896 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
4897 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
4898 gen_x86_shrd_1.
4899
b357f682
JJ
49002008-06-27 Jakub Jelinek <jakub@redhat.com>
4901
7ae14d31
UB
4902 * gimplify.c (omp_is_private): Don't return true if decl is not
4903 already private on #pragma omp for or #pragma omp parallel for.
ca2b1311 4904
b357f682
JJ
4905 PR debug/36617
4906 * tree-cfg.c (struct move_stmt_d): Replace block field with
4907 orig_block and new_block fields.
4908 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
4909 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
4910 (move_block_to_fn): Replace vars_map and new_label_map arguments
4911 with struct move_stmt_d pointer.
4912 (replace_block_vars_by_duplicates): New function.
4913 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
4914 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
4915 all subblocks of ORIG_BLOCK to the new function. Call
4916 replace_block_vars_by_duplicates.
4917 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
4918 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
4919 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
4920 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
4921 (expand_omp): Temporarily set input_location to the location of
4922 region's controlling stmt.
4923 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
4924 BIND_EXPR, push ctx->block_vars and gimplification vars into
4925 the BIND_EXPR and its block's BLOCK_VARS instead of directly
4926 into dest function.
4927 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
4928 there are any BLOCK_VARS.
4929 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
4930 OMP_PARALLEL or OMP_TASK stmt.
4931 (lower_omp): Save and restore input_location around the lower_omp_1
4932 call.
4933
b7091901
RG
49342008-06-27 Richard Guenther <rguenther@suse.de>
4935
4936 PR tree-optimization/36400
4937 PR tree-optimization/36373
4938 PR tree-optimization/36344
4939 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
4940 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
4941 (update_alias_info): Remove call clobbering code.
4942 (make_constraint_to): New helper function.
4943 (make_escape_constraint): Likewise.
4944 (handle_rhs_call): Use it on all pointer containing arguments.
4945 Also mark the static chain escaped.
4946 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
4947 instead of ANYTHING.
4948 (make_constraint_from): New helper split out from ...
4949 (make_constraint_from_anything): ... here.
4950 (find_func_aliases): Add constraints for escape sites.
4951 (intra_create_variable_infos): Make constraints from NONLOCAL
4952 for parameters.
4953 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
4954 as ANYTHING.
4955 (clobber_what_p_points_to): Remove.
4956 (clobber_what_escaped): New function.
4957 (init_base_vars): Init NONLOCAL and ESCAPED.
4958 (do_sd_constraint): Do not propagate the solution from ESCAPED
4959 but use ESCAPED as a placeholder.
4960 (solve_graph): Likewise.
4961 * tree-flow.h (clobber_what_p_points_to): Remove.
4962 (clobber_what_escaped): Declare.
4963 * tree-ssa-alias.c (set_initial_properties): Call it.
4964 Remove code clobbering escaped pointers.
4965
70cf5bc1
RS
49662008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
4967
4968 * function.c (allocate_struct_function): Only allocate a unique
4969 funcdef_no if the decl is nonzero.
4970
c5cb5d18
RS
49712008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
4972
4973 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
4974 * config/mips/mips.c (mips_split_const_insns): New function.
4975 * config/mips/mips.md (move_type): New attribute.
7ae14d31 4976 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
c5cb5d18
RS
4977 (dword_mode): New attribute.
4978 (type): Avoid long line. Map "move_type"s to "type"s,
4979 choosing "multi" for doubleword moves if appropriate.
4980 Swap MTC/MFC comments to match their declaration order.
4981 (extended_mips16): Default to "yes" if "move_type" is "sll0",
4982 "type" is "branch" or "jal" is "direct".
4983 (length): Handle "extended_mips16" first. Make the default
4984 "0" for "ghost" instructions. Set the length from "move_type".
4985 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
4986 of "type", with "sll0" for the register alternative. Remove the
4987 "extended_mips16" attribute.
4988 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
4989 of "type", with "shift_shift" for the register alternative.
4990 Remove the "length" attribute.
4991 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
4992 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
4993 of "type", with "andi" for the register alternative.
4994 (*zero_extendqihi2): Likewise.
4995 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
4996 of "andi" instead of a "type" of "arith".
4997 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
4998 instead of "type".
4999 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
5000 (mov_<store>r, *mov<mode>_ra): Likewise.
5001 (extendsidi2): Use "move_type" instead of "type", with "move"
5002 for the register alternative.
5003 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
5004 of "type", with "signext" for the register alternative.
5005 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
5006 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
5007 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
5008 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
5009 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
5010 (unnamed branch insn): Likewise.
5011 (*movdi_gp32_fp64): Fold into...
5012 (*movdi_32bit): ...here.
5013 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
5014 (*movdf_hardfloat): ...this new pattern.
5015 (*movdf_softfloat): Remove redundant FPR alternatives.
5016 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
5017 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
5018 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
5019 the "move" attribute.
5020 (*movdi_32bit): Use "move_type" instead of "type" and remove the
5021 "length" attribute. Use "fpload" and "fpstore" instead of "load"
5022 and "store" for COP loads and stores.
5023 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
5024 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
5025 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
5026 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
5027 (*movtf_mips16, *movv2sf): Likewise.
5028 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
5029 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
5030 (mfhc1<mode>): Use "move_type" instead of "move".
5031 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
5032 (loadgp_blockage): Remove the "length" attribute.
5033 (blockage, set_got_version, update_got_version): Likewise.
5034 (call_internal): Remove the "extended_mips16" attribute.
5035 (call_value_internal, call_value_multiple_internal): Likewise.
5036 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
5037 instead of "move".
5038 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
5039 the "length" attribute.
5040
5ead67f6
KG
50412008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5042
5043 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
5044 -Wcast-qual warnings.
5045 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
5046 handle_pragma_pop_macro): Likewise.
5047 * collect2.c (resolve_lib_name): Likewise.
5048 * config/arc/arc.c (arc_init): Likewise.
5049 * config/arm/arm.c (neon_builtin_compare,
5050 locate_neon_builtin_icode): Likewise.
7ae14d31 5051 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5ead67f6
KG
5052 * config/bfin/bfin.c (bfin_init_machine_status,
5053 bfin_optimize_loop): Likewise.
5054 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
5055 * config/cris/cris.c (cris_init_expanders): Likewise.
5056 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
5057 * config/darwin.c (machopic_indirection_eq,
7ae14d31 5058 machopic_indirection_name, machopic_output_indirection): Likewise.
5ead67f6
KG
5059 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
5060 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
5061 frv_optimize_membar): Likewise.
5062 * config/i386/cygwin.h (mingw_scan,
5063 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
5064 * config/i386/cygwin1.c (mingw_scan): Likewise.
5065 * config/i386/i386.c (machopic_output_stub): Likewise.
5066 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
5067 i386_pe_unique_section): Likewise.
5068 * config/ia64/ia64.c (ia64_init_machine_status,
5069 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
5070 Likewise.
5071 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
5072 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
5073 * config/m68k/m68k.c (m68k_handle_option,
5074 m68k_sched_md_init_global): Likewise.
7ae14d31
UB
5075 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
5076 mcore_unique_section): Likewise.
5ead67f6 5077 * config/mips/mips.c (mips_block_move_straight,
7ae14d31
UB
5078 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
5079 Likewise.
5ead67f6
KG
5080 * config/mmix/mmix.c (mmix_init_machine_status,
5081 mmix_encode_section_info): Likewise.
7ae14d31 5082 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5ead67f6
KG
5083 * config/rs6000/rs6000.c (rs6000_init_machine_status,
5084 print_operand_address, output_toc, redefine_groups,
5085 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
5086 * config/s390/s390.c (s390_init_machine_status): Likewise.
5087 * config/score/score.c (score_block_move_straight,
5088 score_block_move_loop_body): Likewise.
5089 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
5090 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
5091 * emit-rtl.c (find_auto_inc): Likewise.
5092 * gcc.c (translate_options, process_command): Likewise.
5093 * reorg.c (dbr_schedule): Likewise.
5094 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
5095 * xcoffout.c (xcoffout_declare_function): Likewise.
5096
d1caaa76
DB
50972008-06-27 Daniel Berlin <dberlin@dberlin.org>
5098
5099 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
5100 ipa-pta working again.
5101
edae5fe3
DE
51022008-06-27 David Edelsohn <edelsohn@gnu.org>
5103
5104 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
5105 genautomata.
5106
51072008-06-27 Edmar Wienskoski <edmar@freescale.com>
5108
5109 * config.gcc (powerpc*-*-*): Add new core e500mc.
5110 * config/rs6000/e500mc.md: New file.
5111 * config/rs6000/rs6000.c (processor_costs): Add new costs for
5112 e500mc.
5113 (rs6000_override_options): Add e500mc case to
5114 processor_target_table. Altivec and Spe options not allowed
5115 with e500mc. Add isel instruction to e500mc by
5116 default. Initialize rs6000_cost for e500mc.
5117 (rs6000_issue_rate): Set issue rate for e500mc.
5118 * config/rs6000/rs6000.h (processor_type): Add
5119 PROCESSOR_PPCE500MC.
5120 (ASM_CPU_SPEC): Add e500mc.
5121 Set TARGET_ISEL to rs6000_isel.
5122 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
5123 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
5124 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
5125 Include e500mc.md.
5126 * doc/invoke.texi: Add e500mc to list of cpus.
5127
098b9c46
LB
51282008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5129
5130 PR c/34867
5131 * c-lex.c (lex_charconst): Initialize unsignedp.
5132
b7d565dd 51332008-06-27 Olivier Hainque <hainque@adacore.com>
1a13360e
OH
5134
5135 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
5136 documented assumptions.
5137
4b570560
L
51382008-06-26 H.J. Lu <hongjiu.lu@intel.com>
5139
5140 * dwarf2out.c: Remove trailing white spaces. Break long line
5141 in comments.
5142
e2ff10a9
RS
51432008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
5144
5145 * libfuncs.h (LTI_synchronize): New libfunc_index.
5146 (synchronize_libfunc): Declare.
5147 * builtins.c (expand_builtin_synchronize): Consider using
5148 synchronize_libfunc before falling back on an asm blockage.
5149 * config/mips/mips.c: Include libfuncs.h
5150 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
5151
f78c3290
NF
51522008-06-26 Nathan Froyd <froydnj@codesourcery.com>
5153
5154 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
5155 parameter. Copy stack_reg to r11 where appropriate.
5156 (no_global_regs_above): Add gpr parameter.
5157 (rs6000_stack_info): Only add padding for SPE save area if we
5158 are saving SPE GPRs and CR.
5159 (saveres_routine_syms): New variable.
5160 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
5161 Define.
5162 (rs6000_savres_routine_sym): New function.
5163 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
5164 split out of...
5165 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
5166 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
5167 Tweak FPR out-of-line saving.
5168 (rs6000_make_savres_rtx): New function.
5169 (rs6000_use_multiple_p): New function.
5170 (rs6000_savres_strategy): New function.
5171 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
5172 out-of-line if appropriate.
5173 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
5174 if we are optimizing for size.
5175 (GP_SAVE_INLINE): Define.
5176 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
5177 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
5178 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
5179 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
5180 (*save_fpregs_<mode>): Add use of r11.
5181 (*restore_gpregs_<mode>): New insn.
5182 (*return_and_restore_gpregs_<mode>): New insn.
5183 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
5184 use r11.
5185 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
5186 (*restore_gpregs_spe): New insn.
5187 (*return_and_restore_gpregs_spe): New insn.
5188 * config/rs6000/predicates.md (save_world_operation): Fix check.
5189
e24c4814
SB
51902008-06-26 Steven Bosscher <steven@gcc.gnu.org>
5191
5192 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
5193 this point, so assert that.
5194
25e87727
SB
51952008-06-26 Steven Bosscher <steven@gcc.gnu.org>
5196
5197 * cfganal.c: Include vec.h and vecprim.h.
5198 (compute_idf): Import from...
5199 * tree-into-ssa (compute_idf): ...here.
5200 * basic-block.h (compute_idf): Export.
5201
74b0ec7c
JM
52022008-06-26 Joseph Myers <joseph@codesourcery.com>
5203
5204 * c-decl.c (merge_decls): Use !current_function_decl to check for
5205 extern declaration of C99 inline function being at file scope.
5206
f3d14ed5
JDA
52072008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
5208
5209 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
5210
f883e0a7
KG
52112008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5212
5213 * alias.c (record_alias_subset, init_alias_analysis): Fix
5214 -Wc++-compat and/or -Wcast-qual warnings.
5215 * attribs.c (lookup_attribute_spec): Likewise.
5216 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
5217 copy_bb, connect_traces,
5218 find_rarely_executed_basic_blocks_and_cr): Likewise.
5219 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
5220 note_btr_set, migrate_btr_defs): Likewise.
5221 * builtins.c (result_vector, expand_builtin_memcpy,
5222 expand_builtin_mempcpy_args, expand_builtin_strncpy,
5223 builtin_memset_read_str, expand_builtin_printf,
5224 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
5225 Likewise.
5226 * caller-save.c (mark_set_regs): Likewise.
5227 * calls.c (expand_call, emit_library_call_value_1): Likewise.
5228 * cgraph.c (cgraph_edge): Likewise.
5229 * combine.c (likely_spilled_retval_1): Likewise.
5230 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
5231 htab_counts_entry_del, get_coverage_counts): Likewise.
5232 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
5233 new_cselib_val): Likewise.
5234 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
5235 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
5236 Likewise.
5237 * df-core.c (df_compact_blocks): Likewise.
5238 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
5239 * df-scan.c (df_grow_reg_info, df_ref_create,
5240 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
5241 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
5242 df_record_entry_block_defs, df_record_exit_block_uses,
5243 df_bb_verify): Likewise.
5244 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
5245 DF_REF_EXTRACT_MODE_CONST): New.
5246 * dominance.c (get_immediate_dominator, get_dominated_by,
5247 nearest_common_dominator, root_of_dom_tree,
5248 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
5249 -Wc++-compat and/or -Wcast-qual warnings.
5250 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
5251 record_store, replace_read, check_mem_read_rtx, scan_insn,
5252 dse_step1, dse_record_singleton_alias_set): Likewise.
5253 * dwarf2asm.c (dw2_force_const_mem): Likewise.
5254
1b4572a8
KG
52552008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5256
5257 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
5258 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
5259 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
5260 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
5261 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
5262 add_ranges_num, add_ranges_by_labels, file_info_cmp,
5263 file_name_acquire, output_file_names, add_const_value_attribute,
5264 premark_used_types_helper, file_table_eq, file_table_hash,
5265 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
5266 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
5267 -Wcast-qual warnings.
5268 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
5269 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
5270 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
5271 gen_reg_rtx, start_sequence, init_emit): Likewise.
5272 * et-forest.c (et_new_occ, et_new_tree): Likewise.
5273 * except.c (init_eh_for_function, gen_eh_region,
5274 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
5275 arh_to_landing_pad, arh_to_label, add_action_record,
5276 add_call_site, switch_to_exception_section): Likewise.
5277 * expmed.c (synth_mult): Likewise.
5278 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
5279 store_expr): Likewise.
5280 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
5281 Likewise.
5282 * function.c (assign_stack_temp_for_type,
5283 allocate_struct_function, match_asm_constraints_1): Likewise.
5284 * gcov-io.c (gcov_allocate): Likewise.
5285 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
5286 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
5287 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
5288 record_one_set, insert_expr_in_table, insert_set_in_table,
5289 dump_hash_table, compute_hash_table_work, alloc_hash_table,
5290 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
5291 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
5292 -Wcast-qual warnings.
5293
7cbb2a85
KG
52942008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5295
5296 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
5297 -Wcast-qual warnings.
5298 * gcc.c (process_command): Likewise.
5299 * genattrtab.c (oballoc): Use XOBNEW.
5300 (oballocvec): Define.
5301 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
5302 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
5303 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
5304 -Wc++-compat and/or -Wcast-qual warnings.
5305 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
5306 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
5307 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
5308 gen_presence_absence_set, gen_automaton, gen_regexp_el,
5309 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
5310 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
5311 add_excls, process_presence_absence_names,
5312 process_presence_absence_patterns, add_presence_absence,
5313 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
5314 get_free_state, add_arc, get_free_automata_list_el,
5315 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
5316 transform_3, cache_presence, create_ainsns, create_automata,
5317 create_state_ainsn_table, dfa_insn_code_enlarge,
5318 output_trans_func, output_min_issue_delay_func,
5319 output_dead_lock_func, output_reset_func,
5320 output_get_cpu_unit_code_func, output_dfa_start_func,
5321 expand_automata): Likewise.
5322 * genextract.c (gen_insn): Likewise.
5323 * gengtype-lex.l: Likewise.
5324 * gengtype.c (read_input_list, adjust_field_type,
5325 process_gc_options): Likewise.
5326 * genoutput.c (note_constraint): Likewise.
5327 * genpreds.c (mangle, add_constraint): Likewise.
5328 * genrecog.c (process_define_predicate, new_decision,
5329 add_to_sequence): Likewise.
5330 * gensupport.c (record_insn_name): Likewise.
5331
d3bfe4de
KG
53322008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5333
5334 * config/i386/driver-i386.c (detect_caches_amd,
5335 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
5336 and/or -Wcast-qual warnings.
5337 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
5338 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
5339 gt_pch_save): Likewise.
5340 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
5341 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
5342 * global.c (compute_regsets): Likewise.
5343 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
5344 finish_graph_dump_file): Likewise.
5345 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
5346 unlink_bb_notes): Likewise.
5347 * integrate.c (get_hard_reg_initial_val): Likewise.
5348 * ipa-prop.c (ipa_push_func_to_list): Likewise.
5349 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
5350 * local-alloc.c (update_equiv_regs): Likewise.
5351 * loop-invariant.c (check_invariant_table_size,
5352 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
5353 Likewise.
5354 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
5355 altered_reg_used, mark_altered): Likewise.
5356 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
5357 insert_var_expansion_initialization,
5358 combine_var_copies_in_loop_exit, apply_opt_in_copies,
5359 release_var_copies): Likewise.
5360 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
5361 analyze_matrix_decl, add_allocation_site, analyze_transpose,
5362 analyze_accesses_for_phi_node, check_var_notmodified_p,
5363 check_allocation_function, find_sites_in_func,
5364 record_all_accesses_in_func, transform_access_sites,
5365 transform_allocation_sites): Likewise.
5366 * omp-low.c (new_omp_region, create_omp_child_function_name,
5367 check_omp_nesting_restrictions, check_combined_parallel,
5368 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
5369 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
5370 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
5371 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
5372 Likewise.
5373 * opts-common.c (prune_options): Likewise.
5374 * opts.c (add_input_filename, print_filtered_help,
5375 get_option_state): Likewise.
5376 * params.c (add_params): Likewise.
5377 * passes.c (set_pass_for_id, next_pass_1,
5378 do_per_function_toporder, pass_fini_dump_file): Likewise.
5379 * postreload.c (reload_cse_simplify_operands): Likewise.
5380 * predict.c (tree_predicted_by_p, tree_predict_edge,
5381 clear_bb_predictions, combine_predictions_for_bb): Likewise.
5382
1634b18f
KG
53832008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5384
5385 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
5386 warnings.
5387 * recog.c (check_asm_operands, validate_change_1): Likewise.
5388 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
5389 subst_asm_stack_regs): Likewise.
5390 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
5391 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
5392 * regmove.c (reg_is_remote_constant_p): Likewise.
5393 * regrename.c (regrename_optimize, scan_rtx_reg,
5394 kill_clobbered_value, kill_set_value, kill_autoinc_value):
5395 Likewise.
5396 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
5397 regstat_compute_calls_crossed): Likewise.
5398 * reload1.c (init_reload, new_insn_chain,
5399 has_nonexceptional_receiver, reload, copy_reloads,
5400 calculate_needs_all_insns, init_elim_table): Likewise.
5401 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
5402 * rtl.c (shallow_copy_rtx_stat): Likewise.
5403 * rtlanal.c (parms_set): Likewise.
5404 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
5405 sbitmap_resize, sbitmap_vector_alloc): Likewise.
5406 * sched-ebb.c (earliest_block_with_similiar_load,
5407 add_deps_for_risky_insns): Likewise.
5408 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
5409 schedule_region): Likewise.
5410 * see.c (eq_descriptor_pre_extension,
5411 hash_descriptor_pre_extension, hash_del_pre_extension,
5412 eq_descriptor_properties, hash_descriptor_properties,
5413 hash_del_properties, see_seek_pre_extension_expr,
5414 see_initialize_data_structures, see_print_register_properties,
5415 see_print_pre_extension_expr, see_delete_merged_def_extension,
5416 see_delete_unmerged_def_extension, see_emit_use_extension,
5417 see_pre_delete_extension, see_map_extension, see_commit_changes,
5418 see_analyze_merged_def_local_prop,
5419 see_analyze_merged_def_local_prop,
5420 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
5421 see_set_prop_merged_def, see_set_prop_unmerged_def,
5422 see_set_prop_unmerged_use, see_print_one_extension,
5423 see_merge_one_use_extension, see_merge_one_def_extension,
5424 see_store_reference_and_extension, see_update_uses_relevancy,
5425 see_update_defs_relevancy): Likewise.
5426 * statistics.c (hash_statistics_hash, hash_statistics_eq,
5427 hash_statistics_free, curr_statistics_hash): Likewise.
5428 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
5429 expand_asm_operands, expand_return, case_bit_test_cmp,
5430 expand_case): Likewise.
5431 * stor-layout.c (start_record_layout): Likewise.
5432 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
5433 gt_pch_save_stringpool): Likewise.
5434 * tree-data-ref.c (hash_stmt_vertex_info,
5435 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
5436 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
5437
f3e10a2b 54382008-06-25 Uros Bizjak <ubizjak@gmail.com>
0edb82cb
UB
5439
5440 PR target/36627
5441 * config/i386/i386.md : Change constraints of HImode and QImode
5442 immediate operands from "i" to "n". Change SImode "ni" constraint to
5443 "i" and SImode "rmi" constraint to "g". Remove all constraints
5444 from const0_operand and const1_operand predicated operands.
5445 (i): Change QImode and HImode attribute from "i" to "n".
5446 (*subqi_2): Change HImode operands to QImode.
5447 (*subqi_3): Ditto.
5448
5cff8550
OH
54492008-06-25 Olivier Hainque <hainque@adacore.com>
5450
5451 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
5452 sed substitutions.
5453
185ab3b6
RG
54542008-06-25 Richard Guenther <rguenther@suse.de>
5455
5456 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
5457 not overflow the result type.
5458
8ef834ca
RG
54592008-06-25 Richard Guenther <rguenther@suse.de>
5460
5461 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
5462 (vn_lookup): Likewise.
5463
ee1f1270
RG
54642008-06-25 Richard Guenther <rguenther@suse.de>
5465
5466 PR tree-optimization/35518
5467 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
5468 * tree-sra.c (instantiate_element): Use fold_build3 to build
5469 BIT_FIELD_REFs.
5470 (try_instantiate_multiple_fields): Likewise.
5471
423addc5
AP
54722008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
5473
5474 * config/rs6000/rs6000.md: Change all string instruction's clobber to
5475 be early clobbers.
5476
d2492102
AP
54772008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
5478
5479 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
5480 use_backchain_to_restore_sp to true
5481 if the offset of the link register save area would go over the 32k - 1
5482 offset limit of the load
5483 instructions.
5484
917db97b
HPN
54852008-06-25 Hans-Peter Nilsson <hp@axis.com>
5486
5487 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
5488 anchor for the type-punning blurb. Cross-reference "Structures
5489 unions enumerations and bit-fields implementation". Provide a
5490 cast-through-pointer example. Make final sentence self-contained.
5491 * doc/implement-c.texi (Structures unions enumerations and
5492 bit-fields implementation): Cross-reference the type-punning blurb
5493 in the -fstrict-aliasing documentation.
5494
cba2d79f
AP
54952008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
5496
5497 PR middle-end/36594
5498 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
5499 the memory instead of the memory itself for the save area.
5500
8de8de02 55012008-06-24 Olivier Hainque <hainque@adacore.com>
0edb82cb 5502 Nicolas Roche <roche@adacore.com>
8de8de02
OH
5503
5504 * gengtype.c (srcdir_len): size_t instead of int.
5505 (get_file_realbasename): New function. For F a filename, the real
5506 basename of F, with all the path components stripped.
5507 (get_file_srcdir_relative_path): New function. For F a filename, the
5508 relative path to F from $(srcdir).
5509 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
5510 get_file_realbasename. Adjust the head comment.
5511 (get_prefix_langdir_index): New function. For F a filename, return the
5512 lang_dir_names[] relative index of the language directory that is
5513 a prefix in F.
5514 (get_file_langdir): For F a filename, return the name of the language
5515 directory where F is located.
5516 (get_file_gtfilename): New function. The gt- output file name for an
5517 input filename F.
5518 (get_output_file_with_visibility): Replace in-line computations with
5519 uses of get_file_gtfilename and get_prefix_langdir_index.
5520 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
5521
a80a2701
JJ
55222008-06-24 Jakub Jelinek <jakub@redhat.com>
5523
5524 PR tree-optimization/36504
5525 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
5526 references without base address.
5527
b5f772ce
UB
55282008-06-23 Uros Bizjak <ubizjak@gmail.com>
5529
0edb82cb 5530 PR middle-end/36584
b5f772ce
UB
5531 * calls.c (expand_call): Increase alignment for recursive functions.
5532
f9f6caf5
AS
55332008-06-23 Anatoly Sokolov <aesok@post.ru>
5534
5535 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
5536 (TARGET_FUNCTION_VALUE): New define.
5537 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
5538 * config/avr/avr.h (FUNCTION_VALUE): Remove.
5539
f2a55e41
UB
55402008-06-23 Uros Bizjak <ubizjak@gmail.com>
5541
5542 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
5543 (fmod<mode>3): Ditto.
5544 (remainderxf3): Ditto.
5545 (remainder<mode>3): Ditto.
5546
53983ae9
JJ
55472008-06-23 Jakub Jelinek <jakub@redhat.com>
5548
923ba36f
JJ
5549 PR target/36533
5550 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
5551 REG is a hard register.
5552
53983ae9
JJ
5553 PR tree-optimization/36508
5554 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
5555 499, don't check it at all in release compilers.
5556
cc774ffb
UB
55572008-06-23 Uros Bizjak <ubizjak@gmail.com>
5558
5559 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
5560 together with SSE_TARGET_MATH to disable insn pattern.
5561 (*fop_<MODEF:mode>_2_i387): Ditto.
5562 (*fop_<MODEF:mode>_3_i387): Ditto.
5563
34babc73
AH
55642008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
5565
5566 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
22129589 5567
2c68ba8e
LB
55682008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5569
5570 PR middle-end/34906
5571 * gimplify.c (gimplify_asm_expr): Check the return code of
5572 parse_output_constraint call, set function return and is_inout
5573 value if it failed.
5574
d75d71e0
ILT
55752008-06-22 Ian Lance Taylor <iant@google.com>
5576
5577 * c-lex.c (narrowest_unsigned_type): Change itk to int.
5578 (narrowest_signed_type): Likewise.
5579 * c-typeck.c (c_common_type): Change local variable mclass to enum
5580 mode_class, twice.
5581 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
5582 tcc_comparison, not the tree code itself.
5583 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
5584 (c_expand_expr): Cast modifier to enum expand_modifier.
5585 * c-common.h (C_RID_CODE): Add casts.
5586 (C_SET_RID_CODE): Define.
5587 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
5588 (c_lex_one_token): Add cast to avoid warning.
5589 (c_parser_objc_type_name): Rename local typename to type_name.
5590 (check_no_duplicate_clause): Change code parameter to enum
5591 omp_clause_code.
5592 (c_parser_omp_var_list_parens): Change kind parameter to enum
5593 omp_clause_code.
5594 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
5595 c_parser_omp_list_var_parens.
5596 (c_parser_omp_threadprivate): Likewise.
5597 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
5598 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
5599 * c-format.c (NO_FMT): Define.
5600 (printf_length_specs): Use NO_FMT.
5601 (asm_fprintf_length_specs): Likewise.
5602 (gcc_diag_length_specs): Likewise.
5603 (scanf_length_specs): Likewise.
5604 (strfmon_length_specs): Likewise.
5605 (gcc_gfc_length_specs): Likewise.
5606 (printf_flag_specs): Change 0 to STD_C89.
5607 (asm_fprintf_flag_specs): Likewise.
5608 (gcc_diag_flag_specs): Likewise.
5609 (gcc_cxxdiag_flag_specs): Likewise.
5610 (scanf_flag_specs): Likewise.
5611 (strftime_flag_specs): Likewise.
5612 (strfmon_flag_specs): Likewise.
5613 (print_char_table): Likewise.
5614 (asm_fprintf_char_table): Likewise.
5615 (gcc_diag_char_table): Likewise.
5616 (gcc_tdiag_char_table): Likewise.
5617 (gcc_cdiag_char_table): Likewise.
5618 (gcc_cxxdiag_char_table): Likewise.
5619 (gcc_gfc_char_table): Likewise.
5620 (scan_char_table): Likewise.
5621 (time_char_table): Likewis.
5622 (monetary_char_table): Likewise.
5623 * c-format.h (BADLEN): Likewise.
5624
c0ed0531
ILT
56252008-06-21 Ian Lance Taylor <iant@google.com>
5626
5627 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
5628 Define END_OF_BASE_TREE_CODES around inclusion.
5629 * tree.c (tree_code_type): New global array.
5630 (tree_code_length, tree_code_name): Likewise.
5631 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
5632 $(lang_tree_files).
5633 (all-tree.def, s-alltree): New targets.
5634 (gencheck.h, s-gencheck): Remove.
5635 (tree.o): Depend upon all-tree.def.
5636 (build/gencheck.o): Remove gencheck.h dependency.
5637 (mostlyclean): Don't remove gencheck.h.
5638 * c-common.h (enum c_tree_code): Remove.
5639 * c-lang.c (tree_code_type): Remove.
5640 (tree_code_length, tree_code_name): Remove.
5641 * gencheck.c (tree_codes): Include all-tree.def, rather than
5642 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
5643 after it is used.
5644 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
5645 than tree.def.
5646 * cp/cp-tree.h (enum cplus_tree_code): Remove.
5647 (operator_name_info): Size to MAX_TREE_CODES.
5648 (assignment_operator_name_info): Likewise.
5649 * cp/cp-lang.c (tree_code_type): Remove.
5650 (tree_code_length, tree_code_name): Remove.
5651 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
5652 (assignment_operator_name_info): Likewise.
5653 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
5654 MAX_TREE_CODES.
5655 * cp/mangle.c (write_expression): Likewise.
5656 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
5657 * fortran/f95-lang.c (tree_code_type): Remove.
5658 (tree_code_length, tree_code_name): Remove.
5659 * java/java-tree.h (enum java_tree_code): Remove.
5660 * java/lang.c (tree_code_type): Remove.
5661 (tree_code_length, tree_code_name): Remove.
5662 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
5663 * objc/objc-act.h (enum objc_tree_code): Remove.
5664 * objc/objc-lang.c (tree_code_type): Remove.
5665 (tree_code_length, tree_code_name): Remove.
5666 * objcp/objcp-lang.c (tree_code_type): Remove.
5667 (tree_code_length, tree_code_name): Remove.
5668 * ada/ada-tree.h (enum gnat_tree_code): Remove.
5669 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
5670 * ada/misc.c (tree_code_type): Remove.
5671 (tree_code_length, tree_code_name): Remove.
5672
830b4fec
BF
56732008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
5674
5675 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
5676 the grand_bitmap_obstack.
5677
3d9a9f94
KG
56782008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5679
5680 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
5681 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
b5f772ce 5682 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3d9a9f94
KG
5683 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
5684 move_stmt_r, new_label_mapper): Likewise.
5685 * tree-complex.c (cvc_lookup): Likewise.
5686 * tree-dfa.c (create_function_ann): Likewise.
5687 * tree-dump.c (dump_register): Likewise.
5688 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
5689 find_phi_replacement_condition): Likewise.
5690 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
5691 tree_function_versioning): Likewise.
5692 * tree-into-ssa.c (cmp_dfsnum): Likewise.
5693 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
5694 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
5695 get_nonlocal_debug_decl, convert_nonlocal_reference,
5696 convert_nonlocal_omp_clauses, get_local_debug_decl,
5697 convert_local_reference, convert_local_omp_clauses,
5698 convert_nl_goto_reference, convert_nl_goto_receiver,
5699 convert_tramp_reference, convert_call_expr): Likewise.
5700 * tree-outof-ssa.c (contains_tree_r): Likewise.
5701 * tree-parloops.c (reduction_phi, initialize_reductions,
5702 eliminate_local_variables_1, add_field_for_reduction,
5703 add_field_for_name, create_phi_for_local_result,
5704 create_call_for_reduction_1, create_loads_for_reductions,
5705 create_stores_for_reduction, create_loads_and_stores_for_name):
5706 Likewise.
5707 * tree-phinodes.c (allocate_phi_node): Likewise.
cc774ffb
UB
5708 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
5709 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3d9a9f94
KG
5710 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
5711 * tree-ssa-coalesce.c (compare_pairs): Likewise.
5712 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
5713 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
5714 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
22129589 5715 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
3d9a9f94
KG
5716 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
5717 vn_nary_op_insert): Likewise.
5718 * tree-ssa.c (redirect_edge_var_map_add,
5719 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
5720 * tree-vectorizer.c (vectorize_loops): Likewise.
5721 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
5722 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
5723 tree_cons_stat, build1_stat, build_variant_type_copy,
5724 decl_init_priority_lookup, decl_fini_priority_lookup,
5725 decl_priority_info, decl_restrict_base_lookup,
5726 decl_restrict_base_insert, decl_debug_expr_lookup,
5727 decl_debug_expr_insert, decl_value_expr_lookup,
5728 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
5729 type_hash_add, get_file_function_name, tree_check_failed,
5730 tree_not_check_failed, tree_range_check_failed,
5731 omp_clause_range_check_failed, build_omp_clause,
5732 build_vl_exp_stat): Likewise.
5733 * value-prof.c (gimple_histogram_value,
5734 gimple_duplicate_stmt_histograms): Likewise.
5735 * var-tracking.c (attrs_list_insert, attrs_list_copy,
5736 unshare_variable, variable_union_info_cmp_pos, variable_union,
5737 dataflow_set_different_1, dataflow_set_different_2,
5738 vt_find_locations, variable_was_changed, set_variable_part,
cc774ffb 5739 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3d9a9f94
KG
5740 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
5741 section_entry_hash, object_block_entry_eq,
5742 object_block_entry_hash, create_block_symbol,
5743 initialize_cold_section_name, default_function_rodata_section,
5744 strip_reg_name, set_user_assembler_name, const_desc_eq,
5745 build_constant_desc, output_constant_def, lookup_constant_def,
5746 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
5747 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
5748 default_internal_label): Likewise.
5749 * varray.c (varray_init, varray_grow): Likewise.
5750 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
5751
a055f99f
UB
57522008-06-20 Uros Bizjak <ubizjak@gmail.com>
5753
5754 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
5755 operators for "test" insn. Macroize insn using SWI mode macro.
5756 (*jcc_fused_2): Ditto.
5757 (*jcc_fused_3): Macroize insn using SWI mode macro.
5758 (*jcc_fused_4): Ditto.
5759
a7849637
BF
57602008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
5761
a055f99f
UB
5762 * tree-ssa-pre.c: Fix typo in comment.
5763 (init_antic, fini_antic): Add explicit funtions for
5764 initializing and deinitializing ANTIC and AVAIL sets.
5765 (create_expression_by_pieces): Fix typo in comment.
5766 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
5767 (execute_pre): Eventually dump details about ANTIC_IN.
a7849637 5768
e1e4cdc4
KG
57692008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5770
5771 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
5772 * gcc.c (translate_options, init_spec, store_arg, read_specs,
5773 add_to_obstack, file_at_path, find_a_file, execute,
5774 add_preprocessor_option, add_assembler_option, add_linker_option,
5775 process_command, insert_wrapper, do_option_spec, do_self_spec,
5776 spec_path, do_spec_1, is_directory, main, used_arg,
5777 getenv_spec_function): Likewise.
5778 * tlink.c (symbol_hash_lookup, file_hash_lookup,
5779 demangled_hash_lookup, symbol_push, file_push, frob_extension):
5780 Likewise.
5781
1ba4e523
KZ
57822008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
5783
5784 * doc/rtl.texi: Updated subreg section.
a7849637 5785
2368a460
JJ
57862008-06-19 Jakub Jelinek <jakub@redhat.com>
5787
5788 PR c++/36523
5789 * cgraphunit.c (cgraph_process_new_functions): Don't clear
5790 node->needed and node->reachable.
5791 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
5792 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
5793 (expand_task_call): Don't call expand_task_copyfn.
5794 (expand_task_copyfn): Renamed to...
5795 (finalize_task_copyfn): ... this.
5796
dea33aa7
JH
57972008-06-19 Jan Hubicka <jh@suse.cz>
5798
5799 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
5800 clobbering framepointer.
5801
bad5e2b5
JH
58022008-06-19 Jan Hubicka <jh@suse.cz>
5803
5804 * tree-optimize.c (execute_early_local_optimizations): Set
5805 cgraph_state only at first invocation.
5806
00066bc0
KG
58072008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5808
5809 * system.h (-Wc++-compat): Activate as a warning, no an error.
5810
f1469150
UB
58112008-06-19 Uros Bizjak <ubizjak@gmail.com>
5812
5813 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
5814 instead of "#" in insn asm template.
5815 (*jcc_fused_2): Ditto.
5816
354f84af
UB
58172008-06-19 Uros Bizjak <ubizjak@gmail.com>
5818
5819 * config/i386/i386.h (ix86_tune_indices)
5820 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
5821 (TARGET_FUSE_CMP_AND_BRANCH): New define.
5822 * config/i386/i386.md (*jcc_fused_1): New insn pattern
5823 (*jcc_fused_2): Ditto.
5824 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
f1469150 5825 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
354f84af
UB
5826 (print operand): Handle 'E' and 'e' code.
5827
720705d2
AS
58282008-06-19 Anatoly Sokolov <aesok@post.ru>
5829
5830 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
5831 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5832 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5833
f30cfcb1
BRF
58342008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
5835
5836 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
5837 node->decl.
5838 (cgraph_expand_function): Use local copy of decl.
5839 (cgraph_expand_all_functions): Remove redundant initialization of
5840 order_pos.
5841 (cgraph_optimize): Reword internal_error message.
5842
58432008-06-19 Chung-Lin Tang <ctang@marvell.com>
23668cf7
CLT
5844
5845 * arm-protos.h (arm_return_in_memory): Remove public
5846 arm_return_in_memory() prototype.
5847 * arm.c (arm_return_in_memory): Add static prototype, add target
5848 hook macro, change definition and comments.
5849 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
5850
7292b8e4
BE
58512008-06-19 Ben Elliston <bje@au.ibm.com>
5852
5853 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
5854 real.c: Remove references to IEEE 754R.
5855 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
5856 * doc/libgcc.texi (Decimal float library routines): Likewise.
5857
7b0518e3
UW
58582008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5859
5860 * targhooks.h (struct gcc_target): New member unwind_word_mode.
5861 (default_unwind_word_mode): Add prototype.
5862 * targhooks.c (default_unwind_word_mode): New function.
5863 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
5864 instead of word_mode.
5865 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
5866 (TARGET_INITIALIZER): Use it.
5867
5868 * c-common.c (handle_mode_attribute): Support "unwind_word"
5869 mode attribute.
5870 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
5871
5872 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
5873 word_mode to access SjLj_Function_Context member "data".
5874 (sjlj_emit_dispatch_table): Likewise. Also, perform type
5875 conversion from targetm.eh_return_filter_mode () to
5876 targetm.unwind_word_mode () if they differ.
5877
5878 * builtin-types.def (BT_UNWINDWORD): New primitive type.
5879 (BT_FN_UNWINDWORD_PTR): New function type.
5880 (BT_FN_WORD_PTR): Remove.
5881 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
5882 * except.c (expand_builtin_extend_pointer): Convert pointer to
5883 targetm.unwind_word_mode () instead of word_mode.
5884
5885 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
5886 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
5887 (spu_unwind_word_mode): New function.
5888 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
5889 (TARGET_UNWIND_WORD_MODE): Define.
5890 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
5891
aa5d9939
UW
58922008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5893
5894 * config/spu/spu.c (reg_align): Remove.
5895 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
5896 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
5897 (spu_split_store): Likewise.
5898
f30cfcb1 58992008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
a7816b82
BF
5900
5901 * gcc/tree-vn.c: Fix typo in comment.
5902
45f09afb
JH
59032008-06-18 Jan Hubicka <jh@suse.cz>
5904
5905 * cgraphunit.c (cgraph_optimize): Output debug info when doing
5906 toplevel reorder too.
5907
a7bf199e
JH
59082008-06-18 Jan Hubicka <jh@suse.cz>
5909
5910 * c-opts.c (c_common_post_options): PCH is not compatible with
5911 no-unit-at-a-time.
5912 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
5913 -fno-toplevel-reorder by default now.
5914
3f737aa9
RW
59152008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5916
5917 PR documentation/30739
5918 * doc/install.texi (Prerequisites): Document dependency on awk.
5919
ba03a350
UB
59202008-06-18 Uros Bizjak <ubizjak@gmail.com>
5921 Ian Lance Taylor <iant@google.com>
5922
5923 PR rtl-optimization/35604
5924 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
5925 only want to change jump destinations, not eventual label comparisons.
5926
fdd7f241
JH
59272008-06-16 Jan Hubicka <jh@suse.cz>
5928
5929 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
5930 syntax errors.
5931 (cgraph_analyze_function): Likewise.
5932
f0c882ab
JH
59332008-06-16 Jan Hubicka <jh@suse.cz>
5934
5935 * cgraph.h (cgraph_mark_if_needed): New function.
5936 * cgraphunit.c (cgraph_mark_if_needed): New function.
5937 * c-decl.c (duplicate_decl): Use it.
5938
ff2c88a5
JH
59392008-06-16 Jan Hubicka <jh@suse.cz>
5940
5941 * cgraph.c (cgraph_add_new_function): When in expansion state, do
5942 lowering.
5943
b7352f3f
JH
59442008-06-16 Jan Hubicka <jh@suse.cz>
5945
5946 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
5947
900e3ae5
DJ
59482008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
5949 Kazu Hirata <kazu@codesourcery.com>
5950 Maxim Kuvyrkov <maxim@codesourcery.com
5951
5952 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
5953 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
5954 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
5955 EXTRA_SPEC_FUNCTIONS.
5956 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
5957 (DRIVER_SELF_SPECS): Adjust.
5958 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
5959 * config/mips/st.h, config/mips/t-st: New.
5960 * config/mips/driver-native.c, config/mips/x-native: New.
5961 * doc/invoke.texi (MIPS): Document 'native' value for -march and
5962 -mtune options.
5963
b51469a5
MK
59642008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
5965
5966 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
5967 from it.
5968 (ISA_HAS_FP_CONDMOVE): New macro.
5969 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
5970 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
5971 (ISA_HAS_NMADD3_NMSUB3): New macro.
5972 * config/mips/mips.c (mips_rtx_costs): Update.
5973 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
5974 compiling for ST Loongson 2E/2F.
5975 (madd<mode>): Rename to madd4<mode>. Update.
5976 (madd3<mode>): New pattern.
5977 (msub<mode>): Rename to msub4<mode>. Update.
5978 (msub3<mode>): New pattern.
5979 (nmadd<mode>): Rename to nmadd4<mode>. Update.
5980 (nmadd3<mode>): New pattern.
5981 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
5982 (nmadd3<mode>_fastmath): New pattern.
5983 (nmsub<mode>): Rename to nmsub4<mode>. Update.
5984 (nmsub3<mode>): New pattern.
5985 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
5986 (nmsub3<mode>_fastmath): New pattern.
5987 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
5988
50e94c7e
SB
59892008-06-18 Steven Bosscher <steven@gcc.gnu.org>
5990
5991 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
5992 (DF_REF_INSN_INFO): New.
5993 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
5994 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
5995 with a NULL DF_REF_INSN_INFO.
5996 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
5997 DF_INSN_SET.
5998 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
5999 DF_INSN_INFO_EQ_USES): New.
6000 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
6001 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
6002 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
6003 * df-core.c: Update comment for above changes.
6004 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
6005 DF_INSN_UID_* macros.
6006 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
6007 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
6008 insn rtx. Update all callers.
6009 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
6010 df_ref_create_structure, df_insn_refs_collect): Likewise.
6011 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
6012 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
6013 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
6014 macros to access the insn refs.
6015 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
6016 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
6017 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
6018 for accessing the refs.
6019 (try_fwprop_subst): Likewise.
6020 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
6021 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
6022 for accessing the refs.
6023 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
6024 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
6025 to look at the insn refs.
6026 (record_uses): Likewise.
6027 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
6028 function anymore.
6029 (mark_artificial_uses): Don't mark_insn for artificial refs.
6030 (mark_reg_rependencies): Likewise.
6031
6032 * doc/rtl.texi: Remove documentation of ADDRESSOF.
6033
18c04407
RW
60342008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6035
6036 * configure: Regenerate.
6037
7995ad77
EW
60382008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
6039
6040 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
22129589
AS
6041 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6042 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7995ad77 6043
e416eb8f
EW
60442008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
6045
6046 * config/avr/avr.c (avr_mcu_t): Add attiny167.
22129589
AS
6047 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6048 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
e416eb8f 6049
59928a83
EW
60502008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
6051
6052 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
22129589
AS
6053 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6054 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
59928a83 6055
b40bf772
BF
60562008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
6057
6058 * tree-ssa-sccvn.c: Fix format of comments.
6059
60602008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
a33a598c
BF
6061
6062 * cgraph.c: Remove unneeded forward declarations of eq_node()
6063 and hash_node().
6064
4a8cae83
SB
60652008-06-17 Steven Bosscher <steven@gcc.gnu.org>
6066
6067 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
6068 REG_RETVAL notes.
6069 (see_update_relevancy): Likewise.
6070 * fwprop.c (try_fwprop_subst): Likewise.
6071 * rtlanal.c (noop_move_p): Likewise.
6072 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
6073 notes to non-existing libcall blocks.
6074 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
6075 Remove orig_set.
6076 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
6077 (dead_libcall_p): Remove.
6078 (delete_trivially_dead_insns): Don't use it.
6079 * web.c (union_defs): Remove comment about keeping nops.
6080 * gcse.c (hash_scan_insn): Don't take libcall pointers.
6081 (compute_hash_table_work): Don't track libcall notes.
6082 (do_local_cprop): Don't take libcall pointers. Don't update
6083 libcall notes.
6084 (adjust_libcall_notes): Deleted.
6085 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
6086 ever have existed in the first place).
6087 (replace_store_insn): Don't try to remove libcall notes.
6088 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
6089 (resolve_reg_notes): Don't call them.
6090 (resolve_simple_move): Likewise.
6091 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
6092 Don't remove REG_RETVAL notes.
6093 * emit-rtl.c (try_split): Don't update libcall notes.
6094 (emit_copy_of_insn_after): Dito.
6095 * cselib.c (cselib_current_insn_in_libcall): Remove.
6096 (cselib_process_insn): Don't set/clear it.
6097 (new_elt_loc_list): Don't record it.
6098 (cselib_init): Don't initialize it.
6099 * cselib.c (struct elt_loc_list): Remove in_libcall field.
6100 * loop-invariant.c (find_invariant_insn): Don't look for libcall
6101 notes.
6102 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
6103 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
6104 (init_deps): Don't initialize it.
6105 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
6106 * combine.c (delete_noop_moves): Don't update libcall notes.
6107 (can_combine_p): Remove now pointless #if 0 block.
6108 (try_combine): Remove another obsolete #if 0 block.
6109 (distribute_notes): Don't distribute libcall notes.
6110 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
6111 * dce.c (libcall_dead_p): Remove.
6112 (delete_unmarked_insns): Don't handle libcall blocks.
6113 (preserve_libcall_for_dce): Remove.
6114 (prescan_insns_for_dce): Don't special-case libcall block insns.
22129589 6115 * reload1 (reload): Don't handle libcall notes.
4a8cae83
SB
6116 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
6117 documentation.
6118
ec346900
EW
61192008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
6120
6121 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
6122 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
6123 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
6124
951a5379
EW
61252008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
6126
6127 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
6128 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
22129589 6129 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
951a5379 6130
2d09b640
RW
61312008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6132
6133 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
6134
54269f05
IR
61352008-06-16 Ira Rosen <irar@il.ibm.com>
6136
6137 PR tree-optimization/36493
6138 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
6139 the arguments list. Use VECTYPE to create vector pointer.
6140 (vectorizable_store): Fail if accesses through a pointer to vectype
6141 do not alias the original memory reference operands.
6142 Call vect_create_data_ref_ptr without the removed argument.
6143 (vectorizable_load): Likewise.
6144 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
6145 removed argument.
6146
f4df5771
AH
61472008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
6148
6149 PR target/36336
22129589 6150 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
f4df5771
AH
6151 reg_equiv_constant.
6152
58684fa0
MK
61532008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
6154
6155 * config/mips/loongson2ef.md: New file.
6156 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
6157 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6158 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
6159 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
6160 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
6161 and loongson_2f.
6162 (loongson2ef.md): New include.
6163 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
6164 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
6165 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
6166 (loongson_gt_<mode>, loongson_extract_halfword)
6167 (loongson_insert_halfword_0, loongson_insert_halfword_2)
6168 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
6169 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
6170 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
6171 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
6172 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
6173 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
6174 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
6175 (vec_interleave_low<mode>): Define type attribute.
6176 * config/mips/mips.c (mips_ls2): New static variable.
6177 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
6178 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
6179 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
6180 Implement target scheduling hooks.
6181 (mips_multipass_dfa_lookahead): Update to handle tuning for
6182 Loongson 2E/2F.
6183 (mips_sched_init): Initialize data for Loongson scheduling.
6184 (mips_ls2_variable_issue): New static function.
6185 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
6186 Add sanity check.
6187 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
6188 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
6189 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
6190 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
6191 Handle ST Loongson 2E/2F cores.
6192 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
6193
1cbc62c0
RW
61942008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6195
6196 * omp-low.c (extract_omp_for_data): Fix comment typo.
6197 * c.opt: Fix typo.
6198
6ccde948
RW
61992008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6200
6201 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
6202 FIXME note about gcc/config.guess.
6203 * doc/options.texi (Option file format): Remove non-ASCII bytes.
6204 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
6205 * doc/cppopts.texi: Likewise.
6206 * doc/extend.texi: Likewise.
6207 * doc/gcc.texi: Likewise.
6208 * doc/gccint.texi: Likewise.
6209 * doc/gcov.texi: Likewise.
6210 * doc/gty.texi: Likewise.
6211 * doc/hostconfig.texi: Likewise.
6212 * doc/install.texi: Likewise.
6213 * doc/invoke.texi: Likewise.
6214 * doc/loop.texi: Likewise.
6215 * doc/makefile.texi: Likewise.
6216 * doc/md.texi: Likewise.
6217 * doc/passes.texi: Likewise.
6218 * doc/tm.texi: Likewise.
6219 * doc/tree-ssa.texi: Likewise.
6220 * doc/trouble.texi: Likewise.
6221
93581857
MS
62222008-06-15 Mark Shinwell <shinwell@codesourcery.com>
6223 Nathan Sidwell <nathan@codesourcery.com>
6224 Maxim Kuvyrkov <maxim@codesourcery.com>
6225 Richard Sandiford <rdsandiford@googlemail.com>
22129589 6226
93581857
MS
6227 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
6228 * config/mips/mips-protos.h (mips_expand_vector_init): New.
6229 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
6230 builtins.
6231 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
6232 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
6233 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
6234 V8QImode cases.
6235 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
6236 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
6237 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
6238 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
6239 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
6240 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
6241 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
6242 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
6243 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
6244 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
6245 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
6246 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
6247 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
6248 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
6249 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
6250 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
6251 (mips_builtins): Add Loongson builtins.
6252 (mips_loongson_2ef_bdesc): New.
6253 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
6254 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
6255 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
6256 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
6257 New.
6258 (mips_expand_vector_init): New.
6259 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
6260 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
6261 if appropriate.
6262 * config/mips/mips.md: Add unspec numbers for Loongson
6263 builtins. Include loongson.md.
6264 (MOVE64): Include Loongson vector modes.
6265 (SPLITF): Include Loongson vector modes.
6266 (HALFMODE): Handle Loongson vector modes.
6267 * config/mips/loongson.md: New.
6268 * config/mips/loongson.h: New.
6269 * config.gcc: Add loongson.h header for mips*-*-* targets.
6270 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
6271
397fda80
JM
62722008-06-14 Joseph Myers <joseph@codesourcery.com>
6273
6274 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
6275 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
6276 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
6277 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
6278 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
6279 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
6280 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
6281 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
6282 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
6283 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
6284 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
6285 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
6286 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
6287 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
6288 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
6289 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
6290 Remove use_fixproto=yes.
6291 (ia64*-*-hpux*): Remove comment about using fixproto.
6292 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
6293
b15a9f63
RW
62942008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6295
6296 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
6297 library rebuilds.
6298 * configure: Regenerate.
6299
9133c85e
EB
63002008-06-13 Eric Botcazou <ebotcazou@adacore.com>
6301
6302 PR middle-end/36520
6303 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
6304 before evaluating it.
6305
6cf59865
JJ
63062008-06-13 Jakub Jelinek <jakub@redhat.com>
6307
6308 PR c/36507
6309 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
6310 nested inline functions.
6311 (start_decl, start_function): Don't invert DECL_EXTERNAL
6312 for nested inline functions.
6313
a9a53350
RS
63142008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
6315
6316 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
6317 splits that must be made for correctness.
6318
fd0eb897
RS
63192008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
6320
6321 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
6322 (AVAIL_NON_MIPS16): Likewise.
6323 (mips_builtin_description): Replace target_flags with a predicate.
6324 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
6325 (dspr2_32): New availability predicates.
6326 (MIPS_BUILTIN): New macro.
6327 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
6328 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
6329 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
6330 Replace the TARGET_FLAGS parameters with AVAIL parameters.
6331 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
6332 (mips_dsp_32only_bdesc): Merge into...
6333 (mips_builtins): ...this new array.
6334 (mips_bdesc_map, mips_bdesc_arrays): Delete.
6335 (mips_init_builtins): Update after above changes.
6336 (mips_expand_builtin_1): Merge into...
6337 (mips_expand_builtin): ...here and update after above changes.
6338
ef0a4b67
PB
63392008-06-12 Paul Brook <paul@codesourcery.com>
6340
6341 * longlong.h (__arm__): Define count_leading_zeros.
6342 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
6343 (clzsi2, clzdi2): New functions.
6344 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
6345 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
6346 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
6347 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
6348 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
6349 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
6350 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
6351 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6352 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
6353 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
6354
03b3e271
KH
63552008-06-12 Kazu Hirata <kazu@codesourcery.com>
6356
6357 * config/m68k/m68k.c (m68k_tune_flags): New.
6358 (override_options): Compute m68k_tune_flags.
6359 (MULL_COST, MULW_COST): Update for various variants of CFV2.
6360 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
6361
3ac4c44a
JJ
63622008-06-12 Jakub Jelinek <jakub@redhat.com>
6363
6364 PR middle-end/36506
ba03a350 6365 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3ac4c44a 6366
955f6531
EB
63672008-06-12 Eric Botcazou <ebotcazou@adacore.com>
6368
6369 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
6370 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
6371
bd323ce5
EB
63722008-06-12 Eric Botcazou <ebotcazou@adacore.com>
6373
6374 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
6375 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
6376
c34938a8
JJ
63772008-06-12 Jakub Jelinek <jakub@redhat.com>
6378
6379 PR middle-end/36506
6380 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
6381 reductions.
6382
b3778556
RG
63832008-06-12 Richard Guenther <rguenther@suse.de>
6384
6385 PR tree-optimization/36345
6386 * tree-flow.h (struct ptr_info_def): Align escape_mask,
6387 add memory_tag_needed flag.
6388 (may_alias_p): Declare.
6389 * tree-ssa-alias.c (may_alias_p): Export.
6390 (set_initial_properties): Use memory_tag_needed flag.
6391 (update_reference_counts): Likewise.
6392 (reset_alias_info): Reset memory_tag_needed flag.
6393 (create_name_tags): Check memory_tag_needed flag.
6394 (dump_points_to_info_for): Dump it.
6395 * tree-ssa-structalias.c (struct variable_info): Remove
6396 directly_dereferenced flag.
6397 (new_var_info): Do not initialize it.
6398 (process_constraint_1): Do not set it.
6399 (update_alias_info): Set is_dereferenced flag.
6400 (set_uids_in_ptset): Use may_alias_p.
6401 (set_used_smts): Check memory_tag_needed flag.
6402 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
6403 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
6404 memory_tag_needed flag.
6405 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
6406 from broken design.
6407
394a378c
KT
64082008-06-12 Kai Tietz <kai.tietz@onevision.com>
6409
ba03a350
UB
6410 * config/i386/i386.c (ix86_compute_frame_layout): Disable
6411 red zone for w64 abi.
394a378c
KT
6412 (ix86_expand_prologue): Likewise.
6413 (ix86_force_to_memory): Likewise.
6414 (ix86_free_from_memory): Likewise.
6415
567f0b17
EW
64162008-06-11 Edmar Wienskoski <edmar@freescale.com>
6417
6418 PR target/36425
6419 * config/rs6000/rs6000.c (rs6000_override_options): Set
ba03a350 6420 rs6000_isel conditionally to the absence of comand line override.
567f0b17
EW
6421 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
6422 Remove duplicate rs6000_isel setting.
6423 * config/rs6000/eabispe.h: Ditto.
6424
4653cae5
RG
64252008-06-11 Richard Guenther <rguenther@suse.de>
6426
6427 * alias.c (get_alias_set): Use the element alias-set for arrays.
6428 (record_component_aliases): For arrays and vectors do nothing.
6429 * c-common.c (strict_aliasing_warning): Handle the cases
6430 of alias set zero explicitly.
6431 * Makefile.in (dfp.o-warn): Add -Wno-error.
6432
8981c15b
JM
64332008-06-11 Joseph Myers <joseph@codesourcery.com>
6434
6435 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
6436 tune_32 tune_64.
6437 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
6438 tune_32 tune_64 to supported_defaults. Allow values not
6439 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
6440 x86_64. Do not override cpu_32 or cpu_64 values from target name.
6441 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
6442 with_cpu_64 to generic for 64-bit-supporting configurations, not
6443 with_cpu. Remove FIXMEs.
6444 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
6445 --with-arch-64, --with-tune-32, --with-tune-64): Document.
6446 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
6447 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
6448 arch_32 and arch_64.
6449
056c8fae 64502008-06-11 Eric Botcazou <ebotcazou@adacore.com>
ba03a350 6451 Olivier Hainque <hainque@adacore.com>
056c8fae
EB
6452
6453 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
6454 Use DECL_SIZE_UNIT to retrieve the size of the field.
6455
af06585a
JM
64562008-06-11 Joseph Myers <joseph@codesourcery.com>
6457
6458 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
6459 with function calls after declarations. Lay out
6460 neon_float_type_node before further use.
6461
fd73537b
RG
64622008-06-11 Richard Guenther <rguenther@suse.de>
6463
6464 * tree-flow.h (may_point_to_global_var): Declare.
6465 * tree-ssa-alias.c (may_point_to_global_var): New function.
6466 * tree-ssa-sink.c (is_hidden_global_store): Use it.
6467
6b7b0ba1
KH
64682008-06-10 Kazu Hirata <kazu@codesourcery.com>
6469
6470 * configure.ac: Teach that fido supports .debug_line.
6471 * configure: Regenerate.
6472
711b2510
TT
64732008-06-10 Tom Tromey <tromey@redhat.com>
6474
6475 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
6476 debug hook.
6477
bc6d4c3f
JM
64782008-06-10 Joseph Myers <joseph@codesourcery.com>
6479
6480 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
6481 (encode_decimal64, decode_decimal64, encode_decimal128,
6482 decode_decimal128): Reverse order of 32-bit parts of value if host
6483 and target endianness differ.
6484
0178d644 64852008-06-10 Vinodha Ramasamy <vinodha@google.com>
ba03a350
UB
6486
6487 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
0178d644
VR
6488 Avoid division by 0.
6489 (tree_mod_pow2_value_transform): Likewise.
6490 (tree_ic_transform): Likewise.
6491 (tree_stringops_transform): Likewise.
6492 (tree_mod_subtract_transform): Likewise.
6493 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
6494 (copy_edges_for_bb): Likewise.
6495 (initialize_cfun): Likewise.
6496
88b9490b
UB
64972008-06-10 Uros Bizjak <ubizjak@gmail.com>
6498
6499 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
6500 nonmemory_operand. Add "N" operand constraint.
6501 (*btsi): Ditto.
6502 (*jcc_btdi_mask_rex64): New instruction and split pattern.
6503 (*jcc_btsi_mask): Ditto.
6504 (*jcc_btsi_mask_1): Ditto.
6505
0627bfb4
JM
65062008-06-10 Joseph Myers <joseph@codesourcery.com>
6507
6508 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
6509 TYPE_CANONICAL for copied element type.
6510
33ee5810
UB
65112008-06-10 Uros Bizjak <ubizjak@gmail.com>
6512
6513 PR target/36473
6514 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
6515 Add m_CORE2 and m_GENERIC.
6516 * config/i386/predicates.md (bt_comparison_operator): New predicate.
6517 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
6518 (*btsi): Ditto.
6519 (*jcc_btdi_rex64): New instruction and split pattern.
6520 (*jcc_btsi): Ditto.
6521 (*jcc_btsi_1): Ditto.
6522 (*btsq): Fix Intel asm dialect operand order.
6523 (*btrq): Ditto.
6524 (*btcq): Ditto.
6525
3115c00d
AH
65262008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
6527
6528 PR middle-end/36447
22129589 6529 * simplify-rtx.c (simplify_subreg): Add check for shift count
3115c00d
AH
6530 greater than size.
6531
21dfc6dc
RS
65322008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
6533
6534 * doc/md.texi: Synchronize with later constraints.md change.
6535 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
6536 with a C implementation.
6537 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
6538 MFLO handling.
6539 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
6540 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
6541 when moving to and from MD_REGNUM.
6542 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
6543 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
6544 Handle byte and halfword moves.
6545 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
6546 separately.
6547 * config/mips/constraints.md (h): Turn into NO_REGS.
6548 (l, x): Update documentation.
6549 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
6550 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
6551 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
6552 (HILO): New mode iterator.
6553 (MOVE128): Add TI.
6554 (any_div): New code iterator.
6555 (u): Extend code attribute to div and udiv.
6556 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
6557 d_operand in the splitters. Remove redundant CONST_INT checks.
6558 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
6559 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
6560 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
6561 accordingly, using normal moves instead of unspecs to move LO into
6562 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
6563 (<u>mulsidi3): Handle expansion in C code.
6564 (<u>mulsidi3_32bit_internal): Rename to...
6565 (<u>mulsidi3_32bit): ...this.
6566 (<u>mulsidi3_32bit_r4000): Fix insn separator.
6567 (*<u>mulsidi3_64bit): Rename to...
6568 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
6569 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
6570 to set LO and HI to the multiplication result. Use a normal move
6571 for MFLO and an unspec for MFHI.
6572 (*<u>mulsidi3_64bit_parts): Replace with...
6573 (<u>mulsidi3_64bit_hilo): ...this new instruction.
6574 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
6575 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
6576 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
6577 instead of HI. Split the instruction into a separate multiplication
6578 and MFHI if !TARGET_FIX_R4000.
6579 (<su>muldi3_highpart): Likewise.
6580 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
6581 and the "=h" clobber.
6582 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
6583 (<u>mulditi3): New expander.
6584 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
6585 (madsi): Remove "=h" clobber.
6586 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
6587 Force the modulus result to be a GPR and split the instruction into
6588 a division followed by an MFHI after reload.
6589 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
6590 (*lea_high64): Use d_operand in the define_peephole2. Likewise
6591 the MIPS16 HIGH define_split.
6592 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
6593 of acc<->gpr moves to "multi".
6594 (*movdi_64bit): Replace the single "x" alternative with
6595 alternatives for moving into and out of "a".
6596 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
6597 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
6598 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
6599 Use d_operand in the splitters. Remove redundant CONST_INT checks.
6600 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
6601 (movti): New expander.
6602 (*movti, *movti_mips16): New insns.
6603 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
6604 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
6605 (mthi<GPR:mode>_<HILO:mode>): Likewise.
6606 * config/mips/predicates.md (fpr_operand): Delete.
6607 (d_operand): New predicate.
6608
0e462a95
MM
66092008-06-09 Michael Meissner <michael.meissner@amd.com>
6610
6611 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
6612 failure on some Bourne shells.
6613 (x86_64-*-*): Ditto.
6614
d3c1d2a0
KT
66152008-06-09 Kai Tietz <kai.tietz@onevision.com>
6616
6617 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
6618
2bd58b1b
EB
66192008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
6620
6621 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
6622 (sparc-sun-solaris2*): Likewise.
6623
2c2b1710
AC
66242008-06-09 Arnaud Charlet <charlet@adacore.com
6625
6626 * doc/install.texi: Update requirements to build the Ada compiler.
6627
fed6152d
SB
66282008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
6629
6630 * df-scan.c (struct df_scan_problem_data): Remove the
6631 mw_link_pool alloc pool.
6632 (df_scan_free_internal): Don't free it.
6633 (df_scan_alloc): Don't allocate it.
6634 * df.h (struct df_link): Update comment.
6635
c427220a
NS
66362008-06-08 Nathan Sidwell <nathan@codesourcery.com>
6637
6638 * except.h: Correct checks for when SJLJ exceptions must be used.
6639
cf0fd618
MLI
66402008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6641
6642 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
6643 default.
22129589 6644
f8c33439
JM
66452008-06-08 Joseph Myers <joseph@codesourcery.com>
6646
6647 PR tree-optimization/36218
6648 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
6649 configure for the build system.
6650 (BUILD_LDFLAGS): Define.
6651 * configure: Regenerate.
6652 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
6653
91635d08
AS
66542008-07-08 Anatoly Sokolov <aesok@post.ru>
6655
6656 PR target/36424
6657 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
22129589
AS
6658 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
6659 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
91635d08 6660
ae06ac00
DS
66612008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
6662
6663 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
6664
cd985f66
JM
66652008-06-07 Joseph Myers <joseph@codesourcery.com>
6666
6667 * config.gcc (Obsolete configurations): Remove list of
6668 configurations.
6669 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
6670 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
6671 targets matched by those patterns.
6672 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
6673 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
6674 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
6675 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
6676 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6677 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
6678 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
6679 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
6680 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
6681 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
6682 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
6683 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
6684 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
6685 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
6686 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
6687 Make code for Solaris 7 and greater unconditional for Solaris.
6688 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
6689 Remove --with-* handling.
6690 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
6691 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
6692 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
6693 LINK_OS_WINDISS_SPEC): Remove.
6694 * config/rs6000/sysv4.opt (mwindiss): Remove.
6695 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
6696 * configure: Regenerate.
6697 * doc/cpp.texi: Don't mention BeOS.
6698 * doc/extend.texi (interrupt): Don't mention MS1.
6699 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
6700 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
6701 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
6702 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
6703 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
6704 Remove.
6705 * doc/invoke.texi (MT Options): Remove.
6706 (-mwindiss): Remove.
6707 (CRIS Options): Remove cris-axis-aout references.
6708 (HPPA Options): Don't mention hppa1.1-*-pro.
6709 * doc/md.texi: (MorphoTech family): Remove.
6710 * libgcc2.c: Don't handle UWIN.
6711 * config/alpha/t-unicosmk: Remove.
6712 * config/alpha/unicosmk.h: Remove.
6713 * config/arm/kaos-arm.h: Remove.
6714 * config/arm/kaos-strongarm.h: Remove.
6715 * config/arm/strongarm-coff.h: Remove.
6716 * config/arm/strongarm-elf.h: Remove.
6717 * config/arm/strongarm-pe.h: Remove.
6718 * config/arm/t-strongarm-pe: Remove.
6719 * config/arm/t-xscale-coff: Remove.
6720 * config/arm/t-xscale-elf: Remove.
6721 * config/arm/xscale-coff.h: Remove.
6722 * config/arm/xscale-elf.h: Remove.
6723 * config/chorus.h: Remove.
6724 * config/cris/aout.h: Remove.
6725 * config/cris/aout.opt: Remove.
6726 * config/cris/t-aout: Remove.
6727 * config/i386/beos-elf.h: Remove.
6728 * config/i386/kaos-i386.h: Remove.
6729 * config/i386/ptx4-i.h: Remove.
6730 * config/i386/sco5.h: Remove.
6731 * config/i386/sco5.opt: Remove.
6732 * config/i386/sysv4-cpp.h: Remove.
6733 * config/i386/sysv5.h: Remove.
6734 * config/i386/t-beos: Remove.
6735 * config/i386/t-sco5: Remove.
6736 * config/i386/t-uwin: Remove.
6737 * config/i386/uwin.asm: Remove.
6738 * config/i386/uwin.h: Remove.
6739 * config/kaos.h: Remove.
6740 * config/mips/windiss.h: Remove.
6741 * config/mt: Remove directory.
6742 * config/pa/pa-osf.h: Remove.
6743 * config/pa/pa-pro-end.h: Remove.
6744 * config/pa/t-pro: Remove.
6745 * config/ptx4.h: Remove.
6746 * config/rs6000/beos.h: Remove.
6747 * config/rs6000/kaos-ppc.h: Remove.
6748 * config/rs6000/t-beos: Remove.
6749 * config/rs6000/windiss.h: Remove.
6750 * config/sh/kaos-sh.h: Remove.
6751 * config/sol2-6.h: Remove.
6752 * config/sparc/sol26-sld.h: Remove.
6753 * config/sparc/sysv4-only.h: Remove.
6754 * config/vax/bsd.h: Remove.
6755 * config/vax/t-memfuncs: Remove.
6756 * config/vax/ultrix.h: Remove.
6757 * config/vax/vaxv.h: Remove.
6758 * config/windiss.h: Remove.
6759
f3e10a2b 67602008-06-06 Uros Bizjak <ubizjak@gmail.com>
88057dc8
UB
6761
6762 PR rtl-optimization/36438
6763 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
6764 for vector shifts with constant scalar shift operands.
6765
d0ae31b0
SM
67662008-06-06 Sandip Matte <sandip@rmicorp.com>
6767
6768 * doc/invoke.texi: Document -march=xlr.
6769 * config/mips/xlr.md: New file.
6770 * config/mips/mips.md: Include it.
6771 (cpu): Add "xlr".
6772 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
6773 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
6774 (mips_rtx_cost_data): Likewise.
6775
619fe064
NF
67762008-06-06 Nathan Froyd <froydnj@codesourcery.com>
6777
6778 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
6779 PRE_INC and PRE_DEC cases.
6780
67339062
JJ
67812008-06-06 Jakub Jelinek <jakub@redhat.com>
6782
c6eb958c
JJ
6783 PR rtl-optimization/36419
6784 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
6785 the emitting jump insn.
6786
67339062
JJ
6787 PR target/36362
6788 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
6789 is not bool, boolify the whole *expr_p and convert to the desired type.
6790
a68ab351
JJ
67912008-06-06 Jakub Jelinek <jakub@redhat.com>
6792
88057dc8 6793 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
6794 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
6795 Add omp_private_outer_ref hook, add another argument to
6796 omp_clause_default_ctor hook.
6797 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
6798 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
6799 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
6800 hook_tree_tree_tree_tree_null.
6801 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
6802 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
6803 * hooks.c (hook_tree_tree_tree_tree_null): New function.
6804 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
6805 * tree.def (OMP_TASK): New tree code.
6806 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
6807 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
6808 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
6809 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
6810 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
6811 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
6812 OMP_CLAUSE_COLLAPSE_EXPR): Define.
6813 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
6814 (OMP_DIRECTIVE_P): Add OMP_TASK.
6815 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
6816 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
6817 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
6818 and OMP_CLAUSE_UNTIED entries.
6819 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
6820 num_ops to 2.
6821 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6822 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
6823 * tree-pretty-print.c (dump_omp_clause): Handle
6824 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
6825 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
6826 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
6827 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
6828 warning about unsigned iterators. Change decl/init/cond/incr
6829 arguments to TREE_VECs, check arguments for all collapsed loops.
6830 (c_finish_omp_taskwait): New function.
6831 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
6832 ws_clauses.
6833 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
6834 default_function_array_conversion on init. Add par_clauses argument.
6835 If decl is present in parallel's lastprivate clause, change it to
6836 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
6837 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
6838 collapse count in clauses.
6839 (c_parser_omp_for, c_parser_omp_parallel): Adjust
6840 c_parser_omp_for_loop callers.
6841 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
6842 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
6843 (c_parser_omp_clause_name): Handle collapse and untied clauses.
6844 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
6845 functions.
6846 (c_parser_omp_clause_schedule): Handle schedule(auto).
6847 Include correct location in the error message.
6848 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
6849 and PRAGMA_OMP_CLAUSE_UNTIED.
6850 (OMP_TASK_CLAUSE_MASK): Define.
6851 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
6852 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
6853 * tree-nested.c (convert_nonlocal_omp_clauses,
6854 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
6855 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
6856 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6857 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
6858 OMP_CLAUSE_DECL.
6859 (conver_nonlocal_reference, convert_local_reference,
6860 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
6861 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
6862 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
6863 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
6864 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
6865 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
6866 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
6867 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
6868 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
6869 OMP_CLAUSE_UNTIED.
6870 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
6871 * c-common.h (c_finish_omp_taskwait): New prototype.
6872 * gimple-low.c (lower_stmt): Handle OMP_TASK.
6873 * tree-parloops.c (create_parallel_loop): Create 1 entry
6874 vectors for OMP_FOR_{INIT,COND,INCR}.
6875 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6876 (make_edges): Handle OMP_TASK.
6877 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
6878 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
6879 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
6880 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
6881 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
6882 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
6883 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
6884 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
6885 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
6886 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
6887 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
6888 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
6889 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
6890 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
6891 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
6892 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
6893 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
6894 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
6895 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
6896 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
6897 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
6898 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
6899 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
6900 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
6901 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
6902 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
6903 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
6904 original iterator is present in lastprivate clause or if
6905 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
6906 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
6907 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
6908 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
6909 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
6910 if it is set, lookup var in outer contexts too. Handle
6911 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
6912 to be implicitly determined firstprivate for task regions.
6913 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
6914 if it is set, lookup var in outer contexts too. Set
6915 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
6916 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
6917 OMP_CLAUSE_UNTIED. Take region_type as last argument
6918 instead of in_parallel and in_combined_parallel.
6919 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
6920 Adjust callers.
6921 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 6922 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
6923 (new_omp_context): Set default_kind to
6924 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
6925 (omp_region_type): New enum.
6926 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
6927 fields, add region_type.
6928 (new_omp_context): Take region_type as argument instead of is_parallel
6929 and is_combined_parallel.
6930 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
6931 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
6932 ctx->is_combined_parallel checks.
6933 (gimplify_omp_task): New function.
6934 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
6935 OMP_CLAUSE_UNTIED.
6936 * omp-low.c (extract_omp_for_data): Use schedule(static)
6937 for schedule(auto). Handle pointer and unsigned iterators.
6938 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
6939 Add loops argument. Extract data for collapsed OMP_FOR loops.
6940 (expand_parallel_call): Assert sched_kind isn't auto,
6941 map runtime schedule to index 3.
6942 (struct omp_for_data_loop): New type.
6943 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
6944 Add loop, loops, collapse and iter_type fields.
6945 (workshare_safe_to_combine_p): Disallow combined for if
6946 iter_type is unsigned long long. Don't combine collapse > 1 loops
6947 unless all bounds and steps are constant. Adjust extract_omp_for_data
6948 caller.
6949 (expand_omp_for_generic): Handle pointer, unsigned and long long
6950 iterators. Handle collapsed OMP_FOR loops. Adjust
6951 for struct omp_for_data changes. If libgomp function doesn't return
6952 boolean_type_node, add comparison of the return value with 0.
6953 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
6954 pointer, unsigned and long long iterators. Adjust for struct
6955 omp_for_data changes.
6956 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
6957 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
6958 unsigned long long. Allocate loops array, pass it to
6959 extract_omp_for_data. For collapse > 1 loops use always
6960 expand_omp_for_generic.
6961 (omp_context): Add sfield_map and srecord_type fields.
6962 (is_task_ctx, lookup_sfield): New functions.
6963 (use_pointer_for_field): Use is_task_ctx helper. Change first
6964 argument's type from const_tree to tree. Clarify comment.
6965 In OMP_TASK disallow copy-in/out sharing.
6966 (build_sender_ref): Call lookup_sfield instead of lookup_field.
6967 (install_var_field): Add mask argument. Populate both record_type
6968 and srecord_type if needed.
6969 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
6970 in srecord_type.
6971 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
6972 and DECL_FIELD_OFFSET.
6973 (scan_sharing_clauses): Adjust install_var_field callers. For
6974 firstprivate clauses on explicit tasks allocate the var by value in
6975 record_type unconditionally, rather than by reference.
6976 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
6977 Use is_taskreg_ctx instead of is_parallel_ctx.
6978 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
6979 (create_omp_child_function_name): Add task_copy argument, use
6980 *_omp_cpyfn* names if it is true.
6981 (create_omp_child_function): Add task_copy argument, if true create
6982 *_omp_cpyfn* helper function.
6983 (scan_omp_parallel): Adjust create_omp_child_function callers.
6984 Rename parallel_nesting_level to taskreg_nesting_level.
6985 (scan_omp_task): New function.
6986 (lower_rec_input_clauses): Don't run constructors for firstprivate
22129589 6987 explicit task vars which are initialized by *_omp_cpyfn*.
a68ab351
JJ
6988 Pass outer var ref to omp_clause_default_ctor hook if
6989 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
6990 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
6991 OMP_CLAUSE_REDUCTION_INIT.
6992 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
6993 avoid duplicate setting of fields. Handle
6994 OMP_CLAUSE_PRIVATE_OUTER_REF.
6995 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
6996 copy-out if TREE_READONLY, only copy-in.
6997 (expand_task_copyfn): New function.
6998 (expand_task_call): New function.
6999 (struct omp_taskcopy_context): New type.
7000 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
7001 New functions.
7002 (lower_omp_parallel): Rename to...
7003 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
7004 Call create_task_copyfn if srecord_type is needed. Adjust
7005 sender_decl type.
7006 (task_shared_vars): New variable.
7007 (check_omp_nesting_restrictions): Warn if work-sharing,
7008 barrier, master or ordered region is closely nested inside OMP_TASK.
7009 Add warnings for barrier if closely nested inside of work-sharing,
7010 ordered, or master region.
7011 (scan_omp_1): Call check_omp_nesting_restrictions even for
7012 GOMP_barrier calls. Rename parallel_nesting_level to
7013 taskreg_nesting_level. Handle OMP_TASK.
7014 (lower_lastprivate_clauses): Even if some lastprivate is found on a
7015 work-sharing construct, continue looking for them on parent parallel
7016 construct.
7017 (lower_omp_for_lastprivate): Add lastprivate clauses
7018 to the beginning of dlist rather than end. Adjust for struct
7019 omp_for_data changes.
7020 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
7021 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 7022 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
7023 (get_ws_args_for): Adjust extract_omp_for_data caller.
7024 (scan_omp_for): Handle collapsed OMP_FOR
7025 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
7026 (lower_omp_single_simple): If libgomp function doesn't return
7027 boolean_type_node, add comparison of the return value with 0.
7028 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
7029 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
7030 (parallel_nesting_level): Rename to...
7031 (taskreg_nesting_level): ... this.
7032 (is_taskreg_ctx): New function.
7033 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
7034 of is_parallel_ctx.
7035 (execute_lower_omp): Rename parallel_nesting_level to
7036 taskreg_nesting_level.
7037 (expand_omp_parallel): Rename to...
7038 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
7039 Call omp_task_call for OMP_TASK regions.
7040 (expand_omp): Adjust caller, handle OMP_TASK.
7041 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
7042
7043 * bitmap.c (bitmap_default_obstack_depth): New variable.
7044 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
7045 if argument is NULL and bitmap_default_obstack is already initialized.
7046 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
7047 at the end.
7048 * matrix-reorg.c (matrix_reorg): Likewise.
7049
c4fe74e0
UB
70502008-06-06 Uros Bizjak <ubizjak@gmail.com>
7051
7052 * config/i386/i386.md (*indirect_jump): Macroize using P
7053 mode iterator. Remove !TARGET_64BIT from insn constraints.
7054 (*tablejump_1): Ditto.
7055 (*indirect_jump_rex64): Remove insn pattern.
7056 (*tablejump_1_rex64): Ditto.
7057 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
7058 and eh_return_si insn patterns.
7059
9f09b13f
RG
70602008-06-06 Richard Guenther <rguenther@suse.de>
7061
7062 * tree-ssa-structalias.c (merge_smts_into): Remove.
7063 (find_what_p_points_to): Do not bother to compute the
7064 points-to set for pt_anything pointers.
7065 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
7066 for pt_anything pointers is ok.
7067
9fbe48c0
JH
70682008-06-06 Jan Hubicka <jh@suse.cz>
7069
7070 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
7071
fa10beec
RW
70722008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7073
7074 * cgraph.c: Fix typos in comments.
7075 (cgraph_availability_names): Fix string typo.
7076 * fold-const.c: Fix typos in comments.
7077 (fold_binary): Fix typo in warning.
7078 * genautomata.c: Fix typos in comments.
7079 (check_presence_pattern_sets): Fix typo in local variable.
7080 (output_description): Fix typo in output.
7081 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
7082 * hwint.h: Likewise.
7083 * matrix-reorg.c (check_allocation_function): Likewise.
7084 * omega.c (smooth_weird_equations): Likewise.
7085 * auto-inc-dec.c: Fix typos in comments.
7086 * bb-reorder.c: Likewise.
7087 * builtins.c: Likewise.
7088 * c-common.c: Likewise.
7089 * c-cppbuiltin.c: Likewise.
7090 * c-parser.c: Likewise.
7091 * c-pretty-print.c: Likewise.
7092 * cfgcleanup.c: Likewise.
7093 * cfgexpand.c: Likewise.
7094 * cfghooks.c: Likewise.
7095 * cfglayout.c: Likewise.
7096 * cfgloopmanip.c: Likewise.
7097 * cgraphunit.c: Likewise.
7098 * coverage.c: Likewise.
7099 * dbxout.c: Likewise.
7100 * df-byte-scan.c: Likewise.
7101 * df-core.c: Likewise.
7102 * df-problems.c: Likewise.
7103 * df-scan.c: Likewise.
7104 * dfp.c: Likewise.
7105 * dominance.c: Likewise.
7106 * domwalk.c: Likewise.
7107 * dse.c: Likewise.
7108 * dwarf2out.c: Likewise.
7109 * emit-rtl.c: Likewise.
7110 * et-forest.c: Likewise.
7111 * function.c: Likewise.
7112 * function.h: Likewise.
7113 * gcc.c: Likewise.
7114 * gcov-io.c: Likewise.
7115 * gcov.c: Likewise.
7116 * gcse.c: Likewise.
7117 * genattrtab.c: Likewise.
7118 * ggc-page.c: Likewise.
7119 * gimplify.c: Likewise.
7120 * gthr-lynx.h: Likewise.
7121 * haifa-sched.c: Likewise.
7122 * ipa-cp.c: Likewise.
7123 * ipa-inline.c: Likewise.
7124 * ipa-prop.h: Likewise.
7125 * ipa-pure-const.c: Likewise.
7126 * ipa-struct-reorg.c: Likewise.
7127 * ipa-struct-reorg.h: Likewise.
7128 * ipa-type-escape.c: Likewise.
7129 * ipa.c: Likewise.
7130 * loop-doloop.c: Likewise.
7131 * mips-tfile.c: Likewise.
7132 * mkmap-flat.awk: Likewise.
7133 * mkmap-symver.awk: Likewise.
7134 * modulo-sched.c: Likewise.
7135 * omp-low.c: Likewise.
7136 * optabs.c: Likewise.
7137 * optabs.h: Likewise.
7138 * opts.c: Likewise.
7139 * passes.c: Likewise.
7140 * postreload-gcse.c: Likewise.
7141 * postreload.c: Likewise.
7142 * predict.c: Likewise.
7143 * pretty-print.h: Likewise.
7144 * profile.c: Likewise.
7145 * protoize.c: Likewise.
7146 * ra-conflict.c: Likewise.
7147 * real.c: Likewise.
7148 * recog.c: Likewise.
7149 * regclass.c: Likewise.
7150 * regs.h: Likewise.
7151 * reload.c: Likewise.
7152 * rtl-error.c: Likewise.
7153 * rtlanal.c: Likewise.
7154 * scan.h: Likewise.
7155 * sched-rgn.c: Likewise.
7156 * see.c: Likewise.
7157 * stmt.c: Likewise.
7158 * target.h: Likewise.
7159 * tree-dfa.c: Likewise.
7160 * tree-eh.c: Likewise.
7161 * tree-flow-inline.h: Likewise.
7162 * tree-inline.c: Likewise.
7163 * tree-into-ssa.c: Likewise.
7164 * tree-loop-distribution.c: Likewise.
7165 * tree-nested.c: Likewise.
7166 * tree-parloops.c: Likewise.
7167 * tree-pass.h: Likewise.
7168 * tree-pretty-print.c: Likewise.
7169 * tree-profile.c: Likewise.
7170 * tree-scalar-evolution.c: Likewise.
7171 * tree-sra.c: Likewise.
7172 * tree-ssa-alias-warnings.c: Likewise.
7173 * tree-ssa-ccp.c: Likewise.
7174 * tree-ssa-coalesce.c: Likewise.
7175 * tree-ssa-dom.c: Likewise.
7176 * tree-ssa-dse.c: Likewise.
7177 * tree-ssa-forwprop.c: Likewise.
7178 * tree-ssa-live.c: Likewise.
7179 * tree-ssa-live.h: Likewise.
7180 * tree-ssa-loop-im.c: Likewise.
7181 * tree-ssa-loop-ivopts.c: Likewise.
7182 * tree-ssa-loop-niter.c: Likewise.
7183 * tree-ssa-loop-prefetch.c: Likewise.
7184 * tree-ssa-phiopt.c: Likewise.
7185 * tree-ssa-phiprop.c: Likewise.
7186 * tree-ssa-sccvn.c: Likewise.
7187 * tree-ssa-ter.c: Likewise.
7188 * tree-ssa-threadupdate.c: Likewise.
7189 * tree-ssa.c: Likewise.
7190 * tree-vect-analyze.c: Likewise.
7191 * tree-vect-transform.c: Likewise.
7192 * tree-vectorizer.c: Likewise.
7193 * tree-vn.c: Likewise.
7194 * tree-vrp.c: Likewise.
7195 * tree.c: Likewise.
7196 * tree.def: Likewise.
7197 * tree.h: Likewise.
7198 * unwind-dw2-fde.c: Likewise.
7199 * unwind.inc: Likewise.
7200 * value-prof.c: Likewise.
7201 * vmsdbgout.c: Likewise.
7202
6bf2f78a
DE
72032008-06-05 David Edelsohn <edelsohn@gnu.org>
7204
7205 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
7206 always place FP constants in the TOC for TARGET_POWERPC64.
7207 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
7208
4f011e1e
JM
72092008-06-05 Joseph Myers <joseph@codesourcery.com>
7210
7211 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
7212 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
7213 enable for TARGET_E500_DOUBLE.
7214 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
7215 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
7216 floating-point modes like integer modes for E500 double.
7217 (rs6000_legitimate_offset_address_p): Likewise.
7218 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
7219 addressing for DDmode for E500 double.
7220 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
7221 modes as using 64-bits of registers for E500 double.
7222 (spe_build_register_parallel): Do not handle DDmode or TDmode.
7223 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
7224 specially for E500 double.
7225 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
7226 TDmode for E500 double.
7227 (rs6000_gimplify_va_arg): Only handle SDmode in registers
7228 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
7229 (rs6000_split_multireg_move): Do not handle TDmode specially for
7230 E500 double.
7231 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
7232 using 64-bit registers for E500 double.
7233 (emit_frame_save): Do not handle DDmode specially for E500 double.
7234 (gen_frame_mem_offset): Likewise.
7235 (rs6000_function_value): Do not call spe_build_register_parallel
7236 for DDmode or TDmode.
7237 (rs6000_libcall_value): Likewise.
7238 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
7239 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
7240 for E500 double.
7241
bd7415db
L
72422008-06-04 H.J. Lu <hongjiu.lu@intel.com>
7243
7244 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
7245 in comments.
7246
9e8c2a98
JG
72472008-06-04 Junjie Gu <jgu@tensilica.com>
7248
7249 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
7250 comparison for frame pointers.
7251
28734c39
AH
72522008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
7253
7254 PR target/27386
88057dc8 7255 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 7256
515e442a
AH
72572008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
7258
7259 PR target/30243
7260 * builtins.c (expand_builtin_signbit): Don't take lowpart when
22129589 7261 register is already smaller or equal to required mode.
515e442a 7262
c2699190
XDL
72632008-06-04 Xinliang David Li <davidxl@google.com>
7264
22129589 7265 * tree-call-cdce.c: New file.
c2699190
XDL
7266 (cond_dead_built_in_calls): New static variable.
7267 (input_domain): New struct.
7268 (check_pow): New function.
7269 (check_builtin_call): Ditto.
7270 (check_target_format): Ditto.
7271 (is_call_dce_candidate): Ditto.
7272 (gen_one_condition): Ditto.
7273 (gen_conditions_for_domain): Ditto.
7274 (get_domain): Ditto.
7275 (gen_conditions_for_pow_cst_base): Ditto.
7276 (gen_conditions_for_pow_int_base): Ditto.
7277 (gen_conditions_for_pow): Ditto.
7278 (get_no_error_domain): Ditto.
7279 (gen_shrink_wrap_conditions): Ditto.
7280 (shrink_wrap_one_built_in_call): Ditto.
7281 (shink_wrap_conditional_dead_built_in_calls): Ditto.
7282 (tree_call_cdce): Ditto.
7283 (gate_call_cdce): Ditto.
7284 (pass_call_cdce): New gimple pass.
7285 * passes.c: (init_optimization_passes): New pass.
7286 * tree-pass.h: New pass declaration.
7287 * opts.c (decode_options): New flag setting.
7288 * common.opt: Add -ftree-builtin-call-dce flag.
7289 * Makefile.in: Add new source file.
7290 * tempvar.def: New tv_id.
7291 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
7292
7946578b
RG
72932008-06-04 Richard Guenther <rguenther@suse.de>
7294
88057dc8 7295 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
7296 (is_call_clobbered): Always check var_ann->call_clobbered.
7297 (mark_call_clobbered): Always set var_ann->call_clobbered.
7298 (clear_call_clobbered): Always clear var_ann->call_clobbered.
7299 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
7300 (reset_alias_info): Clear call clobbering info on MTAGs and
7301 globals as well.
7302 (set_pt_anything): Set pt_global_mem.
7303 (create_tag_raw): Adjust comment.
7304 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
7305
884316ff 73062008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 7307 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
7308
7309 * config/m68k/m68k.opt (mxgot): New option.
7310 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
7311 (m68k_output_addr_const_extra): New.
7312 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
7313 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
7314 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
7315 * doc/invoke.texi (M680x0 Options): Document -mxgot.
7316
0e19bf42
RG
73172008-06-04 Richard Guenther <rguenther@suse.de>
7318
7319 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
7320 negative or non-representable offsets.
7321
999d3194
L
73222008-06-03 H.J. Lu <hongjiu.lu@intel.com>
7323
88057dc8 7324 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
7325 (ix86_gen_pop1): Likewise.
7326 (ix86_gen_add3): Likewise.
7327 (ix86_gen_sub3): Likewise.
7328 (ix86_gen_sub3_carry): Likewise.
7329 (ix86_gen_one_cmpl2): Likewise.
7330 (ix86_gen_monitor): Likewise.
7331 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
7332 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
7333 ix86_gen_one_cmpl2 and ix86_gen_monitor.
7334 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
7335 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
7336 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
7337 (ix86_expand_epilogue): Updated.
7338 (print_operand): Handle integer register operand for 'z'.
7339 (ix86_expand_strlensi_unroll_1): Likewise.
7340 (ix86_expand_strlen): Likewise.
7341 (ix86_expand_builtin): Likewise.
7342 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
7343 mov{q}/mov{l} and add{q}/add{l}.
7344
90b48492
KT
73452008-06-03 Kai Tietz <kai.tietz@onevision.com>
7346
d1abda32
KT
7347 * config/i386/i386.md (P): New mode iterator.
7348 (SFmode push_operand splitter): Macroize DImode and SImode pushes
7349 using P mode iterator.
458e816d
KT
7350 (DFmode push_operand splitter): Ditto.
7351 (XFmode push_operand splitter): Ditto.
d1abda32
KT
7352 (DFmode float_extend SFmode push_operand splitter): Ditto.
7353 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
7354 SImode pushes for 64bit target. Macroize Dimode and SImode
7355 pushes using P mode iterator.
7356 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 7357
8a762fcb
KT
73582008-06-03 Kai Tietz <kai.tietz@onevision.com>
7359
7360 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 7361 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
7362 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
7363 return type to int.
7364 (ix86_call_abi_override): Remove check for call_used_regs.
7365
db736800
RG
73662008-06-03 Richard Guenther <rguenther@suse.de>
7367
7368 * tree-ssa-structalias.c (find_func_aliases): Add constraints
7369 for the lhs of calls if the return type contains pointers.
7370
7c800926
KT
73712008-06-03 Kai Tietz <kai.tietz@onevision.com>
7372
7373 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
7374 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 7375 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
7376 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
7377 of cfun and DEFAULT_ABI to deceide abi mode.
7378 (DEFAULT_ABI): New.
7379 (REG_PARM_STACK_SPACE): Removed.
7380 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
7381 (STACK_BOUNDARY): Use default target to deceide stack boundary.
7382 * config/i386/i386-protos.h (ix86_cfun_abi): New.
7383 (ix86_function_abi): Likewise.
7384 (ix86_function_type_abi): Likewise.
7385 (ix86_call_abi_override): Likewise.
7386 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
7387 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
7388 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
7389 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
7390 specific defines.
7391 (X86_64_REGPARM_MAX): New.
7392 (X86_64_SSE_REGPARM_MAX): New.
7393 (X64_REGPARM_MAX): New.
7394 (X64_SSE_REGPARM_MAX): New.
7395 (X86_32_REGPARM_MAX): New.
7396 (X86_32_SSE_REGPARM_MAX): New.
7397 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
7398 (ix86_function_regparm): Handle user calling abi.
7399 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
7400 by DEFAULT_ABI versus SYSV_ABI check.
7401 (ix86_reg_parm_stack_space): New.
7402 (ix86_function_type_abi): New.
7403 (ix86_call_abi_override): New.
7404 (ix86_function_abi): New.
7405 (ix86_cfun_abi): New.
7406 (init_cumulative_args): Call abi specific initialization.
7407 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
7408 (function_arg_64): Extend SSE_REGPARM_MAX check.
7409 (function_arg (): Remove TARGET_64BIT_MS_ABI.
7410 (ix86_pass_by_reference): Likewise.
7411 (ix86_function_value_regno_p): Likewise.
7412 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
7413 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
7414 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
7415 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
7416 (setup_incoming_varargs_64): Adjust regparm for call abi.
7417 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
7418 (ix86_va_start): Likewise.
7419 (ix86_gimplify_va_arg): Likewise.
7420 (ix86_expand_prologue): Likewise.
7421 (output_pic_addr_const): Likewise.
7422 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
7423 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
7424 (x86_output_mi_thunk): Likewise.
7425 (x86_function_profiler): Likewise.
7426 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
7427 (SYSV_ABI, MS_ABI): New constants.
7428 (DEFAULT_ABI): New.
7429 (init_regs): Add prototype of function in regclass.c file.
7430 (OVERRIDE_ABI_FORMAT): New.
7431 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
7432 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
7433 (OUTGOING_REG_PARM_STACK_SPACE): New.
7434 (ix86_reg_parm_stack_space): New prototype.
7435 (CUMULATIVE_ARGS): Add call_abi member.
7436 (machine_function): Add call_abi member.
88057dc8
UB
7437 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
7438 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 7439
22129589 74402008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1bf29643
AH
7441
7442 PR target/34879
7443 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
7444 (avr_builtin_setjmp_frame_value): New function.
7445 * config/avr/avr.md (nonlocal_goto_receiver): Define.
7446 (nonlocal_goto): Define.
7447
de9f679d
RS
74482008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
7449
7450 * config/mips/mips.c (mips_emit_loadgp): Return early if
7451 there is nothing do to, otherwise emit a blockage if
7452 !TARGET_EXPLICIT_RELOCS || crtl->profile.
7453 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
7454
236ec2d7
RW
74552008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7456
7457 * configure.ac: Drop unneeded backslash ending up in config.in.
7458 * acinclude.m4: Likewise.
7459 * config.in: Regenerate.
7460
3250d724
JH
74612008-05-26 Jan Hubicka <jh@suse.cz>
7462
7463 * predict.c (maybe_hot_frequency_p): Break out of...
7464 (maybe_hot_bb_p): ... here.
7465 (maybe_hot_edge_p): New.
7466 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
7467 * basic-block.h (maybe_hot_edge_p): Declare.
7468
69002843
UB
74692008-05-31 Uros Bizjak <ubizjak@gmail.com>
7470
7471 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
7472 (*cmpfp_<mode>_cc): Ditto.
7473 (*fp_jcc_8<mode>_387): Ditto.
7474 (*fop_<MODEF:mode>_2_i387): Ditto.
7475 (*fop_<MODEF:mode>_3_i387): Ditto.
7476 (*fop_xf_2_i387): Ditto.
7477 (*fop_xf_3_i387): Ditto.
7478
5f9e56b3
TB
74792008-06-02 Tomas Bily <tbily@suse.cz>
7480
69002843 7481 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 7482
fa21a761
RS
74832008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7484
7485 * config/mips/mips.c (mips_valid_offset_p): New function.
7486 (mips_valid_lo_sum_p): Likewise.
7487 (mips_classify_address): Use them.
7488 (mips_force_address): New function.
7489 (mips_legitimize_address): Use it.
7490 * config/mips/mips.md (MOVE128): New mode iterator.
7491 (movtf): Require TARGET_64BIT. Remove empty strings.
7492 (*movtf_internal): Rename to...
7493 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
7494 of "R" and use {,fp}{load,store} attributes instead of "multi".
7495 Use a separate define_split.
7496 (*movtf_mips16): New pattern.
7497
2f7e2abb
RS
74982008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7499
7500 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
7501 * config/mips/mips.c (mips_expand_before_return): New function.
7502 (mips_expand_epilogue): Call it.
7503 * config/mips/mips.md (return): Turn into a define_expand.
7504 (*return): New insn.
7505
c41c1387
RS
75062008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7507
7508 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
7509 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
7510 functions. Do not emit uses and clobbers of CONCATs; individually
7511 use and clobber their operands.
7512 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
7513 gen_clobber, emit_use and gen_use.
7514 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
7515 (expand_builtin_return): Likewise.
7516 * cfgbuild.c (count_basic_blocks): Likewise.
7517 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
7518 * explow.c (emit_stack_restore): Likewise.
7519 * expmed.c (extract_bit_field_1): Likewise.
7520 * expr.c (convert_move, emit_move_complex_parts): Likewise.
7521 (emit_move_multi_word, store_constructor): Likewise.
7522 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
7523 (thread_prologue_and_epilogue_insns): Likewise.
7524 * lower-subreg.c (resolve_simple_move): Likewise.
7525 * optabs.c (widen_operand, expand_binop): Likewise.
7526 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
7527 * reload.c (find_reloads): Likewise.
7528 * reload1.c (eliminate_regs_in_insn): Likewise.
7529 * stmt.c (expand_nl_goto_receiver): Likewise.
7530 * config/alpha/alpha.md (builtin_longjmp): Likewise.
7531 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
7532 * config/arm/arm.c (arm_load_pic_register): Likewise.
7533 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
7534 * config/arm/arm.md (untyped_return): Likewise.
7535 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
7536 * config/avr/avr.c (expand_prologue): Likewise.
7537 * config/bfin/bfin.c (do_unlink): Likewise.
7538 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
7539 * config/cris/cris.c (cris_expand_prologue): Likewise.
7540 * config/darwin.c (machopic_indirect_data_reference): Likewise.
7541 (machopic_legitimize_pic_address): Likewise.
7542 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
7543 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
7544 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
7545 (ix86_expand_convert_uns_didf_sse): Likewise.
7546 (ix86_expand_vector_init_general): Likewise.
7547 * config/ia64/ia64.md (eh_epilogue): Likewise.
7548 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
7549 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
7550 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
7551 (config/iq2000/iq2000.c): Likewise.
7552 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
7553 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
7554 (builtin_longjmp): Likewise.
7555 * config/mn10300/mn10300.md (call, call_value): Likewise.
7556 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
7557 * config/pdp11/pdp11.md (abshi2): Likewise.
7558 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
7559 * config/s390/s390.c (s390_emit_prologue): Likewise.
7560 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
7561 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
7562 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
7563 * config/sh/sh.c (prepare_move_operands): Likewise.
7564 (output_stack_adjust, sh_expand_epilogue): Likewise.
7565 (sh_set_return_address, sh_expand_t_scc): Likewise.
7566 * config/sparc/sparc.c (load_pic_register): Likewise.
7567 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
7568 * config/spu/spu.c (spu_expand_epilogue): Likewise.
7569 * config/v850/v850.c (expand_epilogue): Likewise.
7570
794cb45e
AS
75712008-05-31 Anatoly Sokolov <aesok@post.ru>
7572
7573 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
7574 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
7575 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
22129589
AS
7576 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
7577 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
794cb45e 7578 stack pointer register.
22129589 7579 (output_movhi): Remove code for interrupt specific writing to the
794cb45e
AS
7580 stack pointer register.
7581
39f8a3b0
RG
75822008-05-31 Richard Guenther <rguenther@suse.de>
7583
7584 PR tree-optimization/34244
7585 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
7586 (tree_expr_nonzero_warnv_p): Likewise.
7587 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
7588 ssa_name_nonnegative_p.
7589 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
7590 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
7591 not tree_expr_nonzero_warnv_p.
7592
7593 PR tree-optimization/36262
7594 Revert
7595 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
7596
69002843
UB
7597 PR tree-optimization/34244
7598 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
7599 (record_numbers_of_iterations): New function.
7600 (execute_vrp): Cache the numbers of iterations of loops.
7601 * tree-scalar-evolution.c (scev_reset_except_niters):
7602 New function.
7603 (scev_reset): Use scev_reset_except_niters.
7604 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 7605
2643f14e
BS
76062008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
7607
7608 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
7609 __WORKAROUND_RETS when appropriate.
7610
ca3a2165
UB
76112008-05-31 Uros Bizjak <ubizjak@gmail.com>
7612
7613 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
7614 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
7615 mode iterator.
7616 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
7617 *fop_df_comm_sse insn patterns using MODEF mode iterator.
7618 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
7619 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
7620 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
7621 *fop_df_1_mixed insn patterns using MODEF mode iterator.
7622 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
7623 *fop_df_1_sse insn patterns using MODEF mode iterator.
7624 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
7625 *fop_df_1_i387 insn patterns using MODEF mode iterator.
7626 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
7627 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
7628 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
7629 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
7630 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
7631 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
7632 (*fop_xf_4_i387): Use <MODE> for mode attribute.
7633 (*fop_xf_5_i387): Ditto.
7634 (*fop_xf_6_i387): Ditto.
7635
acdfeac3
RG
76362008-05-30 Richard Guenther <rguenther@suse.de>
7637
7638 * builtins.c (build_string_literal): Avoid generating
7639 a non-gimple_val result.
7640
97c3860d
DD
76412008-05-30 DJ Delorie <dj@redhat.com>
7642
7643 * exec-tool.in: Use an environment variable (private) instead of a
7644 file (shared) as a semaphore, so as to not break parallel builds.
7645
856905c2
SB
76462008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
7647
7648 * optabs.c (maybe_encapsulate_block): Remove.
7649 (emit_libcall_block): Adjust accordingly.
7650 * optabs.h (maybe_encapsulate_block): Remove prototype.
7651
7652 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
7653 Don't use maybe_encapsulate_block.
7654
0cdc04e8
SB
76552008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
7656
7657 * config/rs6000/rs6000.c (rs6000_legitimize_address,
7658 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
7659 rtx is a SYMBOL_REF before calling get_pool_constant.
7660
bfab40f8
EB
76612008-05-30 Eric Botcazou <ebotcazou@adacore.com>
7662
7663 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
7664
c100de59
DS
76652008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
7666
7667 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
7668 rather than OS names to choose INO_T_EQ definition.
7669 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 7670 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 7671
c776a6d0
DF
76722008-05-29 Daniel Franke <franke.daniel@gmail.com>
7673
7674 PR target/36348
7675 * config/darwin-f.c: New.
7676 * config/t-darwin: Added rule to build darwin-f.o.
7677 * config.gcc: Defined new variable, fortran_target_objs.
7678 (*-*-darwin*): Set fortran_target_objs.
7679 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 7680 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
7681 * configure: Regenerated.
7682
a20007a4
L
76832008-05-29 H.J. Lu <hongjiu.lu@intel.com>
7684
7685 PR target/35771
7686 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
7687 canonical type if needed.
7688
4efa7ef9
EB
76892008-05-29 Eric Botcazou <ebotcazou@adacore.com>
7690
7691 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
7692
2f571334
RG
76932008-05-29 Richard Guenther <rguenther@suse.de>
7694
7695 PR tree-optimization/36343
7696 PR tree-optimization/36346
7697 PR tree-optimization/36347
7698 * tree-flow.h (clobber_what_p_points_to): Declare.
7699 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
7700 pointed-to variable is dereferenced is irrelevant to whether
7701 the pointer can access the pointed-to variable.
7702 (clobber_what_p_points_to): New function.
7703 * tree-ssa-alias.c (set_initial_properties): Use it.
7704 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
7705 call clobber check for NMTs.
7706
68bb68ca 77072008-05-28 Seongbae Park <seongbae.park@gmail.com>
22129589 7708
68bb68ca
SP
7709 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
7710 for printing gcov_type.
7711
b608a1bc
SP
77122008-05-28 Seongbae Park <seongbae.park@gmail.com>
7713
7714 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
7715 and the eh region information.
7716 * value-prof.c (gimple_move_stmt_histograms): New function.
7717 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
7718
77da4248
AT
77192008-05-28 Andreas Tobler <a.tobler@schweiz.org>
7720
7721 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
7722
3dfb6f59
SP
77232008-05-28 Seongbae Park <seongbae.park@gmail.com>
7724
7725 * value-prof.c (tree_ic_transform): Print counts.
7726 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
7727 Clear __gcov_indreict_call_callee variable to avoid misattribution
7728 of the profile.
3dfb6f59 7729
5a976da0
RAE
77302008-05-28 Rafael Espindola <espindola@google.com>
7731
7732 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
7733 invalid sharing.
7734
38154e4f
RG
77352008-05-28 Richard Guenther <rguenther@suse.de>
7736
7737 PR tree-optimization/36339
7738 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
7739 and clobbering code out of the loop.
7740
963fc8d0
AK
77412008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
7742
7743 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
7744 letters defined.
7745
7746 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
7747 s390_contiguous_bitmask_p, s390_symref_operand_p,
7748 s390_check_symref_alignment, s390_reload_larl_operand,
7749 s390_reload_symref_address): New functions.
7750 (s390_branch_condition_mnemonic): Support compare and branch
7751 instructions.
7752 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
7753 and 'W' constraints.
7754 (s390_secondary_reload): Add secondary reloads for unaligned
7755 symbol refs or symbol refs to floating point or QI/TI mode
7756 integer values.
7757 (legitimate_address_p): Accept symbol references as addresses.
7758 (s390_expand_insv): Use rotate and insert selected bits
7759 instruction for insv when building for z10.
7760 (print_operand_address): Handle symbol ref addresses.
ca3a2165 7761 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
7762 (s390_encode_section_info): Mark symbol refs with
7763 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
7764
7765 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
7766 (length attribute): RRF, RRR have 4 byte length.
7767 (FPALL, INTALL): New mode iterators added.
7768 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
7769 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
7770 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
7771 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
7772 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
7773 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
7774 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
7775 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
7776 instructions.
7777 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
7778 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
7779 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
7780 reload<INTALL:mode><P:mode>_toreg_z10,
7781 reload<FPALL:mode><P:mode>_tomem_z10,
7782 reload<FPALL:mode><P:mode>_toreg_z10,
7783 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
7784 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
7785 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
7786 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
7787 definition.
7788 (movmem, clrmem, cmpmem): New splitters added.
7789
7790 * config/s390/predicates.md (larl_operand): Use
7791 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
7792 SYMBOL_REF_ALIGN1_P.
7793 (s390_signed_integer_comparison,
7794 s390_unsigned_integer_comparison): New predicates.
7795
7796 * config/s390/s390-protos.h (s390_check_symref_alignment,
7797 s390_contiguous_bitmask_p, s390_reload_larl_operand,
7798 s390_reload_symref_address,
7799 s390_compare_and_branch_condition_mask): Prototypes added.
7800
7801 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
7802 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
7803 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
7804
93538e8e
AK
78052008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
7806
7807 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 7808 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
7809 (s390_issue_rate): Adjust issue rate for z10.
7810 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
7811 (processor_flags): Add PF_Z10.
7812 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
7813 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
7814 * gcc/config.gcc: Add z10.
7815
540f6bda
RG
78162008-05-28 Richard Guenther <rguenther@suse.de>
7817
7818 PR tree-optimization/36291
7819 * tree-flow. h (struct gimple_df): Remove var_anns member.
7820 * tree-flow-inline.h (gimple_var_anns): Remove.
7821 (var_ann): Simplify.
7822 * tree-dfa.c (create_var_ann): Simplify.
7823 (remove_referenced_var): Clear alias info from var_anns of globals.
7824 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
7825 (delete_tree_ssa): Clear alias info from var_anns of globals.
7826 Do not free var_anns.
7827 (var_ann_eq): Remove.
7828 (var_ann_hash): Likewise.
7829
33db2060
MS
78302008-05-28 Mark Shinwell <shinwell@codesourcery.com>
7831
7832 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
7833 and loongson2f entries.
7834 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
7835 * config/mips/mips.h (processor_type): Add Loongson-2E
7836 and Loongson-2F entries.
7837 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
7838 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
7839 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
7840 * doc/invoke.texi (MIPS Options): Document loongson2e
7841 and loongson2f processor names.
7842
23ac85e7
L
78432008-05-27 H.J. Lu <hongjiu.lu@intel.com>
7844
7845 PR target/35767
7846 PR target/35771
7847 * config/i386/i386.c (ix86_function_arg_boundary): Use
7848 alignment of canonical type.
7849 (ix86_expand_vector_move): Check unaligned memory access for
7850 all SSE modes.
7851
3395aa05
L
78522008-05-27 H.J. Lu <hongjiu.lu@intel.com>
7853
7854 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
7855 Moved to the front of file.
7856
3ce6e42e
XG
78572008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
7858 H.J. Lu <hongjiu.lu@intel.com>
7859
7860 * dwarf2out.c (current_fde): New.
7861 (add_cfi): Use it.
7862 (lookup_cfa:): Likewise.
7863 (dwarf2out_end_epilogue): Likewise.
7864 (dwarf2out_note_section_used): Likewise.
7865
a3299096
MM
78662008-05-27 Michael Matz <matz@suse.de>
7867
7868 PR c++/27975
7869 * c.opt (Wenum-compare): New warning option.
7870 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
7871
bd42a56b
MM
78722008-05-27 Michael Matz <matz@suse.de>
7873
7874 PR middle-end/36326
7875 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
7876 non-BLKmode types.
7877 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
7878 into memory as tail calls.
7879
a46fc136
RG
78802008-05-27 Richard Guenther <rguenther@suse.de>
7881
7882 PR tree-optimization/36339
7883 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
7884 pointers cause all addressable variables to be call clobbered.
7885
6fe2f65a
RG
78862008-05-27 Richard Guenther <rguenther@suse.de>
7887
7888 PR tree-optimization/36245
ca3a2165 7889 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 7890
fb492564
AK
78912008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
7892
7893 * config/s390/s390.md: Replace all occurences of the 'm'
7894 constraint with 'RT'.
7895
3af8e996
AK
78962008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
7897
7898 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
7899 definitions added.
7900 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
7901 "*movdi_64".
7902 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
7903 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
7904 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
7905
7ac28727
AK
79062008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
7907
7908 * reload.c: (find_reloads): Skip alternatives according to the
7909 "enabled" attribute. Constify the constraint variable.
7910 * recog.c (get_attr_enabled): Add default implementation.
7911 (extract_insn): Set the alternative_enabled_p array
7912 in the recog_data struct.
7913 (preprocess_constraints, constrain_operands): Skip
7914 alternatives according to the "enabled" attribute
7915 * recog.h (struct recog_data): New field alternative_enabled_p.
7916 (skip_alternative): New inline function.
ca3a2165 7917 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
7918 (record_reg_classes): Skip alternative according to the
7919 "enabled" attribute.
7920
7921 * doc/md.texi: Add documention for the "enabled" attribute.
7922
a4edaf83
AK
79232008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
7924
7925 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
7926 * postreload.c (reload_cse_simplify_operands): Replace 'm'
7927 constraint with TARGET_MEM_CONSTRAINT.
7928 * recog.c (asm_operand_ok, preprocess_constraints,
7929 constrain_operands): Likewise.
7930 * regclass.c (record_reg_classes): Likewise.
ca3a2165 7931 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 7932 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 7933 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
7934 * recog.h: Adjust comment.
7935 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 7936 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
7937 * doc/md.texi: Add a note to description of 'm' constraint.
7938 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
7939
469dfae9
EB
79402008-05-27 Eric Botcazou <ebotcazou@adacore.com>
7941
7942 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
7943 that the bitfield is of integral type before testing its precision.
7944
986a8d90 79452008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22129589 7946 Sa Liu <saliu@de.ibm.com>
986a8d90 7947
22129589 7948 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
986a8d90
TS
7949 __modti3, __udivti3, __umodti3 and __udivmodti4.
7950 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
7951 that implement TImode mul and div functions.
7952 * config/spu/multi3.c: New. Implement __multi3.
7953 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
7954 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
7955 functions on SPU.
7956
02135bc1
SB
79572008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
7958
7959 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
7960 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
7961 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
7962 tls_sysv_suffix): New mode and mode attribute iterators.
7963 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
7964 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
7965 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
7966 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
7967 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
7968 iterators.
7969
ba977e1a
EB
79702008-05-26 Eric Botcazou <ebotcazou@adacore.com>
7971
7972 PR tree-optimization/36329
7973 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
7974 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
7975 * cgraphbuild.c (initialize_inline_failed): Use the latter
7976 macro in lieu of the former.
7977 * ipa-inline.c (cgraph_mark_inline): Likewise.
7978 (cgraph_decide_inlining_of_small_function): Likewise.
7979 (cgraph_decide_inlining): Likewise.
7980 (cgraph_decide_inlining_incrementally): Likewise.
7981
4d492420 79822008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 7983 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
7984
7985 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
7986 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
22129589 7987 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
4d492420
TG
7988 optimization for 'avr6' architecture.
7989
319a58c6
AH
79902008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
7991
7992 PR target/34932
7993 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
7994
26fa9076
RG
79952008-05-26 Richard Guenther <rguenther@suse.de>
7996
7997 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 7998 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 7999
76fe54f0
L
80002008-05-26 H.J. Lu <hongjiu.lu@intel.com>
8001
8002 PR middle-end/36253
ca3a2165 8003 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 8004 (insert_save): Likewise.
76fe54f0 8005 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
8006 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
8007 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
8008 * function.c (LOCAL_ALIGNMENT): Removed.
8009 (get_stack_local_alignment): New.
8010 (assign_stack_local): Use it. Set alignment on stack slot.
8011 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
8012 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
8013 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
8014 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
8015 stack slot in XFmode.
8016
8017 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
8018
e5f005e1
KT
80192008-05-26 Kai Tietz <kai.tietz@onevision.com>
8020
8021 PR/36321
8022 * config/i386/i386.md (allocate_stack_worker_64): Make sure
8023 argument operand in rax isn't removed.
8024
fcb4587e
RG
80252008-05-26 Richard Guenther <rguenther@suse.de>
8026
8027 PR middle-end/36300
8028 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
8029 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
8030
25497730
DF
80312008-05-26 Daniel Franke <franke.daniel@gmail.com>
8032
8033 PR bootstrap/36331
8034 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
8035
e8a25ca8
DH
80362008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
8037
8038 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
8039 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
8040
3651f7ad
EB
80412008-05-25 Eric Botcazou <ebotcazou@adacore.com>
8042
ca3a2165 8043 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
8044 build a trampoline if we don't want one.
8045 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
8046 return zero for nested functions if we don't want a trampoline.
8047
b885a4c1
DF
80482008-05-26 Daniel Franke <franke.daniel@gmail.com>
8049
8050 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
8051
670637ee
DF
80522008-05-26 Daniel Franke <franke.daniel@gmail.com>
8053
8054 PR fortran/18428
8055 * c.opt: Removed undocumented option '-lang-fortran'.
8056 * c-common.h: Removed global variable 'lang_fortran'.
8057 * c-opts.c (c_common_handle_option): Removed code to handle
8058 option '-lang-fortran'. Updated includes.
8059 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
8060 definition of '__GFORTRAN__'.
8061 (define__GNUC__): Reimplemented to use BASEVER and
8062 cpp_define_formatted.
8063 (builtin_define_with_value_n): Removed.
8064 * c-incpath.h: Renamed to ...
8065 * incpath.h: ... this.
8066 * c-incpath.c: Renamed to ...
8067 * incpath.c: ... this. Updated includes.
8068 * fix-header.c: Updated includes.
8069 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
8070 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
8071 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
8072
4cea6c02
EB
80732008-05-25 Eric Botcazou <ebotcazou@adacore.com>
8074
8075 * tree.h: Update the table of flags used on tree nodes.
8076 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
8077 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
8078 (FORCED_LABEL): Add access check.
8079 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
8080 (ASM_INPUT_P): Likewise.
8081 (ASM_VOLATILE_P): Likewise.
8082 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
8083 (OMP_SECTION_LAST): Access private_flag directly.
8084 (OMP_RETURN_NOWAIT): Likewise.
8085 (OMP_PARALLEL_COMBINED): Likewise.
8086 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
8087 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
8088 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
8089 deprecated_flag directly.
8090
3bffa195
L
80912008-05-25 H.J. Lu <hongjiu.lu@intel.com>
8092
8093 * final.c (frame_pointer_needed): Removed.
8094 * flags.h (frame_pointer_needed): Likewise.
8095
8096 * function.h (rtl_data): Add frame_pointer_needed.
8097 (frame_pointer_needed): New.
8098
93fea8d3
AL
80992008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
8100
8101 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
8102
29470771
SB
81032008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
8104
8105 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
8106 SRC is a REG.
8107
dd25a747
AM
81082008-05-25 Alan Modra <amodra@bigpond.net.au>
8109
8110 * c-common.c (strip_array_types): Move function to..
8111 * tree.c: ..here.
8112 (get_inner_array_type): Delete.
8113 * c-common.h (strip_array_types): Move declaration to..
8114 * tree.h: ..here.
8115 (get_inner_array_type): Delete.
8116 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
8117 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8118 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8119 * config/pa/pa.c (emit_move_sequence): Likewise.
8120
c36c9821
L
81212008-05-24 H.J. Lu <hongjiu.lu@intel.com>
8122
8123 * config/i386/i386.md (*sse_prologue_save_insn): Set length
8124 attribute to 34.
8125
88280cf9
AH
81262008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
8127
8128 * function.c: Include target hook for nonlocal_goto frame value.
8129
7c88f67a
RG
81302008-05-24 Richard Guenther <rguenther@suse.de>
8131
ca3a2165
UB
8132 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
8133 variable can be only accessed through a pointer or a union.
7c88f67a 8134
32101f99
KG
81352008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8136
8137 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
8138 * doc/extend.texi: Likewise.
8139
80b093df
DD
81402008-05-23 DJ Delorie <dj@redhat.com>
8141
c9db440d
DD
8142 * config/m32c/jump.md (untyped_call): Add.
8143
80b093df
DD
8144 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
8145 for A24 to PSImode.
8146 (m32c_address_cost): Detail costs for indirect offsets.
8147
fbcfcb3c
RAE
81482008-05-23 Rafael Espindola <espindola@google.com>
8149
8150 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
8151 if a node is a SUBREG.
8152 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
8153 is a SUBREG.
8154
007e61c2
PB
81552008-05-23 Paul Brook <paul@codesourcery.com>
8156 Carlos O'Donell <carlos@codesourcery.com>
8157
8158 * doc/extend.texi: Clarify use of __attribute__((naked)).
8159 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8160 * target.h (gcc_target): Add allocate_stack_slots_for_args.
8161 * function.c (use_register_for_decl): Use
8162 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
8163 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
8164 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
8165 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
8166
a2acd8bf
EB
81672008-05-23 Eric Botcazou <ebotcazou@adacore.com>
8168
8169 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
8170
c201998a
SM
81712008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
8172
8173 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
8174 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
8175 is only rounded once.
8176
833248d2
RG
81772008-05-23 Richard Guenther <rguenther@suse.de>
8178
ca3a2165 8179 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 8180
922e3e33
UB
81812008-05-23 Uros Bizjak <ubizjak@gmail.com>
8182 Jakub Jelinek <jakub@redhat.com>
8183
8184 PR target/36079
8185 * configure.ac: Handle --enable-cld.
8186 * configure: Regenerated.
8187 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
8188 * config/i386/i386.h (struct machine_function): Add needs_cld field.
8189 (ix86_current_function_needs_cld): New define.
8190 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
8191 (cld): New isns pattern.
8192 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
8193 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
8194 * config/i386/i386.opt (mcld): New option.
8195 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
8196 TARGET_CLD and ix86_current_function_needs_cld.
8197 (override_options): Use -mcld by default for 32-bit code if
8198 USE_IX86_CLD.
8199
8200 * doc/install.texi (Options specification): Document --enable-cld.
8201 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
8202 [i386 and x86-64 Options]: Add -mcld option.
8203 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 8204
71995c2c
KT
82052008-05-23 Kai Tietz <kai.tietz@onevison.com>
8206 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
8207 (return_in_memory_64): Likewise.
8208 (return_in_memory_ms_64): Likewise.
8209
3bf5906b
KG
82102008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8211
8212 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
8213 * builtins.c (fold_builtin_fpclassify): New.
8214 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
8215 * builtins.def (BUILT_IN_FPCLASSIFY): New.
8216 * c-common.c (handle_type_generic_attribute): Adjust to accept
8217 fixed arguments before an elipsis.
8218 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
8219 * doc/extend.texi: Document __builtin_fpclassify.
8220
c63cac47
AH
82212008-05-22 Aldy Hernandez <aldyh@redhat.com>
8222
8223 * omp-low.c (gate_expand_omp_ssa): Remove.
8224 (pass_expand_omp_ssa): Remove.
8225 (gate_expand_omp): Do not check for flag_openmp_ssa.
8226 * common.opt (-fopenmp-ssa): Remove.
8227 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
8228
3217af3e
KK
82292008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
8230
8231 * config/sh/sh.opt (mfixed-range): New option.
8232 * config/sh/sh-protos.h (sh_fix_range): Declare.
8233 * config/sh/sh.c (sh_fix_range): New function.
8234 * config/sh/sh.h (sh_fixed_range_str): Declare.
8235 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
8236 is not empty.
8237 * doc/invoke.texi (SH Options): Document -mfixed-range.
8238
42b18a21
KT
82392008-05-22 Kai Tietz <kai.tietz@onevision.com>
8240
8241 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
8242 it before the redeclaration.
8243
97822902
AS
82442008-05-22 Anatoly Sokolov <aesok@post.ru>
8245
8246 * config/avr/avr.c (get_sequence_length): Add new function.
8247 (expand_prologue, expand_epilogue): Remove duplicate code.
8248
4799e6aa
RAE
82492008-05-22 Rafael Espindola <espindola@google.com>
8250
8251 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
8252 sharing.
8253
9d3a9de1
L
82542008-05-22 H.J. Lu <hongjiu.lu@intel.com>
8255
8256 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
8257 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
8258
8259 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
8260 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
8261 (vect_update_misalignment_for_peel): Likewise.
8262 (vector_alignment_reachable_p): Likewise.
8263 * tree-vect-transform.c (vectorizable_load): Likewise.
8264 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
8265 (get_vectype_for_scalar_type): Pass mode of scalar_type
8266 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
8267
8268 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
8269 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
8270 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8271 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8272 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8273
f8b52c2f
IR
82742008-05-22 Ira Rosen <irar@il.ibm.com>
8275
8276 PR tree-optimization/36293
8277 * tree-vect-transform.c (vect_transform_strided_load): Don't check
8278 if the first load must be skipped because of a gap.
8279
1842e4d4
RG
82802008-05-22 Richard Guenther <rguenther@suse.de>
8281
8282 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
8283 more cases of offset disambiguation that is possible if
8284 strict-aliasing rules apply.
8285 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
8286 for basic offset and type-based disambiguation.
8287
31ebe593
L
82882008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8289
8290 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
8291 ix86_expand_vector_set on V16QImode for SSE4.1.
8292
c24d4112
TT
82932008-05-21 Tom Tromey <tromey@redhat.com>
8294
8295 * c.opt (Wimport): Mark as undocumented.
8296 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
8297 -Wno-import.
8298 (Warning Options): Likewise.
8299 * doc/cppopts.texi: Don't mention -Wimport.
8300
4e8d7177
SP
83012008-05-21 Sebastian Pop <sebastian.pop@amd.com>
8302
8303 PR tree-optimization/36287
8304 PR tree-optimization/36286
8305 * lambda-code.c (build_access_matrix): Do not use the loop->num
8306 for computing the number of induction variables: use the loop depth
8307 instead.
8308
6110c44a
KT
83092008-05-21 Kai Tietz <kai.tietz@onevision.com>
8310
8311 PR/36280
8312 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
8313 option -f(no-)leading-underscore.
8314
e73caa00
L
83152008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8316
8317 * config/i386/i386.c (ix86_expand_vector_init_general): Use
8318 GET_MODE_NUNITS (mode).
8319
4adf8008
PB
83202008-05-21 Peter Bergner <bergner@vnet.ibm.com>
8321
8322 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
8323 (-mmulhw): Add 464 to description.
8324 (-mdlmzb): Likewise.
8325 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
8326 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
8327 464fp entries.
8328 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
8329 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
8330 * config/rs6000/rs6000.md: Update comments for 464.
8331
00a25a2d
JJ
83322008-05-21 Janis Johnson <janis187@us.ibm.com>
8333
8334 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
8335
80980aec
L
83362008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8337
8338 * config/i386/sse.md (vec_extractv4sf): Removed.
8339 (vec_extractv2df): Likewise.
8340 (vec_extractv2di): Likewise.
8341 (vec_extractv4si): Likewise.
8342 (vec_extractv8hi): Likewise.
8343 (vec_extractv16qi): Likewise.
8344 (vec_extract<mode>): New.
8345
349587b8
L
83462008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8347
8348 * config/i386/sse.md (vec_setv4sf): Removed.
8349 (vec_setv2df): Likewise.
8350 (vec_setv2di): Likewise.
8351 (vec_setv4si): Likewise.
8352 (vec_setv8hi): Likewise.
8353 (vec_setv16qi): Likewise.
8354 (vec_set<mode>): New.
8355
0864e1e8
L
83562008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8357
8358 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
8359 goto for vec_concat and vec_interleave.
8360
f8caa3a8
L
83612008-05-21 H.J. Lu <hongjiu.lu@intel.com>
8362
8363 * config/i386/sse.md (vec_initv4sf): Removed.
8364 (vec_initv2df): Likewise.
8365 (vec_initv2di): Likewise.
8366 (vec_initv4si): Likewise.
8367 (vec_initv8hi): Likewise.
8368 (vec_initv16qi): Likewise.
8369 (vec_init<mode>): New.
8370
fb291f50
JM
83712008-05-21 Joseph Myers <joseph@codesourcery.com>
8372
8373 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
8374
dae4174e
TT
83752008-05-21 Tom Tromey <tromey@redhat.com>
8376
8377 * ggc-zone.c (lookup_page_table_if_allocated): New function.
8378 (zone_find_object_offset): Likewise.
8379 (gt_ggc_m_S): Likewise.
8380 (highest_bit): Likewise.
8381 * ggc-page.c (gt_ggc_m_S): New function.
8382 * stringpool.c (string_stack): Remove.
8383 (init_stringpool): Update.
8384 (ggc_alloc_string): Use ggc_alloc.
8385 (maybe_delete_ident): New function.
8386 (ggc_purge_stringpool): Likewise.
8387 (gt_ggc_m_S): Remove.
8388 * ggc-common.c (ggc_protect_identifiers): New global.
8389 (ggc_mark_roots): Call ggc_purge_stringpool. Use
8390 ggc_protect_identifiers.
8391 * ggc.h (ggc_protect_identifiers): Declare.
8392 (gt_ggc_m_S): Update.
8393 (ggc_purge_stringpool): Declare.
8394 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
8395 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
8396 special case.
8397 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
8398
ccbdd3bc
DM
83992008-05-21 David S. Miller <davem@davemloft.net>
8400
8401 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
8402 tmake_file.
8403
e8a2a782
EB
84042008-05-21 Eric Botcazou <ebotcazou@adacore.com>
8405
8406 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
8407 once finished.
8408
06d19617
DD
84092008-05-20 David Daney <ddaney@avtrex.com>
8410
8411 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
8412 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
8413 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
8414 UNSPEC_UPDATE_GOT_VERSION): Renumber.
8415 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
8416 (atomic_hiqi_op): New define_code_iterator.
922e3e33 8417 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
8418 mips_expand_compare_and_swap_12.
8419 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 8420 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
8421 (sync_<optab><mode>, sync_old_<optab><mode>,
8422 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 8423 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
8424 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
8425 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 8426 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
8427 (test_and_set_12): New insn.
8428 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
8429 sync_new_<optab><mode>, sync_old_nand<mode>,
8430 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
8431 clobber to operand 0 for SI and DI mode insns.
8432 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
8433 mips_gen_fn_4): New typedefs.
8434 (mips_gen_fn_ptrs): Define new union type.
8435 (mips_expand_compare_and_swap_12): Remove declaration.
8436 (mips_expand_atomic_qihi): Declare function.
8437 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
8438 (mips_expand_atomic_qihi): ... this. Use new generator function
8439 parameter.
8440 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
8441 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 8442 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
8443 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
8444 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
8445 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
8446 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
8447 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
8448 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
8449 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
8450 New macros.
06d19617 8451
a35f6a35
L
84522008-05-20 H.J. Lu <hongjiu.lu@intel.com>
8453
8454 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
8455 the missing break.
8456
9b678d96
AS
84572008-05-20 Anatoly Sokolov <aesok@post.ru>
8458
8459 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
8460 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
8461 (avr_attribute_table): Add 'OS_main' function attribute.
8462 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
8463 functions with 'OS_main' attribute.
8464
6be34936
RG
84652008-05-20 Richard Guenther <rguenther@suse.de>
8466
8467 PR tree-optimization/35204
8468 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
8469 helper, split out from ...
8470 (DFS): ... here. Make the DFS walk non-recursive.
8471
9857228c
SP
84722008-05-20 Sebastian Pop <sebastian.pop@amd.com>
8473 Jan Sjodin <jan.sjodin@amd.com>
8474
8475 PR tree-optimization/36181
8476 * tree-parloops.c (loop_has_vector_phi_nodes): New.
8477 (parallelize_loops): Don't parallelize when the loop has vector
8478 phi nodes.
8479
9f275479
JS
84802008-05-20 Jan Sjodin <jan.sjodin@amd.com>
8481 Sebastian Pop <sebastian.pop@amd.com>
8482
922e3e33
UB
8483 * tree-loop-linear.c (gather_interchange_stats): Look in the access
8484 matrix, and never look at the tree representation of the memory
8485 accesses.
9f275479 8486 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
8487 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
8488 when fails.
9f275479
JS
8489 (access_matrix_get_index_for_parameter): New.
8490 * tree-data-ref.h (struct access_matrix): New.
8491 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
8492 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
8493 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
8494 am_vector_index_for_loop): New.
8495 (struct data_reference): Add field access_matrix.
8496 (DR_ACCESS_MATRIX): New.
8497 (compute_data_dependences_for_loop): Update declaration.
8498 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
8499 * lambda.h (lambda_vector_vec_p): Declared.
8500 * lambda-code.c: Depend on pointer-set.h.
8501 (lambda_collect_parameters_from_af, lambda_collect_parameters,
8502 av_for_af_base, av_for_af, build_access_matrix,
8503 lambda_compute_access_matrices): New.
8504 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
8505
f30fad61
JM
85062008-05-20 Joseph Myers <joseph@codesourcery.com>
8507
8508 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
8509 $SOURCEDIR/include.
8510
5b78fc3e
JS
85112008-05-20 Jan Sjodin <jan.sjodin@amd.com>
8512 Sebastian Pop <sebastian.pop@amd.com>
8513
8514 PR tree-optimization/36206
8515 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
8516 FOLD_CONVERSIONS.
8517 (instantiate_scev_1): Rename flags to fold_conversions.
8518 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
8519 outeside instantiation_loop.
8520 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
8521 (evolution_function_is_affine_or_constant_p): Removed.
8522 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
8523 instantiate_scev.
8524 (analyze_siv_subscript): Pass in the loop nest number.
22129589 8525 Call evolution_function_is_affine_in_loop instead of
5b78fc3e
JS
8526 evolution_function_is_affine_p.
8527 (analyze_overlapping_iterations): Pass in the loop nest number.
8528
85292008-05-20 Jan Sjodin <jan.sjodin@amd.com>
8530 Sebastian Pop <sebastian.pop@amd.com>
8531
8532 PR tree-optimization/36206
8533 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
8534 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
8535 and other trees.
5b78fc3e 8536
498f1c82
NS
85372008-05-20 Nathan Sidwell <nathan@codesourcery.com>
8538
8539 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
8540 (DIRS_EQ): New.
922e3e33
UB
8541 (remove_duplicates): Do not set inode on non-inode systems.
8542 Use DIRS_EQ.
498f1c82 8543
9c63c208
SL
85442008-05-20 Sandra Loosemore <sandra@codesourcery.com>
8545
8546 * config.gcc (tm_file): Update comments about relative pathnames.
8547
01902653
RG
85482008-05-20 Richard Guenther <rguenther@suse.de>
8549
922e3e33 8550 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
8551 * tree-ssa-sccvn.c (process_scc): Likewise.
8552 * tree-ssa-sink.c (execute_sink_code): Likewise.
8553 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
8554 * tree-vrp.c (process_assert_insertions): Likewise.
8555 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
8556 (perform_tree_ssa_dce): Likewise.
8557 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
8558 (dump_dominator_optimization_stats): Likewise.
8559 * tree-vectorizer.c (vectorize_loops): Likewise.
8560
4628e602
RG
85612008-05-20 Richard Guenther <rguenther@suse.de>
8562
8563 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
8564
3b23a6d3
KT
85652008-05-20 Kai Tietz <kai.tietz@onevision.com>
8566
8567 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
8568 (ix86_i386elf_return_in_memory): Likewise.
8569 (ix86_i386interix_return_in_memory): Likewise.
8570 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
8571 (SUBTARGET_RETURN_IN_MEMORY): New.
8572 * config/i386/i386elf.h: Likewise.
8573 * config/i386/ptx4-i.h: Likewise.
8574 * config/i386/sol2-10.h: Likewise.
8575 * config/i386/sysv4.h: Likewise.
8576 * config/i386/vx-common.h: Likewise.
8577 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
8578 * config/i386/i386.c (ix86_return_in_memory): Made static and
8579 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
8580 (ix86_i386elf_return_in_memory): Removed.
8581 (ix86_i386interix_return_in_memory): Removed.
8582 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
8583 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
8584
be9ed5d5
AO
85852008-05-20 Alexandre Oliva <aoliva@redhat.com>
8586
8587 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
8588
bc300fec
XDL
85892008-05-19 Xinliang David Li <davidxl@google.com>
8590
22129589 8591 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
bc300fec
XDL
8592 * opts.c: Ditto.
8593 * common.opt: Ditto.
8594 * doc/invoke.texi: Ditto.
8595
df8e1fdc
EB
85962008-05-19 Eric Botcazou <ebotcazou@adacore.com>
8597
8598 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 8599 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 8600
06a5f1ec
L
86012008-05-19 H.J. Lu <hongjiu.lu@intel.com>
8602
9479cae3 8603 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
8604 sizes of operand array from 8/4 to 4/2.
8605 (ix86_expand_vector_init_general): Change size of operand array
8606 from 32 to 16. Remove op0, op1 and half_mode.
8607
63e46cce
L
86082008-05-19 H.J. Lu <hongjiu.lu@intel.com>
8609
8610 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
8611 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
8612 (ix86_expand_vector_init_general): Use them. Assert
8613 word_mode == SImode when n_words == 4.
63e46cce 8614
83689be0
UB
86152008-05-19 Uros Bizjak <ubizjak@gmail.com>
8616
8617 * config/i386/i386.c (ix86_secondary_reload): New static function.
8618 (TARGET_SECONDARY_RELOAD): New define.
8619 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
8620 * config/i386/i386.md (reload_outqi): Remove.
8621
05f41289
KG
86222008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8623
8624 PR middle-end/35509
05f41289
KG
8625 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
8626 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
8627 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
8628 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
8629 (fold_builtin_1): Likewise.
8630 * builtins.def (BUILT_IN_ISINF_SIGN): New.
8631 c-common.c (check_builtin_function_arguments): Handle
8632 BUILT_IN_ISINF_SIGN.
8633 * doc/extend.texi: Document __builtin_isinf_sign.
8634 * fold-const.c (operand_equal_p): Handle COND_EXPR.
8635
45a7844f
EB
86362008-05-18 Eric Botcazou <ebotcazou@adacore.com>
8637
8638 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
8639 EH cleanup at the end of the pass, search for those that have been
8640 turned into forwarder blocks and do the cleanup on their successor.
8641
a86907b2
RG
86422008-05-18 Richard Guenther <rguenther@suse.de>
8643
8644 * tree-cfg.c (verify_gimple_expr): Allow conversions from
8645 pointers to sizetype and vice versa.
8646
e29cc9b4
XDL
86472008-05-18 Xinliang David Li <davidxl@google.com>
8648
8649 * gcc/tree-ssa-dce.c: Coding style fix.
22129589 8650 (check_pow): Documentation comment.
e29cc9b4
XDL
8651 (check_log): Documenation comment. Coding style fix.
8652 (is_unnecessary_except_errno_call): Ditto.
8653 (gen_conditions_for_pow): Ditto.
8654 (gen_conditions_for_log): Ditto.
8655 (gen_shrink_wrap_conditions): Ditto.
8656 (shrink_wrap_one_built_in_calls): Ditto.
8657 * gcc/doc/invoke.texi: Better documentation string.
22129589 8658 * ChangeLog: Fix wrong change log entries from
e29cc9b4
XDL
8659 May 17 checkin on function call DCE.
8660
eb6cbf91
KK
86612008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
8662
371a0575 8663 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 8664
bfe69700
KZ
86652008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
8666
8667 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
8668 * df-problems.c (simulation routines): Fixed block comment to
8669 properly say how to add forwards scanning functions.
22129589 8670
7c7d3047
EB
86712008-05-17 Eric Botcazou <ebotcazou@adacore.com>
8672
8673 * tree-inline.c (setup_one_parameter): Remove dead code.
8674
1e17e15a
EB
86752008-05-17 Eric Botcazou <ebotcazou@adacore.com>
8676
8677 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
8678 a BIT_AND_EXPR only for an INTEGER_TYPE.
8679
e29cc9b4
XDL
86802008-05-17 Xinliang David Li <davidxl@google.com>
8681
8682 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
22129589
AS
8683 (check_pow, check_log, is_unnecessary_except_errno_call): New
8684 functions to check for eliminating math functions that are pure
e29cc9b4
XDL
8685 except for setting errno.
8686 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
8687 general condition expressions for shrink-wrapping pow/log calls.
8688 (gen_shrink_wrap_conditions): Ditto.
8689 (shrink_wrap_one_built_in_call): Ditto.
8690 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
8691 (mark_operand_necessary): If debugging, output if OP is necessary.
8692 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
8693 unnecessary.
8694 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
8695 opt level >= 2.
8696 * gcc/common.opt: New user flag -ftree-builtin-dce.
8697 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
8698
b61eacd6
DM
86992008-05-16 David S. Miller <davem@davemloft.net>
8700
371a0575 8701 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
8702 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
8703
c62b3659
UB
87042008-05-16 Uros Bizjak <ubizjak@gmail.com>
8705
8706 PR target/36246
8707 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
8708
07b5bc83
KZ
87092008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
8710
8711 * ifcvt.c (dead_or_predicable): Rename
8712 df_simulate_one_insn_backwards to df_simulate_one_insn.
8713 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
8714 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
8715 Ditto.
07b5bc83
KZ
8716 * df.h: Rename df_simulate_one_insn_backwards to
8717 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
8718 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
8719 scanning of defs and uses.
8720 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
8721 (df_simulate_one_insn_forwards): Removed.
8722
f1f07a96
DK
87232008-05-16 Doug Kwan <dougkwan@google.com>
8724
8725 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
8726 QNaN & SNaN.
8727 (real_from_string): Handle NaNs and Inf as approriate.
8728
105f48ae
DN
87292008-05-16 Nathan Froyd <froydnj@codesourcery.com>
8730
8731 * doc/gty.texi (Source Files Containing Type Information): Note
8732 that headers should appear first in the gtfiles list.
8733
87342008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
8735
8736 * tree.def (COND_EXEC): Properly documented this code.
8737
87382008-05-16 Diego Novillo <dnovillo@google.com>
8739
8740 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
8741 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
8742 the new field.
8743
908ff6a3
KZ
87442008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
8745
8746 * tree-ssa-dse (max_stmt_uid): Removed.
22129589 8747 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
908ff6a3
KZ
8748 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
8749 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
8750 * function.h (cfun.last_stmt_uid): New field.
8751 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
8752 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
8753 New functions.
908ff6a3
KZ
8754 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
8755 (create_stmt_ann): Initialize the ann->uid field.
8756 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
8757 with new calls.
8758 * tree-flow.h (renumber_gimple_stmt_uids): New function.
8759
9defb1fe
DN
87602008-05-16 Nathan Froyd <froydnj@codesourcery.com>
8761
8762 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
8763 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
8764 (init_empty_tree_cfg): Call it.
8765
87662008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
8767
c62b3659
UB
8768 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
8769 Update all users.
9defb1fe 8770
3e894af1
KZ
87712008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
8772
8773 * doc/invoke.text (-fdump-tree-*-verbose): New option.
8774 * tree-dump.c (dump_options): New verbose option.
8775 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
8776 Add verbose dump.
8777 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 8778 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 8779 (tree-flow.h): Added include.
c62b3659 8780 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 8781
16869606
BS
87822008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
8783
4fc4d850
BS
8784 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
8785
16869606 8786 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 8787 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
8788 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
8789 mcpu=bf561-none and mcpu=bf561-0.2.
8790 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8791 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
8792 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8793 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 8794 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 8795 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
8796 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
8797 option.
8798 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
8799 (cputype_selected): Remove.
8800 (bfin_handle_option): Don't use cputype_selected.
8801 (override_options): When no mcpu option, enable all workarounds.
8802 Don't use bfin_workarounds.
8803 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
8804 processor type.
8805 (DEFAULT_CPU_TYPE): Don't define.
8806
d0569f9f
RG
88072008-05-16 Richard Guenther <rguenther@suse.de>
8808
8809 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
8810 on deletion of the last stmt.
8811
d0208f9b
L
88122008-05-15 H.J. Lu <hongjiu.lu@intel.com>
8813
8814 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
8815 V8HImode for SSE2 and V16QImode for SSE4.1.
8816
1920df6c
KZ
88172008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
8818
8819 * cgraph.h (compute_inline_parameters): Made public.
8820 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
8821 variable_generate_summary, function_write_summary,
371a0575
UB
8822 variable_write_summary, variable_read_summary. Added generate_summary,
8823 write_summary, read_summary.
1920df6c
KZ
8824 * cgraphunit.c (cgraph_process_new_functions): Changed call from
8825 pass_ipa_inline.function_generate_summary, to
22129589 8826 compute_inline_parameters.
1920df6c
KZ
8827 * ipa-inline.c (compute_inline_parameters): Made public and added
8828 node parameter.
8829 (compute_inline_parameters_for_current): New function.
c62b3659 8830 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
8831 (inline_generate_summary): Removed parameter and made to loop over
8832 all cgraph nodes.
8833 (pass_ipa_inline): Updated for new IPA_PASS structure.
8834 * passes.c (execute_ipa_summary_passes): Now is called once per
8835 pass rather than once per node*pass.
22129589 8836
470a4c97
AS
88372008-05-15 Anatoly Sokolov <aesok@post.ru>
8838
22129589 8839 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
470a4c97
AS
8840 avr_have_mul_p, avr_asm_only_p): Remove variables.
8841 (avr_override_options): Remove initialization of removed variables.
22129589
AS
8842 (avr_file_start): Convert removed variables to fields of
8843 'struct base_arch_s *avr_current_arch'.
470a4c97
AS
8844 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
8845 (AVR_HAVE_MUL): (Ditto.).
8846 (AVR_HAVE_MOVW): (Ditto.).
22129589
AS
8847 (AVR_HAVE_LPMX): (Ditto.).
8848 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
470a4c97
AS
8849 avr_asm_only_p): Remove declaration.
8850
f4dea66f
DN
88512008-05-15 Diego Novillo <dnovillo@google.com>
8852
c62b3659 8853 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
8854 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
8855
36dafbd1
AN
88562008-05-15 Adam Nemet <anemet@caviumnetworks.com>
8857
8858 PR middle-end/36194
c62b3659
UB
8859 * combine.c (check_conversion): Rename back to check_promoted_subreg.
8860 Don't call record_truncated_value from here.
8861 (record_truncated_value): Turn it into a for_each_rtx callback.
8862 (record_truncated_values): New function.
8863 (combine_instructions): Call note_uses with record_truncated_values.
22129589 8864 Change name of check_conversion to check_promoted_subreg.
36dafbd1 8865
91a5b394
JJ
88662008-05-15 Janis Johnson <janis187@us.ibm.com>
8867
8868 * doc/sourcebuild.texi: Document support for torture tests.
8869
2819ae08
UB
88702008-05-15 Uros Bizjak <ubizjak@gmail.com>
8871
8872 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
8873 to alternative 4 of operand 2.
8874
9fe0cb7d
RG
88752008-05-15 Richard Guenther <rguenther@suse.de>
8876
8877 * tree-pass.h (current_pass): Declare.
8878 (get_pass_for_id): Likewise.
8879 * passes.c (passes_by_id, passes_by_id_size): New globals.
8880 (set_pass_for_id): New function.
8881 (get_pass_for_id): Likewise.
8882 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
8883 (execute_function_todo): Flush per function statistics.
8884 * toplev.c (compile_file): Init statistics.
8885 (general_init): Do early statistics initialization.
8886 (finalize): Finish statistics.
8887 * statistics.h (statistics_early_init): Declare.
8888 (statistics_init): Likewise.
8889 (statistics_fini): Likewise.
8890 (statistics_fini_pass): Likewise.
8891 (statistics_counter_event): Likewise.
8892 (statistics_histogram_event): Likewise.
8893 * statistics.c: New file.
8894 * Makefile.in (OBJS-common): Add statistics.o.
8895 (statistics.o): Add dependencies.
8896 * doc/invoke.texi (-fdump-statistics): Document.
8897
8898 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
8899 (insert): Likewise.
8900 (execute_pre): Use statistics_counter_event.
8901 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
8902 (substitute_and_fold): Increment it. Use statistics_counter_event.
8903
77f377f7
DN
89042008-05-15 Diego Novillo <dnovillo@google.com>
8905
8906 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
8907
8908 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
8909 * tree-ssa-alias.c (new_type_alias): Remove references to
8910 sub-variables from comment.
8911 * tree-ssa-operands.c (swap_tree_operands): Likewise.
8912
89b7851e
L
89132008-05-15 H.J. Lu <hongjiu.lu@intel.com>
8914
8915 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
8916 attribute to 1 only for insertps alternative.
8917
8fa477f7
BS
89182008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
8919
8920 * config/bfin/bfin.md (loadbytes): New pattern.
8921 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
8922 (bfin_init_builtins): Initialize it.
8923 (bdesc_1arg): Add it.
8924
4e8c438f
SL
89252008-05-15 Sa Liu <saliu@de.ibm.com>
8926
8927 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
8928 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
8929 * testsuite/lib/target-supports.exp: Add
8930 check_effective_target_fortran_integer_16.
8931
7ba20e60
BS
89322008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
8933
8934 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
8935 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
8936 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
8937 (TARGET_RETURN_IN_MEMORY): Define.
8938
81d19c06
RG
89392008-05-15 Richard Guenther <rguenther@suse.de>
8940
8941 PR middle-end/36244
8942 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
8943 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
8944 represent unmodifiable vars.
8945
9f59420d
RG
89462008-05-15 Richard Guenther <rguenther@suse.de>
8947
8948 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
8949 INDIRECT_REF and TARGET_MEM_REF.
8950 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8951 TARGET_MEM_REF.
8952
6784c6e0
UB
89532008-05-15 Uros Bizjak <ubizjak@gmail.com>
8954 H.J. Lu <hongjiu.lu@intel.com>
8955
8956 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
8957 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
8958 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
8959 insn alternatives. Add missing alternatives.
8960 (*vec_concatv2di_rex64_sse4_1): Likewise.
8961 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
8962 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
8963 Require TARGET_SSE.
8964
8ded35f9
RG
89652008-05-15 Richard Guenther <rguenther@suse.de>
8966
8967 PR tree-optimization/36009
8968 PR tree-optimization/36204
8969 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
8970 (determine_invariantness_stmt): Record the loop a store is
8971 always executed in.
8972 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
8973 dependency.
8974
45ff5eda
RG
89752008-05-15 Richard Guenther <rguenther@suse.de>
8976
8977 PR tree-optimization/34330
8978 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
8979 through the pointer will alias the SMT.
8980
c5fcd670
AT
89812008-05-14 Andreas Tobler <a.tobler@schweiz.org>
8982
8983 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
8984
a3f63c28
L
89852008-05-14 H.J. Lu <hongjiu.lu@intel.com>
8986
8987 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
8988
71d46ca5
MM
89892008-05-14 Michael Meissner <michael.meissner@amd.com>
8990 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8991
8992 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
8993 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
8994 (vashl_optab): New optab for vector/vector shifts.
8995 (vashr_optab): Ditto.
8996 (vlshr_optab): Ditto.
8997 (vrotl_optab): Ditto.
8998 (vrotr_optab): Ditto.
8999 (optab_subtype): New enum for optab_for_tree_code call.
9000 (optab_for_tree_code): Add enum optab_subtype argument.
9001
9002 * optabs.c (optab_for_tree_code): Take an additional argument to
9003 distinguish between a vector shift by a scalar and vector shift by
9004 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
9005 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
9006 vector shift by a vector.
9007 (expand_widen_pattern_expr): Pass additional argument to
9008 optab_for_tree_code.
9009
9010 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
9011 vrotl_optab, vrotr_optab.
9012
9013 * expr.c (expand_expr_real_1): Update calls to
9014 optab_for_tree_code to distinguish between vector shifted by a
9015 scalar and vector shifted by a vector.
9016 * tree-vectorizer.c (supportable_widening_operation): Ditto.
9017 (supportable_narrowing_operation): Ditto.
9018 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
9019 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
9020 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
9021 (vect_create_epilog_for_reduction): Ditto.
9022 (vectorizable_reduction): Ditto.
9023 (vectorizable_operation): Ditto.
9024 (vect_strided_store_supported): Ditto.
9025 (vect_strided_load_supported): Ditto.
9026 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9027 * expmed.c (expand_shift): Ditto.
9028
9029 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
9030 scalar type.
9031 (ashr@var{m}3): Ditto.
9032 (vashl@var{m}3): Document new vector/vector shift standard name.
9033 (vashr@var{m}3): Ditto.
9034 (vlshr@var{m}3): Ditto.
9035 (vrotl@var{m}3): Ditto.
9036 (vrotr@var{m}3): Ditto.
9037
6784c6e0 9038 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
9039 (PPERM_INVERT): Ditto.
9040 (PPERM_REVERSE): Ditto.
9041 (PPERM_REV_INV): Ditto.
9042 (PPERM_ZERO): Ditto.
9043 (PPERM_ONES): Ditto.
9044 (PPERM_SIGN): Ditto.
9045 (PPERM_INV_SIGN): Ditto.
9046 (PPERM_SRC1): Ditto.
9047 (PPERM_SRC2): Ditto.
9048
9049 * config/i386/sse.md (mulv2di3): Add SSE5 support.
9050 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
9051 allows a memory operand to be the value being added, and split it
9052 to improve vectorization.
9053 (sse5_pmacsdqh_mem): Ditto.
9054 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
9055 (sse5_mulv2div2di3_high): Ditto.
9056 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
9057 (vec_pack_trunc_v4si): Ditto.
9058 (vec_pack_trunc_v2di): Ditto.
9059 (sse5_pcmov_<mode>): Remove code that tried to use use
9060 andps/andnps instead of pcmov.
9061 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
9062 pmacsdqh instructions.
9063 (vec_widen_smult_lo_v4si): Ditto.
9064
9065 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
9066 (PPERM_INVERT): Ditto.
9067 (PPERM_REVERSE): Ditto.
9068 (PPERM_REV_INV): Ditto.
9069 (PPERM_ZERO): Ditto.
9070 (PPERM_ONES): Ditto.
9071 (PPERM_SIGN): Ditto.
9072 (PPERM_INV_SIGN): Ditto.
9073 (PPERM_SRC1): Ditto.
9074 (PPERM_SRC2): Ditto.
9075 (ix86_expand_sse_movcc): Move the SSE5 test after the if
9076 true/false tests.
9077 (ix86_expand_int_vcond): If SSE5 generate all possible integer
9078 comparisons.
9079 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
9080 says ignore whether the last reference is a memory operand.
9081
90822008-05-14 Michael Meissner <michael.meissner@amd.com>
9083 Paolo Bonzini <bonzini at gnu dot org>
9084
9085 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
9086 shift patterns.
9087
6784c6e0 9088 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
9089 (vlshr<mode>3): Rename from vlshr<mode>3.
9090 (vashr<mode>3): Rename from vashr<mode>3.
9091 (mulv4sf3): Change the names of vector shift patterns.
9092 (mulv4si3): Ditto.
9093 (negv4sf2): Ditt.
9094
9095 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
9096 shift insns.
9097
6784c6e0 9098 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
9099 (SI_SHLHI): Ditto.
9100 (SI_SHL): Ditto.
9101 (SI_SHLI): Ditto.
9102 (SI_ROTH): Ditto.
9103 (SI_ROTHI): Ditto.
9104 (SI_ROT): Ditto.
9105 (SI_ROTI): Ditto.
9106 (SPU_RL_0): Ditto.
9107 (SPU_RL_1): Ditto.
9108 (SPU_RL_2): Ditto.
9109 (SPU_RL_3): Ditto.
9110 (SPU_RL_4): Ditto.
9111 (SPU_RL_5): Ditto.
9112 (SPU_RL_6): Ditto.
9113 (SPU_RL_7): Ditto.
9114 (SPU_SL_0): Ditto.
9115 (SPU_SL_1): Ditto.
9116 (SPU_SL_2): Ditto.
9117 (SPU_SL_3): Ditto.
9118 (SPU_SL_4): Ditto.
9119 (SPU_SL_5): Ditto.
9120 (SPU_SL_6): Ditto.
9121 (SPU_SL_7): Ditto.
9122
9123 * config/spu/spu.md (v): New iterator macro to add v for vector types.
9124 (floatunssidf2_internal): Change vector/vector shift names.
9125 (floatunsdidf2_internal): Ditto.
9126 (mulv8hi3): Ditto.
9127 (ashrdi3): Ditto.
9128 (ashrti3): Ditto.
9129 (cgt_df): Ditto.
9130 (cgt_v2df): Ditto.
9131 (dftsv): Ditto.
9132 (vashl<mode>3): Rename from ashl<mode>3.
9133 (vashr<mode>3): Rename from ashr<mode>3.
9134 (vlshr<mode>3): Rename from lshr<mode>3.
9135 (vrotl<mode>3): Rename from rotl<mode>3.
9136
550c9cf0
MM
91372008-05-14 Michael Meissner <michael.meissner@amd.com>
9138
9139 PR target/36224
6784c6e0
UB
9140 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
9141 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
9142 (vec_widen_smult_lo_v4si): Ditto.
9143
84b8030f
KZ
91442008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
9145
9146 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
9147 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
22129589 9148 emit_library_call_value.
84b8030f
KZ
9149 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
9150 * tree.h (ECF_LIBCALL_BLOCK): Removed.
22129589 9151 * calls.c (initialize_argument_information, precompute_arguments,
84b8030f
KZ
9152 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
9153 (precompute_arguments): Removed flags parameter.
9154 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
22129589 9155
f403a4a2
RG
91562008-05-14 Richard Guenther <rguenther@suse.de>
9157
9158 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
9159 Make sure to register the store if the use is a PHI_NODE.
9160
da19297d
OH
91612008-05-14 Olivier Hainque <hainque@adacore.com>
9162
9163 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
9164 memory if the component is to be referenced in BLKmode according
9165 to get_inner_reference.
9166
1fd03c70
AN
91672008-05-14 Adam Nemet <anemet@caviumnetworks.com>
9168
9169 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 9170 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 9171
349c3166
OH
91722008-05-14 Olivier Hainque <hainque@adacore.com>
9173 Nicolas Roche <roche@adacore.com>
9174
9175 * configure.ac: Add support for a "gcc_subdir" variable in
9176 config-lang.in, to denote a subdirectory where the language/GCC
9177 integration files are to be found.
9178 * configure: Regenerate.
9179
2b8775f3
IR
91802008-05-14 Ira Rosen <irar@il.ibm.com>
9181
9182 PR tree-optimization/36098
9183 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
9184 value for the first load in the group in case of a gap.
9185 (vect_build_slp_tree): Check that there are no gaps in loads.
9186
d70dcf29
KZ
91872008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
9188
9189 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
9190 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
9191 expand_copysign_bit, ): Change call to emit_no_conflict_block to
9192 emit_insn and remove unneeded code to construct extra args.
9193 (emit_no_conflict_block): Removed.
9194 * optabls.h: (emit_no_conflict_block): Removed.
9195 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 9196 REG_NO_CONFLICT note.
d70dcf29
KZ
9197 * global.c: Removed incorrect comment added in revision 117.
9198 * expr.c (convert_move): Change call to emit_no_conflict_block to
9199 emit_insn.
9200 * recog.c: Change comments so that they do not mention
9201 REG_NO_CONFLICT.
9202 * local_alloc.c (combine_regs): Removed last parameter.
9203 (no_conflict_p): Removed.
9204 (block_alloc): Removed note, no_conflict_combined_regno and set
9205 local vars. Removed all code to process REG_NO_CONFLICT blocks.
9206 (combine_regs): Removed already_dead and code to look for
9207 REG_NO_CONFLICT notes.
9208 * lower_subreg (remove_retval_note): Removed code to look for
9209 REG_NO_CONFLICT block.
9210 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
9211 (resolve_clobber): Remove code to process libcalls that have
9212 REG_NO_CONFLICT notes.
9213 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
9214 case.
6784c6e0
UB
9215 * combine.c (can_combine_p, distribute_notes): Removed
9216 REG_NO_CONFLICT case.
9217 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
9218 to emit_insns.
d70dcf29
KZ
9219 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
9220 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 9221 Ditto.
d70dcf29 9222 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 9223
cc44abe6
DM
92242008-05-14 David S. Miller <davem@davemloft.net>
9225
9226 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 9227 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
9228 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
9229 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
9230
0beb3d66
AK
92312008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
9232
9233 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
9234
08e64088
UB
92352008-05-13 Uros Bizjak <ubizjak@gmail.com>
9236
9237 PR target/36222
9238 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
9239 and op1 expansion before vector concat to have less live pseudos.
9240
af7ae5d1
L
92412008-05-13 H.J. Lu <hongjiu.lu@intel.com>
9242
9243 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9244 ix86_expand_vector_set if supported.
9245
5db9ba0c
DN
92462008-05-13 Diego Novillo <dnovillo@google.com>
9247 Kenneth Zadeck <zadeck@naturalbridge.com>
9248
9249 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
9250
9251 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
9252 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
9253 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
9254 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
9255 ssanames_print_statistics): Move ...
9256 * tree-flow.h: ... here.
08e64088
UB
9257 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
9258 Use FN instead of cfun.
5db9ba0c 9259 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 9260 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 9261 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 9262 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
9263 * omp-low.c (expand_omp_parallel):
9264 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
9265 * tree-ssa.c (init_tree_ssa): Add argument FN.
9266 Use it instead of cfun. Update all users.
5db9ba0c 9267
899015a0
TT
92682008-05-13 Tom Tromey <tromey@redhat.com>
9269
9270 PR preprocessor/22168:
9271 * doc/cpp.texi (Top): Update menu.
9272 (Alternatives to Wrapper #ifndef): New node.
9273 (Other Directives): Document deprecation.
9274 (Obsolete Features): Remove menu.
9275 (Assertions): Merge node into Obsolete Features.
9276 (Obsolete once-only headers): Move earlier; rename to Alternatives
9277 to Wrapper #ifndef.
9278 * doc/cppopts.texi: Update.
9279 * c.opt (Wdeprecated): Enable for C and ObjC.
9280 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
9281 (C++ Dialect Options): Move -Wno-deprecated from here to...
9282 (Warning Options): ... here.
9283
8ebc39d8
RG
92842008-05-13 Richard Guenther <rguenther@suse.de>
9285
9286 PR middle-end/36227
9287 * fold-const.c (fold_sign_changed_comparison): Do not allow
9288 changes in pointer-ness.
9289
ef0a7607
KK
92902008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
9291
9292 PR target/24713
9293 * config/sh/sh.c (sh_expand_prologue): Don't clear
9294 RTX_FRAME_RELATED_P for push insns.
9295
9c218cfc
AH
92962008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
9297
9298 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
9299
4c75f709
AS
93002008-05-12 Anatoly Sokolov <aesok@post.ru>
9301
9302 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
9303 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
9304 Use 'machine->is_leaf' instead of 'leaf_func_p'.
9305
fcc9fe1e
L
93062008-05-12 H.J. Lu <hongjiu.lu@intel.com>
9307
9308 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
9309 (*vec_concatv4sf_sse): This.
9310 (*sse2_concatv2si): Renamed to ...
9311 (*vec_concatv2si_sse2): This.
9312 (*sse1_concatv2si): Renamed to ...
9313 (*vec_concatv2si_sse): This.
9314 (*vec_concatv2di_rex): Renamed to ...
9315 (*vec_concatv2di_rex64): This.
9316 (*vec_concatv2si_sse4_1): New.
9317 (*vec_concatv2di_rex64_sse4_1): Likewise.
9318
162bfc7e
UB
93192008-05-12 Uros Bizjak <ubizjak@gmail.com>
9320
9321 PR rtl-optimization/36111
9322 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
9323 that was created for swappable operands.
9324
3d4e720a
ST
93252008-05-12 Samuel Tardieu <sam@rfc1149.net>
9326
9327 PR ada/36001
9328 * Makefile.in: Substitute GNATMAKE and GNATBIND.
9329 * configure.ac: Add call to ACX_PROG_GNAT.
9330
fc54bc84
VR
93312008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
9332
9333 * optc-gen.awk: Fix comment typo.
9334
2a157700
AL
93352008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
9336
9337 * pretty-print.c (pp_integer_with_precision): Use
9338 HOST_LONG_LONG_FORMAT.
9339
4e00d960
KZ
93402008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
9341
9342 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
22129589 9343
b282a8d3
L
93442008-05-10 H.J. Lu <hongjiu.lu@intel.com>
9345
9346 * config/i386/i386.c (bdesc_ptest): Removed.
9347 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
9348 (bdesc_args): Add __builtin_ia32_ptestz128,
9349 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
9350 (ix86_init_mmx_sse_builtins): Updated.
9351 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
9352 (ix86_expand_builtin): Updated.
9353
17d23165
RS
93542008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
9355
9356 * tree-cfg.c (valid_fixed_convert_types_p): New function.
9357 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
9358
d35910bf
UB
93592008-05-10 Uros Bizjak <ubizjak@gmail.com>
9360
9361 * value-prof.c (interesting_stringop_to_profile): Do not
9362 return early for BUILT_IN_MEMPCPY.
9363
17b29c0a
L
93642008-05-09 H.J. Lu <hongjiu.lu@intel.com>
9365
9366 * calls.c (expand_call): Don't use callgraph to increase
9367 preferred_stack_boundary.
9368
9369 * cgraph.h (cgraph_rtl_info): Use unsigned on
9370 preferred_incoming_stack_boundary.
9371
9372 * final.c (rest_of_clean_state): Use unsigned on
9373 preferred_stack_boundary.
9374
4822e563
TT
93752008-05-09 Tom Tromey <tromey@redhat.com>
9376
9377 PR preprocessor/22231:
9378 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
9379 proceeding.
9380
53a8f709
UB
93812008-05-09 Uros Bizjak <ubizjak@gmail.com>
9382
9383 PR tree-optimization/36129
162bfc7e 9384 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
9385 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
9386 built-in function was folded to a constant.
162bfc7e 9387 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 9388
3f227a8c
JS
93892008-05-09 Jan Sjodin <jan.sjodin@amd.com>
9390 Sebastian Pop <sebastian.pop@amd.com>
9391
9392 * tree-scalar-evolution.c: Document instantiate_scev.
9393 (instantiate_parameters_1): Renamed instantiate_scev_1.
9394 Don't use the same loop for instantiation_loop and evolution_loop.
9395 (instantiate_scev): New.
9396 (instantiate_parameters): Moved...
9397 (resolve_mixers): Update call to instantiate_scev_1 to pass the
9398 same loop twice. Maintains the semantics for this function.
9399 * tree-scalar-evolution.h (instantiate_scev): Declare.
9400 (instantiate_parameters): ...here. Now static inline.
9401 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
9402 instead of resolve_mixers.
9403
a3e19be6
MK
94042008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
9405
9406 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
9407
1043771b
TB
94082008-05-09 Tomas Bily <tbily@suse.cz>
9409
9410 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
9411 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
9412 * tree-ssa-structalias.c (get_constraint_for): Likewise.
9413 * c-common.c (c_common_truthvalue_conversion): Likewise.
9414 * tree-object-size.c (compute_object_offset): Likewise.
9415 * tree-inline.c (estimate_num_insns_1): Likewise.
9416 * varasm.c (const_hash_1, compare_constant, copy_constant)
9417 (compute_reloc_for_constant, output_addressed_constants)
9418 (initializer_constant_valid_p): Likewise.
9419 * c-omp.c (check_omp_for_incr_expr): Likewise.
9420 * gimplify.c (gimplify_expr): Likewise.
9421 * c-typeck.c (c_finish_return): Likewise.
9422 * tree-vectorizer.c (supportable_widening_operation)
9423 (supportable_narrowing_operation): Likewise.
9424 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
9425 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
9426 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
9427 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
9428 (descr_info_loc): Likewise.
9429 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9430 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
9431 (fold_unary): Likewise.
9432 * builtins.c (get_pointer_alignment): Likewise.
9433 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
9434 (instantiate_parameters_1): Likewise.
9435 * tree.c (expr_align, stabilize_reference): Likewise.
9436 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
9437 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
9438 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
9439 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9440 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
9441 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
9442 Likewise.
1043771b
TB
9443 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
9444 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
9445 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9446 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
9447 (forward_propagate_comparison)
9448 (tree_ssa_forward_propagate_single_use_vars): Likewise.
9449 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
9450 * emit-rtl.c (component_ref_for_mem_expr)
9451 (set_mem_attributes_minus_bitpos): Likewise.
9452 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
9453 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
9454 Likewise.
1043771b
TB
9455 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
9456 (build_function_call, pointer_diff, build_compound_expr)
9457 (c_finish_return): Likewise.
9458 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
9459 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
9460 Likewise.
1043771b
TB
9461 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
9462 * expr.c (is_aligning_offset): Likewise.
9463 * tree-ssa-alias.c (is_escape_site): Likewise.
9464 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
9465 (check_all_va_list_escapes): Likewise.
9466 * tree-ssa-loop-ivopts.c (determine_base_object)
9467 (determine_common_wider_type): Likewise.
9468 * dojump.c (do_jump): Likewise.
9469 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
9470 * tree-gimple.c (is_gimple_cast): Likewise.
9471 * fold-const.c (decode_field_reference, )
9472 (fold_sign_changed_comparison, fold_unary, fold_comparison)
9473 (fold_binary): Likewise.
9474 * tree-ssa-alias-warnings.c (find_alias_site_helper)
9475 (already_warned_in_frontend_p): Likewise.
9476 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
9477 * tree.c (really_constant_p, get_unwidened): Likewise.
9478 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9479 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
9480 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
9481 Likewise.
9482 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
9483 CONVERT_EXPR_P.
1043771b
TB
9484 (CONVERT_EXPR_P): Define.
9485 (CASE_CONVERT): Define.
22129589 9486
5ba5ab9b
KZ
94872008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
9488
9489 PR middle-end/36117
162bfc7e
UB
9490 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
9491 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
9492 delete_unreachable_blocks.
9493 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
9494 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
9495
1353232d
RG
94962008-05-08 Richard Guenther <rguenther@suse.de>
9497
9498 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
9499 (-ftree-salias): Likewise.
9500 (salias-max-implicit-fields): Remove param documentation.
9501 (salias-max-array-elements): Likewise.
9502 * tree-pass.h (pass_create_structure_vars): Remove.
9503 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9504 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9505 * tree-ssa-alias.c (create_structure_vars): Remove.
9506 (gate_structure_vars): Likewise.
9507 (pass_create_structure_vars): Likewise.
9508 (gate_build_alias): Likewise.
9509 (pass_build_alias): Adjust to run always and dump the function.
9510 * common.opt (ftree-salias): Hide.
9511 * passes.c (init_optimization_passes): Remove
9512 pass_create_structure_vars, adjust comment.
9513 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
9514 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
9515 * opts.c (decode_options): Do not set flag_tree_salias.
9516 (common_handle_option): Add OPT_ftree_salias to the backward
9517 compatibility section.
9518
31de5b77
RG
95192008-05-08 Richard Guenther <rguenther@suse.de>
9520
9521 * tree-flow-inline.h (var_can_have_subvars): Move ...
9522 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
9523 * tree-flow.h (var_can_have_subvars): Remove.
9524 (push_fields_onto_fieldstack): Remove.
9525 (sort_fieldstack): Likewise.
9526 (struct fieldoff): Move ...
9527 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
9528 alias_set and base_for_components fields.
9529 (sort_fieldstack): Make static.
9530 (push_fields_onto_fieldstack): Likewise. Remove code that
9531 handles anything but RECORD_TYPEs. Remove alias_set and
9532 base_for_components handling.
9533 (create_variable_info_for): Adjust.
9534
c1a3620a 95352008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 9536
c1a3620a
SP
9537 * common.opt (Wframe-larger-than=): Shorten the help message
9538 to one line.
9539 * doc/invoke.texi (Wframe-larger-than=): Add more description.
9540
04b03edb
RAE
95412008-05-08 Rafael Espindola <espindola@google.com>
9542
9543 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
9544 trap.
9545 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
9546 trap and that both operands are gimple values.
9547 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
9548 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
9549 is a fp operation.
9550
96c92f47
RS
95512008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
9552
9553 * read-rtl.c (join_c_conditions): Return the first string if the
9554 two strings are equal.
9555
e663da80
RS
95562008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
9557
9558 * gensupport.h (pred_data): Add a "num_codes" field.
9559 (add_predicate_code): Declare.
9560 * gensupport.c (add_predicate_code): New function.
9561 (std_pred_table): Add an "allows_const_p" field.
9562 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
9563 Remove the (incomplete) list of such codes from the codes field.
9564 (init_predicate_table): Use add_predicate_code. Add all
9565 RTX_CONST_OBJs if allows_const_p is true.
9566 * genrecog.c (process_define_predicate): Use add_predicate_code.
9567
977502ff
DD
95682008-05-08 David Daney <ddaney@avtrex.com>
9569 Richard Sandiford <rsandifo@nildram.co.uk>
22129589 9570
977502ff
DD
9571 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
9572 special case of constant zero operands.
9573 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
9574 old and new values. Special case constant zero values.
9575 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
9576 fails.
9577 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
9578 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
9579
627ab861
PB
95802008-05-08 Paolo Bonzini <bonzini@gnu.org>
9581
9582 PR target/36090
9583 * simplify-rtx.c (simplify_plus_minus): Create CONST of
9584 similar RTX_CONST_OBJ before CONST_INT.
9585
41ccb5d1
SE
95862008-05-08 Steve Ellcey <sje@cup.hp.com>
9587
9588 * stmt.c (expand_stack_restore): Change sa mode if needed.
9589
e8d6aaee
RG
95902008-05-08 Richard Guenther <rguenther@suse.de>
9591
9592 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
9593 return type to bool.
9594 (ix86_sol10_return_in_memory): Likewise.
9595 (ix86_i386elf_return_in_memory): Likewise.
9596 (ix86_i386interix_return_in_memory): Likewise.
9597 * config/i386/i386.c (ix86_return_in_memory): Likewise.
9598 (ix86_sol10_return_in_memory): Likewise.
9599 (ix86_i386elf_return_in_memory): Likewise.
9600 (ix86_i386interix_return_in_memory): Likewise.
9601
033df0b9
KT
96022008-05-08 Kai Tietz <kai.tietz@onevision.com>
9603
d7822892 9604 PR bootstrap/36180
033df0b9
KT
9605 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
9606 fndecl argument.
d7822892
UB
9607 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
9608 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
9609 declared in front.
033df0b9 9610
5611cf0b
RG
96112008-05-08 Richard Guenther <rguenther@suse.de>
9612
9613 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
9614 * tree-data-ref.h (struct dr_alias): Remove subvars field.
9615 (DR_SUBVARS): Remove.
9616 * tree-dfa.c (dump_subvars_for): Remove.
9617 (debug_subvars_for): Likewise.
9618 (dump_variable): Do not dump subvars.
9619 (remove_referenced_var): Do not remove subvars.
9620 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
9621 (lookup_subvars_for_var): Remove.
9622 (get_subvars_for_var): Likewise.
9623 (get_subvars_at): Likewise.
9624 (get_first_overlapping_subvar): Likewise.
9625 (overlap_subvar): Likewise.
9626 * tree-flow.h (subvar_t): Remove.
9627 (struct var_ann_d): Remove subvars field.
9628 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
9629 argument. Remove special handling of SFTs.
9630 (compute_tag_properties): Likewise.
9631 (set_initial_properties): Likewise.
9632 (compute_call_clobbered): Likewise.
9633 (count_mem_refs): Likewise.
9634 (compute_memory_partitions): Likewise.
9635 (compute_flow_insensitive_aliasing): Likewise.
9636 (setup_pointers_and_addressables): Likewise.
9637 (new_type_alias): Likewise.
9638 (struct used_part): Remove.
9639 (used_portions): Likewise.
9640 (struct used_part_map): Likewise.
9641 (used_part_map_eq): Likewise.
9642 (used_part_map_hash): Likewise.
9643 (free_used_part_map): Likewise.
9644 (up_lookup): Likewise.
9645 (up_insert): Likewise.
9646 (get_or_create_used_part_for): Likewise.
9647 (create_sft): Likewise.
9648 (create_overlap_variables_for): Likewise.
9649 (find_used_portions): Likewise.
9650 (create_structure_vars): Likewise.
9651 * tree.def (STRUCT_FIELD_TAG): Remove.
9652 * tree.h (MTAG_P): Adjust.
9653 (struct tree_memory_tag): Remove base_for_components and
9654 unpartitionable flags.
9655 (struct tree_struct_field_tag): Remove.
9656 (SFT_PARENT_VAR): Likewise.
9657 (SFT_OFFSET): Likewise.
9658 (SFT_SIZE): Likewise.
9659 (SFT_NONADDRESSABLE_P): Likewise.
9660 (SFT_ALIAS_SET): Likewise.
9661 (SFT_UNPARTITIONABLE_P): Likewise.
9662 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
9663 (union tree_node): Remove sft field.
9664 * alias.c (get_alias_set): Remove special handling of SFTs.
9665 * print-tree.c (print_node): Remove handling of SFTs.
9666 * tree-dump.c (dequeue_and_dump): Likewise.
9667 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
9668 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
9669 * tree-predcom.c (set_alias_info): Do not set subvars.
9670 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
9671 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
9672 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
9673 (add_vars_for_offset): Remove.
9674 (add_virtual_operand): Remove special handling of SFTs.
9675 (add_call_clobber_ops): Likewise.
9676 (add_call_read_ops): Likewise.
9677 (get_asm_expr_operands): Likewise.
9678 (get_modify_stmt_operands): Likewise.
9679 (get_expr_operands): Likewise.
9680 (add_to_addressable_set): Likewise.
9681 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
9682 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 9683 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
9684 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
9685 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
9686 (tree_node_structure): Likewise.
9687 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
9688 handling of SFTs.
9689 (find_what_p_points_to): Likewise.
9690
fb4b5171
SL
96912008-05-08 Sa Liu <saliu@de.ibm.com>
9692
9693 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 9694
1b674de0
RG
96952008-05-08 Richard Guenther <rguenther@suse.de>
9696
9697 PR middle-end/36154
9698 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
9699 sure to create a representative for trailing arrays for PTA.
9700
b13e7b6c
RG
97012008-05-08 Richard Guenther <rguenther@suse.de>
9702
9703 PR middle-end/36172
9704 * fold-const.c (operand_equal_p): Two objects which types
9705 differ in pointerness are not equal.
9706
d7822892 97072008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
9708
9709 * calls.c (compute_argument_block_size): Add argument tree fndecl.
9710 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
9711 (emit_library_call_value_1): Add new variable fndecl initialized by
9712 NULL_TREE. It should be the decl type of orgfun, but this information
9713 seems not to be available here, so it uses the default calling abi.
9714 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
9715 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
9716 by TARGET_RETURN_IN_MEMORY.
9717 * config/i386/i386-interix.h: Likewise.
9718 * config/i386/i386.h: Likewise.
9719 * config/i386/i386elf.h: Likewise.
9720 * config/i386/ptx4-i.h: Likewise.
9721 * config/i386/sol2-10.h: Likewise.
9722 * config/i386/sysv4.h: Likewise.
9723 * config/i386/vx-common.h: Likewise.
9724 * config/cris/cris.h: Removed #if 0 clause.
d7822892 9725 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
9726 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
9727 argument.
9728 (ix86_sol10_return_in_memory): Likewise.
9729 (ix86_i386elf_return_in_memory): New.
9730 (ix86_i386interix_return_in_memory): New.
9731 * config/mt/mt-protos.h (mt_return_in_memory): New.
9732 * config/mt/mt.c: Likewise.
9733 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
9734 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
9735 * config/bfin/bfin.h: Likewise.
9736 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
9737 argument.
9738 * config/bfin/bfin.c: Likewise.
9739 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
9740 * config/alpha/unicosmk.h: Likewise.
9741 * config/i386/cygming.h: Likewise.
9742 * config/iq2000/iq2000.h: Likewise.
9743 * config/mips/mips.h: Likewise.
9744 * config/mn10300/mn10300.h: Likewise.
9745 * config/rs6000/rs6000.h: Likewise.
9746 * config/score/score.h: Likewise.
9747 * config/spu/spu.h: Likewise.
9748 * config/v850/v850.h: Likewise.
9749 * defaults.h: Likewise.
9750 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
9751 * expr.c (emit_block_move): Adjust use of
9752 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
9753 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
9754 OUTGOING_REG_PARM_STACK_SPACE.
9755 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
9756
4218dc2d
JJ
97572008-05-08 Jakub Jelinek <jakub@redhat.com>
9758
9759 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
9760 on OMP_RETURN for OMP_FOR.
9761
1f16b47c
JJ
9762 PR debug/35896
9763 * dwarf2out.c (dw_expand_expr, common_check): Removed.
9764 (fortran_common): New function.
9765 (gen_variable_die): Call fortran_common instead of common_check,
9766 adjust for it returning tree instead of rtx. Formatting.
9767
4218dc2d 97682008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 9769
d7822892
UB
9770 PR rtl/7335
9771 PR rtl/33826
9772 * see.c (see_copy_insn): Copy new pure const attributes for new call.
9773 * c-decl.c (merge_decls): Ditto.
9774 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
9775 to RTL_CONST_OR_PURE_CALL_P.
9776 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
9777 Initialized DECL_LOOPING_CONST_PURE.
9778 (process_call_operands): Set tree_side_effects properly.
9779 * tree.h (TREE_READONLY_DECL_P): Removed.
9780 (DECL_IS_PURE): Renamed to DECL_PURE_P.
9781 (DECL_LOOPING_OR_CONST_P): New macro.
9782 (struct tree_function_decl): Added looping_const_or_pure_p.
9783 (ECF_*) Renumbered.
9784 (ECF_LOOPING_OR_CONST_P): New macro.
9785 * rtlanal.c (pure_const_p): Removed.
9786 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
9787 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
9788 to RTL_CONST_CALL_P.
9789 * ipa-pure-const.c (pure_const_state_e): Added looping field.
9790 (check_decl, check_tree, check_call, scan_function): Initialize
9791 looping.
9792 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
9793 (static_execute): Set looping true for recursive functions.
9794 Undo setting state to IPA_NEITHER for recursive functions.
22129589 9795 * cse.c (cse_insn):
d7822892 9796 * ifcvt.c (noce_can_store_speculate_p): Changed
22129589 9797 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
d7822892
UB
9798 RTL_CONST_OR_PURE_CALL_P.
9799 * dse.c (scan_insn): Ditto.
9800 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
9801 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
9802 RTL_CONST_OR_PURE_CALL_P.
9803 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
9804 pure_call_p to RTL_CONST_CALL_P.
9805 * gimplify.c (gimplify_call_expr): Clear side effects for
9806 non-looping pure and constant calls.
9807 * calls.c (emit_call_1): Set rtl flags from ecf flags.
9808 (flags_from_decl_or_type): Set ecf flags from decl flags.
9809 (initialize_argument_information): Turn off
9810 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
9811 Change const to pure if callee_copies is true rather than just
9812 turning off const.
9813 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
9814 way of marking pure calls.
9815 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
9816 Remove hack that was supposed to fix pr7335 and remove old
9817 way of marking pure calls.
9818 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
9819 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
9820 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
9821 RTL_CONST_OR_PURE_CALL_P.
9822 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
9823 * loop-invariant.c (find_exits, find_invariant_bb): Changed
9824 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
9825 * sched-deps.c (schedule_analyze): Ditto.
9826 * rtl.h (struct rtx_def): Use call field, unchanging field, and
9827 return_val field of calls to represent pure and const function info.
9828 (CONST_OR_PURE_CALL_P): Deleted macro.
9829 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
9830 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
9831 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
9832 TREE_READONLY.
9833 * tree-optimize.c (execute_fixup_cfg): Added test for
9834 ECF_LOOPING_CONST_OR_PURE.
9835 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
9836 DECL_PURE_P.
9837 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
9838 effects for looping pure or const calls.
22129589 9839 (verify_gimple_expr): Added verification code.
d7822892
UB
9840 * config/alpha/alpha.c (alpha_legitimize_address,
9841 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
9842 RTL_CONST_CALL_P.
9843 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
9844 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
9845 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
9846 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
9847 RTL_CONST_OR_PURE_CALL_P.
9848 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
9849 and const calls to be deleted.
becfd6e5 9850
d7822892 98512008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
9852
9853 PR target/35714
9854 * config/i386/mmx.md (mmx_subv2sf3): New expander.
9855 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
9856 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
9857 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
9858 to handle nonimmediate operands.
9859 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
9860 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
9861 to handle nonimmediate operands.
9862 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
9863 (mmx_pmulhrwv4hi3): New expander. Use
9864 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9865 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
9866 (sse2_umulv1siv1di3): New expander. Use
9867 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9868 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
9869 (mmx_eq<mode>3): New expander. Use
9870 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9871 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
9872 (mmx_uavgv8qi3): New expander. Use
9873 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9874 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
9875 (mmx_uavgv4hi3): New expander. Use
9876 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9877
9878 * config/i386/sse.md
3a3f9d87 9879 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 9880 to handle nonimmediate operands.
3a3f9d87 9881 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 9882 to handle nonimmediate operands.
3a3f9d87 9883 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 9884 to handle nonimmediate operands.
3a3f9d87 9885 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 9886 to handle nonimmediate operands.
3a3f9d87 9887 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 9888 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 9889 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 9890 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 9891 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 9892 to handle nonimmediate operands.
ffbaf337
UB
9893 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
9894 to handle nonimmediate operands.
9895 (*sse2_<plusminus_insn><mode>3): Rename from
9896 sse2_<plusminus_insn><mode>3 insn pattern.
9897 (sse2_<plusminus_insn><mode>3): New expander. Use
9898 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9899 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
9900 (sse2_umulv2siv2di3): New expander. Use
9901 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9902 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
9903 (sse4_1_mulv2siv2di3): New expander. Use
9904 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9905 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
9906 (sse2_pmaddwd): New expander. Use
9907 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9908 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
9909 (sse2_eq<mode>3): New expander. Use
9910 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9911 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
9912 (sse4_1_eqv2di3): New expander. Use
9913 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9914 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
9915 (sse2_uavgv16qi3): New expander. Use
9916 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9917 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
9918 (sse2_uavgv16qi3): New expander. Use
9919 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9920 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
9921 (sse2_uavgv8hi3): New expander. Use
9922 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9923 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
9924 (ssse3_pmulhrswv8hi3): New expander. Use
9925 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9926 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
9927 (ssse3_pmulhrswv4hi3): New expander. Use
9928 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
9929
9930 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
9931 (<sse>_vmmul<mode>3): Ditto.
9932 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
9933 (divv2df3): Ditto.
9934 (ssse3_pmaddubsw128): Use register_operand for operand 1.
9935 (ssse3_pmaddubsw): Ditto.
9936
3a3f9d87
UB
9937 * config/i386/i386.c (struct_builtin_description)
9938 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
9939 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
9940 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
9941 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
9942 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
9943 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
9944 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
9945 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
9946 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
9947 and src2 must have the same mode when swapped.
9948 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
9949 and ix86_binary_operator_ok. Do not force operands in registers
9950 when optimizing.
9951
95622280
JH
99522008-05-07 Jan Hubicka <jh@suse.cz>
9953
9954 * cgraph.c (dump_cgraph_node): Update.
9955 * cgraph.h (cgraph_local_info): Break out inline summary.
9956 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
9957 hook.
9958 * ipa-inline (inline_summary): New accestor function.
9959 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
9960 cgraph_decide_inlining, compute_inline_parameters): Update.
9961 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
9962
96fcacb7
MK
99632008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
9964
9965 Cleanup ColdFire scheduling support and add V4 pipeline model.
9966
9967 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
9968 (define_attr cpu): Add cfv4 value.
9969 (define_attr type, define_attr type1): Merge into a single 'type'
9970 attribute. Update all uses.
9971 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
9972 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
9973 Update all uses.
9974 (define_attr opx_mem, define_attr opy_mem): Remove.
9975 (define_attr op_mem): Clean up, update comment.
9976 (define_attr size): Use specific values instead of general int.
9977 (define_attr guess, define_attr split): Remove. Update all uses.
9978 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
9979 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
9980 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
9981 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
9982 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
9983 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
9984 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
9985 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
9986 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
9987 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
9988 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
9989 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
9990 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
9991 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
9992 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
9993 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
9994 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
9995 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
9996 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
9997 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
9998 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
9999 Update or set attributes.
10000 (stack_tie): New fake instruction.
10001
10002 * config/m68k/m68k.h (TUNE_CFV4): New macro.
10003 (m68k_sched_attr_size): Update declaration.
10004 (m68k_sched_attr_type2): Remove.
10005 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
10006 Declare new bypass predicates.
10007
10008 * config/m68k/m68k.c (m68k_sched_issue_rate,
10009 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
10010 implementations.
10011 (TARGET_SCHED_ISSUE_RATE,
10012 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
10013 (override_options): Handle scheduling for ColdFire V4 core.
10014 (m68k_expand_prologue): Emit stack_tie.
10015 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
10016 'OP_TYPE_FPN'. Update all uses.
10017 (sched_guess_p): Remove.
10018 (sched_address_type): Handle symbolic addresses.
10019 (sched_get_operand): New static function.
10020 (sched_operand_type): Merge into sched_attr_op_type.
10021 (sched_attr_op_type): Handle FP registers, handle quick constants,
10022 update.
10023 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
10024 (m68k_sched_attr_size): Update. Move logic to ...
10025 (sched_get_attr_size_int): New static function.
10026 (sched_get_opxy_mem_type): New static function.
10027 (m68k_sched_attr_op_mem): Update.
10028 (m68k_sched_attr_type2): Remove.
10029 (sched_cfv4_bypass_data): New static variable.
10030 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
10031 (m68k_sched_issue_rate): Implement scheduler hook.
10032 (struct _sched_ib: enabled_p): New field.
10033 (m68k_sched_variable_issue): Update. Handle V4.
10034 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
10035 sched_dump_class_func_t, sched_dump_split_class,
10036 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
10037 sched_dump_dfa_class, m68k_sched_dump): Remove.
10038 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
10039 hook.
10040 (m68k_sched_init_global): Remove statisctics dumping, introduce
10041 sanity check that all instructions have pipeline reservations. Handle
10042 ColdFire V4 core.
10043 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
10044 Handle ColdFire V4 core.
10045 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
10046 New static functions.
10047 (m68k_sched_address_bypass_p): New bypass predicate.
10048 (sched_get_indexed_address_scale): New static function.
10049 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
10050
10051 * cf.md: Update comments.
10052 (define_attr type2): Remove. Use 'type' attribute instead.
10053 Update all uses.
10054 (cf_ib): Rename to cfv123_ib. Update all uses.
10055 (cf_oep): Rename to cfv123_oep. Update all uses.
10056 (cf_chr): Rename to cfv123_chr. Update all uses.
10057 (cf_mem): Rename to cfv123_mem. Update all uses.
10058 (cf_mac): Move to more appropriate place.
10059 (cfv123_guess): New automaton and cpu_unit.
10060 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
10061 Update uses of 'size' attribute. Handle before reload scheduling.
10062 (cfv123_guess): New dummy reservation for unhandled instructions.
10063 (cfv4_*): Pipeline description of ColdFire V4 core.
10064 (ignore): New reservation to handle 'ignore' type.
10065
2ee510b4
ILT
100662008-05-07 Ian Lance Taylor <iant@google.com>
10067
10068 PR middle-end/36013
10069 * gimplify.c (find_single_pointer_decl_1): Don't look through
10070 indirections.
10071 (find_single_pointer_decl): Adjust comments.
10072
c18c98c0
JJ
100732008-05-07 Jakub Jelinek <jakub@redhat.com>
10074
f61edbf6
JJ
10075 PR middle-end/36137
10076 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
10077 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
10078
c18c98c0
JJ
10079 PR middle-end/36106
10080 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
10081 integral type rather than floating point, then VIEW_CONVERT_EXPR
10082 to the floating point type.
10083
c18c98c0 100842008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
10085
10086 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
10087 TFmode op0 to register.
10088
5f04ff80
AM
100892008-05-07 Alan Modra <amodra@bigpond.net.au>
10090
10091 * c-decl.c (grokdeclarator): Comment typo.
10092
c6c6b7aa
AH
100932008-05-06 Aldy Hernandez <aldyh@redhat.com>
10094
10095 * tree-flow.h: Remove prototype for computed_goto_p.
10096 * tree-cfg.c (computed_goto_p): Make static.
10097
4317a2fa
L
100982008-05-06 H.J. Lu <hongjiu.lu@intel.com>
10099
10100 PR target/35657
d0b48c67 10101 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
10102 (contains_aligned_value_p): This. Handle _Decimal128.
10103 (ix86_function_arg_boundary): Only align _Decimal128 to its
10104 natural boundary and handle it properly.
10105
c43f07af
MJ
101062008-05-06 Martin Jambor <mjambor@suse.cz>
10107
4317a2fa
L
10108 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
10109 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
10110 (ipcp_method_set_orig_node): Removed.
10111 (ipcp_cval_get_cvalue_type): Removed.
10112 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
10113 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
10114 (ipcp_cval_set_cvalue_type): Removed.
10115 (ipcp_cval_get_cvalue): Removed.
10116 (ipcp_cval_set_cvalue): Removed.
10117 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
10118 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
10119 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
10120 (ipcp_cval_meet): Renamed to ipa_lattice_meet
10121 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
10122 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
10123 (ipcp_get_ith_lattice): Changed parameters.
10124 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
10125 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
10126 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
10127 (ipcp_method_cval_print): Added temporary variable info.
10128 (ipcp_redirect): Removed already unused local variable caller.
10129 (ipcp_redirect): New temporary variable orig_callee_info
10130 (ipcp_redirect): Removed newly unused local variable callee.
10131 (ipcp_redirect): Removed (a bit confusing) local variable type.
10132 (ipcp_insert_stage): Added local variable info.
22129589 10133 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
c43f07af
MJ
10134 renamed too
10135 (ipcp_formal_create): Removed.
10136 (ipcp_method_cval_set): Removed.
10137 (ipcp_propagate_stage): Renamed lattice variables.
10138 (ipcp_method_cval_set_cvalue_type): Removed.
10139 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
22129589 10140 (ipcp_print_all_lattices): Changed printed strings to refer to
c43f07af
MJ
10141 lattices rather than cvals.
10142 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
10143 (ipcp_propagate_const): Changed formal parameters.
10144 (build_const_val): Changed formal parameters.
10145 (ipcp_insert_stage): Removed useless variable cvalue
10146 (build_const_val): Changed formal parameters.
10147 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
10148 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
10149 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
10150 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
22129589 10151 (ipcp_print_func_profile_counts): Changed string from "method" to
c43f07af
MJ
10152 "function"
10153 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
10154 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
10155 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
10156 (ipcp_structures_print): Renamed to ipcp_print_all_structures
10157 (ipcp_profile_print): Renamed to ipcp_print_profile_data
10158 (ipcp_lat_is_const): Changed parameters and made inline.
10159 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
10160 (ipcp_redirect): Renamed to ipcp_need_redirect_p
22129589 10161 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
c43f07af
MJ
10162 the predicate condition directly
10163 (ipcp_propagate_stage): Added local variable args. Removed local
10164 variable callee. (Both are mere code simplifications.)
10165 (ipcp_method_dont_insert_const): Renamed to
10166 ipcp_node_not_modifiable_p.
10167 (ipcp_node_not_modifiable_p): Made inline.
10168 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
10169 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
10170 (ipcp_print_all_lattices): Removed variable cvalue
10171 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
10172 Updated comments.
10173
2b9d6cf3
OH
101742008-05-06 Olivier Hainque <hainque@adacore.com>
10175
10176 * tree-sra.c (try_instantiate_multiple_fields): Early return
10177 if field has POINTER_TYPE.
10178
18efb179
KT
101792008-05-06 Kai Tietz <kai.tietz@onevision.com>
10180
10181 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
10182 by using 'q' specifier for instruction.
10183 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
10184
38ce04d9
AS
101852008-05-06 Anatoly Sokolov <aesok@post.ru>
10186
10187 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10188 Change mode of zero_extract from QImode to HImode.
10189 (sign bit tests peepholes): (Ditto.).
10190
333d8f61
UB
101912008-05-06 Uros Bizjak <ubizjak@gmail.com>
10192
10193 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 10194 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
10195 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
10196 to handle nonimmediate operands.
d0b48c67 10197 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
10198 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
10199 to handle nonimmediate operands.
d0b48c67
UB
10200 (*mmx_<code>v2sf3_finite): New insn pattern.
10201 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
10202 (mmx_<code>v2sf3): New expander. Use
10203 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10204 (mmx_<plusminus_insn><mode>3): New expander. Use
10205 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 10206 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
10207 (mmx_add<mode>3): Removed.
10208 (mmx_ssadd<mode>3): Ditto.
10209 (mmx_usadd<mode>3): Ditto.
10210 (mmx_sub<mode>3): Ditto.
10211 (mmx_sssub<mode>3): Ditto.
10212 (mmx_ussub<mode>3): Ditto.
d0b48c67 10213 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
10214 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
10215 to handle nonimmediate operands.
d0b48c67 10216 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
10217 insn pattern.
10218 (mmx_smulv4hi3_highpart): New expander. Use
10219 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 10220 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
10221 insn pattern.
10222 (mmx_umulv4hi3_highpart): New expander. Use
10223 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 10224 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
10225 (mmx_<code>v4hi3): New expander. Use
10226 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 10227 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
10228 (mmx_<code>v8qi3): New expander. Use
10229 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 10230 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
10231 (mmx_<code><mode>3): New expander. Use
10232 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
10233
3716f233
JH
102342008-05-05 Jan Hubicka <jh@suse.cz>
10235
10236 PR tree-optimization/36118
10237 * passes.c (pass_init_dump_file): Fix dump header.
10238
1aee3ab6
AP
102392008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
10240
10241 PR middle-end/36141
333d8f61
UB
10242 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
10243 VCE for function decls.
1aee3ab6 10244
0d07fcad
L
102452008-05-05 H.J. Lu <hongjiu.lu@intel.com>
10246
10247 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
10248
d1c3b587
L
102492008-05-05 H.J. Lu <hongjiu.lu@intel.com>
10250
10251 * config/i386/i386.md (sat_plusminus): New.
10252 (plusminus_insn): Likewise.
10253 (plusminus_mnemonic): Likewise.
10254 (addsub): Removed.
10255 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
10256 (*<addsub><mode>3_cc_overflow): Renamed to ...
10257 (*<plusminus_insn><mode>3_cc_overflow): This.
10258 (*<addsub>si3_zext_cc_overflow): Renamed to ...
10259 (*<plusminus_insn>si3_zext_cc_overflow): This.
10260
0d07fcad 10261 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
10262 (<plusminus_insn><mode>3): This.
10263 (*<addsub><mode>3): Renamed to ...
10264 (*<plusminus_insn><mode>3): This.
10265 (<sse>_vm<addsub><mode>3): Renamed to ...
10266 (<sse>_vm<plusminus_insn><mode>3): This.
10267 (sse3_h<addsub>v4sf3): Renamed to ...
10268 (sse3_h<plusminus_insn>v4sf3): This.
10269 (sse3_h<addsub>v2df3): Renamed to ...
10270 (sse3_h<plusminus_insn>v2df3): This.
10271 (<plusminus_insn><mode>3): New.
10272 (*<plusminus_insn><mode>3): Likewise.
10273 (sse2_<plusminus_insn><mode>3): Likewise.
10274 (add<mode>): Removed.
10275 (*add<mode>3): Likewise.
10276 (sse2_ssadd<mode>3): Likewise.
10277 (sse2_usadd<mode>3): Likewise.
10278 (sub<mode>3): Likewise.
10279 (*sub<mode>3): Likewise.
10280 (sse2_sssub<mode>3): Likewise.
10281 (sse2_ussub<mode>3): Likewise.
10282
23688481
BK
102832008-05-05 Benjamin Kosnik <bkoz@redhat.com>
10284
d1c3b587
L
10285 * gthr-single.h: Add in required interface elements as per gthr.h.
10286 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
10287 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
22129589 10288 Generalize UNUSED macro.
d1c3b587
L
10289 (__gthread_once): Add.
10290 (__gthread_key_create): Add.
333d8f61 10291 (__gthread_key_delete): Add.
d1c3b587 10292 (__gthread_getspecific): Add.
333d8f61 10293 (__gthread_setspecific): Add.
22129589 10294
e06f0ff9
AP
102952008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
10296
23688481
BK
10297 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
10298 the same size types for the indirect reference on the rhs, then
10299 create a VCE.
e06f0ff9 10300
8c32cbc9
UB
103012008-05-05 Uros Bizjak <ubizjak@gmail.com>
10302
10303 * config/i386/i386.md
10304 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
10305 one insn template instead of template series.
10306 (*xordi_1_rex64): Ditto.
10307 (*xordi_2_rex64): Ditto.
10308
06d10aaf
IR
103092008-05-05 Ira Rosen <irar@il.ibm.com>
10310
8c32cbc9 10311 PR tree-optimization/36119
06d10aaf
IR
10312 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
10313 in case of SLP.
10314
24c05141
JH
103152008-06-04 Jan Hubicka <jh@suse.cz>
10316
10317 tree-optimization/36100
10318 * tree-pass.h (pass_O0_always_inline): Declare.
10319 * ipa-inline.c (inline_transform): Remove dead code.
10320 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
10321 pass_O0_always_inline): New.
10322 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
10323
8fa8585d
KT
103242008-05-04 Kai Tietz <kai.tietz@onevision.com>
10325
10326 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
10327 mnemonic in this_param move for TARGET_64BIT.
10328
62d2739a
UB
103292008-05-04 Uros Bizjak <ubizjak@gmail.com>
10330
10331 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
10332 (*strmovsi_rex_1): Ditto.
10333 (*strsetsi_1): Ditto.
10334 (*strsetsi_rex_1): Ditto.
10335
10336 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
10337 adddicc expanders using SWI mode iterator.
10338
4d31c3e1
L
103392008-05-04 H.J. Lu <hongjiu.lu@intel.com>
10340
10341 PR target/36121
62d2739a
UB
10342 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
10343 argument handling.
4d31c3e1 10344
5f7ca34b
DM
103452008-05-04 David S. Miller <davem@davemloft.net>
10346
10347 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
10348 (sparc*-*-linux*): Use linux.h in tm_file.
10349 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
10350 compiler defaulting to 32-bit.
10351 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
10352 no longer needed.
10353 * config/sparc/linux.h: Remove definitions now obtained
10354 properly from linux.h
10355 * config/sparc/linux64.h: Likewise.
10356 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
10357 don't want this setting for 32-bit builds in a biarch compiler.
10358 * doc/install.texi: Add sparc-linux to list of targets
10359 supporting --enable-targets=all.
10360
5a3db6d5
AP
103612008-05-03 Andrew Pinski <pinskia@gmail.com>
10362
10363 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
10364
3c7ae64a
L
103652008-05-03 H.J. Lu <hongjiu.lu@intel.com>
10366
10367 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
10368 after V4SI_FTYPE_V8HI.
10369 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
10370 case V4SI_FTYPE_V2DF.
10371
4218dc2d 103722008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
10373
10374 * doc/invoke.texi (max-flow-memory-locations): Removed.
10375 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
22129589 10376
621b5ed6
RG
103772008-05-03 Richard Guenther <rguenther@suse.de>
10378
10379 PR middle-end/34973
10380 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
10381
11835124
DM
103822008-05-02 David S. Miller <davem@davemloft.net>
10383
10384 * config.gcc (need_64bit_hwint): Document libcpp dependency.
10385
e4d35515
SB
103862008-05-02 Simon Baldwin <simonb@google.com>
10387
10388 PR bootstrap/36108
10389 * c-common.h (warn_array_subscript_range): Removed.
10390 * c-common.c (warn_array_subscript_range): Ditto.
10391 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
10392 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
10393
bb1418c1
L
103942008-05-02 H.J. Lu <hongjiu.lu@intel.com>
10395
10396 * config/i386/i386.c (ix86_special_builtin_type): New.
10397 (bdesc_special_args): Likewise.
10398 (ix86_expand_special_args_builtin): Likewise.
10399 (ix86_init_mmx_sse_builtins): Updated.
10400 (ix86_expand_builtin): Updated.
10401 (ix86_expand_store_builtin): Removed.
10402 (ix86_expand_unop_builtin): Likewise.
10403
10404 * config/i386/mm3dnow.h (__v2sf): Moved to ...
10405 * config/i386/mmintrin.h (__v2sf): Here.
10406
10407 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
10408 const __v2sf.
10409 (_mm_loadl_pi): Likewise.
10410 (_mm_storeh_pi): Replace __v2si with __v2sf.
10411 (_mm_storel_pi): Likewise.
10412
10413 * doc/extend.texi: Correct __builtin_ia32_loadhps,
10414 __builtin_ia32_loadlps, __builtin_ia32_storehps,
10415 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
10416 __builtin_ia32_loadlpd.
10417
104182008-05-02 H.J. Lu <hongjiu.lu@intel.com>
10419
10420 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
10421 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
10422 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
10423 (ix86_init_mmx_sse_builtins): Updated.
10424 (ix86_expand_args_builtin): Likewise.
10425 (ix86_expand_builtin): Likewise.
10426 (ix86_expand_unop1_builtin): Renamed to ...
10427 (ix86_expand_unop_vec_merge_builtin): This.
10428
a12f79f5
JH
104292008-05-01 Jan Hubicka <jh@suse.cz>
10430
10431 PR bootstrap/36100
10432 * ipa-inline.c (inline_generate_summary): Make static.
10433 (inline_transform): Do not call inlining at -O0; make static.
10434 * passes.c (execute_todo): Add sanity check.
10435 (execute_one_ipa_transform_pass): Execute proper flags.
10436
b5487346
EB
104372008-05-01 Eric Botcazou <ebotcazou@adacore.com>
10438
10439 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
10440 (DECL_NONADDRESSABLE_P): Likewise.
10441 * alias.c (record_component_aliases): Fix comment.
10442
ca873b0e
SB
104432008-05-01 Simon Baldwin <simonb@google.com>
10444
10445 * c-common.h (warn_array_subscript_range): New function.
10446 * c-common.c (warn_array_subscript_range): Ditto.
10447 * tree-vrp.c (check_array_ref): Corrected code to agree with
10448 comment, ignoring only arrays of size 0 or size 1.
10449 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
10450
99c25ac1
L
104512008-05-01 H.J. Lu <hongjiu.lu@intel.com>
10452
10453 * config/i386/i386.c (ix86_builtin_type): Replace
10454 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
10455 (bdesc_args): Updated.
10456 (ix86_init_mmx_sse_builtins): Likewise.
10457 (ix86_expand_args_builtin): Likewise.
10458
10459 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
10460 with __v1di.
10461
10462 * doc/extend.texi: Correct __builtin_ia32_palignr.
10463
a44acfb9
L
104642008-05-01 H.J. Lu <hongjiu.lu@intel.com>
10465
10466 PR target/36095
10467 * config/i386/i386.c (bdesc_crc32): Removed.
10468 (ix86_expand_crc32): Likewise.
10469 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
10470 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
10471 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
10472 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
10473 UINT_FTYPE_UINT_UCHAR.
10474 (bdesc_args): Updated. Add crc32 builtins.
10475 (ix86_init_mmx_sse_builtins): Updated.
10476 (ix86_expand_args_builtin): Updated to support subreg.
10477
10478 * doc/extend.texi: Correct __builtin_ia32_crc32di.
10479
17653c00
JH
104802008-05-01 Jan Hubicka <jh@suse.cz>
10481
10482 * tree-pass.h (opt_pass): Add IPA_PASS.
10483 (varpool_node, cgraph_node): Forward declare.
10484 (ipa_opt_pass): Define.
10485 (pass_ipa_inline): Turn into ipa_opt_pass.
10486 (pass_apply_inline): Remove.
10487 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
10488 (apply_inline): Turn into ....
10489 (inline_transform): ... this one.
10490 (inline_generate_summary): New function.
10491 (pass_apply_inline): Remove.
10492 * function.h (ipa_opt_pass): Forward declare structure; typedef;
10493 vector.
10494 (struct function): Add ipa_transforms_to_apply.
10495 * passes.c (register_one_dump_file): Work on IPA_PASS.
10496 (init_optimization_passes): Remove pass_inline_parameters and
10497 pass_apply_inline.
10498 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
10499 (execute_one_pass) ... here; apply transforms when possible.
10500 (add_ipa_transform_pass, execute_ipa_summary_asses,
10501 execute_one_ipa_transform_pass): New.
10502 (execute_ipa_pass_list): Update for IPA_PASS type.
10503
bd9513ea
L
105042008-05-01 H.J. Lu <hongjiu.lu@intel.com>
10505
10506 * config/i386/i386.c (ix86_builtin_type): Add
10507 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
10508 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
10509 (bdesc_args): Add SSE4a builtins.
10510 (ix86_init_mmx_sse_builtins): Updated.
10511 (ix86_expand_args_builtin): Likewise.
10512 (ix86_expand_builtin): Likewise.
10513
858e5e79
L
105142008-05-01 H.J. Lu <hongjiu.lu@intel.com>
10515
10516 * config/i386/i386.c (ix86_builtin_type): Add
10517 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
10518 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
10519 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
10520 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
10521 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
10522 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
10523 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
10524 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
10525 and DI_FTYPE_DI_DI_INT.
10526 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
10527 (ix86_init_mmx_sse_builtins): Updated.
10528 (ix86_expand_args_builtin): Likewise.
10529 (ix86_expand_builtin): Likewise.
10530 (ix86_expand_binop_imm_builtin): Removed.
10531
10532 * doc/extend.texi: Correct __builtin_ia32_palignr128.
10533
a91ded4b
RG
105342008-04-30 Richard Guenther <rguenther@suse.de>
10535
10536 PR tree-optimization/32921
10537 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
10538
ad516a74
RS
105392008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
10540
10541 * config/arm/arm.c (arm_unwind_emit): Use
10542 crtl->all_throwers_are_sibcalls instead of
10543 cfun->all_throwers_are_sibcalls.
10544 (arm_output_fn_unwind): Likewise.
10545 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
10546 instead of cfun->uses_pic_offset_table.
10547 (frv_expand_prologue): Likewise.
10548 (frv_frame_pointer_required): Likewise.
10549 (frv_expand_fdpic_call): Likewise.
10550 (frv_emit_movsi): Likewise.
10551 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
10552 cfun->returns_pcc_struct instead of
10553 current_function_returns_pcc_struct.
10554 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
10555 instead of cfun->calls_eh_return.
10556 (m32c_pushm_popm): Likewise.
10557 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
10558 "extern" declaration.
10559
00d382a8
RG
105602008-04-30 Richard Guenther <rguenther@suse.de>
10561
10562 PR tree-optimization/21636
10563 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
10564 constant address.
10565 (evaluate_stmt): Print the likely value.
10566 (ccp_visit_stmt): Avoid excessive vertical spacing.
10567
45e18420
RAE
105682008-04-30 Rafael Espindola <espindola@google.com>
10569
10570 * builtins.c (fold_call_expr): Return realret.
10571 * tree-ssa-threadedge.c
10572 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10573 __builtin_object_size.
10574
fe7df9c4
SP
105752008-04-30 Seongbae Park <seongbae.park@gmail.com>
10576
10577 * gcc.c (wrapper_string): New variable.
10578 (insert_wrapper): New function.
10579 (execute): New option -wrapper.
10580 * doc/invoke.texi (Overall Options): New driver option -wrapper.
10581
18724e30
NF
105822008-04-30 Nathan Froyd <froydnj@codesourcery.com>
10583
62d2739a
UB
10584 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
10585 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
10586 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
10587 from...
10588 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
10589 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
10590 config/rs6000/e500crtres64gprctr.asm,
10591 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
10592 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
10593 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
10594 config/rs6000/e500crtsav64gprctr.asm,
10595 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
10596 config/rs6000/e500crtsavg64gprctr.asm: New files.
10597 * config/rs6000/t-ppccomm: Add build rules for new files.
10598 (LIB2FUNCS_STATIC_EXTRA): Add new files.
10599 * config/rs6000/t-netbsd: Add build rules for new files.
10600 (LIB2FUNCS_STATIC_EXTRA): New variable.
10601 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
10602 (CRTSAVRES_DEFAULT_SPEC): Likewise.
10603 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 10604
1b667c82
L
106052008-04-30 H.J. Lu <hongjiu.lu@intel.com>
10606
10607 * config/i386/i386.c (ix86_builtin_type): Add
10608 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
10609 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
10610 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
10611 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
10612 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
10613 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
10614 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
10615 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
10616 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
10617 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
10618 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
10619 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
10620 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
10621 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
10622 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
10623 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
10624 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
10625 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
10626 V1DI_FTYPE_V2SI_V2SI.
10627 (bdesc_2arg): Moved to ...
10628 (bdesc_args): Here.
10629 (ix86_init_mmx_sse_builtins): Updated.
10630 (ix86_expand_args_builtin): Updated. Take a pointer
10631 to const struct builtin_description. Handle comparison
10632 builtin functions.
62d2739a 10633 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
10634 (ix86_expand_builtin): Updated.
10635
10636 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
10637 (ssse3_pmaddubsw128): This.
10638 (ssse3_pmaddubswv4hi3): Renamed to ...
10639 (ssse3_pmaddubsw): This.
10640
62d2739a 10641 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 10642 (__builtin_ia32_packssdw128): Likewise.
62d2739a 10643 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
10644 (__builtin_ia32_pmaddubsw): Likewise.
10645 (__builtin_ia32_pmaddubsw128): Likewise.
10646
d7b339dd
RG
106472008-04-30 Richard Guenther <rguenther@suse.de>
10648
10649 PR tree-optimization/14847
10650 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
10651 (recognize_bits_test): Use it.
10652 (recognize_single_bit_test): Likewise.
10653
6a3f3fea
MJ
106542008-04-30 Martin Jambor <mjambor@suse.cz>
10655
10656 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
10657 instead of setting number of formal parameters to zero.
22129589 10658 (ipcp_init_stage): Do not set the number of actual parameters to zero
6a3f3fea
MJ
10659 either.
10660 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
10661 which are called with variable number of arguments.
10662 (ipcp_insert_stage): Explicitely skipping all nodes which are
10663 called with variable number of arguments.
22129589 10664 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
6a3f3fea
MJ
10665 number of parameters.
10666
10667 * ipa-prop.h (struct ipa_node_params): Added flag
10668 called_with_var_arguments
10669 (ipa_set_param_count): Added. Changed sole setter to use it.
10670 (ipa_get_param_count): Added. All readers of param_count
10671 converted to use it instead.
10672 (ipa_set_called_with_variable_arg): Added.
10673 (ipa_is_called_with_var_arguments): Added.
10674 (ipa_get_ith_param): Added. All readers of param_decls converted
10675 to use it instead.
22129589
AS
10676 (ipa_set_cs_argument_count): Added, sole writer to argument_count
10677 changed to use it.
6a3f3fea
MJ
10678 (ipa_get_cs_argument_count): Added, all readers of argument_count
10679 changed to cal it.
22129589 10680 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
6a3f3fea 10681 to use it.
22129589 10682
6a3f3fea
MJ
10683 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
10684 (struct ipcp_lattice): Renamed cval_type to type
10685 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
10686
10687 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
10688 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
10689 (ipcp_insert_stage): Changed the type of variable cvalue to tree
10690 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
10691 (build_const_val): Changed the type of parameter cvalue to tree
10692 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
10693 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
22129589
AS
10694
10695 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
10696 constant
6a3f3fea
MJ
10697
10698 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
10699 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
10700 (ipa_add_method): Renamed to ipa_push_func_to_list
10701 (ipa_remove_method): Renamed to ipa_pop_func_from_list
10702 (ipa_callsite_param_count): Removed.
10703 (ipa_callsite_param_count_set): Removed.
10704 (ipa_callsite_param): Removed.
10705 (ipa_callsite_callee): Removed.
10706 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
10707 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
10708 (ipa_method_formal_count): Removed.
10709 (ipa_method_formal_count_set): Removed.
10710 (ipa_method_get_tree): Removed.
10711 (ipa_method_tree_map_create): Removed.
10712 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
10713 (ipa_create_param_decls_array): Creates the array itself
22129589 10714 (ipa_create_param_decls_array): Temporary variable info instead of
6a3f3fea
MJ
10715 a few dereferences.
10716 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
10717 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
10718 (get_type): Removed.
10719 (ipa_jf_get_info_type): Removed.
10720 (ipa_node_create): Renamed to ipa_create_node_params
10721 (ipa_free): Renamed to ipa_free_all_node_params
10722 (ipa_nodes_create): Renamed to ipa_create_all_node_params
10723 (ipa_edges_create): Renamed to ipa_create_all_edge_args
10724 (ipa_edges_free): Renamed to ipa_free_all_edge_args
10725 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
22129589 10726 (ipa_free_all_node_params): Deallocation to jump_functions moved to
6a3f3fea
MJ
10727 ipa_free_all_edge_args
10728 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
10729 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
10730 (ipa_create_methodlist_node): Removed.
10731 (ipa_methodlist_method): Removed.
10732 (ipa_methodlist_method_set): Removed.
10733 (ipa_methodlist_next_method): Removed.
10734 (ipa_methodlist_next_method_set): Removed.
10735 (ipa_method_is_modified): Removed.
10736 (ipa_method_modify_create): Removed.
22129589 10737 (ipa_method_modify_init): Temporary variable info instead of a few
6a3f3fea 10738 dereferences.
22129589 10739 (ipa_detect_param_modifications): Temporary variable info instead of
6a3f3fea 10740 a few dereferences.
22129589 10741 (ipa_compute_jump_functions): Temporary variable info instead of
6a3f3fea
MJ
10742 a few dereferences.
10743 (ipa_method_modify_set): Removed.
10744 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
22129589 10745 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
6a3f3fea
MJ
10746 than craph_node as the first parameter.
10747 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
10748 (ipa_method_modify_init): Removed.
22129589 10749 (ipa_compute_jump_functions): Added a temp variable instead of
6a3f3fea
MJ
10750 repeatadly dereferencing the cgraph_edge.aux pointer
10751 (ipa_callsite_param_set_type): Removed.
22129589 10752 (ipa_compute_jump_functions): i renamed to index and moved to
6a3f3fea
MJ
10753 an inner block
10754 (ipa_callsite_param_set_info_type_formal): Removed.
10755 (ipa_callsite_param_set_info_type): Removed.
10756 (ipa_callsite_param_map_create): Removed.
10757 (ipa_callsite_tree): Removed.
10758 (ipa_callsite_caller): Removed.
10759 (ipa_pop_func_from_list): return_method removed to return_func
10760
10761 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
10762 prefixed all values with IPA_. Changed all users.
22129589
AS
10763 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
10764 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
10765 and FORMAL_IPATYPE IPA_PASS_THROUGH.
6a3f3fea
MJ
10766 (union parameter_info): Renamed to jump_func_value.
10767 (union jump_func_value): Renamed value to constant
10768 (struct ipa_jump_func): Renamed info_type to value
10769 (struct ipa_node): Renamed to ipa_node_params
10770 (struct ipa_node_params): Renamed ipa_arg_num to param_count
10771 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
10772 (struct ipa_node_params): Renamed ipa_mod to modified_flags
10773 (struct ipa_edge): Renamed to ipa_edge_args
10774 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
10775 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
10776 (struct ipa_methodlist): Renamed to ipa_func_list
10777 (struct ipa_func_list): method_p renamed to node, next_method
10778 renamed to next
10779 (ipa_methodlist_p): Removed, switched all users to struct pointer
10780 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
10781
1c9c5e43
AM
107822008-04-30 Alan Modra <amodra@bigpond.net.au>
10783
10784 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
10785 (rs6000_emit_epilogue): Use backchain to restore only when we
10786 have a large frame. Make use of frame pointer to restore if we
10787 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
10788
cf2758e3
PB
107892008-04-29 Paolo Bonzini <bonzini@gnu.org>
10790
10791 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
10792 Add mode to zero_extract.
10793 (sign bit tests peepholes): (Ditto.).
10794
f318ff0a
L
107952008-04-29 H.J. Lu <hongjiu.lu@intel.com>
10796
10797 * config/i386/i386.c (ix86_builtins): Replace Prescott New
10798 Instructions in comments with SSE3.
10799 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
10800 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
10801 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
10802 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
10803 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
10804 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
10805 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
10806 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
10807 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
10808 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
10809 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
10810 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
10811 (bdesc_sse_args): Renamed to ...
10812 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
10813 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
10814 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
10815 IX86_BUILTIN_FABSQ.
10816 (bdesc_1arg): Moved to ...
10817 (bdesc_args): Here.
10818 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
10819 Instructions in comments with SSE3.
10820 (ix86_expand_sse_operands_builtin): Renamed to ...
10821 (ix86_expand_args_builtin): This. Updated.
10822 (ix86_expand_unop1_builtin): Update comments.
10823 (ix86_expand_builtin): Updated.
10824
ace4eb90
RG
108252008-04-29 Richard Guenther <rguenther@suse.de>
10826
10827 PR tree-optimization/36078
10828 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
10829 Update virtual SSA form after cleaning up the CFG.
10830
1447bf05
RG
108312008-04-29 Richard Guenther <rguenther@suse.de>
10832
10833 PR middle-end/15255
10834 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
10835
59e6913a
RG
108362008-04-29 Richard Guenther <rguenther@suse.de>
10837
10838 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
10839 (compute_may_aliases): Do not call finalize_ref_all_pointers.
10840 (compute_flow_insensitive_aliasing): Do not treat
10841 PTR_IS_REF_ALL pointers special.
10842 (get_smt_for): Likewise.
10843 (may_alias_p): Re-structure.
10844 (is_escape_site): A ref-all pointer conversion is not an escape site.
10845 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
10846 PTR_IS_REF_ALL pointers special.
10847 * tree-ssa-structalias.h (struct alias_info): Remove
10848 ref_all_symbol_mem_tag field.
10849 (PTR_IS_REF_ALL): Remove.
10850
81ad578e
RG
108512008-04-29 Richard Guenther <rguenther@suse.de>
10852
10853 PR middle-end/36077
10854 * fold-const.c (extract_muldiv_1): In combining division constants
10855 make sure to never overflow.
10856
4830ba1f
NC
108572008-04-29 Nick Clifton <nickc@redhat.com>
10858
10859 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
10860
b1c61c7e
RW
108612008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10862
10863 PR bootstrap/35169
10864 * optc-gen.awk: Work around HP-UX/IA awk bug.
10865
d6b68fcc
DS
108662008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
10867
10868 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
10869 2008-04-25 commit.
10870
0d5fd2b8
UB
108712008-04-28 Uros Bizjak <ubizjak@gmail.com>
10872
10873 PR target/36073
10874 * config/i386/i386.md
10875 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
10876 Change operand 1 predicate to nonimmediate_operand.
10877
623f8e39
JJ
108782008-04-28 Jakub Jelinek <jakub@redhat.com>
10879
10880 PR debug/36060
10881 * dwarf2out.c (struct die_struct): Mark as chain_circular through
10882 die_sub field.
10883 * gengtype.c (walk_type, write_func_for_structure): Handle
10884 chain_circular.
10885 * doc/gty.texi: Document chain_circular.
10886
82893cba
RG
108872008-04-28 Richard Guenther <rguenther@suse.de>
10888
10889 PR tree-optimization/36066
10890 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
10891 SCEV and loop.
10892
e356fac8
UB
108932008-04-28 Uros Bizjak <ubizjak@gmail.com>
10894
10895 PR target/36064
0d5fd2b8
UB
10896 * config/i386/i386.md
10897 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
10898 Use match_scratch instead of match_operand for operands 3 and 4.
10899
d6e840ee
RG
109002008-04-27 Richard Guenther <rguenther@suse.de>
10901
10902 PR tree-optimization/18754
10903 PR tree-optimization/34223
10904 * tree-pass.h (pass_complete_unrolli): Declare.
10905 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
10906 loop size before and after unconditionally of UL_NO_GROWTH in effect.
10907 Rewrite loop into loop closed SSA form if it is not already.
10908 (tree_unroll_loops_completely): Re-structure to iterate over
10909 innermost loops with intermediate CFG cleanups.
10910 Unroll outermost loops only if requested or the code does not grow
10911 doing so.
10912 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
10913 loops are available.
10914 (tree_vectorize): Instead do so here.
10915 (tree_complete_unroll): Also unroll outermost loops.
10916 (tree_complete_unroll_inner): New function.
10917 (gate_tree_complete_unroll_inner): Likewise.
10918 (pass_complete_unrolli): New pass.
10919 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
10920 uses outside of the loop.
10921 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
22129589 10922 form if it is available.
d6e840ee
RG
10923 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
10924 * passes.c (init_optimization_passes): Schedule complete inner
10925 loop unrolling pass before the first CCP pass after final inlining.
10926
feb60f03
NS
109272008-04-27 Nathan Sidwell <nathan@codesourcery.com>
10928
10929 * targhooks.h (default_emutls_var_fields,
10930 default_emutls_var_init): Declare.
10931 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
10932 * target.h (struct gcc_target): Add struct emutls member.
10933 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
10934 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
10935 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
10936 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
10937 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
10938 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
10939 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
10940 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
10941 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
10942 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
10943 emit debug information.
10944 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
10945 * varasm.c: Include targhooks.h.
10946 (emutls_object_section, emutls_tmpl_section): New.
10947 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
10948 (EMUTLS_SEPARATOR): New.
10949 (prefix_name): New.
10950 (get_emutls_object_name): New.
10951 (default_emutls_var_fields): New, broken out of ...
10952 (get_emutls_object_type): ... here. Adjust to use target hooks.
10953 (get_emutls_init_templ_addr): Adjust to use target hooks.
10954 (emutls_decl): Adjust to use target hooks.
10955 (emutls_finish): Likewise.
10956 (default_emutls_var_init): New, broken out of ...
10957 (assemble_variable): ... here. Adjust to use target hooks.
10958 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
10959 SECCAT_EMUTLS_TMPL.
10960 * c-common.c (handle_section_attribute): Prevent overriding
10961 sections for emulated tls with special sections.
10962 * config/i386/i386.c (x86_64_elf_select_section): Add
10963 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
10964 (x86_64_elf_unique_section): Likewise.
10965 * config/vxworks.c: Include tree.h.
10966 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
10967 (vxworks_override_options): Set TLS scheme.
623f8e39 10968 * doc/tm.texi (Emulated TLS): New node.
feb60f03 10969
6bfb7f10
SB
109702008-04-26 Simon Baldwin <simonb@google.com>
10971
10972 PR c/35652
10973 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
10974 with propagated string constants.
10975
73e8165a
UB
109762008-04-26 Uros Bizjak <ubizjak@gmail.com>
10977
10978 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
10979 constraint for operand 2 when operand 0 is memory operand.
10980 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
10981 operand 0 is memory operand.
10982 (fix_trunc<mode>_i387_with_temp): Ditto.
10983 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
10984 operand 2 when operand 1 is memory operand.
10985 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
10986 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
10987 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
10988 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
10989 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
10990 operands 2,3 and 4 when operand 1 is memory operand.
10991 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
10992 is memory operand.
10993 (fistdi2_floor_with_temp): Ditto.
10994 (fist<mode>2_floor_with_temp): Ditto.
10995 (fistdi2_ceil_with_temp): Ditto.
10996 (fist<mode>2_ceil_with_temp): Ditto.
10997 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
10998
49bce30a
RS
109992008-04-26 David Daney <ddaney@avtrex.com>
11000
11001 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
11002 unspec_volitile.
11003 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
11004 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
11005 UNSPEC_UPDATE_GOT_VERSION): Renumber.
11006 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
11007 (compare_and_swap_12): New insn.
11008 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
11009 * config/mips/mips.c (mips_force_binary): New function.
11010 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
11011 (mips_expand_compare_and_swap_12): New function.
11012 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
11013
e3b5732b
JH
110142008-04-25 Jan Hubicka <jh@suse.cz>
11015
11016 PR testsuite/35843
11017 * cfgexpand.c (pass_expand): Turn into RTL pass.
11018 * passes.c (execute_one_pass): Do pass typechecking after execution.
11019 * tree-pass.h (pass_expand): Turn into RTL pass.
11020
11021 * function.h (struct rtl_data): Move here fields
11022 accesses_prior_frames, calls_eh_return, saves_all_registers,
11023 has_nonlocal_goto, has_asm_statement, is_thunk,
11024 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
11025 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
11026 arg_pointer_save_area_init from struct function; turn into bool.
11027 (struct function): Move
11028 calls_eh_return, saves_all_registers, has_nonlocal_goto,
11029 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
11030 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
11031 tail_call_emit, arg_pointer_save_area_init
11032 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
11033 (current_function_returns_struct, current_function_returns_pcc_struct,
11034 current_function_calls_setjmp, current_function_calls_alloca,
11035 current_function_accesses_prior_frames,
11036 current_function_calls_eh_return, current_function_is_thunk,
11037 current_function_stdarg, current_function_profile,
11038 current_function_limit_stack, current_function_uses_pic_offset_table,
11039 current_function_uses_const_pool, current_function_has_nonlocal_label,
11040 current_function_saves_all_registers,
11041 current_function_has_nonlocal_goto,
11042 current_function_has_asm_statement): Remove accesor macros.
11043 * ra-conflict.c (global_conflicts): Update.
11044 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
11045 (suitable_for_tail_call_opt_p): Update.
11046 * builtins.c (expand_builtin_return_addr): Update.
11047 (expand_builtin_setjmp_setup): Update.
11048 (expand_builtin_nonlocal_goto): Update.
11049 * final.c (final_start_function): Update.
11050 (profile_function): Update.
11051 (leaf_function_p): Update.
11052 (only_leaf_regs_used): Update.
11053 * df-scan.c (df_get_exit_block_use_set): Update.
11054 * dojump.c (clear_pending_stack_adjust): Update.
11055 * tree-stdarg.c (gate_optimize_stdarg): Update.
11056 * gimple-low.c (lower_function_body): Update.
11057 * global.c (compute_regsets): Update.
11058 (global_alloc): Update.
11059 * dwarf2out.c (dwarf2out_begin_prologue): Update.
11060 * expr.c (expand_assignment): Update.
11061 * dse.c (dse_step0): Update.
11062 (dse_step1): Update.
11063 * c-decl.c (store_parm_decls): Update.
11064 * local-alloc.c (combine_regs): Update.
11065 (find_free_reg): Update.
11066 * function.c (assign_parms_augmented_arg_list): Update.
11067 (assign_parm_find_data_types): Update.
11068 (assign_parms): Update.
11069 (allocate_struct_function): Update.
11070 (expand_function_start): Update.
11071 (expand_function_end): Update.
11072 (get_arg_pointer_save_area): Update.
11073 (thread_prologue_and_epilogue_insns): Update.
11074 (rest_of_match_asm_constraints): Update.
11075 * stor-layout.c (variable_size): Update.
11076 * gcse.c (gcse_main): Update.
11077 (bypass_jumps): Update.
11078 * gimplify.c (gimplify_function_tree): Update.
11079 * calls.c (emit_call_1): Update.
11080 (expand_call): Update.
11081 * bt-load.c (compute_defs_uses_and_gen): Update.
11082 * except.c (sjlj_assign_call_site_values): Update.
11083 (sjlj_emit_function_enter): Update.
11084 (can_throw_external): Update.
11085 (set_nothrow_function_flags): Update.
11086 (expand_builtin_unwind_init): Update.
11087 (expand_eh_return): Update.
11088 (convert_to_eh_region_ranges): Update.
11089 (output_function_exception_table): Update.
11090 * emit-rtl.c (gen_tmp_stack_mem): Update.
11091 * cfgexpand.c (expand_used_vars): Update.
11092 (tree_expand_cfg): Update.
11093 * cfgcleanup.c (rest_of_handle_jump): Update.
11094 * explow.c (allocate_dynamic_stack_space): Update.
11095 * varasm.c (assemble_start_function): Update.
11096 (force_const_mem): Update.
11097 (mark_constant_pool): Update.
11098 * tree-optimize.c (tree_rest_of_compilation): Update.
11099 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
11100 * tree-cfg.c (notice_special_calls): Update.
11101 (is_ctrl_altering_stmt): Update.
11102 (tree_can_make_abnormal_goto): Update.
11103 (tree_purge_dead_abnormal_call_edges): Update.
11104 * config/alpha/predicates.md: Update.
11105 * config/alpha/alpha.c (alpha_sa_mask): Update.
11106 (alpha_sa_size): Update.
11107 (alpha_does_function_need_gp): Update.
11108 (alpha_expand_prologue): Update.
11109 (alpha_start_function): Update.
11110 (alpha_output_function_end_prologue): Update.
11111 (alpha_expand_epilogue): Update.
11112 * config/frv/frv.c (frv_stack_info): Update.
11113 (frv_expand_epilogue): Update.
11114 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
11115 (s390_register_info): Update.
11116 (s390_frame_info): Update.
11117 (s390_init_frame_layout): Update.
11118 (s390_can_eliminate): Update.
11119 (save_gprs): Update.
11120 * config/spu/spu.c (spu_split_immediate): Update.
11121 (need_to_save_reg): Update.
11122 (spu_expand_prologue): Update.
11123 (spu_expand_epilogue): Update.
11124 * config/sparc/sparc.md: Update.
11125 * config/sparc/sparc.c (eligible_for_return_delay): Update.
11126 (sparc_tls_got): Update.
11127 (legitimize_pic_address): Update.
11128 (sparc_emit_call_insn): Update.
11129 (sparc_expand_prologue): Update.
11130 (output_return): Update.
11131 (print_operand): Update.
11132 (sparc_function_ok_for_sibcall): Update.
11133 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
11134 * config/m32r/m32r.md: Update.
11135 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
11136 (m32r_compute_frame_size): Update.
11137 (m32r_expand_prologue): Update.
11138 (m32r_expand_epilogue): Update.
11139 (m32r_legitimize_pic_address): Update.
11140 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
11141 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11142 * config/i386/i386.c (ix86_frame_pointer_required): Update.
11143 (gen_push): Update.
11144 (ix86_save_reg): Update.
11145 (ix86_compute_frame_layout): Update.
11146 (ix86_expand_prologue): Update.
11147 (ix86_expand_epilogue): Update.
11148 * config/sh/sh.c (output_stack_adjust): Update.
11149 (calc_live_regs): Update.
11150 (sh5_schedule_saves): Update.
11151 (sh_expand_prologue): Update.
11152 (sh_expand_epilogue): Update.
11153 (sh_setup_incoming_varargs): Update.
11154 (sh_allocate_initial_value): Update.
11155 (sh_get_pr_initial_val): Update.
11156 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
11157 * config/sh/sh.md (label:): Update.
11158 * config/avr/avr.c (out_movhi_mr_r): Update.
11159 * config/crx/crx.h (enum): Update.
11160 * config/xtensa/xtensa.h (along): Update.
11161 * config/stormy16/stormy16.c Update.
11162 (xstormy16_compute_stack_layout): Update.
11163 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
11164 (fr30_expand_prologue): Update.
11165 * config/cris/cris.c (cris_conditional_register_usage): Update.
11166 (cris_reg_saved_in_regsave_area): Update.
11167 (cris_initial_frame_pointer_offset): Update.
11168 (cris_simple_epilogue): Update.
11169 (cris_expand_prologue): Update.
11170 (cris_expand_epilogue): Update.
11171 (cris_expand_pic_call_address): Update.
11172 (cris_asm_output_symbol_ref): Update.
11173 (cris_asm_output_label_ref): Update.
11174 * config/cris/cris.md Update.
11175 * config/iq2000/iq2000.c (compute_frame_size): Update.
11176 (iq2000_expand_epilogue): Update.
11177 * config/mt/mt.h (save_direction): Update.
11178 * config/mn10300/mn10300.c (mn10300_function_value): Update.
11179 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
11180 (ia64_secondary_reload_class): Update.
11181 * config/m68k/m68k.c (m68k_save_reg): Update.
11182 (m68k_expand_prologue): Update.
11183 (m68k_expand_epilogue): Update.
11184 (legitimize_pic_address): Update.
11185 * config/rs6000/rs6000.c (rs6000_got_register): Update.
11186 (first_reg_to_save): Update.
11187 (first_altivec_reg_to_save): Update.
11188 (compute_vrsave_mask): Update.
11189 (compute_save_world_info): Update.
11190 (rs6000_stack_info): Update.
11191 (spe_func_has_64bit_regs_p): Update.
11192 (rs6000_ra_ever_killed): Update.
11193 (rs6000_emit_eh_reg_restore): Update.
11194 (rs6000_emit_allocate_stack): Update.
11195 (rs6000_emit_prologue): Update.
11196 (rs6000_emit_epilogue): Update.
11197 (rs6000_output_function_epilogue): Update.
11198 (output_profile_hook): Update.
11199 (rs6000_elf_declare_function_name): Update.
11200 * config/rs6000/rs6000.h (rs6000_args): Update.
11201 * config/rs6000/rs6000.md: Update.
11202 * config/mcore/mcore.c (mcore_expand_prolog): Update.
11203 * config/arc/arc.c (arc_output_function_epilogue): Update.
11204 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
11205 * config/darwin.c (machopic_function_base_name): Update.
11206 * config/score/score3.c (score3_compute_frame_size): Update.
11207 (rpush): Update.
11208 (rpop): Update.
11209 (score3_epilogue): Update.
11210 * config/score/score7.c (score7_compute_frame_size): Update.
11211 (score7_prologue): Update.
11212 (score7_epilogue): Update.
11213 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
11214 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
11215 * config/arm/arm.c (use_return_insn): Update.
11216 (require_pic_register): Update.
11217 (arm_load_pic_register): Update.
11218 (arm_compute_save_reg0_reg12_mask): Update.
11219 (arm_compute_save_reg_mask): Update.
11220 (thumb1_compute_save_reg_mask): Update.
11221 (output_return_instruction): Update.
11222 (arm_output_function_prologue): Update.
11223 (arm_output_epilogue): Update.
11224 (arm_get_frame_offsets): Update.
11225 (arm_expand_prologue): Update.
11226 (thumb_pushpop): Update.
11227 (thumb_exit): Update.
11228 (thumb1_expand_prologue): Update.
11229 (thumb1_expand_epilogue): Update.
11230 (arm_unwind_emit): Update.
11231 (arm_output_fn_unwind): Update.
11232 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
11233 * config/arm/arm.md: Update.
11234 * config/pa/pa.md: Update.
11235 * config/pa/pa.c (legitimize_pic_address): Update.
11236 (compute_frame_size): Update.
11237 (hppa_expand_prologue): Update.
11238 (hppa_expand_epilogue): Update.
11239 (borx_reg_operand): Update.
11240 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
11241 (HARD_REGNO_RENAME_OK): Update.
11242 * config/mips/mips.c (mips_global_pointer): Update.
11243 (mips_save_reg_p): Update.
11244 (mips_compute_frame_info): Update.
11245 (mips_frame_pointer_required): Update.
11246 (mips_expand_prologue): Update.
11247 (mips_expand_epilogue): Update.
11248 (mips_can_use_return_insn): Update.
11249 (mips_reorg_process_insns): Update.
11250 * config/v850/v850.c (compute_register_save_size): Update.
11251 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
11252 * config/mmix/mmix.c (along): Update.
11253 (mmix_expand_epilogue): Update.
11254 * config/bfin/bfin.c (legitimize_pic_address): Update.
11255 (must_save_p): Update.
11256 (stack_frame_needed_p): Update.
11257 (add_to_reg): Update.
11258 (bfin_expand_prologue): Update.
11259 * stmt.c (expand_asm_operands): Update.
11260 * reload1.c (reload): Update.
11261 (init_elim_table): Update.
11262
d1163987 112632008-04-25 Bob Wilson <bob.wilson@acm.org>
22129589 11264
d1163987 11265 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
22129589 11266
a5e11364
L
112672008-04-25 H.J. Lu <hongjiu.lu@intel.com>
11268
62d2739a 11269 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
11270 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
11271 (mov<mode>): Removed.
11272 (*movv4sf_internal): Likewise.
11273 (*movv2df_internal): Likewise.
11274
68d154b9
PG
112752008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
11276
11277 * config.gcc (crx-*-elf): Remove deprecation.
11278
e65e1476
DS
112792008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
11280
11281 * config/i386/cygming-crtend.c (register_frame_ctor): Register
11282 __gcc_deregister_frame with atexit.
11283 (deregister_frame_dtor): Remove.
11284
9553940c 112852008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
11286 Nathan Sidwell <nathan@codesourcery.com>
11287
e6d8b0c6 11288 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 11289 (misel): Likewise.
e6d8b0c6 11290 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 11291 (rs6000_isel): Likewise.
e6d8b0c6 11292 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 11293 (rs6000_isel): New variable.
e6d8b0c6 11294 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 11295
5dc11954
JJ
112962008-04-24 Jakub Jelinek <jakub@redhat.com>
11297
11298 PR c++/35758
11299 * c-common.c (handle_vector_size_attribute): Call
11300 lang_hooks.types.reconstruct_complex_type instead of
11301 reconstruct_complex_type.
11302 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
11303 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
11304 * langhooks.h (struct lang_hooks_for_types): Add
11305 reconstruct_complex_type hook.
11306 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
11307 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
11308
83322951
RG
113092008-04-24 Richard Guenther <rguenther@suse.de>
11310
11311 * c-common.h (check_builtin_function_arguments): Declare.
11312 * c-common.c (validate_nargs): New function.
11313 (check_builtin_function_arguments): Likewise.
11314 * c-typeck.c (build_function_call): Call
11315 check_builtin_function_arguments.
11316 * builtins.c (fold_builtin_classify): Remove error reporting code.
11317 (fold_builtin_unordered_cmp): Likewise.
11318 (fold_builtin_1): Likewise.
11319 (fold_builtin_n): Likewise.
11320
194ac52a
JJ
113212008-04-24 Jakub Jelinek <jakub@redhat.com>
11322
11323 PR tree-optimization/36008
11324 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
11325 the original op1, rather than delta by step.
11326
9f9f72aa 113272008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 11328 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
11329
11330 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
11331 eliminate_local_variables_stmt, eliminate_local_variables,
11332 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
11333 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
11334 of code delimited by two edges in the CFG.
11335 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
11336 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
22129589 11337 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
9f9f72aa
AP
11338 the case of parallelisation of reductions.
11339 (expr_invariant_in_region_p): New.
11340
11341 * tree-flow.h (gather_blocks_in_sese_region): Declared.
11342 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
11343
2aa43509 113442008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 11345 Richard Guenther <rguenther@suse.de>
2aa43509
IR
11346
11347 PR tree-optimization/36034
11348 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
11349 incapable of dealing with loads with gaps.
11350
e80d7580
RAE
113512008-04-24 Rafael Espindola <espindola@google.com>
11352
11353 * tree-flow.h (vrp_evaluate_conditional): Change signature.
11354 * tree-ssa-propagate.c (fold_predicate_in): Update call to
11355 vrp_evaluate_conditional.
11356 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
11357 (vrp_evaluate_conditional): Split the cond argument.
11358 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
11359 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
11360 vrp_evaluate_conditional.
11361
0e37a1c2
IR
113622008-04-24 Ira Rosen <irar@il.ibm.com>
11363
11364 PR tree-optimization/35982
11365 * tree-vect-analyze.c (vect_check_interleaving): Check that the
11366 interleaved data-refs are of the same type.
11367
f9f9640f
DS
113682008-04-24 Danny Smith <dannysmith@users.net>
11369
e6d8b0c6
UB
11370 * c-format.c (check_format_info_main): Use strncmp rather than a
11371 magic prefix to handle multichar length specs.
f9f9640f
DS
11372 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
11373 Don't prefix "I64" and "I32" with '\0'.
11374
64ceac43
JJ
113752008-04-24 Jakub Jelinek <jakub@redhat.com>
11376
11377 PR target/36015
11378 * config/i386/i386.c (init_cumulative_args): Don't pass anything
11379 in registers for -m32 only if stdarg_p (fntype).
11380
4679504c
UB
113812008-04-24 Uros Bizjak <ubizjak@gmail.com>
11382
11383 PR rtl-optimization/36006
11384 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
11385 temp to op0 in order to avoid invalid rtx sharing.
11386
51eed280
PB
113872008-04-23 Paolo Bonzini <bonzini@gnu.org>
11388
11389 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
11390 check TREE_INVARIANT.
11391 * tree-gimple.c (is_gimple_address): New.
11392 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
11393 * tree-gimple.h (is_gimple_address): New.
11394 * tree.h (decl_address_invariant_p): New.
11395 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
11396 (build_string): Likewise.
11397 (decl_address_invariant_p): New, from is_gimple_invariant_address.
11398 (tree_invariant_p_1): Likewise.
11399 (save_expr): Use it.
11400 (tree_invariant_p): New.
11401 (skip_simple_arithmetic): Use it.
11402 (stabilize_reference_1): Use it.
11403 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
11404 simplify.
11405 (build1_stat): Drop code to compute TREE_INVARIANT.
11406 (build2_stat): Drop code to compute TREE_INVARIANT.
11407 (build3_stat): Drop code to compute TREE_INVARIANT.
11408 (build4_stat): Drop code to compute TREE_INVARIANT.
11409 (build5_stat): Drop code to compute TREE_INVARIANT.
11410 (build7_stat): Drop code to compute TREE_INVARIANT.
11411 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
11412 * tree.h (struct tree_base): Remove invariant_flag.
11413 (TREE_INVARIANT): Remove.
11414 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
11415 (fold_builtin_expect): Check TREE_CONSTANT.
11416 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
11417 * c-tree.h (c_expr_to_decl): Drop third parameter.
11418 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
11419 (build_c_cast): Don't set TREE_INVARIANT.
11420 (pop_init_level): Don't set TREE_INVARIANT.
11421 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
11422 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
11423 TREE_CONSTANT.
11424 (gimplify_init_constructor): Don't set TREE_INVARIANT.
11425 (gimplify_addr_expr): Adjust comment.
11426 * tree-mudflap.c (mf_build_string):
11427 * print-tree.c (print_node): Don't print TREE_INVARIANT.
11428 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
11429 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
11430 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
11431 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
11432 * langhooks.h (struct lang_hooks): Drop third parameter from
11433 expr_to_decl.
11434
17d2c090
RG
114352008-04-23 Richard Guenther <rguenther@suse.de>
11436
11437 PR tree-optimization/27799
11438 PR tree-optimization/32921
11439 PR tree-optimization/32624
11440 * tree-ssa-structalias.c (merge_smts_into): Only merge the
11441 SMTs aliases and the tag itself into the solution.
11442 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
11443 merge the points-to solution back into the SMT aliases.
11444 (may_alias_p): Use alias_set_subset_of instead of
11445 aliases_conflict_p. A pointer which points to
11446 memory with alias set zero may access any variable.
11447
a7a512be
RG
114482008-04-23 Richard Guenther <rguenther@suse.de>
11449
11450 * alias.c (alias_set_subset_of): Correctly handle asking
11451 if zero is a subset of an alias set with zero child.
11452 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
11453 (compute_flow_insensitive_aliasing): Correctly walk all
11454 pointers. Do not unnecessarily union sets.
11455
f3f75f69
RG
114562008-04-23 Richard Guenther <rguenther@suse.de>
11457
11458 PR middle-end/36021
11459 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
11460
09725d5e
TB
114612008-04-22 Tomas Bily <tbily@suse.cz>
11462
4679504c
UB
11463 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
11464 unreachable case.
11465 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
11466 NON_LVALUE_EXPR.
11467 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11468 * tree-ssa-structalias.c (get_constraint_for): Likewise.
11469 * tree-inline.c (estimate_num_insns_1): Likewise.
11470 * varasm.c (const_hash_1, compare_constant, copy_constant)
11471 (compute_reloc_for_constant, output_addressed_constants): Likewise.
11472 * emit-rtl.c (component_ref_for_mem_expr)
11473 (set_mem_attributes_minus_bitpos): Likewise.
11474 * expr.c (highest_pow2_factor, expand_expr_real_1, )
11475 (is_aligning_offset): Likewise.
11476 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
11477 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
11478 * dojump.c (do_jump): Likewise.
11479 * builtins.c (get_pointer_alignment, get_memory_rtx)
11480 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
11481 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 11482
63cb92c1
JJ
114832008-04-23 Jakub Jelinek <jakub@redhat.com>
11484
11485 PR rtl-optimization/36017
11486 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
11487 expanding the library call.
11488
b2f06c39
ILT
114892008-04-22 Ian Lance Taylor <iant@google.com>
11490
11491 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
11492 than size_in_bytes.
11493
aafc759a
PH
114942008-04-22 Pat Haugen <pthaugen@us.ibm.com>
11495
11496 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
11497 of LR/CTR moves for Power6.
11498
4218dc2d 114992008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
11500
11501 PR middle-end/36003
11502 * passes.c (init_optimization_passes): Remove
11503 pass_fast_rtl_byte_dce.
22129589 11504
6126672e
UB
115052008-04-22 Uros Bizjak <ubizjak@gmail.com>
11506
11507 PR target/29096
11508 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
11509 builtin functions to generate faster code.
11510 (_mm_cvtpu16_ps): Ditto.
11511 (_mm_cvtpi32x2_ps): Ditto.
11512
f6d2671e
NC
115132008-04-22 Nick Clifton <nickc@redhat.com>
11514
53ed2f0e
NC
11515 * common.opt (ftree-loop-distribution): Add Optimization
11516 attribute.
11517
7dd68986
NC
11518 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
11519 (frv_expand_builtin_va_start): Likewise.
11520
f6d2671e
NC
11521 * config/arm/arm.c (thumb_find_work_register): Fix location of
11522 argument register count.
11523
826fadba
MK
115242008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
11525
11526 Support scheduling for ColdFire V1 and V3 microarchitecture.
11527 Improve scheduling of multiplication instructions.
11528
11529 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
11530 (mac): New instruction attribute.
11531 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
11532 (m68k_sched_mac): New variable.
11533 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
11534 Handle cfv1 and cfv3.
11535 (max_insn_size): New static variable.
11536 (struct _sched_ib): New type.
11537 (sched_ib): New static variable.
11538 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
11539 to fields of 'struct _sched_ib sched_ib'. Update all uses.
11540 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
11541 Update.
11542 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
11543 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
11544 new variables. Update.
11545 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
11546 Add modeling of cfv3 instruction buffer. Update.
11547 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
11548 * config/m68k/m68k.h (TUNE_CFV3): New macro.
11549 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
11550 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
11551 a particular reservation applies to.
11552 (type2): Reorganize attribute values. Rename alu to alu_reg,
11553 alu_l to alu, move_l to omove. Join move to alu. Split mul
11554 to mul_l and mul_w.
11555 (cf_ib_*): Simplify description of instruction buffer.
11556 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
11557 (cf_mem): Split into cf_mem1 and cf_mem2.
11558 (cf_v2_move_??): Rename to cfv12_alu_??.
11559 (cf_v2_move_l_??): Rename to cfv12_omove_??.
11560 (cf_v2_mul_??): Remove reservations.
11561 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
11562 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
11563 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
11564 appropriate place.
11565 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
11566 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
11567 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
11568 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
11569 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
11570 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
11571 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
11572 expansions of the above reservations for instructions of sizes
11573 1, 2 and 3 words.
11574
c23da840
MK
115752008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
11576
11577 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
11578
27624b9e
AN
115792008-04-21 Adam Nemet <anemet@caviumnetworks.com>
11580
11581 * coverage.c: Include tree-pass.h.
11582 (coverage_counter_alloc): Print da_file_name to the dump file.
11583
4218dc2d 115842008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 11585
b60db1ba
KZ
11586 * sbitmap.c (sbitmap_range_empty_p): New function.
11587 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 11588 * bitmap.h: Now includes obstack.h.
b60db1ba 11589
27624b9e 115902008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 11591 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
11592
11593 * dbgcnt.def (ra_byte_scan): Added.
11594 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
22129589 11595 when the last hit happens for a counter.
cc806ac1
RS
11596 * timevar.def (TV_DF_BYTE_LR): New variable.
11597 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
11598 * passes.c (pass_fast_rtl_byte_dce): New pass.
11599 * fwprop.c (update_df): Added mode to call df_ref_create.
11600 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11601 DF_REF_EXTRACT_OFFSET.
22129589 11602 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
cc806ac1
RS
11603 DF_BYTE_LR_OUT, df_byte_lr): New macro.
11604 (df_mm): New enum.
11605 (df_ref_extract): Added mode field.
11606 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
11607 DF_REF_EXTRACT_OFFSET.
11608 (DF_REF_EXTRACT_MODE): New macro.
11609 (df_byte_lr_bb_info): New structure.
22129589 11610 (df_print_byte_regset, df_compute_accessed_bytes,
cc806ac1
RS
11611 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
11612 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
11613 df_byte_lr_simulate_uses,
11614 df_byte_lr_simulate_artificial_refs_at_top,
11615 df_byte_lr_simulate_artificial_refs_at_end,
11616 df_compute_accessed_bytes): New function.
11617 (df_ref_create): Add parameter.
11618 (df_byte_lr_get_bb_info): New inline function.
11619 * df-scan.c (df_ref_record, df_uses_record,
11620 df_ref_create_structure): Added mode parameter.
22129589 11621 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
cc806ac1 11622 df_defs_record, df_uses_record, df_get_conditional_uses,
22129589 11623 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
cc806ac1
RS
11624 df_entry_block_defs_collect, df_exit_block_uses_collect):
11625 Added mode parameter to calls to df_ref_record, df_uses_record,
11626 df_ref_create_structure.
4679504c 11627 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
11628 (df_ref_create_structure): Added code to set mode. Renamed
11629 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
11630 DF_REF_EXTRACT_OFFSET.
11631 * df-core.c (df_print_byte_regset): New function.
11632 * df-byte-scan.c: New file.
11633 * df-problems.c (df_rd_transfer_function): Removed unnecessary
22129589 11634 calls to BITMAP_FREE.
cc806ac1
RS
11635 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
11636 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22129589
AS
11637 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
11638 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
cc806ac1
RS
11639 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
11640 df_byte_lr_local_compute, df_byte_lr_init,
22129589
AS
11641 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
11642 df_byte_lr_transfer_function, df_byte_lr_free,
cc806ac1 11643 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22129589 11644 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
cc806ac1
RS
11645 df_byte_lr_simulate_uses,
11646 df_byte_lr_simulate_artificial_refs_at_top,
11647 df_byte_lr_simulate_artificial_refs_at_end): New function.
11648 * dce.c (byte_dce_process_block): New function.
11649 (dce_process_block): au is now passed in rather than computed
11650 locally. Changed loops that look at artificial defs to not look
22129589
AS
11651 for conditional or partial ones, because there never are any.
11652 (fast_dce): Now is able to drive byte_dce_process_block or
cc806ac1
RS
11653 dce_process_block depending on the kind of dce being done.
11654 (rest_of_handle_fast_dce): Add parameter to fast_dce.
11655 (rest_of_handle_fast_byte_dce): New function.
11656 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
11657 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
11658
3d4cb550
DF
116592008-04-21 Daniel Franke <franke.daniel@gmail.com>
11660
11661 PR fortran/35019
11662 * gcc.h: Added fortran options that take arguments to
11663 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
11664 macros.
11665
eea05d39
EB
116662008-04-20 Eric Botcazou <ebotcazou@adacore.com>
11667
11668 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
11669 scalarization if on the LHS and not a full access.
11670
def9bf34
RW
116712008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11672
eea05d39 11673 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 11674
b7d8d447 116752008-04-18 Rafael Espindola <espindola@google.com>
eea05d39 11676
b7d8d447
RAE
11677 * tree-vrp.c (find_case_label_index): Fix the binary search.
11678 (find_case_label_range): New.
11679 (vrp_visit_switch_stmt): Use find_case_label_range.
11680 (simplify_switch_using_ranges): Use find_case_label_range.
11681
ed3444e9
EB
116822008-04-18 Eric Botcazou <ebotcazou@adacore.com>
11683
11684 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
11685 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
11686
893174fa
TT
116872008-04-18 Tom Tromey <tromey@redhat.com>
11688
11689 PR libcpp/15500:
11690 * doc/cpp.texi (Implementation-defined behavior): Mention
11691 -finput-charset.
11692
6e3c5c30
ILT
116932008-04-18 Ian Lance Taylor <iant@google.com>
11694
11695 * fold-const.c (pointer_may_wrap_p): New static function.
11696 (fold_comparison): Add another test for pointer overflow. Use
11697 pointer_may_wrap_p to disable some false positives.
11698
b6baa67d 116992008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
22129589 11700
b6baa67d
KVH
11701 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
11702 (fname_as_string): Match updated cpp_interpret_string prototype.
11703 (fix_string_type): Support char16_t* and char32_t*.
11704 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
11705 derivative) nodes. Register as builtin if C++0x.
11706 (c_parse_error): Support CPP_CHAR{16,32}.
22129589 11707 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
b6baa67d
KVH
11708 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
11709 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
11710 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
11711 CTI_CHAR32_ARRAY_TYPE>: New elements.
11712 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
11713 char32_type_node, signed_char32_type_node, char16_array_type_node,
11714 char32_array_type_node): New defines.
11715 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
11716 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
11717 (lex_string): Support CPP_STRING{16,32}, match updated
11718 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
11719 (lex_charconst): Support CPP_CHAR{16,32}.
11720 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
11721 and CPP_STRING{16,32}.
11722
deb984e6
PB
117232008-04-18 Paolo Bonzini <bonzini@gnu.org>
11724
11725 PR bootstrap/35457
11726 * aclocal.m4: Regenerate.
11727 * configure: Regenerate.
11728
cb91fab0
JH
117292008-04-18 Jan Hubicka <jh@suse.cz>
11730
11731 * except.c (dw2_size_of_call_site_table,
11732 sjlj_size_of_call_site_table): Use vector API for call_site_record.
11733
11734 * cgraphbuild.c (build_cgraph_edges): Update.
11735 * tree-pass.h: Update comment.
11736 * final.c (leaf_function_p): Update.
11737 (leaf_renumber_regs): Update.
11738 (rest_of_clean_state): Update.
11739 * omp-low.c (expand_omp_parallel): Update.
11740 * ipa-reference.c (analyze_function): Update.
11741 * reorg.c (find_end_label): Update.
11742 (optimize_skip): Update.
11743 (fill_simple_delay_slots): Update.
11744 (fill_simple_delay_slots): Update.
11745 (make_return_insns): Update.
11746 (dbr_schedule): Update.
11747 * gimple-low.c (record_vars_into): Update.
11748 * cfgbuild.c (make_edges): Update.
11749 * function.c (assign_stack_local): Update.
11750 (assign_parm_adjust_stack_rtl): Update.
11751 (locate_and_pad_parm): Update.
11752 (allocate_struct_function): Do not initialize stack_alignment_needed
11753 and preferred_stack_boundary here.
11754 (stack_protect_prologue): Update.
11755 (stack_protect_epilogue): Update.
11756 (expand_function_start): Initialize stack_alignment_needed,
11757 preferred_stack_boundary and max_jumptable_ents.
11758 (expand_function_end): Update.
11759 (free_after_compilation): Do not NULLify epilogue_delay_list.
11760 * function.h (struct rtl_data): Add stack_protect_guard,
11761 stack_alignment_needed,
11762 preferred_stack_boundary, epilogue_delay_list.
11763 (struct function): Remove value_histograms, stack_alignment_needed,
11764 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
11765 last_label_uid,
11766 unexpanded_var_list, stack_protect_guard.
11767 (current_function_epilogue_delay_list): Remove.
11768 * ipa-type-escape.c (analyze_function): Update.
11769 * gimplify.c (pop_gimplify_context): Update comment.
11770 * calls.c (expand_call): Update.
11771 (emit_library_call_value_1): Update.
11772 * except.c (set_nothrow_function_flags): Update.
11773 * cfgexpand.c (get_decl_align_unit): Update.
11774 (create_stack_guard): Update.
11775 (estimated_stack_frame_size): Update.
11776 (expand_used_vars): Update.
11777 (tree_expand_cfg): Free histogram earliers, init expansion variables.
11778 * explow.c (allocate_dynamic_stack_space): Update.
11779 * tree-ssa-live.c (remove_unused_locals): Update.
11780 * varasm.c (mark_constant_pool): Update.
11781 * tree-inline.c (remap_decls): Update.
11782 (initialize_cfun): Update.
11783 (declare_return_variable): Update.
11784 (inline_forbidden_p): Update.
11785 (expand_call_inline): Update.
11786 (declare_inline_vars): Update.
11787 (tree_function_versioning): Update.
11788 * tree-flow.h (value_histograms): New.
11789 (VALUE_HISTOGRAMS): New macro.
11790 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
11791 last_label_uid.
11792 * tree-cfg.c (set_bb_for_stmt): Update.
11793 (replace_by_duplicate_decl): Update.
11794 (move_block_to_fn): Update.
11795 (new_label_mapper): Update.
11796 (dump_function_to_file): Update.
11797 * ipa-struct-reorg.c (build_data_structure): Update.
11798 * cfgrtl.c (print_rtl_with_bb): Update.
11799 * reload1.c (reload): Update.
11800 (reload): Update.
11801 * config/i386/i386.c (setup_incoming_varargs_64,
11802 ix86_compute_frame_layout): Update.
11803 * config/arc/arc.c (arc_output_function_epilogue): Update.
11804
799cff46
MS
118052008-04-18 Marius Strobl <marius@FreeBSD.org>
11806
11807 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
11808 for FreeBSD as well.
11809 * gthr-posix95.h: Likewise.
11810
de907943
RS
118112008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
11812
11813 PR rtl-optimization/35838
11814 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
11815 out the byte offset of the first subreg.
11816
c2b814b9
UB
118172008-04-17 Uros Bizjak <ubizjak@gmail.com>
11818
11819 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
11820 to split_ti instead of three separate calls with single member arrays.
11821 (subti3 splitter): Ditto.
11822 (adddi3 splitter): Ditto with split_di.
11823 (subdi3 splitter): Ditto.
11824 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
11825 two separate calls with single member arrays. Swap match_dup
11826 operands 1 and 2 to better fit into the array.
11827 (negdi2 splitter): Ditto with split_di.
11828 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
11829 two separate calls with single member arrays. Swap match_dup operands
11830 6 and 7 to better fit into the array.
11831
ec2e9a15
L
118322008-04-17 H.J. Lu <hongjiu.lu@intel.com>
11833
11834 * config/i386/i386.c (sse_builtin_type): New.
11835 (bdesc_sse_args): Likewise.
11836 (bdesc_sse_3arg): Removed.
11837 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
11838 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
11839 IX86_BUILTIN_ROUNDPS.
11840 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
11841 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
11842 IX86_BUILTIN_ROUNDPS.
11843 (ix86_expand_sse_4_operands_builtin): Removed.
11844 (ix86_expand_sse_operands_builtin): New.
11845 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
11846 and CODE_FOR_sse4_1_roundps.
11847 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
11848 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
11849
e6477eaa
AM
118502008-04-17 Alan Modra <amodra@bigpond.net.au>
11851
11852 PR target/35907
11853 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
11854 regs before frame pop when needed. If use_backchain_to_restore_sp
11855 then load backchain into a temp reg to restore vr and vrsave. Add
11856 code to restore vr after frame pop if possible.
11857
ba2e1892
RG
118582008-04-17 Richard Guenther <rguenther@suse.de>
11859
11860 * tree-vn.c (expressions_equal_p): Do not check type
11861 equality or compatibility before calling operand_equal_p.
11862 * fold-const.c (operand_equal_p): Check equivalence of
11863 integer constants before bailing out due to signedness or
11864 precision differences.
11865 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
11866 spurious differences in type qualification. Ignore types
11867 for COMPONENT_REFs at all.
11868
d60819f8
CB
118692008-04-17 Christian Bruel <christian.bruel@st.com>
11870
11871 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
11872 msw_skip comparison.
22129589 11873
3d5e00a0
JJ
118742008-04-16 Jakub Jelinek <jakub@redhat.com>
11875
12e19e05
JJ
11876 PR c/35739
11877 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
11878 reg type.
11879
3d5e00a0
JJ
11880 PR tree-optimization/35899
11881 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
11882 rather than TREE_OPERAND.
11883
17c340e0
UB
118842008-04-16 Uros Bizjak <ubizjak@gmail.com>
11885
11886 PR target/35944
11887 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
11888 temporary registers. Change operand predicate to general_operand.
11889 (remainderxf3): Ditto.
11890
e544c850
RG
118912008-04-16 Richard Guenther <rguenther@suse.de>
11892
11893 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
11894 * tree-affine.c (aff_combination_expand): Look through some
11895 conversions.
11896
3d57d7ce
DK
118972008-04-15 Doug Kwan <dougkwan@google.com>
11898
11899 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
11900 for hex printing.
11901 * tree-pretty-print.c (dump_generic_node): Ditto.
11902 * final.c (output_addr_const): Ditto.
11903 * dwarf2out.c (output_cfi): Ditto.
11904 * c-pretty-print.c (pp_c_integer_constant): Ditto.
11905 * print-rtl.c (print_rtx): Ditto.
11906 * print-tree.c (print_node_brief, print_node): Ditto.
11907 * c-common.c (match_case_to_enum_1): Ditto.
11908 * sched-vis.c (print_value): Ditto.
11909 * config/i386/i386.c (print_operand): Cast to long unsigned int
11910 for hex printing.
11911
d98c89de
DS
119122008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
11913 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
11914 MS Windows VirtualProtect function.
11915
69c32ec8
JH
119162008-04-15 Jan Hubicka <jh@suse.cz>
11917
11918 * gengtype.c (write_root): Param_is argument is OK.
11919 * expr.c (expand_expr_real_1): Update call of get_exception_*.
11920 * function.h: Include varray.h
11921 (rtl_eh): New stucture based on except.c one.
11922 (call_site_record): New forward declaration and vector type.
11923 * calls.c (emit_call_1): Do not call
11924 note_current_region_may_contain_throw.
11925 * except.c (eh_status): Remove cur_region, try_region since they are
11926 unused.
11927 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
11928 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22129589 11929 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
69c32ec8
JH
11930 Remove call_site_data_used, call_site_data_size.
11931 Turn call_site_record into vector in function.h.
11932 (note_current_region_may_contain_throw): Remove.
11933 (get_exception_pointer, get_exception_filter): Do not take struct
11934 function argument; update.
11935 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
11936 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
11937 build_post_landing_pads, dw2_build_landing_pads,
11938 sjlj_assign_call_site_values, sjlj_mark_call_sites,
22129589 11939 sjlj_emit_function_enter, sjlj_emit_function_enter,
69c32ec8
JH
11940 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
11941 sjlj_build_landing_pads, finish_eh_generation,
11942 remove_exception_handler_label, remove_eh_handler,
11943 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
11944 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
11945 add_action_record, collect_one_action_chain, add_call_site,
11946 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
11947 sjlj_output_call_site_table, output_function_exception_table,
11948 * except.h (note_current_region_may_contain_throw): Remove
11949 (get_exception_pointer, get_exception_filter): Do not take struct
11950 function argument.
11951 * Makefile.in (GTFILES): Put varargs before struct function.
11952
bd1f29d9
EB
119532008-04-15 Eric Botcazou <ebotcazou@adacore.com>
11954
11955 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
11956 punt for STRING_CST.
11957 (get_constraint_for): Deal with STRING_CST here instead.
11958
3bb3bb2d
RG
119592008-04-15 Richard Guenther <rguenther@suse.de>
11960
11961 * tree-ssa-propagate.c (substitute_and_fold): Substitute
11962 statements in a basic-block with a backward walk. Do not
11963 substitute into dead statements but instead remove those.
11964
d9338cf0
RG
119652008-04-15 Richard Guenther <rguenther@suse.de>
11966
11967 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
11968 to zero, thus disable creation of SFTs.
11969
7e80c6bf
EB
119702008-04-15 Eric Botcazou <ebotcazou@adacore.com>
11971
11972 * tree-predcom.c (suitable_reference_p): Return false if the
11973 reference can throw.
11974
b97d8153
JJ
119752008-04-15 Jakub Jelinek <jakub@redhat.com>
11976
11977 PR c/35751
11978 * c-decl.c (finish_decl): If extern or static var has variable
11979 size, set TREE_TYPE (decl) to error_mark_node.
11980
d0599470
RAE
119812008-04-15 Rafael Espindola <espindola@google.com>
11982
b97d8153 11983 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
11984 variable arg1.
11985
649caaad
RG
119862008-04-15 Richard Guenther <rguenther@suse.de>
11987
11988 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
11989 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
11990 (visit_reference_op_load): Do walk vuse-vdef chains on
11991 vn_reference_lookup.
11992 (visit_reference_op_store): But do not here.
11993 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
11994 vn_reference_lookup.
11995 (vn_lookup_with_vuses): But do so here.
11996
55d7d0fa
ILT
119972008-04-14 Ian Lance Taylor <iant@google.com>
11998
11999 * fold-const.c (fold_overflow_warning): Remove assertion.
12000
2c4eec69
BE
120012008-04-15 Ben Elliston <bje@au.ibm.com>
12002
12003 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
12004 temp1 local variables.
12005
120062008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
12007
12008 PR target/35661
12009 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
12010 ".text.unlikely" section as executable.
12011
07acc7b3
JW
120122008-04-14 James E. Wilson <wilson@tuliptree.org>
12013
12014 * config/ia64/ia64.c (rtx_needs_barrier): Handle
12015 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
12016 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
12017 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
12018 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
12019 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
12020 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
12021
4c9db6e0
ILT
120222008-04-14 Ian Lance Taylor <iant@google.com>
12023
12024 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
12025 * fold-const.c (fold_comparison): If appropriate, test
12026 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
12027 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
12028 reassociating a pointer type.
12029 * doc/invoke.texi (Optimize Options): Document that
12030 -fstrict-overflow applies to pointer wraparound.
12031
305da3ec
JH
120322008-04-13 Jan Hubicka <jh@suse.cz>
12033
12034 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
12035
298ac1dd
AP
120362008-04-12 Andrew Pinski <pinskia@gmail.com>
12037
12038 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
12039 we are going to "save the world".
12040
70a7c7f1
HPN
120412008-04-13 Hans-Peter Nilsson <hp@axis.com>
12042
12043 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
12044 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
12045 operand 0 constraint, not "=".
12046
ad7aacba
JW
120472008-04-11 James E. Wilson <wilson@tuliptree.org>
12048
12049 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
12050
9d6facc7
L
120512008-04-11 H.J. Lu <hongjiu.lu@intel.com>
12052
12053 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
12054 of size of positions_needed * CHAR_BIT.
12055
4fe663b0
L
120562008-04-11 H.J. Lu <hongjiu.lu@intel.com>
12057
12058 PR middle-end/35897
12059 * dse.c (store_info): Change positions_needed to unsigned
12060 HOST_WIDE_INT.
12061 (lowpart_bitmask): New.
12062 (record_store): Cast to unsigned HOST_WIDE_INT for
12063 positions_needed. Assert width <= size of positions_needed *
12064 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
12065 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
12066 lowpart_bitmask to set mask.
12067
9fdd7520
BS
120682008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
12069
12070 * config/bfin/constraints.md: New file.
12071 * config/bfin/bfin.md: Include it.
12072 (adddi3): Use satisfies_constraint functions instead of the old macros.
12073 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
12074 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
12075 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
12076 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
12077 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
12078 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
12079 EXTRA_CONSTRAINT): Delete.
12080 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
12081 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
12082 of the old macros.
12083 * config/bfin/bfin.c: Include "tm-constrs.h".
12084 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
12085 Use satisfies_constraint functions instead of the old macros.
12086 * doc/md.texi (Blackfin Constraints): Update file name reference.
12087
0a4bf1d3
RG
120882008-04-11 Richard Guenther <rguenther@suse.de>
12089
12090 PR tree-optimization/35869
12091 * tree-vrp.c (execute_vrp): Move switch statement update after
12092 jump threading. Schedule another cfg cleanup run.
12093
21516d64
VR
120942008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
12095
12096 PR c/35744
12097 * attribs.c (decl_attributes): Return early on errorneous node.
12098
0598f31b
OR
120992008-04-10 Oleg Ryjkov <olegr@google.com>
12100
12101 * tree.h (struct tree_base): Added a new flag default_def_flag.
12102 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
12103
a1fcb9a1
KK
121042008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
12105
12106 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
12107
6ef5fab0
JDA
121082008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12109
12110 PR target/35768
12111 * pa.md: Define mode iterator P. Define mode attribute dwc.
12112 (dcacheflush): Update pattern to use iterator P and attribute dwc.
12113 (icacheflush): Likewise.
12114 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
12115 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
12116
e47f8bba
BE
121172008-04-11 Ben Elliston <bje@au.ibm.com>
12118
12119 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
12120
2893f753
RAE
121212008-04-10 Rafael Espindola <espindola@google.com>
12122
b97d8153 12123 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
12124 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
12125 (extract_range_from_expr): The same.
12126
5fb79e4c
AN
121272008-04-10 Adam Nemet <anemet@caviumnetworks.com>
12128
12129 * config/mips/mips.md (GPR2): New mode iterator.
12130 (seq): Add comment.
12131 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
12132 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
12133 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
12134 Rewrite these to take two modes, the mode of comparison and the
12135 mode of the destination.
12136 * config/mips/mips.c (mips_expand_scc): Instead of having
12137 paradoxical subreg as destination, expand "narrowing" scc if mode
12138 of comparison is SI and target is requested in DI mode.
12139 (mips_emit_int_order_test): Update comment. Make mode of
12140 comparison match CMP0 rather than TARGET. When creating inverse
12141 target use mode of TARGET.
12142
63d628b2
AN
121432008-04-10 Adam Nemet <anemet@caviumnetworks.com>
12144
12145 * gcov-dump.c (tag_summary): Only print summaries for the first
12146 GCOV_COUNTERS_SUMMABLE counters.
12147
6dd18eb1
UB
121482008-04-10 Uros Bizjak <ubizjak@gmail.com>
12149
12150 * config/i386/i386.md (absneg): New code iterator.
12151 (absnegprefix): New code attribute.
12152 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
12153 patterns using absneg code iterator.
12154 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
12155 using absneg code iterator.
12156 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
12157 *neg<mode>2 patterns using absneg code iterator.
12158 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12159 *negextendsfdf2 patterns using absneg code iterator.
12160 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
12161 *negextendsfxf2 patterns using absneg code iterator.
12162 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
12163 *negextendsfdf2 patterns using absneg code iterator.
12164 * config/i386/sse.md (<code><mode>2): Macroize expander from
22129589 12165 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6dd18eb1 12166
f40bee31
AK
121672008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
12168
12169 * config/s390/s390.h: Remove the remains of the recent search
12170 & replace action of current_function_outgoing_args_size.
12171
19aec6b0
IR
121722008-04-10 Ira Rosen <irar@il.ibm.com>
12173
12174 PR tree-optimization/35821
12175 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
12176 NEW_STMT_LIST is not NULL.
12177
ee8f0bd7
DE
121782008-04-09 David Edelsohn <edelsohn@gnu.org>
12179
12180 PR libstdc++/35597
12181 * toplev.c (process_options): Remove -ffunction-sections debugging
12182 warning.
12183
3a3a1fe1
PB
121842008-04-09 Peter Bergner <bergner@vnet.ibm.com>
12185
12186 PR middle-end/PR28690
12187 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
12188 than gen_rtx_fmt_ee to perform more canonicalizations.
12189
e0941605
JDA
121902008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12191
12192 PR driver/35665
12193 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
12194
2f9ea521
RG
121952008-04-09 Richard Guenther <rguenther@suse.de>
12196
12197 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
12198 (dump_function_to_file): Dump function arguments with types.
12199
02765a37
RG
122002008-04-08 Richard Guenther <rguenther@suse.de>
12201
12202 * fold-const.c (fold_widened_comparison): Do not allow
12203 sign-changes that change the result.
12204
a0f39282
JJ
122052008-04-08 Janis Johnson <janis187@us.ibm.com>
12206
12207 PR target/35839
12208 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
12209 kinds of indirect references.
12210
7f62878c
DE
122112008-04-08 David Edelsohn <edelsohn@gnu.org>
12212
12213 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
12214 GNU Fortran language string.
12215
a1a6e271
RAE
122162008-04-08 Rafael Espindola <espindola@google.com>
12217
12218 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
12219 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
12220 * tree.h (tree_call_nonnegative_warnv_p): New.
12221
57b9e367
JH
122222008-04-08 Jan Hubicka <jh@suse.cz>
12223
12224 * function.c (free_after_compilation): Clear out regno_reg_rtx
12225 pointer.
12226
a95c8615
PB
122272008-04-08 Peter Bergner <bergner@vnet.ibm.com>
12228
12229 Revert
12230 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
12231
12232 PR middle-end/PR28690
12233 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
12234 same precedence as REG_POINTER and MEM_POINTER operands.
12235
903b3003
RG
122362008-04-08 Richard Guenther <rguenther@suse.de>
12237
12238 PR middle-end/35834
12239 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
12240 for adding index to base.
12241
0b03b302
KT
122422008-04-08 Kai Tietz <kai.tietz@onevision.com>
12243
12244 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
12245 (MINGW_ENABLE_EXECUTE_STACK): New.
12246 (IN_LIBGCC2): For libgcc include windows.h file for
12247 function declarations.
12248
582be0a1
HPN
122492008-04-08 Hans-Peter Nilsson <hp@axis.com>
12250
12251 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
12252 and tem2 if tem1 is not a REG or MULT.
12253
38173d38
JH
122542008-04-08 Jan Hubicka <jh@suse.cz>
12255
12256 * function.h (incomming_args): Break out of struct function.
12257 (function_subsections): Break out of struct function.
12258 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
12259 return_rtx and hard_reg_initial_vals from struct function.
12260 Kill inl_max_label_num.
12261 (current_function_pops_args, current_function_args_info,
12262 current_function_args_size, current_function_args_size,
12263 current_function_pretend_args_size,
12264 current_function_outgoing_args_size,
12265 current_function_internal_arg_pointer, current_function_return_rtx):
12266 Kill compatibility accestor macros.
12267 * builtins.c (expand_builtin_apply_args_1): Update.
12268 (expand_builtin_next_arg): Update.
12269 * df-scan.c (df_get_call_refs): Update.
12270 * dbxout.c (dbxout_function_end): Update.
12271 * dwarf2out.c (dwarf2out_switch_text_section): Update.
12272 (output_line_info): Update.
12273 (secname_for_decl): Update.
12274 (dwarf2out_var_location): Update.
12275 * function.c (free_after_compilation): Update.
12276 (assign_parm_find_stack_rtl): Update.
12277 (assign_parms): Update.
12278 (expand_dummy_function_end): Update.
12279 (expand_function_end): Update.
12280 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
12281 (expand_call): Update.
12282 (emit_library_call_value_1): Update.
12283 (store_one_arg): Update.
12284 * varasm.c (initialize_cold_section_name): Update.
12285 (unlikely_text_section): Update.
12286 (unlikely_text_section_p): Update.
12287 (assemble_start_function): Update.
12288 (assemble_end_function): Update.
12289 (default_section_type_flags): Update.
12290 (switch_to_section): Update.
12291 * integrate.c (set_decl_abstract_flags): Update.
12292 (get_hard_reg_initial_val): Update.
12293 (has_hard_reg_initial_val): Update.
12294 (allocate_initial_values): Update.
12295 * resource.c (init_resource_info): Update.
12296 * config/alpha/alpha.c (NUM_ARGS): Update.
12297 (direct_return): Update.
12298 (alpha_va_start): Update.
12299 (alpha_sa_size): Update.
12300 (alpha_initial_elimination_offset): Update.
12301 (alpha_expand_prologue): Update.
12302 (alpha_start_function): Update.
12303 (alpha_expand_epilogue): Update.
12304 (unicosmk_initial_elimination_offset):
12305 * config/alpha/alpha.md (call expander): Update.
12306 * config/s390/s390.c (s390_register_info): Update.
12307 (s390_register_info): Update.
12308 (s390_frame_info): Update.
12309 (s390_initial_elimination_offset): Update.
12310 (s390_build_builtin_va_list): Update.
12311 (s390_va_start): Update.
12312 * config/spu/spu.c (direct_return): Update.
12313 (spu_expand_prologue): Update.
12314 (spu_initial_elimination_offset): Update.
12315 (spu_build_builtin_va_list): Update.
12316 (spu_va_start): Update.
12317 * config/sparc/sparc.c (sparc_init_modes): Update.
12318 (sparc_compute_frame_size): Update.
12319 (function_value): Update.
12320 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
12321 * config/i386/i386.md (return expander): Update.
12322 * config/i386/i386.c (ix86_va_start): Update.
12323 (ix86_can_use_return_insn_p): Update.
12324 (ix86_compute_frame_layout): Update.
12325 (ix86_expand_epilogue): Update.
12326 * config/sh/sh.c (output_stack_adjust): Update.
12327 (calc_live_regs): Update.
12328 (sh_expand_prologue): Update.
12329 (sh_builtin_saveregs): Update.
12330 (sh_va_start): Update.
12331 (initial_elimination_offset): Update.
12332 (sh_allocate_initial_value): Update.
12333 (sh_function_ok_for_sibcall): Update.
12334 (sh_get_pr_initial_val): Update.
12335 * config/sh/sh.md (return expander): Update.
12336 * config/avr/avr.c (frame_pointer_required_p): UPdate.
12337 * config/crx/crx.c (crx_compute_frame): UPdate.
12338 (crx_initial_elimination_offset): UPdate.
12339 * config/xtensa/xtensa.c (compute_frame_size): Update
12340 (xtensa_builtin_saveregs): Update.
12341 (xtensa_va_start): Update.
12342 (order_regs_for_local_alloc): Update.
12343 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
12344 (xstormy16_expand_builtin_va_start): Update.
12345 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
12346 * config/m68hc11/m68hc11.md (return expanders): Update.
12347 * config/m68hc11/m68hc11.c (expand_prologue): Update.
12348 (expand_epilogue): Update.
12349 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
12350 (cris_simple_epilogue): Update.
12351 (cris_expand_prologue): Update.
12352 (cris_expand_epilogue): Update.
12353 * config/iq2000/iq2000.c (iq2000_va_start): Update.
12354 (compute_frame_size): Update.
12355 * config/mt/mt.c (mt_compute_frame_size): Update.
12356 * config/mn10300/mn10300.c (expand_prologue): Update.
12357 (expand_epilogue): Update.
12358 (initial_offset): Update.
12359 (mn10300_builtin_saveregs):
12360 * config/mn10300/mn10300.md (return expander): Update.
12361 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
12362 (ia64_initial_elimination_offset): Update.
12363 (ia64_initial_elimination_offset): Update.
12364 (ia64_expand_prologue): Update.
12365 * config/m68k/m68k.md (return expander): Update.
12366 * config/rs6000/rs6000.c (rs6000_va_start): Update.
12367 (rs6000_stack_info): Update.
12368 * config/mcore/mcore.c (layout_mcore_frame): Update.
12369 (mcore_expand_prolog): Update.
12370 * config/arc/arc.c (arc_compute_frame_size): Update.
12371 * config/score/score3.c (score3_compute_frame_size): Update.
12372 * config/score/score7.c (score7_compute_frame_size): Update.
12373 * config/arm/arm.c (use_return_insn): Update.
12374 (thumb_find_work_register): Update.
12375 (arm_compute_save_reg_mask): Update.
12376 (arm_output_function_prologue): Update.
12377 (arm_output_epilogue): Update.
12378 (arm_size_return_regs): Update.
12379 (arm_get_frame_offsets): Update.
12380 (arm_expand_prologue): Update.
12381 (thumb_exit): Update.
12382 (thumb_unexpanded_epilogue): Update.
12383 (thumb1_output_function_prologue): Update.
12384 * config/pa/pa.md (return expander): Update.
12385 * config/pa/pa.c (compute_frame_size): Update.
12386 (hppa_builtin_saveregs): Update.
12387 * config/mips/mips.c (mips_va_start): Update.
12388 (mips16_build_function_stub): Update.
12389 (mips_compute_frame_info): Update.
12390 (mips_restore_gp): Update.
12391 (mips_output_function_prologue): Update.
12392 (mips_expand_prologue): Update.
12393 * config/v850/v850.c (compute_frame_size): Update.
12394 (expand_prologue): * config/mmix/mmix.c (along): update.
12395 (mmix_initial_elimination_offset): update.
12396 (mmix_reorg): update.
12397 (mmix_use_simple_return): update.
12398 (mmix_expand_prologue): update.
12399 (mmix_expand_epilogue): Update.
12400 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
12401 (emit_link_insn): Update.
12402
5d9b8bb4
AS
124032008-04-08 Anatoly Sokolov <aesok@post.ru>
12404
22129589
AS
12405 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
12406 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
5d9b8bb4 12407 instructions.
22129589 12408 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
5d9b8bb4
AS
12409 atmega103 device.
12410
3e029763
JH
124112008-04-07 Jan Hubicka <jh@suse.cz>
12412
12413 * function.h (rtl): Rename to x_rtl.
12414 (crtl): New define.
12415 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
12416 frame_offset, stack_check_probe_note, arg_pointer_save_area,
12417 used_temp_slots avail_temp_slots, temp_slot_level,
12418 nonlocal_goto_handler_labels): Update accesstors.
12419 (rtl): New global variable.
12420 (struct function): Move some fileds to rtl_data.
12421 (get_arg_pointer_save_area): Update prototype.
12422 * builtins.c (expand_builtin_setjmp_receiver): Update call of
12423 get_arg_pointer_save_area.
12424 * expr.c (init_expr): Update
12425 * function.c (get_frame_size): Update
12426 (assign_stack_local): Update
12427 (expand_function_end): Update.
12428 (get_art_pointer_save_area): Update
22129589 12429 * function.h
3e029763
JH
12430 * emit-rtl.c (rtl): Declare.
12431 (regno_reg_rtx): Declare.
12432 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
12433 Update.
12434 (gen_reg_rtx): Update.
12435 * varasm.c (n_deferred_constatns): Update accestor.
12436 (init_varasm_status): Do not allocate varasm_status.
12437 (force_const_mem, get_pool_size, output_constant_pool): Update.
12438 * stmt.c (force_label_rtx): Do not use x_ prefixes.
12439 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
12440 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
12441 * sparc/sparc.h (INIT_EXPANDERS): Update.
12442 * ia64/ia64.h (INIT_EXPANDERS): Update.
12443
c3be2598
JW
124442008-04-07 James E. Wilson <wilson@tuliptree.org>
12445
12446 * reload.c (push_secondary_reload): Add missing break to for loop.
12447
46b71b03
PB
124482008-04-07 Peter Bergner <bergner@vnet.ibm.com>
12449
12450 PR middle-end/PR28690
12451 * rtlanal.c: Update copyright years.
12452 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
12453 as REG_POINTER and MEM_POINTER operands.
12454 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
12455 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
12456 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
12457 * gcse.c: Update copyright years.
12458 (pre_delete): Call gen_reg_rtx_and_attrs.
12459 (hoist_code): Likewise.
12460 (build_store_vectors): Likewise.
12461 (delete_store): Likewise.
12462 * loop-invariant.c (move_invariant_reg): Likewise.
12463 Update copyright years.
12464
64ef8953
UB
124652008-04-07 Uros Bizjak <ubizjak@gmail.com>
12466
12467 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
12468 control string instead of quoted.
12469
4218dc2d 124702008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 12471
64ef8953
UB
12472 * doc/rtl.texi: Rewrite of subreg section.
12473
8502420b
KT
124742008-04-07 Kai Tietz <kai.tietz@onevision.com>
12475
64ef8953
UB
12476 PR/35842
12477 * config/i386/i386.c (legitimize_pic_address): Add treating
12478 of dllimport SYM_REF's.
12479 (legitimize_dllimport_symbol): Add prototype.
8502420b 12480
39fcde8f
EB
124812008-04-07 Eric Botcazou <ebotcazou@adacore.com>
12482
12483 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
12484 reference in constructor with non self-referential type.
12485
9dd9bf80
EB
124862008-04-07 Eric Botcazou <ebotcazou@adacore.com>
12487
12488 Removal of Return with Depressed Stack Pointer support
12489 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
12490 (ECF_SP_DEPRESSED): Likewise.
12491 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
12492 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
12493 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12494 (expand_call): Do not test ECF_SP_DEPRESSED.
12495 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12496 * function.c (keep_stack_depressed): Delete.
12497 (handle_epilogue_set): Likewise.
12498 (update_epilogue_consts): Likewise.
12499 (emit_equiv_load): Likewise.
12500 (thread_prologue_and_epilogue_insns): Remove support for Return with
12501 Depressed Stack Pointer.
12502 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
12503
3633df5a
RG
125042008-04-06 Richard Guenther <rguenther@suse.de>
12505
12506 PR tree-optimization/35400
12507 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
12508 information from SSA_NAMEs.
12509
5dc77808
AS
125102008-04-06 Anatoly Sokolov <aesok@post.ru>
12511
12512 * config/avr/avr.h (avr_mega_p): Remove declaration.
12513 (AVR_MEGA): Remove macro.
12514 * config/avr/avr.c (avr_mega_p): Remove variable.
12515 (avr_override_options): Remove inicializion of avr_mega_p.
12516 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12517 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
12518 (avr_jump_mode): (Ditto.).
12519 (avr_output_progmem_section_asm_op): (Ditto.).
12520 (avr_asm_init_sections): (Ditto.).
12521 (avr_asm_init_sections): (Ditto.).
12522 (avr_rtx_costs): (Ditto.).
12523 * config/avr/avr.md: (Ditto.).
22129589 12524 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5dc77808
AS
12525 '__AVR_MEGA__'.
12526
8c51effa
RG
125272008-04-06 Richard Guenther <rguenther@suse.de>
12528
12529 PR tree-optimization/35842
12530 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
12531 is_gimple_invariant_address.
12532
3135ce84
FXC
125332008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
12534
12535 * gcc.c (default_compilers): Sync Fortran extensions list with
12536 that in fortran/lang-specs.h.
12537 * doc/invoke.texi: Likewise.
12538 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
12539 * dwarf2out.c (gen_compile_unit_die): Likewise.
12540
d7d7db8b
TC
125412008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
12542
12543 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
12544
27183bba
UB
125452008-04-05 Uros Bizjak <ubizjak@gmail.com>
12546
12547 PR target/12329
12548 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
12549 attribute is used for nested functions.
12550
9e016eba
JH
125512008-04-05 Jan Hubicka <jh@suse.cz>
12552
9fb7564e
JH
12553 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
12554
9e016eba
JH
12555 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
12556 letter argument.
12557 (dump_files): Update.
12558 (enable_rtl_dump_file): Do not accept letter argument.
12559 * tree-pass.h (dump_file_info): Remove letter argument.
12560 * toplev.c (decode_d_option): Update -da handling.
12561 * toplev.h (enable_rtl_dump_file): Update prototype.
12562 * passes.c (register_one_dump_file): Do not accept IPA argument; work
12563 it out based on pass type.
12564 (register_dump_files_1): Likewise.
12565 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
12566 (execute_one_pass): Sanity check that IPA passes are called at IPA
12567 level and RTL passes at RTL level.
9e016eba
JH
12568 (execute_pass_list): IPA pass can not be after or subpass of
12569 GIMPLE/RTL pass.
12570 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
12571 disallov RTL subpasses of IPA subpasses.
12572
23ef6d21
BE
125732008-04-05 Ben Elliston <bje@au.ibm.com>
12574
12575 * tree-cfg.c (need_fake_edge_p): Return false for calls to
12576 builtins that return exactly once and do not throw. Cache call to
12577 call_expr_flags.
12578
3c2397cd
AH
125792008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
12580
12581 PR rtl-optimization/34916
12582 PR middle-end/35519
12583 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
12584 between instruction pairs.
12585
9eb3a0dd
N
125862008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
12587
12588 * doc/invoke.texi: Document -mbitops for SH.
12589 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
12590 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
12591 * config/sh/sh.c (print_operand): Add %t operand code.
12592 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
12593 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
12594 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
12595 (extendqihi2): Likewise.
12596 (movqi_i): Likewise.
12597 (insv): Use bset, bclr and bst instructions for SH2A if possible.
12598 (extv): Use bld instruction for SH2A if possible.
12599 (extzv): Likewise.
12600 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
12601 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
12602 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
12603 (bset.b, bclr.b): Define peepholes.
12604 * config/sh/sh.opt (mbitops): New option.
12605
fdf4f148
JJ
126062008-04-04 Janis Johnson <janis187@us.ibm.com>
12607
12608 PR target/35620
12609 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
12610 and view convert expression.
12611
3088d404
JJ
126122008-04-04 Jakub Jelinek <jakub@redhat.com>
12613
12614 PR target/35364
12615 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
12616
8b96a312
L
126172008-04-04 H.J. Lu <hongjiu.lu@intel.com>
12618
12619 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
12620
12621 * config/i386/cpuid.h (bit_AES): New.
12622 (bit_PCLMUL): Likewise.
12623
12624 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
12625 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
12626 SSE2 if AES or PCLMUL is enabled.
12627 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
12628 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12629 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
12630 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
12631 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
12632 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
12633 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
12634 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
12635 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
12636 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
12637 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
12638 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
12639 __builtin_ia32_aeskeygenassist128 and
12640 __builtin_ia32_pclmulqdq128.
12641 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
12642 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
12643 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
12644
12645 * config/i386/i386.h (TARGET_AES): New.
12646 (TARGET_PCLMUL): Likewise.
12647 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
12648
12649 * config/i386/i386.md (UNSPEC_AESENC): New.
12650 (UNSPEC_AESENCLAST): Likewise.
12651 (UNSPEC_AESDEC): Likewise.
12652 (UNSPEC_AESDECLAST): Likewise.
12653 (UNSPEC_AESIMC): Likewise.
12654 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 12655 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
12656
12657 * config/i386/i386.opt (maes): New.
12658 (mpclmul): Likewise.
12659
12660 * config/i386/sse.md (aesenc): New pattern.
12661 (aesenclast): Likewise.
12662 (aesdec): Likewise.
12663 (aesdeclast): Likewise.
12664 (aesimc): Likewise.
12665 (aeskeygenassist): Likewise.
12666 (pclmulqdq): Likewise.
12667
12668 * config/i386/wmmintrin.h: New.
12669
12670 * doc/extend.texi: Document AES and PCLMUL built-in function.
12671
12672 * doc/invoke.texi: Document -maes and -mpclmul.
12673
e8924938
PB
126742008-04-04 Paolo Bonzini <bonzini@gnu.org>
12675
12676 * function.c (free_after_parsing): Replace with
12677 cxx_push_function_context from C++ front-end.
12678 (allocate_struct_function): Don't call langhook.
12679 * langhooks.h (struct lang_hooks_for_functions): Delete.
12680 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
12681 member "function".
12682 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
12683 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
12684 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
12685 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
12686 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
12687 remove LANG_HOOKS_FUNCTION_INITIALIZER.
12688 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
12689
12690 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
12691 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22129589 12692
05008a0c
JJ
126932008-04-04 Jakub Jelinek <jakub@redhat.com>
12694
12695 PR c/35440
12696 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
12697 for all types.
12698
c071e8bc
RG
126992008-04-04 Richard Guenther <rguenther@suse.de>
12700
12701 PR middle-end/35823
12702 * fold-const.c (optimize_minmax_comparison): Use the correct
12703 type for the constant in the simplified comparison.
12704
f4a1dd0d
ZM
127052008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
12706
12707 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
12708 Pass L2 size as "--param l2-cache-size" to the compiler.
12709 (decode_l2_cache): New function to decode L2 cache parameters using
12710 0x8000006 extended cpuid function.
12711 (detect_caches_amd): Determine parameters of L2 cache using
12712 decode_l2_caches function.
12713 (decode_caches_intel): Decode L2 cache parameters.
12714 (detect_caches_intel): Determine L2 cache parameters using
12715 decode_caches_intel and decode_l2_caches functions.
12716
3ee909cb
BW
127172008-04-03 Bob Wilson <bob.wilson@acm.org>
12718
12719 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
12720 secondary input reload for subword loads from the constant pool.
12721
6db07dcb
JJ
127222008-04-03 Janis Johnson <janis187@us.ibm.com>
12723
383e91e4
JJ
12724 PR target/35713
12725 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
12726 constants of the appropriate size for runtime calculations.
12727
6db07dcb
JJ
12728 PR c/35712
12729 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
12730 decimal-float literal constant zero.
12731
5da250fc
JJ
127322008-04-03 Jakub Jelinek <jakub@redhat.com>
12733
79addd1f
JJ
12734 PR c/35738
12735 * c-parser.c (c_parser_omp_atomic): Call
12736 default_function_array_conversion on the RHS.
12737
5da250fc
JJ
12738 PR middle-end/35818
12739 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
12740 call is_variable_sized if decl has incomplete type.
12741
940f3b52
L
127422008-04-03 H.J. Lu <hongjiu.lu@intel.com>
12743
12744 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
12745
6ac935c1
AN
127462008-04-03 Adam Nemet <anemet@caviumnetworks.com>
12747
12748 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
12749 iterators.
64ef8953 12750 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
12751 (sgt<u>): Merge sgt and sgtu into new expander.
12752 (sgt, sgtu): Remove expanders.
64ef8953 12753 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
12754 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
12755 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
12756 *sgtu_<mode>_mips16 into new pattern.
12757 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
12758 (sge<u>): Merge sge and sgeu into new expander.
12759 (sge, sgeu): Remove expanders.
12760 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
12761 new pattern.
12762 (*sge_<mode>, second *sge_<mode>): Remove patterns.
12763 (slt<u>): Merge slt and sltu into new expander.
12764 (slt, sltu): Remove expanders.
64ef8953 12765 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
12766 (*slt_<mode>, *sltu_<mode>): Remove patterns.
12767 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
12768 *sltu_<mode>_mips16 into new pattern.
12769 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
12770 (sle<u>): Merge sle and sleu into new expander.
12771 (sle, sleu): Remove expanders.
64ef8953 12772 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
12773 (*sle_<mode>, *sleu_<mode>): Remove patterns.
12774 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
12775 *sleu_<mode>_mips16 into new pattern.
12776 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
12777
6b0c2336
JH
127782008-04-03 Jan Hubicka <jh@suse.cz>
12779
12780 PR tree-optimization/35795
12781 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
12782 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12783 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
12784 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
12785 * score/score3.c (score3_output_mi_thunk): Likewise.
12786 * score/score7.c (score7_output_mi_thunk): Likewise.
12787 * mips/mips.c (mips_output_mi_thunk): Likewise.
12788
b47ee386
RG
127892008-04-03 Richard Guenther <rguenther@suse.de>
12790
12791 * tree-vrp.c (extract_range_from_unary_expr): Handle all
12792 conversions. Simplify code.
12793
2a7428c0
KK
127942008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
12795
12796 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
12797
6cba282a
TT
127982008-04-03 Tom Tromey <tromey@redhat.com>
12799 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12800
12801 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
12802 * config/bfin/t-bfin-linux (generated_files): Add
12803 linux-sysroot-suffix.h.
12804 * doc/install.texi (Prerequisites): Require make 3.80.
12805 * doc/sourcebuild.texi (Front End Directory): Document new
12806 variable.
12807 * Makefile.in (generated_files): New variable.
12808 (ALL_HOST_OBJS): New variable.
12809 ($(ALL_HOST_OBJS)): New target.
12810
9ff420f1
PB
128112008-04-03 Paolo Bonzini <bonzini@gnu.org>
12812
6b0c2336
JH
12813 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
12814 (remap_block): Call id->transform_lang_insert_block instead
12815 of langhook.
12816 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
12817 Set id.transform_lang_insert_block to NULL.
12818 (clone_body): Move to cp/optimize.c
12819 * tree-inline.h (struct copy_body_data): Change
12820 transform_lang_insert_block to function pointer.
12821 (copy_generic_body, copy_decl_no_change): Export.
12822 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
12823 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
12824 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
12825
12826 * c-tree.h (insert_block): Kill.
12827 * c-decl.c (insert_block): Kill.
9ff420f1 12828
d2784db4
PB
128292008-04-03 Paolo Bonzini <bonzini@gnu.org>
12830
6b0c2336
JH
12831 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12832 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
12833 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
12834 argument.
12835 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
12836 argument, call {push,pop}_function_context from here.
12837 * c-parser.c: Use c_{push,pop}_function_context.
12838
12839 * function.c (push_function_context_to): Move meat ...
12840 (push_function_context): ... here. Simplify.
12841 * function.c (pop_function_context_from): Move meat ...
12842 (pop_function_context): ... here. Simplify.
12843 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
12844 leave_nested).
12845 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
12846 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
12847 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
12848 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 12849
9e0aebca
BE
128502008-04-03 Ben Elliston <bje@au.ibm.com>
12851
12852 * expmed.c (extract_force_align_mem_bit_field): Remove.
12853
55187c8a
RG
128542008-04-03 Richard Guenther <rguenther@suse.de>
12855
12856 PR middle-end/35800
12857 * expr.h (try_casesi): Adjust prototype.
12858 * expr.c (try_casesi): Take fallback label as extra parameter.
12859 Use that for gen_casesi if default_label is NULL.
12860 * stmt.c (expand_case): Pass fallback label to try_casesi,
12861 make sure to fill gaps with a fallback label if default_label
12862 is not present.
12863
d7087dd2
DH
128642008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
12865
12866 PR target/35801
12867 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
12868
609023ff
BE
128692008-04-03 Ben Elliston <bje@au.ibm.com>
12870
12871 * expmed.c (extract_split_bit_field): Remove if (0) code.
12872 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
12873 (do_ds_constraint): Likewise.
12874
93d45d9e
JM
128752008-04-02 Joseph Myers <joseph@codesourcery.com>
12876
12877 * doc/cppopts.texi (-dU): Document.
12878 * c-common.h (flag_dump_macros): Update comment.
12879 * c-opts.c (handle_OPT_d): Handle -dU.
12880 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
12881 dump_queued_macros, cb_used_define, cb_used_undef): New.
12882 (init_pp_output): Handle -dU.
12883 (cb_line_change): Call dump_queued_macros.
12884 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
12885
e6b69d0e
AS
128862008-04-02 Anatoly Sokolov <aesok@post.ru>
12887
22129589 12888 * config/avr/predicates.md (io_address_operand): New predicate.
e6b69d0e
AS
12889 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
12890 * config/avr/avr.c (avr_io_address_p): Remove function.
22129589 12891 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
e6b69d0e
AS
12892 'avr_io_address_p' function.
12893 (out_movhi_r_mr): (Ditto.).
12894 (out_movqi_mr_r): (Ditto.).
12895 (out_movhi_mr_r): (Ditto.).
12896 (avr_address_cost): (Ditto.).
12897
7b198002
UB
128982008-04-02 Uros Bizjak <ubizjak@gmail.com>
12899
12900 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
12901 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
12902 in 32bit mode when XMM registers are available to avoid store
12903 forwarding stalls.
12904 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
12905 corresponding post-reload splitters.
12906
abe08645
L
129072008-04-02 H.J. Lu <hongjiu.lu@intel.com>
12908
12909 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
12910 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
12911 __builtin_ia32_roundss.
12912 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
12913 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
12914 __builtin_ia32_roundss.
12915 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
12916 IX86_BUILTIN_SHUFPD here.
12917
94237c92
L
129182008-04-02 H.J. Lu <hongjiu.lu@intel.com>
12919
12920 * config/i386/i386.md (plogic): New.
12921 (plogicprefix): Likewise.
12922
12923 * config/i386/mmx.md (mmx_<code><mode>3): New.
12924 (mmx_and<mode>3): Removed.
12925 (mmx_ior<mode>3): Likewise.
12926 (mmx_xor<mode>3): Likewise.
12927
12928 * config/i386/sse.md (<code><mode>3): New.
12929 (*<code><mode>3): Likewise.
12930 (*<code><mode>3): Likewise.
12931 (<code><mode>3): Likewise.
12932 (*sse_<code><mode>3): Likewise.
12933 (*sse2_<code><mode>3): Likewise.
12934 (<code>tf3): Likewise.
12935 (*<code>tf3): Likewise.
12936 (and<mode>3): Likewise.
12937 (*and<mode>3): Likewise.
12938 (ior<mode>3): Removed.
12939 (*ior<mode>3): Likewise.
12940 (xor<mode>3): Likewise.
12941 (*xor<mode>3): Likewise.
12942 (*and<mode>3): Likewise.
12943 (*ior<mode>3): Likewise.
12944 (*xor<mode>3): Likewise.
12945 (and<mode>3): Likewise.
12946 (*sse_and<mode>3): Likewise.
12947 (*sse2_and<mode>3): Likewise.
12948 (andtf3): Likewise.
12949 (*andtf3): Likewise.
12950 (ior<mode>3): Likewise.
12951 (*sse_ior<mode>3): Likewise.
12952 (*sse2_ior<mode>3): Likewise.
12953 (iortf3): Likewise.
12954 (*iortf3): Likewise.
12955 (xor<mode>3): Likewise.
12956 (*sse_xor<mode>3): Likewise.
12957 (*sse2_xor<mode>3): Likewise.
12958 (xortf3): Likewise.
12959 (*xortf3): Likewise.
12960
b7814a18
RG
129612008-04-02 Richard Guenther <rguenther@suse.de>
12962
12963 PR tree-optimization/14495
12964 PR tree-optimization/34793
12965 * tree-vrp.c (struct switch_update): New structure.
12966 (to_remove_edges, to_update_switch_stmts): New VECs.
12967 (simplify_switch_using_ranges): New function. Remove not taken
12968 case labels and edges.
12969 (simplify_stmt_using_ranges): Call it.
12970 (identify_jump_threads): Mark edges we have queued for removal
12971 so we don't thread them.
12972 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
12973 case label vector.
12974 * tree-cfg.c (group_case_labels): Deal with missing default label.
12975 (tree_verify_flow_info): Allow missing default label.
12976 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
12977 (emit_case_nodes): Likewise.
12978 (expand_case): Do not rely on the default label to be present.
12979 * expr.c (try_casesi): Deal with NULL default_label.
12980 (do_tablejump): Likewise.
12981
8aea0bf0
RG
129822008-04-02 Richard Guenther <rguenther@suse.de>
12983
12984 PR tree-optimization/14495
12985 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
12986 SWITCH_EXPR here ...
12987 (vrp_visit_switch_stmt): ... but here (new function).
12988 (find_case_label_index): New helper function.
12989 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
12990
3f1c2278
PB
129912008-04-02 Paolo Bonzini <bonzini@gnu.org>
12992
12993 * fwprop.c: Fix ISO-C99ism.
12994
da0f6381
PB
129952008-04-02 Paolo Bonzini <bonzini@gnu.org>
12996
12997 PR bootstrap/35752
12998 * Makefile.in (objdir): Set it here.
12999 * configure.ac: Not here. Find dynamic linker characteristics.
13000 * exec-tool.in: Use them.
13001 * aclocal.m4: Regenerate.
13002 * configure: Regenerate.
13003
4846b435
PB
130042008-04-02 Paolo Bonzini <bonzini@gnu.org>
13005
13006 * expr.c (expand_var): Delete it.
13007 * expr.h (expand_var): Delete prototype.
13008 * function.c (expand_function_start): Use expand_decl instead.
13009 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
13010 langhook.
13011
4fefbcdb
AH
130122008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
13013
13014 PR rtl-optimization/35542
13015 * fwprop.c (forward_propagate_and_simplify): Replace
13016 loc_reg_mentioned_in_p with reg_mentioned_p.
13017
460d667d
PB
130182008-04-02 Paolo Bonzini <bonzini@gnu.org>
13019
4fefbcdb 13020 PR rtl-optimization/35281
460d667d
PB
13021 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
13022 (propagate_rtx_1): Handle PR_HANDLE_MEM.
13023 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
13024 (varying_mem_p): Move above propagate_rtx.
13025 (all_uses_available_at): Do not check MEMs.
13026
a26a02d7
RAE
130272008-04-02 Rafael Espindola <espindola@google.com>
13028
13029 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
13030 (register_edge_assert_for_2): Split the cond argument.
13031 (register_edge_assert_for_1): Adjust for the change in
13032 register_edge_assert_for_2.
13033 (register_edge_assert_for): Split the cond argument.
13034 (find_switch_asserts): Adjust for the change in
13035 register_edge_assert_for.
13036
e8930cc1
KT
130372008-04-02 Kai Tietz <kai.tietz@onevision.com>
13038
13039 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 13040 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 13041 offsets for 64-bit mingw.
b97d8153 13042 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 13043 abi for x86_64-pc-mingw.
e8930cc1 13044
70b7b037
RG
130452008-04-02 Richard Guenther <rguenther@suse.de>
13046
13047 * tree-vrp.c (extract_range_from_assert): Make sure to not
13048 produce range min/max with TREE_OVERFOW set.
13049 If merging a anti-range and a range keep the anti-range if
13050 the range covers all values of the type.
13051 (register_edge_assert_for_2): Only allow sign-changing
13052 conversions in detecting canonical range checks. Also
13053 register an assert for the unsigned name if useful.
13054
13055 PR tree-optimization/35787
13056 * tree-vrp.c (vrp_val_max): New function.
13057 (vrp_val_min): Likewise.
13058 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
13059 (vrp_val_is_min): Likewise.
13060 (supports_overflow_infinity): Use vrp_val_{min,max}.
13061 (negative_overflow_infinity): Likewise.
13062 (positive_overflow_infinity): Likewise.
13063 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
13064 (is_positive_overflow_infinity): Likewise.
13065 (is_overflow_infinity): Likewise.
13066 (avoid_overflow_infinity): Use vrp_val_{min,max} and
13067 vrp_val_is_{min,max}.
13068 (set_and_canonicalize_value_range): Canonicalize anti-ranges
13069 to ranges if possible. Avoid empty ranges.
13070
10743280
JDA
130712008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13072
13073 PR middle-end/35705
13074 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
13075 the expression is a function address.
13076
7151ffbe
GH
130772008-04-01 George Helffrich <george@gcc.gnu.org>
13078
623f8e39 13079 PR fortran/35154, fortran/23057
7151ffbe
GH
13080 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
13081 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
13082 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
13083 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
13084 in common.
13085 (dbxout_syms): Check for COMMON-based symbol and wrap in
13086 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
13087 in bracket for efficiency.
13088
13089 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
13090 using DW_TAG_common_block + member offset.
13091 (add_pubname_string): New function.
13092 (dw_expand_expr): New function to find block name and offset for
13093 COMMON var.
13094 (common_check): New function to check whether symbol in Fortran COMMON.
13095 (gen_variable_die): If COMMON, use DW_TAG_common_block.
13096
dc197ab9
VR
130972008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
13098
13099 PR c/35436
13100 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
13101
9e9b5341
BE
131022008-04-02 Ben Elliston <bje@au.ibm.com>
13103
13104 * config/v850/v850.md (casesi): Remove if (0) code.
13105 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13106 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13107
380edc9f
UB
131082008-04-01 Uros Bizjak <ubizjak@gmail.com>
13109
13110 * config/i386/i386.md (rex64suffix): New mode attribute.
13111 (floathi<mode>2): Disable expander for SSE math.
13112 (*floathi<mode>2_1): New insn insn_and_split pattern.
13113 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
13114 corresponding post-reload splitters.
13115 (*floathi<mode>2_i387): New macroized insn pattern.
13116 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
13117 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
13118 insn_and_split pattern.
13119 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
13120 New macroized instruction patterns and corresponding post-reload
13121 splitters.
13122 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
13123 and corresponding post-reload splitters.
13124 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
13125 New macroized instruction patterns.
13126 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
13127 macroized instruction patterns and corresponding post-reload splitters.
13128 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
13129 corresponding post-reload splitters.
13130 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
13131 New macroized instruction patterns.
13132 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
13133 corresponding post-reload splitters.
13134 (*floatsi<mode>2_i387): New macroized instruction patterns.
13135
78e8956b
L
131362008-04-01 H.J. Lu <hongjiu.lu@intel.com>
13137
13138 * config/i386/i386.md (smaxmin): New.
13139 (umaxmin): Likewise.
13140 (maxminiprefix): Likewise.
13141 (maxminfprefix): Likewise.
13142 (<code><mode>3): Likewise.
13143 (smin<mode>3): Removed.
13144 (smax<mode>3): Likewise.
13145
13146 * config/i386/mmx.md (mmx_<code>v2sf3): New.
13147 (mmx_<code>v4hi3): Likewise.
13148 (mmx_<code>v8qi3): Likewise.
13149 (mmx_smaxv2sf3): Removed.
13150 (mmx_sminv2sf3): Likewise.
13151 (mmx_umaxv8qi3): Likewise.
13152 (mmx_smaxv4hi3): Likewise.
13153 (mmx_uminv8qi3): Likewise.
13154 (mmx_sminv4hi3): Likewise.
13155
13156 * config/i386/sse.md (<addsub><mode>3): New.
13157 (*<addsub><mode>3): Likewise.
13158 (<sse>_vm<addsub><mode>3): Likewise.
13159 (<maxmin><mode>3): Likewise.
13160 (*<maxmin><mode>3_finite): Likewise.
13161 (*<maxmin><mode>3): Likewise.
13162 (<sse>_vm<maxmin><mode>3): Likewise.
13163 (sse3_h<addsub>v4sf3): Likewise.
13164 (sse3_h<addsub>v2df3): Likewise.
13165 (<maxmin>v16qi3): Likewise.
13166 (*<maxmin>v16qi3): Likewise.
13167 (<maxmin>v8hi3): Likewise.
13168 (*<maxmin>v8hi3): Likewise.
13169 (*sse4_1_<maxmin><mode>3): Likewise.
13170 (*sse4_1_<maxmin><mode>3): Likewise.
13171 (add<mode>3): Removed.
13172 (*add<mode>3): Likewise.
13173 (<sse>_vmadd<mode>3): Likewise.
13174 (sub<mode>3): Likewise.
13175 (*sub<mode>3): Likewise.
13176 (<sse>_vmsub<mode>3): Likewise.
13177 (smin<mode>3): Likewise.
13178 (*smin<mode>3_finite): Likewise.
13179 (*smin<mode>3): Likewise.
13180 (<sse>_vmsmin<mode>3): Likewise.
13181 (smax<mode>3): Likewise.
13182 (*smax<mode>3_finite): Likewise.
13183 (*smax<mode>3): Likewise.
13184 (<sse>_vmsmax<mode>3): Likewise.
13185 (sse3_haddv4sf3): Likewise.
13186 (sse3_haddv2df3): Likewise.
13187 (sse3_hsubv4sf3): Likewise.
13188 (sse3_hsubv2df3): Likewise.
13189 (umaxv16qi3): Likewise.
13190 (*umaxv16qi3): Likewise.
13191 (smaxv8hi3): Likewise.
13192 (*smaxv8hi3): Likewise.
13193 (*sse4_1_smax<mode>3): Likewise.
13194 (*sse4_1_umax<mode>3): Likewise.
13195 (uminv16qi3): Likewise.
13196 (*uminv16qi3): Likewise.
13197 (sminv8hi3): Likewise.
13198 (*sminv8hi3): Likewise.
13199 (*sse4_1_smin<mode>3): Likewise.
13200 (*sse4_1_umin<mode>3): Likewise.
13201
220f1c29
RAE
132022008-04-01 Rafael Espindola <espindola@google.com>
13203
13204 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 13205 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
13206 is_gimple_min_invariant instead of is_gimple_val.
13207
7f9766e4
JM
132082008-04-01 Joseph Myers <joseph@codesourcery.com>
13209
13210 * doc/include/gpl_v3.texi: Update for manpage generation.
13211 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
13212 gpl.texi.
13213 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
13214 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
13215 gpl_v3.texi instead of gpl.texi.
13216 (gpl.pod): New.
13217
d4c32e1d
JJ
132182008-04-01 Jakub Jelinek <jakub@redhat.com>
13219
13220 PR pch/13675
13221 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
13222
764a79ed
RAE
132232008-04-01 Rafael Espindola <espindola@google.com>
13224
13225 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
13226 (extract_code_and_val_from_cond): Use
13227 extract_code_and_val_from_cond_with_ops.
13228
113c63b8
JH
132292008-04-01 Jan Hubicka <jh@suse.cz>
13230
13231 * function.c (free_after_compilation): Free epilogue_delay_list.
13232 (prepare_function_start): Assert that previous compilation was freed.
13233
ec24c3a3
JH
132342008-04-01 Jan Hubicka <jh@suse.cz>
13235 Jim Wilson <wilson@tuliptree.org>
13236 Andreas Tobler <andreast@gcc.gnu.org>
13237
13238 PR middle-end/35781
13239 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
13240 rtl.emit instead cfun->emit.
13241 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
13242 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
13243
1b82c3aa
BE
132442008-04-01 Ben Elliston <bje@au.ibm.com>
13245
13246 * doc/c-tree.texi (Function Basics): Fix grammatical error.
13247
2f908293
SP
132482008-03-31 Seongbae Park <seongbae.park@gmail.com>
13249
13250 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
13251 New options
13252 (fprofile-use): Add var flag_profile_use
380edc9f
UB
13253 * coverage.c (coverage_begin_output): Do not open a gcno file for
13254 output only if -ftest-coverage is set.
2f908293 13255 Do not add getpwd() to gcda file path.
380edc9f 13256 (build_gcov_info): Check the new flag
2f908293
SP
13257 flag_profile_datafile_relative_path.
13258 (coverage_init): Use profile_data_prefix.
13259 Read profile counter only if flag_profile_use is set.
13260 * opts.c (common_handle_option): New option fprofile-use=,
13261 fprofile-dir=, fprofile-generate=.
13262 * toplev.c (profile_data_prefix): New variable definition.
13263 * toplev.h (profile_data_prefix): New declaration.
13264 * doc/invoke.tex (Option Summary, Optimization Options):
13265 Add new options.
13266
1def9c3f
JW
132672008-03-31 James E. Wilson <wilson@tuliptree.org>
13268
380edc9f
UB
13269 * varasm.c (output_constant_pool_1): In LABEL_REF check,
13270 use tmp consistently.
048ffb8f 13271
1def9c3f
JW
13272 PR target/35695
13273 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
13274 * config/ia64/ia64.c (rtx_needs_barrier): Handle
13275 UNSPEC_FR_RECIP_APPROX_RES.
13276 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
13277
bb686a19
VR
132782008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
13279
13280 PR c/35750
13281 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
13282
a12bdb97
AP
132832008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
13284
13285 PR middle-end/30186
13286 * fold-const.c (fold_indirect_ref_1): Support accessing non first
13287 element of the vector via a pointer.
13288
2d4bba80
ILT
132892008-03-31 Ian Lance Taylor <iant@google.com>
13290
380edc9f 13291 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 13292
bd60bab2
JH
132932008-03-31 Jan Hubicka <jh@suse.cz>
13294
13295 * builtins.c (expand_builtin_setjmp_receiver): Update call of
13296 get_arg_pointer_save_area.
13297 * expr.c (init_expr): Just clear out rtl.expr.
13298 * function.c (free_after_compilation): Clear out whole RTL structure.
13299 (get_func_frame_size): Merge into ...
13300 (get_frame_size): ... this one.
13301 (assign_stack_local_1): Merge into ...
13302 (assign_stack_local): ... this one.
13303 (expand_function_end): Update call of get_arg_pointer_save_area.
13304 (get_art_pointer_save_area): Remove cfun argument.
13305 * function.h (emit_status): regno_pointer_align does not need length
13306 attribute. Move x_regno_reg_rtx to ...
13307 (regno_reg_rtx): ... new global array.
13308 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
13309 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
13310 apply_args_value, forced_labels, stack_pointer_delta):
13311 Update accestors.
bd60bab2
JH
13312 (struct varasm_status): Move here from varasm.c
13313 (struct rtl_data): New. Move here some fields from struct function.
13314 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
13315 frame_offset, stack_check_probe_note, arg_pointer_save_area,
13316 used_temp_slots avail_temp_slots, temp_slot_level,
13317 nonlocal_goto_handler_labels): Update accesstors.
13318 (rtl): New global variable.
13319 (struct function): Move some fileds to rtl_data.
13320 (get_arg_pointer_save_area): Update prototype.
13321 * emit-rtl.c (rtl): Declare.
13322 (regno_reg_rtx): Declare.
380edc9f
UB
13323 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
13324 Update.
bd60bab2
JH
13325 (gen_reg_rtx): Update.
13326 (init_virtual_regs): Do not tate emit_status argument.
13327 (init_emit): Do not allocate emit.
13328 * varasm.c (varasm_statuc): Move to function.h.
13329 (n_deferred_constatns): Update accestor.
13330 (init_varasm_status): Do not allocate varasm_status.
13331 (force_const_mem, get_pool_size, output_constant_pool): Update.
13332 * stmt.c (force_label_rtx): Do not use x_ prefixes.
13333 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
13334
66f91b93
ZD
133352008-03-31 Zdenek Dvorak <ook@ucw.cz>
13336
13337 PR rtl-optimization/35729
13338 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
13339 references.
13340
66e1ecfe
L
133412008-03-31 H.J. Lu <hongjiu.lu@intel.com>
13342
13343 PR target/32000
13344 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
13345 load/store if memory is unaligned.
13346 (*movti_rex64): Likewise.
13347
13348 * config/i386/predicates.md (misaligned_operand): New.
13349
550386ad
AP
133502008-03-31 Andrew Pinski <pinskia@gmail.com>
13351
13352 PR tree-opt/35431
13353 * tree-ssa-phiopt.c (conditional_replacement): Return early for
13354 complex types.
13355
4e483a22
JB
133562008-03-31 Jan Beulich <jbeulich@novell.com>
13357
13358 * config/ia64/constraints.md: Add 'j' constraint.
13359 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
13360 (movdi_internal): Likewise.
13361
39ffbac9
VR
133622008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
13363
13364 PR c/35748
13365 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
13366
23594c97
L
133672008-03-30 H.J. Lu <hongjiu.lu@intel.com>
13368
13369 PR target/35757
13370 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
13371 proper error message for the third argument on blendpd and
13372 blendps.
13373
13374 * config/i386/sse.md (blendbits): New.
13375 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
13376
8f0e2671
EB
133772008-03-30 Eric Botcazou <ebotcazou@adacore.com>
13378
13379 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
13380
96648603
RG
133812008-03-30 Richard Guenther <rguenther@suse.de>
13382
13383 PR middle-end/31023
13384 * fold-const.c (fold_sign_changed_comparison): Do leave
13385 conversions to base-types alone.
13386
3ac0963a
AP
133872008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
13388
13389 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
13390 the link register if one altivec register is be saved.
13391
744c6d6e
BE
133922008-03-30 Ben Elliston <bje@au.ibm.com>
13393
13394 * final.c (final_scan_insn): Remove if (0) code.
13395
dbc518f0
VR
133962008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
13397
13398 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
13399
ad387dad
L
134002008-03-28 H.J. Lu <hongjiu.lu@intel.com>
13401
13402 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
13403 of V4SFmode to ix86_binary_operator_ok.
13404
9aba5d22
UB
134052008-03-28 Uros Bizjak <ubizjak@gmail.com>
13406
13407 * config/i386/i386.c (override_options): Initialize
13408 ix86_veclib_handler to ix86_veclibabi_svml when
13409 -mveclibabi=svml is used.
13410 (ix86_veclibabi_svml): New function for SVML ABI style
13411 vectorization support.
13412 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
13413
2d3cd5d5
RAE
134142008-03-28 Rafael Espindola <espindola@google.com>
13415
13416 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
13417 (tree_binary_nonnegative_warnv_p): Make it public.
13418 (tree_single_nonnegative_warnv_p): Make it public.
13419 (tree_invalid_nonnegative_warnv_p): Make it public.
13420 (tree_unary_nonzero_warnv_p): Make it public.
13421 (tree_binary_nonzero_warnv_p): Make it public
13422 (tree_single_nonzero_warnv_p): Make it public.
13423 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
13424 (extract_range_from_binary_expr): Split the expr argument.
13425 (extract_range_from_unary_expr): Split the expr argument.
13426 (extract_range_from_comparison): Split the expr argument.
13427 (extract_range_from_expr): Use the new aux functions.
13428 (vrp_evaluate_conditional_warnv): Use
13429 vrp_evaluate_conditional_warnv_with_ops.
13430 * tree.h (tree_unary_nonzero_warnv_p): Declare.
13431 (tree_binary_nonzero_warnv_p): Declare.
13432 (tree_single_nonzero_warnv_p): Declare.
13433 (tree_expr_nonzero_warnv_p): Declare.
13434 (tree_unary_nonnegative_warnv_p): Declare.
13435 (tree_binary_nonnegative_warnv_p): Declare.
13436 (tree_single_nonnegative_warnv_p): Declare.
13437 (tree_invalid_nonnegative_warnv_p): Declare.
13438
2ab8dbf4
RG
134392008-03-28 Richard Guenther <rguenther@suse.de>
13440
13441 PR tree-optimization/30317
13442 PR tree-optimization/30911
13443 PR tree-optimization/34793
13444 * tree-vrp.c (set_and_canonicalize_value_range): New function.
13445 (struct assert_locus_d): New member EXPR.
13446 (register_new_assert_for): Add EXPR parameter to support
13447 ASSERT_EXPR <name, expr OP limit>.
13448 (register_edge_assert_for_1): Adjust callers.
13449 (find_assert_locations): Likewise.
9aba5d22 13450 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
13451 (extract_range_from_assert): Handle ASSERT_EXPRs
13452 of the form ASSERT_EXPR <name, expr OP limit>.
13453 (register_edge_assert_for_2): New helper registering
13454 asserts for comparisons. Recognize range tests of the form
13455 (unsigned)i - CST1 OP CST2.
13456 (register_edge_assert_for_1): Use it.
13457 (register_edge_assert_for): Likewise.
13458 (needs_overflow_infinity): Integer sub-types
13459 do not need overflow infinities.
13460 (vrp_val_is_max): The extreme values of integer sub-types
13461 are those of the base type.
13462 (vrp_val_is_min): Likewise.
13463 * tree.def (ASSERT_EXPR): Document extra allowed conditional
13464 expressions.
13465
fc4f3261
NC
134662008-03-28 Nick Clifton <nickc@redhat.com>
13467
f6d2671e 13468 PR target/31110
fc4f3261 13469 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 13470 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 13471
501fb355
AP
134722008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
13473
13474 PR target/31334
13475 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
13476 const_vector when all the vectors are constant.
13477
ff779f98
BW
134782008-03-27 Bob Wilson <bob.wilson@acm.org>
13479
13480 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
13481 comparisons.
13482 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
13483 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
13484 (scc_sf): New.
13485 (s<code>_sf): Use new scc_sf attribute for opcode names.
13486
e980df8e
TT
134872008-03-27 Tom Tromey <tromey@redhat.com>
13488
13489 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
13490 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
13491 config/spu/t-spu-elf, config/i386/t-interix,
13492 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
13493 config/i386/x-darwin, config/i386/x-mingw32,
13494 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
13495 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
13496 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
13497 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
13498 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
13499 config/rs6000/x-darwin, config/rs6000/t-rs6000,
13500 config/score/t-score-elf, config/arm/t-strongarm-pe,
13501 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
13502 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
13503 Revert automatic dependency patch.
13504
c84555eb
L
135052008-03-27 H.J. Lu <hongjiu.lu@intel.com>
13506
13507 PR target/35657
13508 * config/i386/i386.c (ix86_function_arg_boundary): Align
13509 decimal floating point to its natural boundary.
13510
ffd837fe
RG
135112008-03-27 Richard Guenther <rguenther@suse.de>
13512
13513 PR middle-end/35716
13514 * fold-const.c (fold_comparison): Restrict distinct decl
13515 comparison folding to VAR_DECLs and PARM_DECLs. Do not
13516 solely rely on operand_equal_p.
13517
6b4e94bc
RG
135182008-03-27 Richard Guenther <rguenther@suse.de>
13519
13520 PR c/32511
13521 * c-common.c (handle_weak_attribute): Reject combination of
13522 weak and inline.
13523
62bc00e2
RG
135242008-03-27 Richard Guenther <rguenther@suse.de>
13525
13526 PR tree-optimization/32810
13527 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
13528 conversions from DECL_INITIAL.
13529 (fold_const_aggregate_ref): Likewise from constructor elements.
13530
72425608
ZD
135312008-03-27 Zdenek Dvorak <ook@ucw.cz>
13532
13533 * tree-affine.h (aff_combination_expand): Declare.
13534 (get_inner_reference_aff): Likewise.
13535 * tree-affine.c (aff_combination_expand): Split out from
13536 tree_to_aff_combination_expand.
13537 (get_inner_reference_aff): New function.
13538 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
13539 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
13540 (struct lim_aux_data): sm_done field removed.
13541 (mem_ref_loc_p, mem_ref_locs_p): New types.
13542 (struct mem_ref): Added id, stored, accesses_in_loop,
13543 indep_loop, dep_loop, indep_ref, dep_ref fields.
13544 Removed is_stored, locs and next fields.
13545 (memory_accesses): New variable.
13546 (movement_possibility): Do not allow moving statements
13547 that store to memory.
13548 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
13549 New functions.
13550 (determine_max_movement): For statements with memory references,
13551 find the outermost loop in that the reference is independent.
13552 (move_computations_stmt): Mark the virtual operands for renaming.
13553 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
13554 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
13555 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
13556 add_vop_ref_mapping, create_vop_ref_mapping_loop,
13557 create_vop_ref_mapping, analyze_memory_references,
13558 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
13559 get_all_locs_in_loop, ref_always_accessed_p,
13560 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
13561 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
13562 store_motion_loop, store_motion): New functions.
13563 (struct vop_to_refs_elt): New type.
13564 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
13565 memref_hash, memref_eq, hoist_memory_references): Rewritten.
13566 (schedule_sm): Replaced by...
13567 (execute_sm): ... this.
13568 (determine_lsm_ref, hoist_memory_references,
13569 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
13570 find_more_ref_vops, free_mem_ref, free_mem_refs,
13571 determine_lsm_loop, determine_lsm): Removed.
13572 (tree_ssa_lim_finalize): Free data structures used by store motion.
13573 (tree_ssa_lim): Call analyze_memory_references. Use
13574 store_motion instead of determine_lsm.
72425608 13575
a929bc28
PB
135762008-03-27 Paolo Bonzini <bonzini@gnu.org>
13577
13578 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
13579 rename tmake_file to m68hc11/t-m68hc11.
13580 (mcore): Set inhibit_libc to true.
13581 * config.host (alpha*-dec-*vms*): Set extra_programs.
13582 (interix3*): Don't use host_xmake_file.
13583 * configure.ac: Let config.gcc override inhibit_libc.
13584 * configure: Regenerate.
13585
13586 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
13587 * config/t-openbsd-thread: Remove commented out lines.
22129589 13588
a929bc28
PB
13589 * config/x-interix: Remove.
13590
13591 * config/m68hc11/t-m68hc11-gas: Rename to...
13592 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
13593
13594 * config/mcore/t-mcore: Remove T_CFLAGS.
13595 * config/mcore/t-mcore-pe: Likewise.
13596
60d26958
PB
135972008-03-27 Paolo Bonzini <bonzini@gnu.org>
13598
13599 * configure.ac: Replace custom __GNU_SOURCE test with
13600 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
13601 * aclocal.m4: Regenerate.
13602 * configure: Regenerate.
13603 * config.in: Regenerate.
13604
bd03c084
RG
136052008-03-27 Richard Guenther <rguenther@suse.de>
13606
13607 * fold-const.c (target.h): Include.
13608 (fold_comparison): Fold comparison of addresses of decls
13609 that bind locally or of constants. Consolidate address folding code.
13610 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
13611 results from fold_binary_to_constant.
13612 (compare_values_warnv): Likewise.
13613
87a72aa8
AP
136142008-03-27 Andrew Pinski <pinskia@gmail.com>
13615
13616 PR middle-end/35429
13617 * fold-const.c (fold_truthop): Check for integeral types when folding
13618 a == 0 && b == 0 and a != 0 || b != 0 .
13619
6e1b3420
EB
136202008-03-26 Eric Botcazou <ebotcazou@adacore.com>
13621
13622 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
13623
33558d94
AS
136242008-03-26 Andreas Schwab <schwab@suse.de>
13625
13626 * doc/invoke.texi: Fix use of @item vs. @itemx.
13627
f6a9a9af
TT
136282008-03-26 Tom Tromey <tromey@redhat.com>
13629
13630 * Makefile.in (build/gensupport.o, build/print-rtl.o,
13631 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
13632 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
13633 build/gencodes.o, build/genconditions.o, build/genconfig.o,
13634 build/genconstants.o, build/genemit.o, build/genextract.o,
13635 build/genflags.o, build/genmddeps.o, build/genopinit.o,
13636 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
13637 options.h.
13638
2041e75c
RG
136392008-03-26 Richard Guenther <rguenther@suse.de>
13640
13641 Revert
13642 2008-03-26 Richard Guenther <rguenther@suse.de>
13643
13644 * fold-const.c (target.h): Include.
13645 (fold_comparison): Fold comparison of addresses of two decls
13646 that bind locally. Consolidate address folding code.
13647
aefa9d43
KG
136482008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13649
13650 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
13651 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
13652 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
13653 dconstsqrt2, dconstthird, dconste and/or dconst10.
13654 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
13655 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
13656 dconstsqrt2, dconste): Delete.
13657 (init_emit_once): Likewise. Simplify initializing dconstm1.
13658 Constify variable.
13659 * real.c (get_real_const): New.
13660 * real.h (dconst3, dconst10, dconstm2, dconstthird,
13661 dconstsqrt2, dconste): Delete.
13662 (real_value_const, get_real_const): New.
13663
35dd7cc3
L
136642008-03-26 H.J. Lu <hongjiu.lu@intel.com>
13665
13666 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
13667
13668 * config/i386/i386.c (ix86_function_arg_boundary): Check
13669 BIGGEST_ALIGNMENT instead of 128.
13670 (setup_incoming_varargs_64): Likewise.
13671
f91ed78d
TT
136722008-03-26 Tom Tromey <tromey@redhat.com>
13673
13674 * Makefile.in (DEPFILES): Add missing '/'.
13675
4990038d
RG
136762008-03-26 Richard Guenther <rguenther@suse.de>
13677
13678 * fold-const.c (target.h): Include.
13679 (fold_comparison): Fold comparison of addresses of two decls
13680 that bind locally. Consolidate address folding code.
13681
813ab1d7
NC
136822008-03-26 Nick Clifton <nickc@redhat.com>
13683
13684 PR target/31232
13685 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
13686 not allow INT+INT as a legitimate addressing mode.
13687
cf3135aa
RG
136882008-03-26 Richard Guenther <rguenther@suse.de>
13689
13690 * tree-flow.h (widen_bitfield): Remove declaration.
13691 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
13692 (widen_bitfield): Remove function.
13693 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
13694 code.
13695
fd88fd09
AP
136962008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
13697
22ec849c 13698 PR target/31558
fd88fd09
AP
13699 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
13700 error_mark_node's.
13701
fb959f72
RS
137022008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
13703
13704 PR rtl-optimization/35232
13705 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
13706 (forget_old_reloads_1, forget_marked_reloads): Don't clear
13707 reg_reloaded_call_part_clobbered here.
13708 (reload_regs_reach_end_p): New function.
13709 (reload_reg_rtx_for_input): New variable.
13710 (reload_reg_rtx_for_output): Likewise.
13711 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22129589 13712 when reassigning a pseudo register. Load reloadreg from
fb959f72
RS
13713 reload_reg_rtx_for_input, moving the mode and register
13714 calculation to...
13715 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
13716 instead of the original when deciding whether an input reload
13717 would be a no-op or whether an output reload can be deleted.
13718 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
13719 when setting up new_spill_reg_store. Load it from
13720 reload_reg_rtx_for_output, moving the mode and register
13721 calculation to...
13722 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
13723 instead of the original when deciding whether an output reload
13724 would be a no-op. Do the same when modifying insn notes.
13725 Use rtx_equal_p instead of == to compare the registers.
13726 (inherit_piecemeal_p): Take a mode and two register numbers
13727 as argument.
13728 (emit_reload_insns): Clear new_spill_reg_store for every hard
13729 register in the reload register. Remove spill registers
13730 from reg_reloaded_valid before considering whether to record
13731 inheritance information for them. Use reload_reg_rtx_for_output
13732 instead of reg_rtx when recording output reloads. Use
13733 reload_reg_rtx_for_input instead of reg_rtx when recording
13734 input reloads. Set or clear reg_reloaded_call_part_clobbered
13735 at the same time as setting reg_reloaded_valid.
13736 (delete_output_reload): Add a new_reload_reg parameter and use it
13737 instead of rld[j].reg_rtx.
13738 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
13739 calls accordingly.
13740
a8c86f3f
TT
137412008-03-25 Tom Tromey <tromey@redhat.com>
13742
13743 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
13744 (build/genattr.o): Likewise.
13745 (build/genattrtab.o): Likewise.
13746 (build/gencodes.o): Likewise.
13747 (build/genconfig.o): Likewise.
13748 (build/genconstants.o): Likewise.
13749 (build/genemit.o): Likewise.
13750 (build/genextract.o): Likewise.
13751 (build/genflags.o): Likewise.
13752
f4d3e7fd 137532008-03-25 Bob Wilson <bob.wilson@acm.org>
22129589 13754
f4d3e7fd
BW
13755 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
13756 instead of size_int for integer types.
13757 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
13758 to match type of MINUS_EXPR.
22129589 13759
55d059d3
TT
137602008-03-25 Tom Tromey <tromey@redhat.com>
13761
13762 * configure: Rebuilt.
13763 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
13764 Makefile.
13765
2fe3178b
TT
137662008-03-25 Tom Tromey <tromey@redhat.com>
13767
13768 * config/x-solaris (host-solaris.o): Update.
13769 * config/x-linux (host-linux.o): Update.
13770 * config/x-hpux (host-hpux.o): Update.
13771 * config/x-darwin (host-darwin.o): Update.
13772 * config/v850/t-v850e (v850-c.o): Update.
13773 * config/v850/t-v850 (v850-c.o): Update.
13774 * config/t-vxworks (vxworks.o): Update.
13775 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 13776 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
13777 * config/spu/t-spu-elf (spu-c.o): Update.
13778 (spu.o): Remove.
13779 * config/sh/t-symbian (sh-c.o): Update.
13780 (symbian.o): Update.
13781 * config/sh/t-sh (sh-c.o): Update.
13782 * config/score/t-score-elf (score7.o, score3.o): Update.
13783 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
13784 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
13785 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
13786 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
13787 (rs6000.o): Remove.
13788 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
13789 * config/m32c/t-m32c (m32c-pragma.o): Update.
13790 * config/ia64/t-ia64 (ia64-c.o): Update.
13791 * config/i386/x-mingw32 (host-mingw32.o): Update.
13792 * config/i386/x-i386 (driver-i386.o): Update.
13793 * config/i386/x-darwin (host-i386-darwin.o): Update.
13794 * config/i386/x-cygwin (host-cygwin.o): Update.
13795 * config/i386/t-nwld (nwld.o): Update.
13796 * config/i386/t-netware (netware.o): Update.
13797 * config/i386/t-interix (winnt.o): Update.
13798 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
13799 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
13800 msformat-c.o): Update.
13801 * config/bfin/t-bfin-linux (generated_files): Add
13802 linux-sysroot-suffix.h.
13803 * config/arm/t-wince-pe (pe.o): Update.
13804 * config/arm/t-strongarm-pe (pe.o): Update.
13805 * config/arm/t-pe (pe.o): Update.
13806 * config/arm/t-arm (arm-c.o): Update.
13807 * doc/install.texi (Prerequisites): Require make 3.80.
13808 * Makefile.in: Remove .o targets.
13809 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
13810 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
13811 (simple_generated_h, simple_generated_c): Move earlier.
13812 (generated_files): New variable.
13813 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
13814 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
13815 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
13816 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
13817 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
13818 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
13819 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
13820 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
13821 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
13822 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
13823 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
13824 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
13825 (.c.o): Remove.
13826 (COMPILE.base, COMPILE): New variables.
13827 (%.o): New pattern rule.
13828 (ALL_HOST_OBJS): New variable.
13829 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
13830 (dummy-checksum.o, cc1-checksum.o): Remove.
13831 (DRIVER_SHLIB): New variable.
13832 (DRIVER_DEFINES): Use it.
13833 (gencondmd.c): Move out of build/.
13834 (s-conditions): Update.
13835 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
13836 (ALL_BUILD_OBJS): Likewise.
13837 (build/%.o): Use BUILDCOMPILE.
13838 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
13839 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
13840 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
13841 build/gencheck.o, build/gencodes.o, build/genconditions.o,
13842 build/genconfig.o, build/genconstants.o, build/genemit.o,
13843 build/genextract.o, build/genflags.o, build/genmddeps.o,
13844 build/genopinit.o, build/genoutput.o, build/genpeep.o,
13845 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
13846 build/gen-protos.o, build/scan.o, build/fix-header.o,
13847 build/scan-decls.o): Simplify.
13848 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
13849 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
13850 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 13851 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 13852 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 13853 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 13854 * configure: Rebuilt.
4acc3f42
UB
13855 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
13856 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 13857
5ade1ed2
DG
138582008-03-25 Douglas Gregor <doug.gregor@gmail.com>
13859
4acc3f42
UB
13860 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
13861 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 13862
de6adfa2
N
138632008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
13864
13865 * config/sh/constraints.md (Pso, Psz): New constraints.
13866 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
13867 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
13868
f326a6cb
N
138692008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
13870
4acc3f42 13871 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
13872 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
13873
b4b0018b
N
138742008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
13875
13876 * config/sh/sh.md (prefetch): Add condition for SH2A target.
22129589 13877 (prefetch_sh2a): New.
b4b0018b 13878
e990551a
JS
138792008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
13880 Naveen.H.S <naveen.hs@kpitcummins.com>
13881
13882 * config/sh/constraints.md (I28): New constraint.
13883 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 13884 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 13885
561642fa
AP
138862008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
13887 Jayant Sonar <Jayant.sonar@kpitcummins.com>
13888 Naveen.H.S <naveen.hs@kpitcummins.com>
13889
13890 * config/sh/sh.c (SH_ATTRIBUTES): Define.
13891 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
13892 (print_operand): Handle resbank in %@ operand code.
13893 (sh_encode_section_info): New.
13894 (push_regs): Add conditions for resbank.
13895 (sh_expand_epilogue): Likewise.
13896 (sh_insert_attributes): Likewise.
13897 (sh_attribute_table): Likewise.
13898 (sh_handle_resbank_handler_attribute): New.
13899 (sh2a_handle_function_vector_handler_attribute): New.
13900 (sh2a_is_function_vector_call): New.
13901 (sh2a_get_function_vector_number): New.
13902 (sh2a_function_vector_p): New.
13903 (sh_cfun_resbank_handler_p): New.
13904 * config/sh/sh.md (calli): Emit jsr/n if possible.
13905 (calli_tbr_rel): New.
13906 (calli_pcrel): Emit jsr/n if possible.
13907 (return_i): Emit rts/n if possible.
13908 (call_valuei_tbr_rel): New.
13909 (call_valuei_pcrel): Add condition for SH2A target.
13910 (call_value): Likewise.
13911 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
13912 (sh2a_get_function_vector_number): Likewise.
13913 (sh2a_is_function_vector_call): Likewise.
13914 * doc/extend.texi: Document TBR relative addressing of SH2A.
13915 (resbank): Add description for SH2A.
13916
1b24a790
RG
139172008-03-24 Richard Guenther <rguenther@suse.de>
13918
13919 PR c/22371
13920 * gimplify.c (gimplify_modify_expr): For frontend type-correct
13921 pointer assignments change conversions according to middle-end rules.
13922 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
13923 * configure.ac: Include type checking in yes.
13924 * configure: Regenerate.
13925
52249a2e
MLI
139262008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13927
13928 * diagnostic.c (diagnostic_count_diagnostic): Delete.
13929 (diagnostic_report_diagnostic): Update. Handle ICEs here.
22129589 13930
37ca4602
NS
139312008-03-24 Nathan Sidwell <nathan@codesourcery.com>
13932
13933 * gthr-vxworks.h (UNUSED): Define.
13934
2ff8644d
L
139352008-03-23 H.J. Lu <hongjiu.lu@intel.com>
13936
9aba5d22 13937 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 13938
1c42f5c6
ZM
139392008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
13940
13941 * doc/extend.texi (Function Attributes): Add missing comma in the
13942 example of the "alloc_size" attribute.
22129589 13943
808e68bb
UB
139442008-03-23 Uros Bizjak <ubizjak@gmail.com>
13945
13946 Revert:
13947 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
13948
13949 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
13950 32bit host.
13951
13952 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
13953
13954 PR target/35496
13955 * stor-layout.c (update_alignment_for_field): Set minimum alignment
13956 of the underlying type of a MS bitfield layout to the natural
13957 alignment of the type.
13958
13959 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
13960
13961 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
13962 to their natural alignment to avoid store forwarding stalls.
13963
1b738915
RG
139642008-03-22 Richard Guenther <rguenther@suse.de>
13965
13966 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
13967 For PHI nodes verify the address is invariant.
13968 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
13969 (get_symbol_constant_value): Use is_gimple_min_invariant.
13970 (maybe_fold_stmt_indirect): Likewise.
13971
18b526e8
RS
139722008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
13973
13974 PR rtl-optimization/33927
13975 * Makefile.in (dse.o): Depend on $(TM_P_H).
13976 * expr.h (extract_low_bits): Declare.
13977 * expmed.c (extract_low_bits): New function.
13978 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
13979 * dse.c: Include tm_p.h.
13980 (find_shift_sequence): Remove the read_reg argument and return the
13981 read value. Emit the instructions instead of returning them.
13982 Iterate on new_mode rather than calculating it each time.
13983 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
13984 source to NEW_MODE and extract_low_bits to convert the shifted
13985 value to READ_MODE.
13986 (replace_read): Allow the load and store to have different mode
13987 classes. Use extract_low_bits when SHIFT == 0. Create the shift
13988 or extraction instructions before trying the replacement. Update
13989 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
13990
48e55066
UB
139912008-03-22 Uros Bizjak <ubizjak@gmail.com>
13992
13993 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
13994 to their natural alignment to avoid store forwarding stalls.
13995
94e98316
AP
139962008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
13997
e8afc0cb 13998 PR target/27946
94e98316
AP
13999 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
14000 encouraging but not allowing gprs for input;
14001 change the input constraint to !f#r.
14002 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
14003 gprs for output;
14004 change the output constraint to !f#r.
14005
7fb1431b
UB
140062008-03-21 Uros Bizjak <ubizjak@gmail.com>
14007
14008 PR target/13958
14009 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
14010 corresponding post-reload splitters.
14011 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
14012 when x87 FP math is selected.
14013 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
14014 New function prototype.
14015 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
14016 unreachable function to ease macroization of insn patterns.
14017
ed2024ba
MJ
140182008-03-21 Martin Jambor <mjambor@suse.cz>
14019
14020 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
14021 reference dumps if ddr is NULL or dependence is unknown.
14022
06644a07
KK
140232008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
14024
14025 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
14026 unsigned extension into account.
14027 (ATOMIC_COMPARE_AND_SWAP): Likewise.
14028 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
14029 Do computations on a scratch register.
14030
ad6003f2
RG
140312008-03-21 Richard Guenther <rguenther@suse.de>
14032
14033 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14034 Use is_gimple_min_invariant instead of TREE_INVARIANT.
14035 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
14036 * tree-ssa-dom.c (record_equality): Likewise.
14037 * tree-inline.c (copy_body_r): Likewise.
14038 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
14039 TREE_INVARIANT.
14040
2acdc1fb
KK
140412008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
14042
14043 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
14044 as 'delete_unused' argument.
14045
16ac8575
RG
140462008-03-20 Richard Guenther <rguenther@suse.de>
14047
14048 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
14049 special casing of constant qualifiers.
14050 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
14051 care about them in general.
14052 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
14053 regardless of their type.
14054 (fold_stmt_r): Forcefully fold *& if we end up with that.
14055
433d52fd
PB
140562008-03-20 Paul Brook <paul@codesourcery.com>
14057
14058 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
14059 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
14060 linker flags.
14061 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
14062 definition.
14063 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
14064 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
14065
7621f5d5
VR
140662008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
14067
14068 * common.opt (Wmudflap): New option.
14069 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
14070 (mx_register_decls): Likewise.
14071 (mudflap_finish_file): Likewise.
14072 * doc/invoke.texi: Document -Wno-mudflap.
14073
140742008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
14075
14076 * c-format.c (replace_format_name_to_system_name): New.
14077 (cmp_attribs): New.
14078 (convert_format_name_to_system_name): New.
14079 (decode_format_attr): Add use of convert_format_name_to_system_name.
14080 (format_types_orig): Add gnu_ prefix to names.
14081 (check_format_info_main): Special treating of \0 escaped names for
14082 supporting multi-character format specifiers as I32, I64.
14083 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
14084 (gnu_target_overrides_format_attributes): New.
14085 * c-format.h: Add structure target_ovr_attr to hold
14086 system specific formatter names.
14087 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
14088 msformat-c.o file to c_target_objs and cxx_target_objs.
14089 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14090 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
14091 (TARGET_N_FORMAT_TYPES): New.
14092 * config/i386/msformat-c.c: New.
14093 * config/i386/t-cygming: Add build rule for msformat-c.o.
14094 * doc/extend.texi: Add new format names gnu_* and ms_* and
14095 further details.
14096 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
14097
4e359692
IR
140982008-03-20 Ira Rosen <irar@il.ibm.com>
14099
14100 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
14101 optimizations turned on under -O3.
14102 (ftree-vectorize): Add that the flag is turned on with -O3.
14103
41129be2
BE
141042008-03-20 Ben Elliston <bje@au.ibm.com>
14105
14106 * regmove.c (try_auto_increment): Fix spelling error in comment.
14107 * final.c (final_scan_insn): Likewise.
14108
1b1d8f88
UB
141092008-03-20 Uros Bizjak <ubizjak@gmail.com>
14110
14111 PR target/14552
14112 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
14113 allocator preferences for "y" and "r" class registers.
14114 ("*mov<mode>_internal"): Ditto.
14115 ("*movv2sf_internal_rex64"): Ditto.
14116 ("*movv2sf_internal"): Ditto.
14117
05e6ee93
MM
141182008-03-19 Michael Matz <matz@suse.de>
14119
14120 PR middle-end/35616
14121 * calls.c (expand_call): Check overlap of arguments with call
14122 address for sibcalls.
14123
cd7e0bd4
UB
141242008-03-19 Uros Bizjak <ubizjak@gmail.com>
14125
14126 PR target/35496
14127 * stor-layout.c (update_alignment_for_field): Set minimum alignment
14128 of the underlying type of a MS bitfield layout to the natural
14129 alignment of the type.
14130
8ddbbcae
JH
141312008-03-19 Jan Hubicka <jh@suse.cz>
14132
14133 PR other/35094
14134 * toplev.c (decode_d_option): Handle all CPP flags.
14135 * tree-vrp.c: Update tree_pass descriptors.
14136 * regrename.c: Update tree_pass descriptors.
14137 * fwprop.c: Update tree_pass descriptors.
14138 * doc/invoke.texi: Remove documentation of dropped -d? flags.
14139 * tree-into-ssa.c: Update tree_pass descriptors.
14140 * tree-dump.c: Update tree_pass descriptors.
14141 * tree-complex.c: Update tree_pass descriptors.
14142 * tree-dump.h: Update tree_pass descriptors.
14143 * see.c: Update tree_pass descriptors.
14144 * cgraphbuild.c: Update tree_pass descriptors.
14145 * tracer.c: Update tree_pass descriptors.
14146 * tree-loop-distribution.c: Update tree_pass descriptors.
14147 * cgraph.c: Update tree_pass descriptors.
14148 * postreload-gcse.c: Update tree_pass descriptors.
14149 * postreload.c: Update tree_pass descriptors.
14150 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
14151 * tree-tailcall.c: Update tree_pass descriptors.
14152 * tree-pass.h (tree_opt_pass): Rename to ...
14153 (opt_pass) ... this one; add "type" field and remove letter field.
14154 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
14155 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
14156 all_lowering_passes): Update declaration.
14157 * ipa-cp.c: Update tree_pass descriptors.
14158 * final.c: Update tree_pass descriptors.
14159 * omp-low.c: Update tree_pass descriptors.
14160 * tree-ssa-dse.c: Update tree_pass descriptors.
14161 * ipa-reference.c: Update tree_pass descriptors.
14162 * tree-ssa-uncprop.c: Update tree_pass descriptors.
14163 * auto-inc-dec.c: Update tree_pass descriptors.
14164 * reorg.c: Update tree_pass descriptors.
14165 * cgraphunit.c: Update tree_pass descriptors.
14166 * tree-ssa-copyrename.c: Update tree_pass descriptors.
14167 * tree-ssa-ccp.c: Update tree_pass descriptors.
14168 * df-core.c: Update tree_pass descriptors.
14169 * mode-switching.c: Update tree_pass descriptors.
14170 * tree-nomudflap.c: Update tree_pass descriptors.
14171 * modulo-sched.c: Update tree_pass descriptors.
14172 * ipa-pure-const.c: Update tree_pass descriptors.
14173 * cse.c: Update tree_pass descriptors.
14174 * web.c: Update tree_pass descriptors.
14175 * tree-stdarg.c: Update tree_pass descriptors.
14176 * tree-ssa-math-opts.c: Update tree_pass descriptors.
14177 * tree-ssa-dom.c: Update tree_pass descriptors.
14178 * tree-nrv.c: Update tree_pass descriptors.
14179 * tree-ssa-alias.c: Update tree_pass descriptors.
14180 * loop-init.c: Update tree_pass descriptors.
14181 * gimple-low.c: Update tree_pass descriptors.
14182 * ipa-inline.c: Update tree_pass descriptors.
14183 * tree-ssa-sink.c: Update tree_pass descriptors.
14184 * global.c: Update tree_pass descriptors.
14185 * ifcvt.c: Update tree_pass descriptors.
14186 * jump.c: Update tree_pass descriptors.
14187 * predict.c: Update tree_pass descriptors.
14188 * tree-ssa-loop.c: Update tree_pass descriptors.
14189 * recog.c: Update tree_pass descriptors.
14190 * dse.c: Update tree_pass descriptors.
14191 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
14192 * tree-eh.c: Update tree_pass descriptors.
14193 * regmove.c: Update tree_pass descriptors.
14194 * local-alloc.c
14195 * function.c: Update tree_pass descriptors.
14196 * tree-vectorizer.c: Update tree_pass descriptors.
14197 * gcse.c: Update tree_pass descriptors.
14198 * ipa-type-escape.c: Update tree_pass descriptors.
14199 * tree-if-conv.c: Update tree_pass descriptors.
14200 * init-regs.c: Update tree_pass descriptors.
14201 * ipa.c: Update tree_pass descriptors.
14202 * tree-ssa-phiopt.c: Update tree_pass descriptors.
14203 * rtl-factoring.c: Update tree_pass descriptors.
14204 * lower-subreg.c: Update tree_pass descriptors.
14205 * bt-load.c: Update tree_pass descriptors.
14206 * tree-dfa.c: Update tree_pass descriptors.
14207 * except.c: Update tree_pass descriptors.
14208 * emit-rtl.c: Update tree_pass descriptors.
14209 * cfgexpand.c: Update tree_pass descriptors.
14210 * tree-cfgcleanup.c: Update tree_pass descriptors.
14211 * cfgcleanup.c: Update tree_pass descriptors.
14212 * tree-ssa-pre.c: Update tree_pass descriptors.
14213 * tree-sra.c: Update tree_pass descriptors.
14214 * tree-mudflap.c: Update tree_pass descriptors.
14215 * tree-ssa-copy.c: Update tree_pass descriptors.
14216 * cfglayout.c: Update tree_pass descriptors.
14217 * tree-ssa-forwprop.c: Update tree_pass descriptors.
14218 * tree-ssa-dce.c: Update tree_pass descriptors.
14219 * tree-ssa.c: Update tree_pass descriptors.
14220 * regclass.c: Update tree_pass descriptors.
14221 * integrate.c: Update tree_pass descriptors.
14222 * tree-optimize.c: Update tree_pass descriptors.
14223 * tree-ssa-phiprop.c: Update tree_pass descriptors.
14224 * tree-object-size.c: Update tree_pass descriptors.
14225 * combine.c: Update tree_pass descriptors.
14226 * tree-outof-ssa.c: Update tree_pass descriptors.
14227 * bb-reorder.c: Update tree_pass descriptors.
14228 * stack-ptr-mod.c: Update tree_pass descriptors.
14229 * var-tracking.c: Update tree_pass descriptors.
14230 * tree-profile.c: Update tree_pass descriptors.
14231 * tree-vect-generic.c: Update tree_pass descriptors.
14232 * reg-stack.c: Update tree_pass descriptors.
14233 * sched-rgn.c: Update tree_pass descriptors.
14234 * tree-ssa-structalias.c: Update tree_pass descriptors.
14235 * tree-cfg.c: Update tree_pass descriptors.
14236 * passes.c (current_pass): Update declaration.
14237 (finish_optimization_passes): Update.
14238 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
14239 (register_one_dump_file, register_dump_files_1, next_pass_1):
5617c135 14240 Update arguments.
8ddbbcae
JH
14241 (init_optimization_passes): Update handling of new types.
14242 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
14243 * ipa-struct-reorg.c: Update tree_pass descriptors.
14244 * tree-ssa-reassoc.c: Update tree_pass descriptors.
14245 * combine-stack-adj.c: Update tree_pass descriptors.
14246 * cfgrtl.c: Update tree_pass descriptors.
14247 * dce.c: Update tree_pass descriptors.
14248 * tree-ssanames.c: Update tree_pass descriptors.
14249
8cb3ee37
RG
142502008-03-19 Richard Guenther <rguenther@suse.de>
14251
14252 PR middle-end/35609
4990038d
RG
14253 * tree-ssa.c (walk_data): New structure.
14254 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
14255 instead of "is".
14256 (execute_early_warn_uninitialized): Compute post-dominators.
14257 Initialize always_executed before processing each basic block.
14258
34614fff
MP
142592008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
14260
14261 PR target/35504
14262 * config/i386/i386.c (x86_this_parameter): Calculate correct location
14263 of "this" pointer when "regparm = N" or "fastcall" is in effect.
14264
c15477fb
RW
142652008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14266
14267 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
14268
ac5dc795
PB
142692008-03-18 Paolo Bonzini <bonzini@gnu.org>
14270
34614fff
MP
14271 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
14272 is true.
14273 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
14274 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
14275 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
14276 target after ignore has been set, and move there also the commputation
14277 of subtarget and original_target.
14278 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
14279 (LANG_HOOKS_INITIALIZER): Remove it.
14280 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 14281
b80280f2
RG
142822008-03-18 Richard Guenther <rguenther@suse.de>
14283
14284 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
14285 found an expression with constants, note that in the VN for the lhs.
14286 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
14287 fold them to constants if possible. Run cleanup_cfg if done so.
14288 (execute_pre): Return todo.
14289 (do_pre): Likewise.
14290 (execute_fre): Likewise.
14291 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
14292 of constants.
14293 (get_prop_source_stmt): Look through pointer conversions.
14294
2e28e797
JH
142952008-03-18 Jan Hubicka <jh@suse.cz>
14296
14297 * tree-pretty-print.c: Include predict.h.
14298 (dump_generic_node): Dump predictor.
14299 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
14300 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
14301 * gimple-low.c (lower_stmt): Likewise.
14302 * expr.c (expand_expr_real): Likewise.
14303 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
14304 them.
14305 (build_predict_expr, build_predict_expr): New.
14306 * predict.h (predictor_name, build_predict_expr): Update.
14307 * c-typeck.c (c_finish_bc_stmt): Add prediction.
14308 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
14309 * predict.def (PRED_CONTINUE): Update hitrate.
14310 * tree.def (PREDICT_EXPR): Define.
14311 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
14312 do not handle BIND_EXPR.
14313 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
14314 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
14315 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
14316 operands.
14317
52f1c7ed
MM
143182008-03-18 Michael Matz <matz@suse.de>
14319
14320 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
14321
c8ae0bec
RG
143222008-03-18 Richard Guenther <rguenther@suse.de>
14323
14324 * tree-gimple.h (is_gimple_invariant_address): Declare.
14325 (is_gimple_constant): Likewise.
14326 * tree-gimple.c (is_gimple_constant): New function.
14327 (is_gimple_invariant_address): Likewise.
14328 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
14329 and is_gimple_invariant_address.
14330 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
14331 previous change.
14332 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
14333 an addressable base.
14334
8119fc93
JJ
143352008-03-18 Jakub Jelinek <jakub@redhat.com>
14336
14337 PR middle-end/35611
14338 * gimplify.c (gimplify_expr): Gimplify second operand of
14339 OMP_ATOMIC_LOAD.
14340
c4e5b5a8
RG
143412008-03-17 Richard Guenther <rguenther@suse.de>
14342
14343 PR tree-optimization/19637
14344 * fold-const.c (fold_unary): Remove restrictions of removing
14345 intermediate pointer-conversions (P2)(P1)P0.
14346 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
14347 conversion to void pointer.
14348 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
14349
fcb9237b
JW
143502008-03-16 James E. Wilson <wilson@tuliptree.org>
14351
14352 PR debug/31510
14353 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
14354 emulated thread local variables.
14355
461f8762
RG
143562008-03-16 Richard Guenther <rguenther@suse.de>
14357
14358 PR middle-end/35607
14359 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
14360 expand TREE_INVARIANT operations that are not gimple invariant.
14361
2a31c49c
HPN
143622008-03-16 Hans-Peter Nilsson <hp@axis.com>
14363
14364 * doc/extend.texi (Alignment): Say that the ABI controls
14365 the __alignof__ for non-strict-alignment targets rather
14366 than being a recommendation.
14367
80efdb6a
PB
143682008-03-15 Paul Brook <paul@codesourcery.com>
14369
14370 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
14371 annotations.
14372 (arm_output_fn_unwind): Mark functions that can not be unwound.
14373
ff069900
PB
143742008-03-15 Paul Brook <paul@codesourcery.com>
14375
14376 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
14377 extension instructions.
14378
87e1e42b
RG
143792008-03-15 Richard Guenther <rguenther@suse.de>
14380
14381 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
14382 and fold constant aggregate refs.
14383 (fold_const_aggregate_ref): Handle string constants
14384 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
14385 (evaluate_stmt): Simplify now that ccp_fold folds constant
14386 aggregate refs.
14387
ef87d898
PB
143882008-03-15 Paul Brook <paul@codesourcery.com>
14389
14390 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
14391 (extzv): Use gen_extzv_t2.
14392 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
14393
ed97ddc6
RG
143942008-03-15 Richard Guenther <rguenther@suse.de>
14395
14396 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
14397 (fold_const_aggregate_ref): Likewise.
14398 (get_value): Return NULL if we don't have any values.
14399 (ccp_finalize): Set const_val to NULL after freeing it.
14400 * tree-flow.h (get_symbol_constant_value): Declare.
14401 (fold_const_aggregate_ref): Likewise.
14402 * tree-ssa-sccvn.c (try_to_simplify): Use them.
14403
1fd89060
RG
144042008-03-15 Richard Guenther <rguenther@suse.de>
14405
14406 PR middle-end/35593
14407 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
14408 to not produce negative array indices if not allowed. Add
14409 parameter to indicate that.
14410 (maybe_fold_offset_to_component_ref): Allow negative array
14411 indices only for the first member of a structure.
14412 (maybe_fold_offset_to_reference): Allow negative array indices.
14413 (maybe_fold_stmt_addition): Likewise.
14414
693092fb 144152008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 14416 Anatoly Sokolov <aesok@post.ru>
693092fb 14417
b97d8153 14418 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
14419 (avr_arch): Add ARCH_AVR6.
14420 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5617c135 14421 (initial_elimination_offset): Initialize and use 'avr_pc_size'
693092fb
BH
14422 instead of fixed value 2.
14423 (print_operand_address): Use gs() asm specifier instead of pm().
14424 (avr_assemble_integer): (Ditto.).
14425 (avr_output_addr_vec_elt): (Ditto.).
14426 (print_operand): Handle "!" code.
22129589 14427 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
14428 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
14429 (AVR_HAVE_EIJMP_EICALL): Define.
14430 (AVR_3_BYTE_PC): Redefine.
14431 (AVR_2_BYTE_PC): (Ditto.).
14432 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
14433 (LINK_SPEC): Add atmega2560 and atmega2561.
22129589 14434 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
693092fb 14435 (crtm2561.o).
22129589 14436 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
14437 for 3 byte PC devices.
14438 (call_value_insn): (Ditto.).
14439 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
14440 (indirect_jump): Use only for for 2 byte PC devices.
14441 (*tablejump): (Ditto.).
14442 (*indirect_jump_avr6): Add insn.
14443 (*tablejump_rjmp): Don't use for 3 byte PC devices.
22129589 14444 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
14445 instead of ijmp for 3 byte PC devices.
14446 (__tablejump2__): (Ditto.).
b97d8153 14447 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22129589 14448 (MULITLIB_DIRNAMES): (Ditto.).
693092fb
BH
14449 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
14450
ab555a5b
UB
144512008-03-15 Uros Bizjak <ubizjak@gmail.com>
14452
14453 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
14454 "sse2_umulsidi3". Use V1DI mode for operand 0.
14455 ("mmx_psadbw"): Use V1DI mode for operand 0.
14456 * config/i386/i386-modes.def (V1SI): New vector mode.
14457 * config/i386/i386.c (struct builtin_description)
14458 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
14459 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
14460 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
14461 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
14462 v1di_ftype_v8qi_v8qi type.
14463 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
14464
14465 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
14466 __builtin_ia32_pmuludq]: Fix the mode of return value.
14467
8f78ed0e
RG
144682008-03-15 Richard Guenther <rguenther@suse.de>
14469
14470 PR middle-end/35595
14471 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
14472 being a PHI_NODE.
14473
66e58b33 144742008-03-14 Bob Wilson <bob.wilson@acm.org>
22129589 14475
66e58b33
BW
14476 * doc/invoke.texi (Option Summary, Xtensa Options): Document
14477 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
14478 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
14479 unless TARGET_SERIALIZE_VOLATILE is enabled.
14480 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
14481 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
14482 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
14483
896c8b96
RG
144842008-03-14 Richard Guenther <rguenther@suse.de>
14485
14486 PR tree-optimization/34172
14487 * tree-flow.h (refs_may_alias_p): Declare.
14488 (get_single_def_stmt): Likewise.
14489 (get_single_def_stmt_from_phi): Likewise.
14490 (get_single_def_stmt_with_phi): Likewise.
14491 * tree-dfa.c (refs_may_alias_p): New function.
14492 (get_single_def_stmt): Likewise.
14493 (get_single_def_stmt_from_phi): Likewise.
14494 (get_single_def_stmt_with_phi): Likewise.
14495 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
14496 (vn_reference_lookup_1): New helper function.
14497 (vn_reference_lookup): Walk the virtual use-def chain to
14498 continue searching for a match if the def does not alias the
14499 reference we are looking for.
14500
75dd1ae2
DE
145012008-03-14 David Edelsohn <edelsohn@gnu.org>
14502
14503 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
14504 archive and Perzl. Update The Written Word listing.
14505
3d45dd59
RG
145062008-03-14 Richard Guenther <rguenther@suse.de>
14507
14508 PR tree-optimization/34043
14509 PR tree-optimization/33989
14510 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
14511 when doing FRE.
14512 (bitmap_find_leader): Use extra argument to verify dominance
14513 relationship inside a basic-block.
14514 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
14515 (find_leader_in_sets): Adjust.
14516 (create_component_ref_by_pieces): Take extra argument for
14517 dominance check, handle lookup failures.
14518 (find_or_generate_expression): Likewise.
14519 (create_expression_by_pieces): Likewise.
14520 (insert_into_preds_of_block): Adjust.
14521 (create_value_expr_from): If asked for, verify all operands
14522 are in the blocks AVAIL_OUT set.
14523 (make_values_for_stmt): Check for SSA_NAMEs that are life
14524 over an abnormal edge.
14525 (compute_avail): Remove such check.
14526 (do_SCCVN_insertion): New function.
14527 (eliminate): If we do not find a leader suitable for replacement
14528 insert a replacement expression from SCCVN if available.
14529 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
14530 (struct vn_ssa_aux): Add needs_insertion flag.
14531 * tree-ssa-sccvn.c (may_insert): New global flag.
14532 (copy_reference_ops_from_ref): Value-number union member access
14533 based on its size, not type and member if insertion is allowed.
14534 (visit_reference_op_load): For a weak match from union type
14535 punning lookup a view-converted value and insert a SSA_NAME
14536 for that value if that is not found.
14537 (visit_use): Make dumps shorter. Do not disallow value numbering
14538 SSA_NAMEs that are life over an abnormal edge to constants.
14539 (free_scc_vn): Release inserted SSA_NAMEs.
14540 (run_scc_vn): New flag to specify whether insertion is allowed.
14541 Process SSA_NAMEs in forward order.
14542 * tree-ssa-loop-im.c (for_each_index): Handle invariant
14543 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
14544 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
14545 pointer type to/from integral types that do not change the
14546 precision to regular conversions.
14547
52eaae97
UB
145482008-03-13 Uros Bizjak <ubizjak@gmail.com>
14549
14550 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
14551 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
14552 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
14553 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
14554 input arguments and the mode of return value. Built-in functions
14555 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 14556
5f5f0635
AD
145572008-03-13 Alon Dayan <alond@il.ibm.com>
14558 Olga Golovanevsky <olga@il.ibm.com>
14559
14560 PR tree-optimization/35041
14561 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
14562 to locate the right position in a statement.
14563
1359ef39
UB
145642008-03-13 Uros Bizjak <ubizjak@gmail.com>
14565
14566 PR target/34000
14567 PR target/35553
14568 * config/i386/xmmintrin.h: Change all static inline functions to
14569 extern inline and add __gnu_inline__ attribute.
14570 * config/i386/bmintrin.h: Ditto.
14571 * config/i386/smmintrin.h: Ditto.
14572 * config/i386/tmmintrin.h: Ditto.
14573 * config/i386/mmintrin-common.h: Ditto.
14574 * config/i386/ammintrin.h: Ditto.
14575 * config/i386/emmintrin.h: Ditto.
14576 * config/i386/pmmintrin.h: Ditto.
14577 * config/i386/mmintrin.h: Ditto.
14578 * config/i386/mm3dnow.h: Ditto.
14579
d0fb20be
JJ
145802008-03-13 Jakub Jelinek <jakub@redhat.com>
14581
14582 PR middle-end/35185
14583 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
14584 (lower_omp_2): New function.
14585 (lower_omp_1, lower_omp): Rewritten.
14586
20cef83a
DS
145872008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
14588
14589 PR 35054
14590 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
14591 with the phrase "Microsoft Windows compilers".
14592 (Push/Pop Macro Pragmas): New subsection. Document
14593 #pragma push_macro and pragma pop_macro.
14594
5dea0c19
PB
145952008-03-12 Paul Brook <paul@codesourcery.com>
14596
14597 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
14598
d1b85efb
PB
145992008-03-12 Paul Brook <paul@codesourcery.com>
14600
14601 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
14602 (thumb2_alusi3_short): Exclude PLUS and MINUS.
14603 (thumb2_addsi_shortim): Rename ...
14604 (thumb2_addsi_short): ... to this. Allow register operands.
14605 (thumb2_subsi_short): New pattern.
14606 (thumb2_one_cmplsi2_short,
14607 thumb2_negsi2_short): New patterns and peepholes.
14608
09754904
PB
146092008-03-12 Paul Brook <paul@codesourcery.com>
14610
09754904
PB
14611 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
14612
a7438d6d
UB
146132008-03-12 Uros Bizjak <ubizjak@gmail.com>
14614
14615 * config/i386/i386.md (int_cond): New code iterator.
14616 (fp_cond): Ditto.
14617 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
14618 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
14619 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
14620 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
14621 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
14622 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
14623 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
14624 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
14625
954954d1
PB
146262008-03-12 Paul Brook <paul@codesourcery.com>
14627
14628 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
14629 instead of {arm,thumb}_compute_save_reg_mask.
14630 (output_return_instruction): Ditto.
14631 (thumb_unexpanded_epilogue): Ditto.
14632 (thumb1_expand_prologue): Ditto.
14633 (thumb1_output_function_prologue): Ditto.
14634 (arm_set_return_address): Ditto.
14635 (thumb_set_return_address): Ditto.
14636 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
14637 regs to achieve stack alignment.
14638 (thumb1_compute_save_reg_mask): Fix compiler warning.
14639 (arm_output_epilogue): Use offsets->saved_regs_mask.
14640 Adjust stack pointer by poping call clobered registers.
14641 (arm_expand_prologue): Use offsets->saved_regs_mask.
14642 Adjust stack pointer by pushing extra registers.
d0fb20be 14643 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 14644
c83bd37c
PB
146452008-03-12 Paolo Bonzini <bonzini@gnu.org>
14646
14647 PR tree-opt/35422
14648 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
14649 conversion to the operands of a multiplication.
14650
67514449
RG
146512008-03-12 Richard Guenther <rguenther@suse.de>
14652
14653 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
14654 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
14655 * timevar.def (TV_TREE_PHIPROP): Add.
14656 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
14657 pass description. Use TV_TREE_PHIPROP.
14658 * tree-ssa-forwprop.c: Remove phiprop code.
14659
7c8f7639
JJ
146602008-03-12 Jakub Jelinek <jakub@redhat.com>
14661
14662 PR middle-end/35549
14663 * omp-low.c (maybe_lookup_decl): Constify first argument.
14664 (use_pointer_for_field): Change last argument from bool to
14665 omp_context *. Disallow shared copy-in/out in nested
14666 parallel if decl is shared in outer parallel too.
14667 (build_outer_var_ref, scan_sharing_clauses,
14668 lower_rec_input_clauses, lower_copyprivate_clauses,
14669 lower_send_clauses, lower_send_shared_vars): Adjust callers.
14670
62878103
VK
146712008-03-12 Victor Kaplansky <victork@il.ibm.com>
14672 Ira Rosen <irar@il.ibm.com>
14673
14674 * tree-vectorizer.c (free_stmt_vec_info): New function.
14675 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
14676 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
14677 * tree-vectorizer.h (free_stmt_vec_info): Declare.
14678 * tree-vect-transform.c (vectorizable_conversion): Free
14679 vec_oprnds0 if it was allocated.
14680 (vect_permute_store_chain): Remove unused VECs.
14681 (vectorizable_store): Free VECs that are allocated in the..
14682 function.
14683 (vect_transform_strided_load, vectorizable_load): Likewise.
14684 (vect_remove_stores): Simplify the code.
14685 (vect_transform_loop): Move code to vect_remove_stores().
14686 Call vect_remove_stores() and free_stmt_vec_info().
14687
9dbd54be
JDA
146882008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14689
14690 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
14691 TARGET_HPUX. Revise comment.
14692 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
14693 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
14694 Use sr4 variant of `be' instruction when not generating PIC code.
14695 (attr_length_call): Adjust for above change.
14696
76a7d3ca
AP
146972008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
14698
14699 * ipa-reference.c (static_execute): Remove module_statics_const and
14700 associated setting code.
14701
40cca4f9
UB
147022008-03-11 Uros Bizjak <ubizjak@gmail.com>
14703
14704 PR target/35540
14705 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
14706 predicate for operand 1.
14707 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
14708 Use earlyclobber modifier for operand 1. Remove support for
14709 memory operands.
1b1d8f88 14710 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
14711 Use earlyclobber modifier for operand 1. Remove support for
14712 memory operands.
14713
ec6237e4 147142008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 14715 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
14716
14717 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
14718 (arm_compute_save_reg0_reg12_mask): Always
14719 check if register 11 must be saved. Always safe hard frame pointer
14720 when frame_pointer_needeed.
14721 (arm_compute_save_reg_mask): Save IP and PC
14722 only with apcs frames.
14723 (arm_output_epilogue): Adjust Thumb2 codepath to
14724 be also invoked and work for ARM non-apcs frames.
14725 (arm_expand_prologue): Don't bother saving IP
14726 for non-apcs frame, since it's not clobbered by
14727 prologue code. Implement non-apcs frame
14728 layout.
14729
2f6025a1
PB
147302008-03-11 Paolo Bonzini <bonzini@gnu.org>
14731
14732 PR rtl-optimization/35281
14733 * expr.c (convert_move): Use a new pseudo for the intermediate
14734 from_mode->word_mode result.
14735
30e257e5
PB
147362008-03-11 Paolo Bonzini <bonzini@gnu.org>
14737
ec6237e4
PB
14738 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
14739 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
14740 * toplev.c (compile_file): Don't call it.
30e257e5 14741
ab669042
UB
147422008-03-11 Uros Bizjak <ubizjak@gmail.com>
14743
14744 PR middle-end/35526
14745 * expr.c (store_expr): Call emit_block_move if the mode
14746 of "temp" RTX is BLKmode.
14747
1ffe34d9 147482008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 14749 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
14750
14751 PR tree-optimization/31358
14752 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
14753 the step with a NULL_TREE.
14754 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
14755 to sizetype if type is a pointer type.
14756 (add_candidate_1): Don't convert the base and step to
14757 the generic type if the orginal type is a pointer type.
14758 (add_iv_value_candidates): Use sizetype for the step
14759 if type is a pointer type.
14760 (cand_value_at): Likewise.
14761 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
14762 for pointer types.
14763 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
14764 Don't convert the tem affine to the type.
14765 (add_elt_to_tree): Use sizetype for the step if a pointer.
14766 Use POINTER_PLUS_EXPR for pointers.
14767 (aff_combination_to_tree): Use sizetype for the step if a
14768 pointer.
14769
dd6d5236
VM
147702008-03-10 Vladimir Makarov <vmakarov@redhat.com>
14771
14772 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
14773 Remove commutativity hint.
14774
8b46837c
JJ
147752008-03-10 Jakub Jelinek <jakub@redhat.com>
14776
5df27e4a
JJ
14777 PR c/35438
14778 PR c/35439
14779 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
14780 errorneous type. Check that v is a VAR_DECL.
14781
8b46837c
JJ
14782 PR middle-end/35099
14783 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
14784
725c2d32
L
147852008-03-10 H.J. Lu <hongjiu.lu@intel.com>
14786
14787 PR tree-optimization/35494
14788 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
14789 may be overriden at link and run time.
14790
3ba404df
RG
147912008-03-10 Richard Guenther <rguenther@suse.de>
14792
14793 PR tree-optimization/34677
14794 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
14795 (poolify_tree): Likewise.
14796 (modify_expr_template): Likewise.
14797 (poolify_modify_stmt): Likewise.
14798 (insert_fake_stores): Handle all component-ref style stores
14799 in addition to INDIRECT_REF. Also handle complex types.
14800 Do not poolify the inserted load.
14801 (realify_fake_stores): Do not rebuild the tree but only
14802 make it a SSA_NAME copy.
14803 (init_pre): Remove initialzation of modify_expr_template.
14804 Do not allocate modify_expr_node_pool.
14805 (fini_pre): Do not free modify_expr_node_pool.
14806
97e38a92
PB
148072008-03-10 Paul Brook <paul@codesourcery.com>
14808
14809 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
14810 to avoid conflicts.
14811
bd4dc3cd 148122008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 14813 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 14814
bd4dc3cd
PB
14815 * config/arm/cortex-r4.md: New.
14816 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
14817 insn attributes.
14818 * config/arm/arm.md: Include cortex-r4.md.
14819 (insn): Add smmls, sdiv and udiv values.
14820 (generic_sched): Don't use generic scheduling for Cortex-R4.
14821 (arm_issue_rate): New function.
14822 (TARGET_SCHED_ISSUE_RATE): Define.
14823
9886a872
SP
148242008-03-10 Sebastian Pop <sebastian.pop@amd.com>
14825
14826 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
14827
e5eff6a3
RG
148282008-03-10 Richard Guenther <rguenther@suse.de>
14829
14830 * tree-ssa-pre.c (get_sccvn_value): Simplify.
14831 (compute_avail): Do not add stmt uses to AVAIL_OUT.
14832
0d4c700c
PB
148332008-03-10 Paolo Bonzini <bonzini@gnu.org>
14834
14835 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
14836 Set default to true.
14837
802e3f8c
RW
148382008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14839
14840 * c.opt (Wsynth): Deprecate.
14841 * doc/invoke.texi (Option Summary, Warning Options): Document
14842 -Wno-format-contains-nul.
14843
be3d4789
UB
148442008-03-09 Uros Bizjak <ubizjak@gmail.com>
14845
14846 PR target/35496
3b509e33 14847 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
14848 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
14849
e83a75a7
IR
148502008-03-09 Ira Rosen <irar@il.ibm.com>
14851
14852 * config/rs6000/rs6000.c (builtin_description): Rename vector
14853 left shift operations.
14854 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
14855 (altivec_vsl<VI_char>): Rename to ...
14856 (ashl<mode>3): ... new name.
14857 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
14858 gen_ashlv4si3.
14859 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
14860
fc9161c1
RG
148612008-03-08 Richard Guenther <rguenther@suse.de>
14862
14863 * coverage.h (tree_coverage_counter_addr): Declare.
14864 * coverage.c (tree_coverage_counter_addr): New function.
14865 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
14866 before using again.
14867 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
14868 (tree_gen_one_value_profiler): Likewise.
14869 (tree_gen_ic_profiler): Likewise.
14870 (tree_gen_average_profiler): Likewise.
14871 (tree_gen_ior_profiler): Likewise.
14872
49a1fb2d
RG
148732008-03-08 Richard Guenther <rguenther@suse.de>
14874
14875 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
14876 (vn_binary_op_insert): Likewise.
14877 (vn_unary_op_lookup): Likewise.
14878 (vn_unary_op_insert): Likewise.
14879 (vn_nary_op_lookup): Declare.
14880 (vn_nary_op_insert): Likewise.
14881 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
14882 and binary hashes, use a single obstack for unary_op_pool
14883 and binary_op_pool.
14884 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
14885 a single struct vn_nary_op_s. Store tree code length and
14886 a variable number of operands.
14887 (struct vn_reference_op_struct): Remove unused op2.
14888 (vn_reference_op_eq): Do not compare op2.
14889 (vn_reference_op_compute_hash): Do not compute hash of op2.
14890 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
14891 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
14892 with vn_nary_op_compute_hash.
14893 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
14894 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
14895 vn_nary_op_lookup.
14896 (vn_unary_op_insert, vn_binary_op_insert): Replace with
14897 vn_nary_op_insert.
14898 (visit_unary_op): Call nary functions.
14899 (visit_binary_op): Likewise.
14900 (process_scc): Adjust for struct vn_tables_s changes.
14901 (allocate_vn_table): Likewise.
14902 (free_vn_table): Likewise.
14903 * tree-vn.c (vn_add): Call nary functions.
14904 (vn_lookup): Likewise.
14905
2725b75c
JJ
149062008-03-08 Jakub Jelinek <jakub@redhat.com>
14907
14908 PR target/35498
14909 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
14910 wdst back after sync_compare_and_swapqhi_internal.
14911
10a97ae6
UB
149122008-03-08 Uros Bizjak <ubizjak@gmail.com>
14913
14914 PR target/22152
14915 * config/i386/i386-modes.def (V1DI): New vector mode.
14916 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
14917 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
14918 (MMXMODE248): Ditto.
14919 (MMXMODE): Add V1DI mode.
14920 (mmxvecsize): Change DI mode to V1DI mode.
14921 ("mov<mode>): Use MMXMODEI8 mode iterator.
14922 ("*mov<mode>_internal_rex64"): Ditto.
14923 ("*mov<mode>_internal"): Ditto.
14924 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
14925 ("mmx_sub<mode>3"): Ditto.
14926 ("mmx_adddi3"): Remove insn pattern.
14927 ("mmx_subdi3"): Ditto.
14928 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
14929 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
14930 ("mmx_ashl<mode>3"): Ditto.
14931 ("mmx_lshrdi3"): Remove insn pattern.
14932 ("mmx_ashldi3"): Ditto.
14933 * config/i386/i386.c (classify_argument): Handle V1DImode.
14934 (function_arg_advance_32): Ditto.
14935 (function_arg_32): Ditto.
14936 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
14937 mmx_addv1di3 insn pattern.
14938 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
14939 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
14940 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
14941 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
14942 Remove definitions of built-in functions.
14943 (V1DI_type_node): New node.
14944 (v1di_ftype_v1di_int): Ditto.
14945 (v1di_ftype_v1di_v1di): Ditto.
14946 (v2si_ftype_v2si_si): Ditto.
14947 (v4hi_ftype_v4hi_di): Remove node.
14948 (v2si_ftype_v2si_di): Ditto.
14949 (ix86_init_mmx_sse_builtins): Handle V1DImode.
14950 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
14951 Redefine builtins using def_builtin_const with *_ftype_*_int node.
14952 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
14953 Add new builtins using def_builtin_const.
14954 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
14955 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
14956 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
14957 * config/i386/mmintrin.h (__v1di): New typedef.
14958 (_mm_add_si64): Cast arguments to __v1di type.
14959 (_mm_sub_si64): Ditto.
14960 (_mm_sll_pi16): Cast __count to __v4hi type.
14961 (_mm_sll_pi32): Cast __count to __v2si type.
14962 (_mm_sll_si64): Cast arguments to __v1di type.
14963 (_mm_srl_pi16): Cast __count to __v4hi type.
14964 (_mm_srl_pi32): Cast __count to __v2si type.
14965 (_mm_srl_si64): Cast arguments to __v1di type.
14966 (_mm_sra_pi16): Cast __count to __v4hi type.
14967 (_mm_sra_pi32): Cast __count to __v2si type.
14968 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
14969 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
14970 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
14971 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
14972 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
14973 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
14974 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
14975 (_mm_srai_pi32): Use __builtin_ia32_psradi.
14976 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
14977 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
14978 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
14979 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
14980
08c3b5b0
JM
149812008-03-07 Joseph Myers <joseph@codesourcery.com>
14982
14983 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
14984
efc05e3c
PB
149852008-03-07 Peter Bergner <bergner@vnet.ibm.com>
14986
14987 PR target/35373
14988 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
14989 reg+const addressing for Altivec modes. Don't generate reg+reg
14990 addressing for TFmode or TDmode quantities.
14991
cf7bc668
PB
149922008-03-07 Paolo Bonzini <bonzini@gnu.org>
14993
14994 * c-common.c (vector_types_convertible_p): Call langhook
14995 instead of comptypes.
14996
b0940154
AP
149972008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
14998
14999 PR tree-opt/35402
15000 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
15001 integral and scalar float variables which have a
15002 NULL DECL_INITIAL.
15003
48081aae
NF
150042008-03-06 Nathan Froyd <froydnj@codesourcery.com>
15005
15006 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
15007 dwarf_register_span hook when emitting unwind information for
15008 register-to-memory saves.
15009 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
15010 (rs6000_frame_related): Remove call to spe_synthesize_frame.
15011
251923f5
JJ
150122008-03-06 Jakub Jelinek <jakub@redhat.com>
15013
15014 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
15015 for the same VAR_DECL.
15016
e8645a40
TT
150172008-03-06 Tom Tromey <tromey@redhat.com>
15018
15019 * treelang: Delete.
15020 * doc/standards.texi (Standards): Don't mention treelang.
15021 * doc/invoke.texi (Overall Options): Don't mention treelang.
15022 * doc/install.texi (Prerequisites): Don't mention bison or
15023 treelang.
15024 (Configuration): Don't mention treelang.
15025 (Building): Likewise.
15026 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
15027
97efb03a
PB
150282008-03-06 Paolo Bonzini <bonzini@gnu.org>
15029
15030 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
15031 word-extractions out of a multi-word object.
15032
fc0f49f3
RG
150332008-03-06 Richard Guenther <rguenther@suse.de>
15034
15035 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
15036 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
15037 result type and precision.
15038 * expr.c (get_inner_reference): Set unsignedp based on the result
15039 type of BIT_FIELD_REF.
15040 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
15041 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
15042 (try_instantiate_multiple_fields): Likewise. Use the correct type
15043 for BIT_FIELD_REF.
15044 (sra_build_assignment): Likewise.
15045 (sra_build_elt_assignment): Likewise.
15046 (sra_explode_bitfield_assignment): Likewise.
15047 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
15048 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
15049 set BIT_FIELD_REF_UNSIGNED.
15050 (vectorizable_load): Likewise.
15051
e186ff69
AK
150522008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
15053
15054 * cse.c (cse_extended_basic_block): Invalidate artificial defs
15055 at bb start.
15056
4c067742
RG
150572008-03-06 Richard Guenther <rguenther@suse.de>
15058
15059 * alias.c (struct alias_set_entry): Move has_zero_child field
15060 to pack with alias_set.
15061
23880b97
L
150622008-03-05 H.J. Lu <hongjiu.lu@intel.com>
15063
15064 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
15065 32bit host.
15066
6ab81302
ILT
150672008-03-05 Ian Lance Taylor <iant@google.com>
15068
15069 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
15070
4218dc2d 150712008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
15072
15073 * fwprop.c (update_df): Support width and offset parameters of
15074 df_ref_create.
15075 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
15076 global_conflicts): Change DF_REF_EXTRACT to either
15077 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
15078 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15079 * df-scan.c (df_ref_record, df_defs_record,
15080 df_ref_create_structure, df_def_record_1, df_uses_record,
15081 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
15082 df_bb_refs_collect, df_entry_block_defs_collect,
15083 df_exit_block_uses_collect): Support new width and offset fields.
15084 (ref_extract_pool): New storage pool.
15085 (df_free_ref): New function.
15086 (df_reg_chain_unlink, df_free_collection_rec,
15087 df_sort_and_compress_refs): Call df_free_ref.
15088 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
15089 of df_ref_extract.
15090 (df_ref_create_structure): Allocate df_ref_extract if offset and
15091 width fields are used.
15092 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22129589 15093 (df_uses_record): Get offset and width from ZERO_EXTRACT
ca9052ce
KZ
15094 and SIGN_EXTRACT.
15095 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
15096 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
15097 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15098 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
15099 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
15100 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
15101 (df_ref_extract): New structure.
15102 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
15103 (df_ref_create): Add width and offset parameters.
22129589 15104
63d195d5
RG
151052008-03-05 Richard Guenther <rguenther@suse.de>
15106
15107 * tree-ssa-structalias.c (get_constraint_for_component_ref):
15108 Use ranges_overlap_p.
15109 (offset_overlaps_with_access): Rename
15110 to ranges_overlap_p and move ...
15111 * tree-flow-inline.h (ranges_overlap_p): ... here.
15112
15113 * tree.h (get_inner_reference, handled_component_p): Update
15114 comments.
15115
15116 * tree.h (record_component_aliases, get_alias_set,
15117 alias_sets_conflict_p, alias_sets_must_conflict_p,
15118 objects_must_conflict_p): Move declarations ...
15119 * alias.h (record_component_aliases, get_alias_set,
15120 alias_sets_conflict_p, alias_sets_must_conflict_p,
15121 objects_must_conflict_p): ... here.
15122 Include coretypes.h.
15123 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
15124
ea7e6d5a
AH
151252008-03-05 Aldy Hernandez <aldyh@redhat.com>
15126
15127 * cfg.c: Include tree-flow.h.
15128 (remove_edge_raw): Call redirect_edge_var_map_clear.
15129 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
15130 * tree-flow-inline.h (redirect_edge_var_map_def): New.
15131 (redirect_edge_var_map_result): New.
15132 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
15133 PENDING_STMT use with redirect_edge_var_map_*.
15134 * tree-ssa.c (edge_var_maps): New definition.
15135 (redirect_edge_var_map_add): New.
15136 (redirect_edge_var_map_clear): New.
15137 (redirect_edge_var_map_dup): New.
15138 (redirect_edge_var_map_vector): New.
15139 (redirect_edge_var_map_destroy): New.
15140 (ssa_redirect_edge): Replace PENDING_STMT use with
15141 redirect_edge_var_map_*.
15142 (flush_pending_stmts): Same.
15143 (delete_tree_ssa): Destroy edge var map.
15144 * tree-flow.h (struct _edge_var_map): New.
15145 Define edge_var_map vector type.
15146 Declare redirect_edge_var_map_* prototypes.
15147 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
15148 * tree-cfg.c (reinstall_phi_args): Replace
15149 PENDING_STMT use with redirect_edge_var_map_*.
15150
1bdcf037
RG
151512008-03-05 Richard Guenther <rguenther@suse.de>
15152
15153 PR tree-optimization/35472
15154 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
15155 whose single use_stmt has a overlapping set of loaded and
15156 stored symbols as that use_stmt might be a noop assignment then.
15157
fec5fe47
JS
151582008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
15159
15160 * gthr-rtems.h: Implement __gthread_mutex_destroy.
15161
e55f42fb
RG
151622008-03-05 Richard Guenther <rguenther@suse.de>
15163
15164 PR c++/35336
15165 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
15166 should be constants.
15167 * tree-cfg.c (verify_expr): Verify it.
15168 * fold-const.c (fold_truthop): Remove code generating
15169 BIT_FIELD_REFs of structure bases.
15170 (fold_binary): Likewise.
15171 (fold_ternary): Position and size of BIT_FIELD_REFs are
15172 always host integers.
15173 (make_bit_field_ref): Remove.
15174 (optimize_bit_field_compare): Remove.
15175 (all_ones_mask_p): Remove.
15176
1da266fe
GL
151772008-03-05 Gabor Loki <loki@gcc.gnu.org>
15178
15179 PR gcc/33009
15180 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
15181 (split_block_and_df_analyze): New. Split basic block and rebuild
15182 dataflow.
15183 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
15184 SPLIT_BLOCK.
15185 (split_pattern_seq): Likewise.
15186 (erase_matching_seqs): Likewise.
15187 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
15188
07c40d0b
GK
151892008-03-04 Geoff Keating <geoffk@apple.com>
15190
15191 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
15192 declaration and code.
15193 (tree_invalid_nonnegative_warnv_p): Likewise.
15194
4c754988
SB
151952008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
15196
15197 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
15198 examples. Truncate option-names then causing overfull hbox.
15199
399fe3e1
JDA
152002008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15201
15202 PR target/35222
15203 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
15204 on hpux10.
15205 * configure: Rebuilt.
15206
e918a58a
RAE
152072008-03-04 Rafael Espindola <espindola@google.com>
15208
15209 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
15210 (tree_unary_nonnegative_warnv_p): New.
15211 (tree_binary_nonnegative_warnv_p): New.
15212 (tree_single_nonnegative_warnv_p): New.
15213 (tree_invalid_nonnegative_warnv_p): New.
15214 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
15215
ee8ea087
MLI
152162008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15217
15218 PR 28322
15219 * opts.c (handle_option): Postpone 'unknown option' errors only for
15220 warning options.
15221
b5220972
L
152222008-03-04 H.J. Lu <hongjiu.lu@intel.com>
15223
15224 PR target/35453
15225 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
15226 (_SIDD_XXX): This.
15227
74dd418c
RAE
152282008-03-04 Rafael Espindola <espindola@google.com>
15229
15230 * fold-const.c (tree_unary_nonzero_warnv_p): New.
15231 (tree_binary_nonzero_warnv_p): New.
15232 (tree_single_nonzero_warnv_p): New.
15233 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
15234
5ce0e197
UB
152352008-03-04 Uros Bizjak <ubizjak@gmail.com>
15236
15237 PR middle-end/35456
15238 * fold-const.c (fold_cond_expr_with_comparison): Prevent
15239 transformations for modes that have signed zeros.
15240 * ifcvt.c (noce_try_abs): Ditto.
15241
2c7c6f54
JM
152422008-03-04 Joseph Myers <joseph@codesourcery.com>
15243
15244 * config/i386/i386.c (override_options): Force
15245 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
15246
b7884852
JH
152472008-03-04 Jan Hubicka <jh@suse.cz>
15248
15249 PR c++/35262
15250 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
15251 in last commit.
15252
ab65b56b
DS
152532008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
15254
15255 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 15256 label to probe the stack.
ab65b56b 15257
c262f705
DS
152582008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
15259
15260 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
15261 (__gthr_win32_mutex_destroy): Declare.
15262 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
15263 __gthr_win32_mutex_destroy.
15264 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
15265
44682fab
JH
152662008-03-03 Jan Hubicka <jh@suse.cz>
15267
15268 PR c++/35262
15269 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
15270 aggressive on inlining cold calls.
15271
9a327766
RG
152722008-03-03 Richard Guenther <rguenther@suse.de>
15273
15274 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
15275 struct copies into the expression table.
15276 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
15277 (try_to_simplify): Likewise.
15278 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
15279 integral and pointer arguments which do not change the
15280 precision to NOP_EXPRs.
15281 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
15282 VIEW_CONVERT_EXPR case.
15283
6a732743
SP
152842008-03-02 Sebastian Pop <sebastian.pop@amd.com>
15285
15286 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
15287 defined in a loop at depth 0 is invariant.
15288 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
15289 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
15290 be called at loop depth 0.
15291
0e5997c0
JJ
152922008-03-02 Jakub Jelinek <jakub@redhat.com>
15293
15294 PR driver/35420
15295 * gcc.c (process_command): Update copyright notice dates.
15296 * gcov.c (print_version): Likewise.
15297 * gcov-dump.c (print_version): Likewise.
15298 * mips-tfile.c (main): Likewise.
15299 * mips-tdump.c (main): Likewise.
15300
393eda6a
MLI
153012008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15302
15303 PR 24924
15304 * c-common.c (flag_permissive): Delete.
15305 (constant_expression_warnings): Check flags first.
15306 (constant_expression_error): New.
15307 * c-common.h (flag_permissive): Delete.
15308 (constant_expression_error): Declare.
15309 * flags.h (flag_permissive): Declare. Update description.
15310 * diagnostic.c (pedwarn): Update.
15311 (permerror): New.
15312 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
15313 (permissive_error_kind): New.
15314 * toplev.c (flag_permissive): Define. Update description.
15315 * toplev.h (permissive_error_kind): Declare.
15316 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
15317 (pedwarn_c90): Use pedantic_warning_kind.
15318 * c-opts.c (c_common_post_options): flag_permissive does not affect
15319 flag_pedantic_errors.
15320
9677aa89
JM
153212008-03-02 Joseph Myers <joseph@codesourcery.com>
15322
15323 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
15324 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
15325 __absvsi2, __absvDI2): Use unsigned arithmetic.
15326
f3130d75 153272008-03-02 Andi Kleen <ak@suse.de>
ab669042 15328 Richard Guenther <rguenther@suse.de>
f3130d75
AK
15329
15330 * struct-equiv.c: Remove file.
15331 * cfg_cleanup.c (condjump_equiv_p): Remove.
15332 * Makefile.in (OBJS-common): Remove struct-equiv.o.
15333 (struct-equiv.o): Remove rule.
15334 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22129589 15335 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
f3130d75
AK
15336 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
15337
89c3cbc6
AO
153382008-03-01 Alexandre Oliva <aoliva@redhat.com>
15339
15340 * ifcvt.c (noce_process_if_block): Try to handle only the then
15341 block if the else block exists but isn't suitable.
15342
5eb4a9af
JB
153432008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
15344
15345 PR gcc/35063
15346 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
15347 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
15348 regression from previous patch.
15349
4dabf736
JB
153502008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
15351
15352 PR gcc/35063
15353 * gthr.h: Add __gthread_mutex_destroy as a function that must be
15354 implemented.
15355 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
15356 * gthr-single.h (__gthread_mutex_destroy): Likewise.
15357 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
15358 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
15359 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
15360 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
15361 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
15362 (__gthread_mutex_destroy_function): Rename to
15363 __gthread_mutex_destroy.
15364 * gthr-dce.h (__gthread_mutex_destroy): Call
15365 pthread_mutex_destroy.
15366 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
15367 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
15368 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
15369
63642d5a
AO
153702008-03-01 Alexandre Oliva <aoliva@redhat.com>
15371
15372 * df-scan.c (df_ref_chain_change_bb): Simplify.
15373 (df_insn_change_bb): Add new_bb argument. Simplify. Call
15374 set_block_for_insn if there's any change.
15375 * df.h ((df_insn_change_bb): Fix prototype.
15376 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
15377 df_insn_change_bb, don't call set_block_for_insn.
15378 * emit-rtl.c (reorder_insns): Likewise.
15379 * haifa-sched.c (move_insn): Likewise.
15380
e0651058
AO
153812008-03-01 Alexandre Oliva <aoliva@redhat.com>
15382
15383 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
15384
d2b6be72
AO
153852008-03-01 Alexandre Oliva <aoliva@redhat.com>
15386
15387 * tree-flow-inline.h (next_readonly_imm_use): Return
15388 NULL_USE_OPERAND_P after the end.
15389
2fb5f2af
RG
153902008-03-01 Richard Guenther <rguenther@suse.de>
15391
15392 PR tree-optimization/35411
15393 * tree-sra.c (sra_build_assignment): Split conversion to
15394 final type to a separate statement if we are not assigning
15395 to a register.
15396
c17ee676
FXC
153972008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
15398
15399 * fold-const.c (fold_convertible_p): Correct the logic to follow
15400 that in fold_convert().
15401
f31c9f09
DG
154022008-02-29 Douglas Gregor <doug.gregor@gmail.com>
15403
15404 PR c++/35315
15405 * tree-inline.c (build_duplicate_type): When we make a
15406 duplicate type, make it unique in the canonical types system.
15407
966e8f4d
TT
154082008-02-29 Tom Tromey <tromey@redhat.com>
15409
15410 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
15411 input_file_stack_history, input_file_stack_restored): Remove.
15412 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15413 * input.h (struct file_stack): Remove.
15414 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
15415 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
15416 Likewise.
15417 * diagnostic.h (struct diagnostic_context) <last_module>: Change
15418 type.
15419 (diagnostic_last_module_changed): Add 'map' argument.
15420 (diagnostic_set_last_function): Likewise.
15421 * diagnostic.c (undiagnostic_report_current_module): Iterate using
15422 line map, not input_file_stack.
15423 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
15424
3cbe0ba6
PB
154252008-02-29 Paul Brook <paul@codesourcery.com>
15426
15427 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
15428
d96ae4d4
PB
154292008-02-29 Paul Brook <paul@codesourcery.com>
15430
15431 * config/arm/ieee754-df.S (muldf3): Use RET macros.
15432
5be891a4
RG
154332008-02-29 Richard Guenther <rguenther@suse.de>
15434
15435 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
15436 vn_lookup_or_add.
15437 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
15438 value for comparing for a store match.
15439 (simplify_unary_expression): Do nothing for SSA_NAMEs.
15440 (try_to_simplify): Do not do a full-blown reference lookup.
15441
b0fbea13
KK
154422008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
15443
15444 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
15445 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
15446
15447 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
15448
0c96231b
SP
154492008-02-29 Sebastian Pop <sebastian.pop@amd.com>
15450
15451 * tree-loop-linear.c (try_interchange_loops): Compare memory access
15452 strides against cache sizes.
15453
d973ac5a
KK
154542008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
15455
15456 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
15457 constant to fpul.
15458
4613543f
RS
154592008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
15460
15461 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
15462 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
15463 is smaller than the original promoted value.
15464 (simplify_subreg): If OP is a SUBREG, try to preserve its
15465 SUBREG_PROMOTED_VAR_P information.
15466
cbfb21c1
SB
154672008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
15468
15469 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
15470 (VN_INFO_GET): Allocate new objects on the obstack.
15471 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
15472 for rpo_numbers_temp, for consistency.
15473 (free_scc_vn): Free the obstack.
15474
dea61d92
SP
154752008-02-28 Sebastian Pop <sebastian.pop@amd.com>
15476
15477 * doc/invoke.texi: Document -ftree-loop-distribution.
15478 * tree-loop-distribution.c: New.
15479 * tree-pass.h (pass_loop_distribution): New.
15480 * graphds.h (struct graph): Add htab_t indices.
15481 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
15482 * tree-vectorizer.c (rename_variables_in_loop): Extern.
15483 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
15484 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
15485 * tree-data-ref.c (debug_data_dependence_relations): New.
15486 (dump_data_dependence_relation): Also print data references.
15487 (free_data_ref): Extern.
15488 (same_access_functions): Moved...
15489 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
15490 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15491 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
15492 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
15493 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
15494 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
15495 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
15496 New.
dea61d92
SP
15497 (build_rdg): Initialize rdg->indices htab.
15498 (free_rdg, stores_from_loop, ref_base_address,
15499 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
15500 have_similar_memory_accesses_1, ref_base_address_1,
15501 remove_similar_memory_refs): New.
15502 * tree-data-ref.h: Depend on tree-chrec.h.
15503 (debug_data_dependence_relations, free_data_ref): Declared.
15504 (same_access_functions): ... here.
5ce0e197
UB
15505 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
15506 New.
dea61d92
SP
15507 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
15508 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
15509 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
15510 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
15511 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
15512 rdg_vertex_for_stmt): Declared.
15513 (struct rdg_edge): Add level.
15514 (RDGE_LEVEL): New.
15515 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
15516 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
15517 Declared.
dea61d92
SP
15518 (rdg_has_similar_memory_accesses): New.
15519 * tree-vect-analyze.c: Remove unused static decls.
15520 * lambda.h (dependence_level): New.
15521 * common.opt (ftree-loop-distribution): New.
22129589 15522 * tree-flow.h (mark_virtual_ops_in_bb,
dea61d92
SP
15523 slpeel_tree_duplicate_loop_to_edge_cfg,
15524 rename_variables_in_loop): Declared.
15525 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
15526 (OBJS-common): Add tree-loop-distribution.o.
15527 (tree-loop-distribution.o): New rule.
15528 * tree-cfg.c (mark_virtual_ops_in_bb): New.
15529 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
15530 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
15531
dde75838
JM
155322008-02-28 Joseph Myers <joseph@codesourcery.com>
15533
15534 PR target/33963
15535 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
15536 other than structures and unions.
15537
3b302421
RG
155382008-02-28 Richard Guenther <rguenther@suse.de>
15539
15540 Revert:
15541 2008-02-26 Richard Guenther <rguenther@suse.de>
15542
15543 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15544 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15545 (lookup_decl_from_uid): Declare.
15546 (remove_decl_from_map): Likewise.
15547 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15548 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15549 (decl_for_uid_map): New global hashtable mapping DECL_UID
15550 to the decl tree.
15551 (init_ttree): Allocate it.
15552 (insert_decl_to_uid_decl_map): New helper function.
15553 (make_node_stat): Insert new decls into the map.
15554 (copy_node_stat): Likewise.
15555 (lookup_decl_from_uid): New function.
15556 (remove_decl_from_map): Likewise.
15557 (print_decl_for_uid_map_statistics): New helper.
15558 (dump_tree_statistics): Call it.
15559
15560 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15561 (referenced_var_iterator): Adjust.
15562 (FOR_EACH_REFERENCED_VAR): Adjust.
15563 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15564 (num_referenced_vars): Adjust.
15565 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15566 (first_referenced_var): Remove.
15567 (end_referenced_vars_p): Likewise.
15568 (next_referenced_var): Likewise.
15569 (referenced_var_iterator_set): New helper function.
15570 * tree-dfa.c (referenced_var_lookup): Adjust.
15571 (referenced_var_check_and_insert): Likewise.
15572 (remove_referenced_var): Likewise.
15573 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15574 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15575 (verify_call_clobbering): Likewise.
15576 (verify_memory_partitions): Likewise.
15577 (init_tree_ssa): Allocate bitmap instead of hashtable for
15578 referenced_vars.
15579 (delete_tree_ssa): Adjust.
15580 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15581 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15582 (compute_tag_properties): Likewise.
15583 (set_initial_properties): Likewise.
15584 (find_partition_for): Likewise.
15585 (update_reference_counts): Likewise.
15586 (dump_may_aliases_for): Likewise.
15587 * tree-ssa-operands.c (add_virtual_operand): Likewise.
15588 (add_call_clobber_ops): Likewise.
15589 (add_call_read_ops): Likewise.
15590 (get_asm_expr_operands): Likewise.
15591 * tree-into-ssa.c (dump_decl_set): Likewise.
15592 (update_ssa): Likewise.
15593 * tree-sra.c (scan_function): Likewise.
15594 (decide_instantiations): Likewise.
15595 (scalarize_parms): Likewise.
15596 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15597 (dsa_named_for): Likewise.
15598 * tree-ssa-structalias.c (update_alias_info): Likewise.
15599 (merge_smts_into): Likewise.
15600
2a1ed4fc
DD
156012008-02-27 David Daney <ddaney@avtrex.com>
15602
15603 PR target/34409
15604 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
15605 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
15606 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
15607 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
15608 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
15609
c92712d1
UB
156102008-02-27 Uros Bizjak <ubizjak@gmail.com>
15611
15612 PR target/25477
15613 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
15614 (BUILT_IN_NEXTTOWARD): Remove.
15615 (BUILT_IN_NEXTTOWARDF): Ditto.
15616 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
15617 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
15618
a8bafc43
TT
156192008-02-27 Tom Tromey <tromey@redhat.com>
15620
15621 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
15622 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
15623
8220334a
JB
156242008-02-27 Jan Beulich <jbeulich@novell.com>
15625
15626 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
15627 update the respective field on newdecl.
15628
8bf6e270
RE
156292008-02-27 Revital Eres <eres@il.ibm.com>
15630
15631 PR rtl-optimization/34999
15632 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
15633 crossing edges that ends with a call insn.
15634 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
15635 call insn and clear the EDGE_CROSSING flag of the crossing edge
15636 when fixing fallthru edges.
15637
7fb52af2
RG
156382008-02-27 Richard Guenther <rguenther@suse.de>
15639
3b302421 15640 PR middle-end/35390
7fb52af2
RG
15641 * fold-const.c (fold_unary): Return the correct argument,
15642 converted to the result type.
15643
70582b3a
RG
156442008-02-27 Richard Guenther <rguenther@suse.de>
15645
15646 PR middle-end/34971
15647 * expr.c (expand_expr_real_1): Assert on rotates that operate
15648 on partial modes.
15649 * fold-const.c (fold_binary): Use the types precision, not the
15650 bitsize of the mode if folding rotate expressions. Build rotates
15651 only for full modes.
15652
a25a8f3b
JJ
156532008-02-27 Jakub Jelinek <jakub@redhat.com>
15654
15655 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
15656 and CPP_PRAGMA_EOL.
15657 * c-pragma.c (pragma_ns_name): New typedef.
15658 (registered_pp_pragmas): New variable.
15659 (c_pp_lookup_pragma): New function.
15660 (c_register_pragma_1): If flag_preprocess_only, do nothing
15661 for non-expanded pragmas, for expanded ones push pragma's
15662 namespace and name into registered_pp_pragmas vector.
15663 (c_invoke_pragma_handler): Register OpenMP pragmas even when
15664 flag_preprocess_only, don't register GCC pch_preprocess
15665 pragma if flag_preprocess_only.
15666 * c-opts.c (c_common_init): Call init_pragma even if
15667 flag_preprocess_only.
15668 * c-pragma.c (c_pp_lookup_pragma): New prototype.
15669 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
15670 cpp_register_pragma if flag_preprocess_only.
15671
369239ef
RW
156722008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15673
15674 PR c/28800
15675 * c-parser.c (c_parser_translation_unit): Warn for empty
15676 translation unit, not empty source file.
15677
f5c630c3
PB
156782008-02-26 Paul Brook <paul@codesourcery.com>
15679
15680 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
15681 operand for Thumb-2.
15682 * config/arm/arm.h (reg_class): Add CORE_REGS.
15683 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
15684 (BASE_REG_CLASS): Use CORE_REGS.
15685 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
15686 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
15687 (REGNO_OK_FOR_INDEX_P): Exclude SP.
15688 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
15689 ARM_REGNO_OK_FOR_INDEX_P.
15690 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
15691 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
15692 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
15693 (ldm/stm peepholes): Ditto.
15694 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
15695 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
15696 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
15697 * config/arm/constraints.md: Enable "k" constraint on ARM.
15698
0d158b6e
BE
156992008-02-27 Ben Elliston <bje@au.ibm.com>
15700
15701 * config/rs6000/rs6000.c: Annotate cache line size field in all
15702 instances of struct processor_costs.
15703
7d817ebc
DE
157042008-02-26 David Edelsohn <edelsohn@gnu.org>
15705
15706 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
15707 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
15708 jump_bypass): New counters.
15709 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
15710 * dce.c (gate_ud_dce): Same.
15711 (gate_fast_dce): Same.
15712 * dse.c (gate_dse1): New function.
15713 (gate_dse2): New function.
15714 (gate_dse): Merge results of new gate functions.
15715 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
15716 (gate_handle_jump_bypass): Add dbg_cnt.
15717 (gate_handle_gcse): Add dbg_cnt.
15718 * ifcvt.c (gate_handle_if_conversion): Same.
15719 (gate_handle_if_after_combine): Same.
15720 (gate_handle_if_after_reload): Same.
15721 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
15722
a19b7d46
EW
157232008-02-26 Edmar Wienskoski <edmar@freescale.com>
15724
15725 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
15726 line sizes.
15727 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
15728
317c435f
JM
157292008-02-26 Jason Merrill <jason@redhat.com>
15730
15731 PR c++/35315
22129589 15732 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
317c435f
JM
15733 alone if it's the naming decl for the type's main variant.
15734
2d593c86
TT
157352008-02-26 Tom Tromey <tromey@redhat.com>
15736
15737 * system.h (USE_MAPPED_LOCATION): Poison.
15738 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
15739 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
15740 (make_goto_expr_edges): Likewise.
15741 (remove_bb): Likewise.
15742 (execute_warn_function_return): Likewise.
15743 * basic-block.h (struct edge_def) <goto_locus>: Change type to
15744 location_t.
15745 * c-common.c (fname_decl): Remove old location code.
15746 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
15747 location code.
15748 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
15749 variant.
15750 (ASM_INPUT_SOURCE_LOCATION): Likewise.
15751 (gen_rtx_ASM_INPUT): Likewise.
15752 (gen_rtx_ASM_INPUT_loc): Likewise.
15753 (get_rtx_asm_OPERANDS): Remove.
15754 * cfglayout.c (insn_locators_alloc): Remove old location code.
15755 (set_curr_insn_source_location): Likewise.
15756 (curr_insn_locator): Likewise.
15757 * print-tree.c (print_node): Remove old location code.
15758 * tree-mudflap.c (mf_varname_tree): Remove old location code.
15759 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
15760 * cfgexpand.c (expand_gimple_cond_expr): Don't use
15761 location_from_locus.
15762 (construct_exit_block): Remove old location code.
15763 * emit-rtl.c (force_next_line_note): Remove old location code.
15764 * profile.c (branch_prob): Remove old location code.
15765 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
15766 LOC_LINE): Remove old-location variants.
15767 * langhooks.c (lhd_print_error_function): Remove old location
15768 code.
15769 * configure, config.in: Rebuilt.
15770 * configure.ac (--enable-mapped-location): Remove.
15771 * c-decl.c (c_init_decl_processing): Remove old location code.
15772 (finish_function): Likewise.
15773 * recog.c (decode_asm_operands): Remove old location code.
15774 * c-pch.c (c_common_read_pch): Remove old location code.
15775 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
15776 variants.
15777 * gimple-low.c (lower_function_body): Remove old location code.
15778 * toplev.c (unknown_location): Remove.
15779 (push_srcloc): Remove old-location variant.
15780 (process_options): Remove old location code.
15781 (lang_dependent_init): Likewise.
15782 * input.h (UNKNOWN_LOCATION): Move definition.
15783 (location_t): Undeprecate.
15784 (source_locus): Remove.
15785 (location_from_locus): Remove.
15786 (struct location_s): Remove.
15787 Remove all old-location code.
15788 (input_line, input_filename): Remove.
15789 * final.c (final_scan_insn): Remove old location code.
15790 * diagnostic.c (diagnostic_build_prefix): Remove
15791 USE_MAPPED_LOCATION test.
15792 * tree.h (gimple_stmt) <locus>: Now a location_t.
15793 (tree_exp) <locus>: Likewise.
15794 (DECL_IS_BUILTIN): Remove old-location variant.
15795 (annotate_with_file_line, annotate_with_locus): Likewise.
15796 (expr_locus, set_expr_locus): Update.
15797 * tree.c (build1_stat): Remove old location code.
15798 (last_annotated_node): Remove.
15799 (annotate_with_file_line): Remove old-location variant.
15800 (annotate_with_locus): Likewise.
15801 (expr_location): Remove old location code.
15802 (set_expr_location): Likewise.
15803 (expr_has_location): Likewise.
15804 (expr_locus): Likewise.
15805 (set_expr_locus): Likewise.
15806 (expr_filename): Don't use location_from_locus.
15807 (expr_lineno): Likewise.
15808 * rtl-error.c (location_for_asm): Remove old location code.
15809 * c-lex.c (cb_line_change): Remove old location code.
15810 (fe_file_change): Likewise.
15811 (cb_def_pragma): Likewise.
15812 (c_lex_with_flags): Likewise.
15813 * gengtype.c (do_typedef): Don't special-case location types.
15814 (define_location_structures): Remove.
15815 (main): Don't call define_location_structures.
15816 * tree-pretty-print.c (dump_implicit_edges): Remove old location
15817 code.
15818
4f01eeb4
MLI
158192008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15820
cd7e0bd4 15821 PR 26264
4f01eeb4
MLI
15822 * builtins.def (BUILT_IN_STDARG_START): Remove.
15823 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
15824 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
15825 * tree-inline.c (inline_forbidden_p_1): Likewise.
22129589 15826
bbd59cf4
RG
158272008-02-26 Richard Guenther <rguenther@suse.de>
15828
15829 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15830 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15831 (lookup_decl_from_uid): Declare.
15832 (remove_decl_from_map): Likewise.
15833 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15834 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15835 (decl_for_uid_map): New global hashtable mapping DECL_UID
15836 to the decl tree.
15837 (init_ttree): Allocate it.
15838 (insert_decl_to_uid_decl_map): New helper function.
15839 (make_node_stat): Insert new decls into the map.
15840 (copy_node_stat): Likewise.
15841 (lookup_decl_from_uid): New function.
15842 (remove_decl_from_map): Likewise.
15843 (print_decl_for_uid_map_statistics): New helper.
15844 (dump_tree_statistics): Call it.
15845
15846 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15847 (referenced_var_iterator): Adjust.
15848 (FOR_EACH_REFERENCED_VAR): Adjust.
15849 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15850 (num_referenced_vars): Adjust.
15851 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15852 (first_referenced_var): Remove.
15853 (end_referenced_vars_p): Likewise.
15854 (next_referenced_var): Likewise.
15855 (referenced_var_iterator_set): New helper function.
15856 * tree-dfa.c (referenced_var_lookup): Adjust.
15857 (referenced_var_check_and_insert): Likewise.
15858 (remove_referenced_var): Likewise.
15859 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15860 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15861 (verify_call_clobbering): Likewise.
15862 (verify_memory_partitions): Likewise.
15863 (init_tree_ssa): Allocate bitmap instead of hashtable for
15864 referenced_vars.
15865 (delete_tree_ssa): Adjust.
15866 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15867 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15868 (compute_tag_properties): Likewise.
15869 (set_initial_properties): Likewise.
15870 (find_partition_for): Likewise.
15871 (update_reference_counts): Likewise.
15872 (dump_may_aliases_for): Likewise.
15873 * tree-ssa-operands.c (add_virtual_operand): Likewise.
15874 (add_call_clobber_ops): Likewise.
15875 (add_call_read_ops): Likewise.
15876 (get_asm_expr_operands): Likewise.
15877 * tree-into-ssa.c (dump_decl_set): Likewise.
15878 (update_ssa): Likewise.
15879 * tree-sra.c (scan_function): Likewise.
15880 (decide_instantiations): Likewise.
15881 (scalarize_parms): Likewise.
15882 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15883 (dsa_named_for): Likewise.
15884 * tree-ssa-structalias.c (update_alias_info): Likewise.
15885 (merge_smts_into): Likewise.
15886
16302daf
MLI
158872008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15888
15889 PR 34351
15890 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
15891 * c-opts.c (c_common_handle_option): Wall enables
15892 Wvolatile-register-var.
15893 * common.opt: Move Wvolatile-register-var to...
15894 * c.opt: ...here.
22129589 15895
e8fc888d
MLI
158962008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15897
15898 * common.opt (Wlarger-than=): New.
15899 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
15900 -Wlarger-than=.
15901 * opts.c (common_handle_option): Handle -Wlarger-than=.
15902 * optc-gen.awk: Likewise.
15903 * opth-gen.awk: Likewise.
15904 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
15905 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22129589 15906
683d6ff9
MLI
159072008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15908
15909 * c-common.c (match_case_to_enum_1): Add appropriate
15910 OPT_W* parameter to warning.
15911 (c_do_switch_warnings): Likewise.
15912 * c-typeck.c (warning_init): Add one more parameter following
15913 'warning' function.
15914 (push_init_level): Update call to warning_init.
15915 (pop_init_level): Likewise.
15916 (add_pending_init): Likewise.
15917 (output_init_element: Likewise.
15918
369dcbd9
MLI
159192008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15920
15921 PR 28322
15922 * toplev.c (toplev_main): If there are warnings or error, print
15923 errors for ignored options.
15924 * opts.c (ignored_options): New static variable.
15925 (postpone_unknown_option_error): New.
15926 (print_ignored_options): New.
15927 (handle_option): Postpone errors for unknown -Wno-* options.
15928 * opts.h (print_ignored_options): Declare.
22129589 15929
23dc794c
RS
159302008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
15931
15932 * config/mips/mips.md (loadgp_blockage, blockage): Change type
15933 to "ghost".
15934
381a258b
RG
159352008-02-25 Richard Guenther <rguenther@suse.de>
15936
15937 Revert:
15938 2008-02-25 Richard Guenther <rguenther@suse.de>
15939
15940 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
15941 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
15942 (lookup_decl_from_uid): Declare.
15943 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
15944 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
15945 (decl_for_uid_map): New global hashtable mapping DECL_UID
15946 to the decl tree.
15947 (init_ttree): Allocate it.
15948 (insert_decl_to_uid_decl_map): New helper function.
15949 (make_node_stat): Insert new decls into the map.
15950 (copy_node_stat): Likewise.
15951 (lookup_decl_from_uid): New function.
15952 (print_decl_for_uid_map_statistics): New helper.
15953 (dump_tree_statistics): Call it.
15954
15955 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
15956 (referenced_var_iterator): Adjust.
15957 (FOR_EACH_REFERENCED_VAR): Adjust.
15958 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
15959 (num_referenced_vars): Adjust.
15960 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
15961 (first_referenced_var): Remove.
15962 (end_referenced_vars_p): Likewise.
15963 (next_referenced_var): Likewise.
15964 (referenced_var_iterator_set): New helper function.
15965 * tree-dfa.c (referenced_var_lookup): Adjust.
15966 (referenced_var_check_and_insert): Likewise.
15967 (remove_referenced_var): Likewise.
15968 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
15969 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15970 (verify_call_clobbering): Likewise.
15971 (verify_memory_partitions): Likewise.
15972 (init_tree_ssa): Allocate bitmap instead of hashtable for
15973 referenced_vars.
15974 (delete_tree_ssa): Adjust.
15975 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
15976 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
15977 (compute_tag_properties): Likewise.
15978 (set_initial_properties): Likewise.
15979 (find_partition_for): Likewise.
15980 (update_reference_counts): Likewise.
15981 (dump_may_aliases_for): Likewise.
15982 * tree-ssa-operands.c (add_virtual_operand): Likewise.
15983 (add_call_clobber_ops): Likewise.
15984 (add_call_read_ops): Likewise.
15985 (get_asm_expr_operands): Likewise.
15986 * tree-into-ssa.c (dump_decl_set): Likewise.
15987 (update_ssa): Likewise.
15988 * tree-sra.c (scan_function): Likewise.
15989 (decide_instantiations): Likewise.
15990 (scalarize_parms): Likewise.
15991 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
15992 (dsa_named_for): Likewise.
15993 * tree-ssa-structalias.c (update_alias_info): Likewise.
15994 (merge_smts_into): Likewise.
15995
89453ec7
JB
159962008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
15997
15998 PR fortran/29549
15999 * doc/invoke.texi (-fcx-limited-range): Document new option.
16000 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 16001 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 16002
8cc6d3e0
JB
160032008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
16004
16005 PR c/35162
16006 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
16007 actual behaviour and C99.
22129589 16008
cd679487
BE
160092008-02-26 Ben Elliston <bje@au.ibm.com>
16010
16011 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
16012 (ASM_CPU_POWER6_SPEC): Likewise.
16013 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
16014 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
16015 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
16016
7660c722
RG
160172008-02-25 Richard Guenther <rguenther@suse.de>
16018
16019 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
16020 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
16021 (lookup_decl_from_uid): Declare.
16022 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
16023 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
16024 (decl_for_uid_map): New global hashtable mapping DECL_UID
16025 to the decl tree.
16026 (init_ttree): Allocate it.
16027 (insert_decl_to_uid_decl_map): New helper function.
16028 (make_node_stat): Insert new decls into the map.
16029 (copy_node_stat): Likewise.
16030 (lookup_decl_from_uid): New function.
16031 (print_decl_for_uid_map_statistics): New helper.
16032 (dump_tree_statistics): Call it.
16033
16034 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
16035 (referenced_var_iterator): Adjust.
16036 (FOR_EACH_REFERENCED_VAR): Adjust.
16037 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
16038 (num_referenced_vars): Adjust.
16039 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
16040 (first_referenced_var): Remove.
16041 (end_referenced_vars_p): Likewise.
16042 (next_referenced_var): Likewise.
16043 (referenced_var_iterator_set): New helper function.
16044 * tree-dfa.c (referenced_var_lookup): Adjust.
16045 (referenced_var_check_and_insert): Likewise.
16046 (remove_referenced_var): Likewise.
16047 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
16048 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16049 (verify_call_clobbering): Likewise.
16050 (verify_memory_partitions): Likewise.
16051 (init_tree_ssa): Allocate bitmap instead of hashtable for
16052 referenced_vars.
16053 (delete_tree_ssa): Adjust.
16054 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
16055 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
16056 (compute_tag_properties): Likewise.
16057 (set_initial_properties): Likewise.
16058 (find_partition_for): Likewise.
16059 (update_reference_counts): Likewise.
16060 (dump_may_aliases_for): Likewise.
16061 * tree-ssa-operands.c (add_virtual_operand): Likewise.
16062 (add_call_clobber_ops): Likewise.
16063 (add_call_read_ops): Likewise.
16064 (get_asm_expr_operands): Likewise.
16065 * tree-into-ssa.c (dump_decl_set): Likewise.
16066 (update_ssa): Likewise.
16067 * tree-sra.c (scan_function): Likewise.
16068 (decide_instantiations): Likewise.
16069 (scalarize_parms): Likewise.
16070 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
16071 (dsa_named_for): Likewise.
16072 * tree-ssa-structalias.c (update_alias_info): Likewise.
16073 (merge_smts_into): Likewise.
16074
2e4e39f6
AK
160752008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
16076
16077 PR target/35258
16078 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
16079 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
16080 * alias.h (nonoverlapping_memrefs_p): Likewise.
16081
891984af
JB
160822008-02-25 Jan Beulich <jbeulich@novell.com>
16083
c92712d1 16084 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
16085 * config/i386/netware-libgcc.exp: Add __bswap?i2,
16086 __emultls_get_address, __emultls_register_common,
16087 __floatundi?f, and _Unwind_GetIPInfo.
16088 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
16089 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
16090 (gen_regparm_prefix): Likewise.
16091 (i386_nlm_encode_section_info): Sync with
16092 config/i386/winnt.c:i386_pe_encode_section_info().
16093 (i386_nlm_maybe_mangle_decl_assembler_name): New.
16094 i386_nlm_mangle_decl_assembler_name): New.
16095 (netware_override_options): New.
16096 * config/i386/netware.h (netware_override_options): Declare.
16097 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
16098 (i386_nlm_mangle_decl_assembler_name): Declare.
16099 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
16100
98266db0
BE
161012008-02-25 Ben Elliston <bje@au.ibm.com>
16102
16103 PR other/32948
16104 * c-decl.c (grokdeclarator): Remove unused local variables
16105 `typedef_type' and `type_as_written'.
16106 * bb-reorder.c
16107 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
16108 unused local variable `has_hot_blocks'.
16109 (fix_crossing_conditional_branches): Remove unused local variable
16110 `prev_bb'.
22129589 16111
93e50125
UB
161122008-02-25 Uros Bizjak <ubizjak@gmail.com>
16113
16114 PR middle-end/19984
16115 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
16116 using DEF_C99_BUILTIN.
16117 (BUILT_IN_NANF): Ditto.
16118 (BUILT_IN_NANL): Ditto.
16119
0de5a32f 161202008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 16121 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
16122
16123 * modulo-sched.c (calculate_must_precede_follow): Address TODO
16124 regarding the order of two dependent insns in the same row.
16125
d4cba6d4
EB
161262008-02-25 Eric Botcazou <ebotcazou@adacore.com>
16127
16128 * stor-layout.c (layout_decl): Do not bump the alignment of a
16129 bit-field to more than byte alignment if it is packed.
16130
642639ce
DE
161312008-02-24 David Edelsohn <edelsohn@gnu.org>
16132
16133 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
16134 e300c2 and e300c3.
16135
faebccf9
DN
161362008-02-24 Diego Novillo <dnovillo@google.com>
16137
16138 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
16139
16140 PR 33738
16141 * tree-vrp.c (vrp_evaluate_conditional): With
16142 -Wtype-limits, emit a warning when comparing against a
16143 constant outside the natural range of OP0's type.
16144 * c.opt (Wtype-limits): Move ...
16145 * common.opt (Wtype-limits): ... here.
16146
88c7f01b 161472008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
16148
16149 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
16150 * config/rs6000/e300c2c3.md: New file.
16151 * config/rs6000/rs6000.c (processor_costs): Add new costs for
16152 e300c2 and e300c3.
16153 (rs6000_override_options): Add e300c2 and e300c3 cases to
16154 processor_target_table. Do not allow usage of Altivec or Spe
16155 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
16156 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
16157 * config/rs6000/rs6000.h (processor_type): Add
16158 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
16159 (ASM_CPU_SPEC): Add e300c2 and e300c3.
16160 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
16161 and ppce300c3. Include e300c2c3.md.
16162
153fbec8
DE
161632008-02-23 David Edelsohn <edelsohn@gnu.org>
16164
16165 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
16166 instead of TARGET_STRICT_ALIGN.
16167
03d4f106
JM
161682008-02-23 Joseph Myers <joseph@codesourcery.com>
16169
16170 * explow.c (memory_address): Assert that the generated address is
16171 valid.
16172
fb220235
FXC
161732008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
16174
16175 PR target/25477
16176 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
16177 * config/darwin-ppc-ldouble-patch.def: New file.
16178 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
16179 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
16180 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
16181 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
16182 New functions.
fb220235 16183
f79db4f6
AP
161842008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
16185
16186 PR rtl-opt/33512
16187 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
16188 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
16189
bb1f73c2
AP
161902008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
16191
16192 PR pch/35027
16193 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
16194 file" warning condtional on -Winvalid-PCH.
16195
8ddcfde1
DJ
161962008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
16197
16198 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
16199
84495fd9
UB
162002008-02-23 Uros Bizjak <ubizjak@gmail.com>
16201
16202 PR target/22076
22129589 16203 PR target/34256
84495fd9
UB
16204 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
16205 prevent reload from using MMX registers.
16206 (*mov<mode>_internal): Ditto.
16207 (*movv2sf_internal_rex64): Ditto.
16208 (*movv2sf_internal): Ditto.
16209
73c17ad2
RW
162102008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16211
16212 PR documentation/31569
16213 * doc/install.texi2html: Use makeinfo --no-number-sections.
16214
61dd226f
NF
162152008-02-22 Nathan Froyd <froydnj@codesourcery.com>
16216
16217 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
16218 ensure that we can address an entire entity > 8 bytes. Don't
16219 generate reg+reg addressing for such data.
16220
2165fd38
NF
162212008-02-22 Nathan Froyd <froydnj@codesourcery.com>
16222
16223 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
16224 strings when optimizing for size, unless the target cares about
16225 alignment.
16226
ad5ebb34
TT
162272008-02-22 Tom Tromey <tromey@redhat.com>
16228
16229 * regclass.c (current_pass): Remove declaration.
16230
34d02d17
AS
162312008-02-22 Anatoly Sokolov <aesok@post.ru>
16232
16233 * config/avr/libgcc.S (__RAMPZ__): Define.
16234 (__do_copy_data): Add for devices with 128KB code memory.
16235
a4899c01
NF
162362008-02-22 Nathan Froyd <froydnj@codesourcery.com>
16237
16238 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
16239 Use spe_abi.
16240 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
16241
fe82487e
HPN
162422008-02-22 Hans-Peter Nilsson <hp@axis.com>
16243
16244 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
16245 GENNONACR_REGS.
16246
ae311566
RW
162472008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16248
16249 PR c/19999
16250 * c-typeck.c (build_binary_op): Warn about floating point
16251 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
16252
a2db2771
JJ
162532008-02-21 Janis Johnson <janis187@us.ibm.com>
16254
16255 PR target/34526
16256 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
16257 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
16258 add vrsave.
16259 (rs6000_override_options): Set altivec_abi as default, not override,
16260 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
16261 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
16262 is used; use new member spe_abi.
16263 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
16264 spe_abi and altivec_abi.
16265
89fd06fb
TB
162662008-02-22 Tomas Bily <tbily@suse.cz>
16267
16268 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
16269
703fdf5a
RW
162702008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16271
16272 PR bootstrap/35273
16273 * config.build (build_file_translate): Set to `CMD //c' only if
16274 it works.
16275 * Makefile.in (build_file_translate): Improve comment.
16276
0ca16832
JH
162772008-02-21 Jan Hubicka <jh@suse.cz>
16278
16279 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
16280 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
16281 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
16282
c754abbf
MM
162832008-02-21 Michael Matz <matz@suse.de>
16284
16285 PR target/35264
16286 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
16287
85845bb9
UB
162882008-02-21 Uros Bizjak <ubizjak@gmail.com>
16289
16290 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
16291 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
16292 as insn constraint.
16293 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
16294 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
16295 SSE_VEC_FLOAT_MODE_P as insn constraint.
16296 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
16297 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
16298 sse4a_movntdf using MODEF mode iterator.
16299 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
16300 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
16301 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
16302 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
16303 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
16304 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
16305 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
16306
dedd42d5
RG
163072008-02-21 Richard Guenther <rguenther@suse.de>
16308
16309 * tree.def (PAREN_EXPR): New tree code.
16310 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
16311 and PAREN_EXPR.
16312 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
16313 * expr.c (expand_expr_real_1): Likewise.
16314 * tree-inline.c (estimate_num_insns_1): Likewise.
16315 * tree-complex.c (expand_complex_move): Likewise.
16316 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
16317 as plain x.
16318
7a3cb3ab
KK
163192008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
16320
16321 PR target/35225
16322 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
16323
6d4d15b8
KK
163242008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
16325
16326 PR target/35190
16327 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
16328
16329 * config/sh/sh.c (find_barrier): Don't go past
16330 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
16331
6d4a8967
DD
163322008-02-20 DJ Delorie <dj@redhat.com>
16333
16334 * config/h8300/h8300.md (insv): Force source operand to be a register.
16335
16336 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
16337 as a jump, not as a plain insn.
22129589 16338
a214518f
SP
163392008-02-20 Seongbae Park <seongbae.park@gmail.com>
16340
16341 * doc/invoke.texi (Warning Options): Add new option
16342 -Wframe-larger-than=.
16343 (-Wframe-larger-than): Document.
16344
16345 * flags.h (warn_frame_larger_than, frame_larger_than_size):
16346 Add declarations for new option variables.
16347
16348 * final.c (final_start_function): Check the frame size
16349 before emission and issue a Wframe-larger-than warning.
16350
16351 * opts.c (warn_frame_larger_than, frame_larger_than_size):
16352 Add definitions for new option variables.
16353 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
16354
16355 * common.opt (Wframe-larger-than=): New option.
16356
993ac7c7
UB
163572008-02-20 Uros Bizjak <ubizjak@gmail.com>
16358
16359 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
16360 (<sse>_div<mode>3): Ditto.
16361 (<sse>_vmdiv<mode>3): Ditto.
16362 (<sse>_vmsqrt<mode>2): Ditto.
16363 (*smax<mode>3): Ditto.
16364 (sse5_frcz<mode>2): Ditto.
16365 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
16366 as insn constraint.
16367
4cd8e76f
RG
163682008-02-20 Richard Guenther <rguenther@suse.de>
16369
16370 PR middle-end/35265
16371 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
16372 be happy with INTEGRAL_TYPE_P.
16373
41bb1f06
RG
163742008-02-20 Richard Guenther <rguenther@suse.de>
16375
16376 * fold-const.c (split_tree): Associate floatig-point expressions
16377 if flag_associative_math is set.
16378
2dc0f633
RG
163792008-02-20 Richard Guenther <rguenther@suse.de>
16380
16381 * tree.h (fold_real_zero_addition_p): Declare.
16382 * fold-const.c (fold_real_zero_addition_p): Export.
16383 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
16384 floating-point operations with zero and one.
16385
1c8bd6a3
PB
163862008-02-20 Paolo Bonzini <bonzini@gnu.org>
16387
4b40b2a5
UB
16388 * doc/install.texi: Correct references to CFLAGS, replacing them
16389 with BOOT_CFLAGS. Document flags used during bootstrap for
16390 target libraries.
22129589 16391
d6023b50
UB
163922008-02-20 Uros Bizjak <ubizjak@gmail.com>
16393
16394 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
16395 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
16396 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
16397 insn constraint.
16398 (smin<mode>3): Ditto from similar patterns.
16399 (smax<mode>3): Ditto.
16400 (*ieee_smin<mode>3): Ditto.
16401 (*ieee_smax<mode>3): Ditto.
16402 * config/i386/sse.md (sse): New mode attribute.
16403 (mov<mode>): Macroize expander from movv4sf and movv2df using
16404 SSEMODEF2P mode iterator.
16405 (<sse>_movnt<mode>): Ditto from similar patterns. Use
16406 SSE_VEC_FLOAT_MODE_P as insn constraint.
16407 (storent<mode>): Ditto.
16408 (storent<mode>): Macroize expander from storentsf and storentdf using
16409 MODEF mode iterator.
16410 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
16411 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
16412 (abs<mode>2): Ditto from similar patterns.
16413 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
16414 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
16415 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
16416 (<sse>_vmsqrt<mode>2): Ditto.
16417 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
16418 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
16419 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
16420 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
16421 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
16422 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
16423 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
16424 insn constraint.
16425 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
16426 iterator and SSE_FLOAT_MODE_P as insn constraint.
16427 (<sse>_ucomi): Ditto from similar patterns.
16428 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
16429 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
16430 SSE_VEC_FLOAT_MODE_P as insn constraint.
16431 (vcond<mode>): Ditto from similar patterns.
16432 (and<mode>3, *and<mode>3): Ditto.
16433 (<sse>_nand<mode>3): Ditto.
16434 (ior<mode>3, *ior<mode>3): Ditto.
16435 (xor<mode>3, *xor<mode>3): Ditto.
16436 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
16437 iterator and SSE_FLOAT_MODE_P as insn constraint.
16438 (*nand<mode>3): Ditto from similar patterns.
16439 (*ior<mode>3): Ditto.
16440 (*xor<mode>3): Ditto.
16441
76a893cf
IR
164422008-02-20 Ira Rosen <irar@il.ibm.com>
16443
16444 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
16445 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
16446 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
16447
daac0317
JH
164482008-02-19 Jan Hubicka <jh@suse.cz>
16449
a8971bdb
UB
16450 * predict.c (tree_bb_level_predictions): Remove variable next
16451 mistakely introduced by previous commit.
daac0317 16452
3e4b9ad0
JH
164532008-02-19 Jan Hubicka <jh@suse.cz>
16454
16455 * predict.c (predict_paths_leading_to): Rewrite.
16456 (predict_paths_for_bb): New.
16457 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
16458
a0e527e3
RW
164592008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16460
16461 PR bootstrap/35218
16462 * Makefile.in (build_file_translate): New.
16463 (gcc-vers.texi): Use it for translating $(abs_srcdir).
16464 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
16465 * configure.ac (build_file_translate): Substitute it.
16466 * configure: Regenerate.
16467
9d5cee3d
JH
164682008-02-19 Jan Hubicka <jh@suse.cz>
16469
16470 PR rtl-optimization/34408
3e4b9ad0
JH
16471 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
16472 invalid sharing.
9d5cee3d 16473
8723e2fe
JH
164742008-02-19 Jan Hubicka <jh@suse.cz>
16475
16476 PR middle-end/28779
3e4b9ad0
JH
16477 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
16478 call_expr.
8723e2fe 16479
5ba5440f
L
164802008-02-19 H.J. Lu <hongjiu.lu@intel.com>
16481
16482 PR Ada/35186
16483 * config/i386/i386-modes.def: Revert the last DI alignment
16484 change until Ada people can look into it.
16485
c01c261d
NC
164862008-02-19 Nick Clifton <nickc@redhat.com>
16487
16488 * opts.c (print_specific_help): Fix typo in --help text.
16489
2e834acb
JJ
164902008-02-19 Jakub Jelinek <jakub@redhat.com>
16491
16492 PR target/35239
16493 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
16494 32-bit inline asm without asm alternatives for host GCC < 3.0.
16495
9cadd7f7
RG
164962008-02-19 Richard Guenther <rguenther@suse.de>
16497
16498 PR tree-optimization/34989
16499 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
16500 Allow propagation to INDIRECT_REF if we can simplify only.
16501
ffc30173
MLI
165022008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16503
16504 * c-common.c (warn_for_collisions_1): Use appropriate option when
16505 warning.
16506
b3eaaf1a
NC
165072008-02-19 Nick Clifton <nickc@redhat.com>
16508
16509 PR other/31349
a8971bdb 16510 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
16511 (handle_options): Fix indentation.
16512 (print_filtered_help): If no language-specific options were
16513 displayed tell the user how to list all the options supported by
16514 the language's front-end.
16515 (print_specific_help): Fix indentation and remove duplicate line.
16516 (common_handle_option): Handle the -v option.
16517 For --help enable the display of undocumented options if the -v
16518 switch has been included on the command line.
16519 For --help= check for overlaps in the arguments between the option
16520 classes and the language names and issue a warning when they
16521 cannot be disambiguated.
16522 * c.opt (v): Pass on to the common option handler.
16523
22129589 165242008-02-19 Revital Eres <eres@il.ibm.com>
de82c453
RE
16525
16526 * modulo-sched.c (sms_schedule): Change dump message when
16527 create_ddg function fails.
16528 (try_scheduling_node_in_cycle): Rename row to cycle.
16529 (print_partial_schedule): Rename CYCLE to ROW.
16530
32159434 165312008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
16532 Zdenek Dvorak <ook@ucw.cz>
16533
16534 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
16535
0e93e1b4
UB
165362008-02-19 Uros Bizjak <ubizjak@gmail.com>
16537
16538 PR target/33555
16539 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
16540 (*x86_movdicc_0_m1_se): Ditto.
16541
02d353cf
UB
165422008-02-19 Uros Bizjak <ubizjak@gmail.com>
16543
16544 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
16545 (CMPtype): Define as __gcc_CMPtype.
16546 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
16547 (CMPtype): Define as __gcc_CMPtype.
16548
35dee980
HPN
165492008-02-19 Hans-Peter Nilsson <hp@axis.com>
16550
16551 Support valgrind 3.3 for --enable-checking=valgrind.
16552 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
16553 here.
16554 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
16555 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
16556 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
16557 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
16558 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
16559 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
16560 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
16561 respectively.
16562 * ggc-zone.c: Similar.
16563 * ggc-page.c: Similar.
16564
27e03cf1
PB
165652008-02-19 Paul Brook <paul@codesourcery.com>
16566
16567 PR target/35071
16568 * config/arm/ieee754-df.S: Fix do_it typo.
16569 * config/arm/ieee754-sf.S: Fix do_it typo.
16570
287a7d41
L
165712008-02-18 H.J. Lu <hongjiu.lu@intel.com>
16572
16573 PR target/35189
16574 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
16575 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
16576 (OPTION_MASK_ISA_SSE_SET): Likewise.
16577 (OPTION_MASK_ISA_SSE2_SET): Likewise.
16578 (OPTION_MASK_ISA_SSE3_SET): Likewise.
16579 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
16580 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
16581 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
16582 (OPTION_MASK_ISA_SSE4_SET): Likewise.
16583 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
16584 (OPTION_MASK_ISA_SSE5_SET): Likewise.
16585 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
16586 (OPTION_MASK_ISA_MMX_UNSET): Updated.
16587 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
16588 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
16589 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
16590 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
16591 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
16592 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
16593 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
16594 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
16595 (OPTION_MASK_ISA_SSE4): Removed.
16596 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 16597 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
16598 (override_options): Don't turn on implied SSE/MMX bits in
16599 ix86_isa_flags.
16600
feaffcaa
L
166012008-02-18 H.J. Lu <hongjiu.lu@intel.com>
16602
16603 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
16604 32bit host.
16605
b2ae828d
JY
166062008-02-18 Joey Ye <joey.ye@intel.com>
16607
16608 PR middle-end/34921
16609 * tree-nested.c (insert_field_into_struct): Set type alignment
16610 to field alignment if the former is less than the latter.
16611
8d855c3d
JJ
166122008-02-18 Jakub Jelinek <jakub@redhat.com>
16613
16614 * BASE-VER: Set to 4.4.0.
16615
923158be
RW
166162008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16617
16618 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
16619 * doc/cfg.texi: Likewise.
16620 * doc/extend.texi: Likewise.
16621 * doc/gty.texi: Likewise.
16622 * doc/invoke.texi: Likewise.
16623 * doc/loop.texi: Likewise.
16624 * doc/md.texi: Likewise.
16625 * doc/passes.texi: Likewise.
16626 * doc/rtl.texi: Likewise.
16627 * doc/sourcebuild.texi: Likewise.
16628 * doc/tm.texi: Likewise.
16629 * doc/tree-ssa.texi: Likewise.
16630
f0a77246
RG
166312008-02-17 Richard Guenther <rguenther@suse.de>
16632
16633 PR middle-end/35227
16634 * tree-complex.c (init_parameter_lattice_values): Handle parameters
16635 without default definition.
16636
e09deb14
RG
166372008-02-17 Richard Guenther <rguenther@suse.de>
16638
16639 PR tree-optimization/35231
16640 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
16641 if A | B != 1.
16642
e6528d32
UB
166432008-02-17 Uros Bizjak <ubizjak@gmail.com>
16644
16645 Revert:
22129589 16646 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
e6528d32
UB
16647 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
16648 libgcc_cmp_return mode.
16649
93e052a8
MLI
166502008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16651
16652 PR c/28368
16653 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
16654
2a49e6f8
RC
166552008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
16656
16657 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
16658 multilibs.
16659
0ee2ea09
RW
166602008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16661
16662 * doc/c-tree.texi: Use `@.' where appropriate.
16663 * doc/extend.texi: Likewise.
16664 * doc/install.texi: Likewise.
16665 * doc/invoke.texi: Likewise.
16666 * doc/loop.texi: Likewise.
16667 * doc/makefile.texi: Likewise.
16668 * doc/md.texi: Likewise.
16669 * doc/passes.texi: Likewise.
16670 * doc/standards.texi: Likewise.
16671 * doc/tm.texi: Likewise.
16672
ac84c062
JJ
166732008-02-15 Jakub Jelinek <jakub@redhat.com>
16674
16675 PR middle-end/35196
16676 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
16677 in entry_bb.
16678 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
16679 rather than in entry_bb.
16680
6a9e8571
UB
166812008-02-15 Uros Bizjak <ubizjak@gmail.com>
16682
16683 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
16684 libgcc_cmp_return mode.
16685
6837b3b8
JJ
166862008-02-15 Jakub Jelinek <jakub@redhat.com>
16687
16688 PR middle-end/35130
16689 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
16690 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
16691
2e58df6e 166922008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 16693 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
16694
16695 PR tree-optimization/35164
16696 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
16697 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
16698 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
16699 Only propagate addresses which do not have abnormal SSA_NAMEs
16700 in their operands.
16701
206598fb
JM
167022008-02-15 Joseph Myers <joseph@codesourcery.com>
16703
16704 PR target/35088
16705 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
16706
18168b3f
JH
167072008-02-15 Jan Hubicka <jh@suse.cz>
16708
16709 PR middle-end/35149
16710 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
16711
6f6b8f81
UB
167122008-02-15 Uros Bizjak <ubizjak@gmail.com>
16713
16714 PR middle-end/34621
16715 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
16716 when calculating alignment_pad.
16717
979c67a5
UB
167182008-02-15 Uros Bizjak <ubizjak@gmail.com>
16719
16720 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
16721 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
16722 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
16723 and STACK_BOUNDARY define.
16724
101e174d
DS
167252008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
16726
16727 PR preprocessor/35061
16728 * c-pragma.c (handle_pragma_pop_macro): Check that
16729 pushed_macro_table has been allocated.
16730
928bc34f
EB
167312008-02-14 Eric Botcazou <ebotcazou@adacore.com>
16732
16733 PR middle-end/35136
16734 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
16735 (force_gimple_operand): Likewise.
16736 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
16737 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
16738 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
16739 (find_interesting_uses_address): Check addressability and alignment
16740 of the base expression only after substituting bases of IVs into it.
16741
a5bfb13a
MM
167422008-02-14 Michael Matz <matz@suse.de>
16743
16744 PR target/34930
16745 * function.c (instantiate_virtual_regs_in_insn): Reload address
16746 before falling back to reloading the whole operand.
16747
b49326f1
AK
167482008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
16749
16750 * config/s390/s390.c (s390_mainpool_start): Emit the pool
16751 before the first section switch note.
16752
021efafc
RW
167532008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16754
346341a4
RW
16755 * doc/bugreport.texi: Update copyright years.
16756 * doc/c-tree.texi: Likewise.
16757 * doc/cfg.texi: Likewise.
16758 * doc/cpp.texi: Likewise.
16759 * doc/cppinternals.texi: Likewise.
16760 * doc/fragments.texi: Likewise.
16761 * doc/frontends.texi: Likewise.
16762 * doc/gcc.texi: Likewise.
16763 * doc/gty.texi: Likewise.
16764 * doc/hostconfig.texi: Likewise.
16765 * doc/implement-c.texi: Likewise.
16766 * doc/libgcc.texi: Likewise.
16767 * doc/loop.texi: Likewise.
16768 * doc/makefile.texi: Likewise.
16769 * doc/options.texi: Likewise.
16770 * doc/passes.texi: Likewise.
16771 * doc/rtl.texi: Likewise.
16772 * doc/sourcebuild.texi: Likewise.
16773 * doc/standards.texi: Likewise.
16774 * doc/tree-ssa.texi: Likewise.
16775 * doc/trouble.texi: Likewise.
16776
021efafc
RW
16777 * doc/extend.texi: Use @: or add comma where appropriate.
16778 * doc/invoke.texi: Likewise.
16779 * doc/tm.texi: Likewise.
16780
583da60a
AM
167812008-02-14 Alan Modra <amodra@bigpond.net.au>
16782
16783 PR target/34393
16784 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
16785 to a reg.
16786
2a6627c2
JN
167872008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
16788
16789 * doc/md.texi (clz, ctz): Add reference.
16790 * doc/rtl.texi (clz, ctz): Likewise.
16791
1b0c753a
RW
167922008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16793
16794 PR other/35148
16795 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
16796 srcdir.
16797
03870a04
AK
167982008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
16799
16800 * config/s390/s390.c (struct constant_pool): New field
16801 emit_pool_after added.
16802 (s390_mainpool_start): Set the emit_pool_after flag according
16803 to the section switch notes.
16804 (s390_mainpool_finish): Consider emit_pool_after when emitting
16805 the literal pool at the end of the function.
16806 (s390_chunkify_start): Force literal pool splits at section
16807 switch notes.
16808
be71b673
MM
168092008-02-13 Michael Matz <matz@suse.de>
16810
16811 PR debug/35065
16812 * var-tracking.c (clobber_variable_part): Correctly traverse the
16813 list.
16814
fed39e22
MLI
168152008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16816
16817 PR 29673
16818 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
16819 Add -fdump-ipa-inline.
16820 * tree-dump.c (dump_files): Remove tree-inlined dump.
16821 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
22129589 16822
8665227f
RG
168232008-02-12 Richard Guenther <rguenther@suse.de>
16824
16825 PR tree-optimization/35171
16826 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
16827 default defs.
16828
8f768a5a
RG
168292008-02-12 Richard Guenther <rguenther@suse.de>
16830
16831 PR middle-end/35163
16832 * fold-const.c (fold_widened_comparison): Use get_unwidened in
16833 value-preserving mode. Disallow final truncation.
16834
81186f7b
EB
168352008-02-12 Eric Botcazou <ebotcazou@adacore.com>
16836
16837 PR middle-end/35136
16838 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
16839 code from here to...
16840 (force_gimple_operand): ...here.
16841
d7b8033f
JJ
168422008-02-12 Jakub Jelinek <jakub@redhat.com>
16843
e4521d11
JJ
16844 PR c++/35144
16845 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
16846 non-compatible pointers.
16847 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
16848 different FIELD_DECLs, try harder by comparing field offsets, sizes
16849 and types.
16850
d7b8033f
JJ
16851 PR inline-asm/35160
16852 * function.c (match_asm_constraints_1): Don't replace the same input
16853 multiple times.
16854
d6f77715
AS
168552008-02-12 Anatoly Sokolov <aesok@post.ru>
16856
16857 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
16858 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
16859 (expand_epilogue): Restore RAMPZ register.
16860 * config/avr/avr.md (RAMPZ_ADDR): New constant.
16861
35b35fd0
KT
168622008-02-11 Kai Tietz <kai.tietz@onevision.com>
16863
40049ccc 16864 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
16865 convention and alignment.
16866 (__chkstk): Force 8 byte stack alignment.
16867
a6e2d112 168682008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 16869 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
16870
16871 PR tree-optimization/33992
16872 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
16873 the zero we compare against.
16874
40049ccc
UB
168752008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
16876
16877 PR libfortran/35063
16878 * gthr-win32.h (__gthread_mutex_destroy_function): New function
16879 to CloseHandle after unlocking to prevent accumulation of handle
16880 count.
16881
4d811a05
JDA
168822008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16883
16884 PR middle_end/34150
16885 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
16886 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
16887 and update LABEL_NUSES during and after reload.
16888
e37f6a49
SB
168892008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
16890
16891 PR middle-end/34627
a3395528 16892 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
16893 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
16894
34917a10
RS
168952008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
16896
16897 PR bootstrap/35051
16898 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
16899 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
16900 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
16901 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
16902 * tree.h (get_type_static_bounds): Likewise.
16903
670b0231
RW
169042008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16905
16906 * doc/invoke.texi (Option Summary, C++ Dialect Options)
16907 (Objective-C and Objective-C++ Dialect Options, Warning Options):
16908 Make -Wfoo language annotations match what the compiler outputs.
16909
069c47ee
SL
169102008-02-08 Sa Liu <saliu@de.ibm.com>
16911
22129589 16912 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
069c47ee 16913 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 16914
ccd2a21e
HPN
169152008-02-08 Hans-Peter Nilsson <hp@axis.com>
16916
16917 * doc/extend.texi (Function Attributes) <noinline>: Mention
16918 asm ("") as method to keep calls.
16919
af47e6ac
MLI
169202008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16921
16922 PR other/32754
16923 * doc/options.texi (Options): Replace references to opts.sh with
16924 optc-gen.awk.
16925 * opts-common.c: Likewise.
16926 * optc-gen.awk: Likewise.
22129589 16927
96e2afa8
AK
169282008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
16929
16930 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
16931
169322008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
16933
16934 PR rtl-opt/33410
16935 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
22129589 16936 EXPR_LIST for the REG_EQUAL instead of a comparison with a
32891ff6
RH
16937 funny mode.
16938
c4ae80d9
UB
169392008-02-07 Uros Bizjak <ubizjak@gmail.com>
16940
16941 PR tree-optimization/35085
16942 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
16943 for operand entry oe2 in addition to operand entry oe3 in order to
16944 expose more opportunities for vectorizer sum reduction.
16945
72fb133f
KG
169462008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16947
16948 PR other/35107
16949 * Makefile.in (LIBS): Remove $(GMPLIBS).
16950 (cc1-dummy, cc1): Add $(GMPLIBS).
16951
20a415f8
JH
169522008-02-06 Jan Hubicka <jh@suse.cz>
16953
88b089d5 16954 PR target/23322
20a415f8
JH
16955 * i386.md (moddf_integer): Do not produce partial memory stalls for
16956 targets where it hurts.
16957
cc8d36a1
UB
169582008-02-06 Uros Bizjak <ubizjak@gmail.com>
16959
16960 PR target/35083
16961 * optabs.c (expand_float): Do not check for decimal modes when
16962 expanding unsigned integer through signed conversion.
16963
2ccd9cb2
NC
169642008-02-06 Nick Clifton <nickc@redhat.com>
16965
16966 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
16967 inside the clobber with a match_operand and duplicated operand
16968 number in the constraint.
16969 (ineqbranchsi): Delete redundant comment.
16970
ecb2366e
RC
169712008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
16972
22129589 16973 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
448b96d0
RC
16974 builtin_define ("__USE_INIT_FINI__").
16975 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
16976 -msx multilibs.
ecb2366e
RC
16977 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
16978
ccd4e386
RW
169792008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16980
16981 PR documentation/30330
16982 * doc/invoke.texi (C++ Dialect Options)
16983 (Objective-C and Objective-C++ Dialect Options, Warning Options):
16984 For each warning option -Wfoo that allows -Wno-foo, ensure both
16985 -Wfoo and -Wno-foo are listed in the option index. Fix index
16986 entry of -Wswitch-default, index -Wnormalized= including the
16987 `=', and -Wlarger-than-@var{len} including @var{len}.
16988
def7425b
UB
169892008-02-05 Uros Bizjak <ubizjak@gmail.com>
16990
16991 * config/i386/i386.md (floatunssisf2): Use
16992 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
16993 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
16994 Macroize expander using MODEF mode iterator.
16995
c1e7d240
DN
169962008-02-05 Diego Novillo <dnovillo@google.com>
16997
16998 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
16999
17000 PR 33738
def7425b 17001 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 17002
3a204175
KG
170032008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17004
17005 PR other/35070
17006 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
17007
7074bc2e
L
170082008-02-05 H.J. Lu <hongjiu.lu@intel.com>
17009
17010 PR target/35084
17011 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
17012 to indicate if a message should be generated.
17013 (init_cumulative_args): Updated.
17014 (function_value_32): Likewise.
17015
0f5098ae
JM
170162008-02-05 Joseph Myers <joseph@codesourcery.com>
17017
17018 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
17019
4a534152
UB
170202008-02-05 Uros Bizjak <ubizjak@gmail.com>
17021
17022 PR target/35083
17023 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
17024 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
17025
3467b230
DN
170262008-02-04 Diego Novillo <dnovillo@google.com>
17027
17028 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
17029
17030 PR 33738
17031 * tree-vrp.c (vrp_evaluate_conditional): With
17032 -Wtype-limits, emit a warning when comparing against a
17033 constant outside the natural range of OP0's type.
17034
22199fd2
RG
170352008-02-04 Richard Guenther <rguenther@suse.de>
17036
17037 PR middle-end/33631
17038 * expr.c (count_type_elements): Give for unions instead of
17039 guessing.
17040
1a1640db
RG
170412008-02-04 Richard Guenther <rguenther@suse.de>
17042
17043 PR middle-end/35043
17044 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
17045 to TYPE_DOMAINs base type instead of using bitsizetype here.
17046
0fcedd9c
JM
170472008-02-03 Jason Merrill <jason@redhat.com>
17048
17049 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
17050
a31cfd58
RW
170512008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17052
17053 PR other/29972
17054 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
17055 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
17056 (RS/6000 and PowerPC Options): Fix typos and markup.
17057 * doc/passes.texi (Tree-SSA passes): Likewise.
17058
6994f254
MM
170592008-02-02 Michael Matz <matz@suse.de>
17060
17061 PR target/35045
17062 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
17063 from record_last_reg_set_info.
17064 (record_last_reg_set_info): Take an RTX argument, iterate over all
17065 constituent hardregs.
17066 (record_last_set_info, record_opr_changes): Change calls to
17067 new signature or to record_last_reg_set_info_regno.
17068
27f56cb1
GP
170692008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
17070
17071 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
17072
3e836a31
HPN
170732008-02-01 Hans-Peter Nilsson <hp@axis.com>
17074
17075 PR rtl-optimization/34773
17076 * reg-notes.def (EQUAL): Mention significance of combination of
17077 REG_EQUAL and REG_RETVAL.
17078 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
17079 insn that has a REG_RETVAL.
17080
d5be1dd4
RS
170812008-02-01 Roger Sayle <roger@eyesopen.com>
17082
17083 PR bootstrap/33781
17084 * configure.ac (--enable-fixed-point): Disable unless explicitly
17085 requested on IRIX.
17086 * configure: Regenerate.
17087
7c9c2f2a
RG
170882008-02-01 Richard Guenther <rguenther@suse.de>
17089
17090 PR other/35042
17091 * invoke.texi (-finline-limit): Remove no longer true parts
17092 of the documentation. Note that there is no default value.
17093
a18c20ec
AP
170942008-02-01 Andrew Pinski <pinskia@gmail.com>
17095 Mark Mitchell <mark@codesourcery.com>
17096 Ben Elliston <bje@au.ibm.com>
17097
17098 PR c/29326
17099 * doc/extend.texi (Other Builtins): Document.
17100
dc9a511d
TB
171012008-01-31 Tom Browder <tom.browder@gmail.com>
17102
17103 * doc/c-tree.texi (Types): Fix grammar.
17104 (Expression trees): Ditto.
17105 * doc/passes.texi (Tree-SSA passes): Ditto.
22129589 17106
dc9a511d
TB
17107 * doc/configterms.texi (Configure Terms): Fix typo.
17108 * doc/cpp.texi (Common Predefined Macros): Ditto.
17109 * doc/md.texi (Machine Constraints): Ditto.
22129589 17110
dc9a511d
TB
17111 * doc/makefile.texi (Makefile): Add comma.
17112
5dc81ee9
TB
171132008-01-31 Tom Browder <tom.browder@gmail.com>
17114 Gerald Pfeifer <gerald@pfeifer.com>
22129589 17115
5dc81ee9
TB
17116 * doc/sourcebuild.texi (Front End): Remove references to CVS
17117 and CVSROOT/modules.
17118 (Texinfo Manuals): Replace reference to CVS by one to SVN.
17119 (Back End): Remove reference to CVS.
17120
5ca3d30c
RS
171212008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
17122
17123 PR target/34900
17124 * config/mips/mips.c (gen_load_const_gp): New function, taking a
17125 comment from...
17126 (mips16_gp_pseudo_reg): ...here.
17127 * config/mips/mips.md (load_const_gp): Replace with...
17128 (load_const_gp_<mode>): ...this :P-based insn.
17129
89fe7f1b
MLI
171302008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17131
17132 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
17133 options. Minor fixes.
17134 (-std): Move reference to standards closer to where language
17135 standards are first mentioned.
22129589 17136
1f7f6676
RS
171372008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
17138
17139 PR rtl-optimization/34995
17140 * reload.c (alternative_allows_const_pool_ref): Take an rtx
17141 parameter and return a bool. If the rtx parameter is nonnull,
17142 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
17143 (find_reloads): Update call accordingly. Pass the new operand
17144 if it needed no address reloads, otherwise pass null.
17145
2ae7b972
RH
171462008-01-30 Richard Henderson <rth@redhat.com>
17147
17148 PR c/34993
17149 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
17150 for unbounded arrays.
17151
493f36a7
SR
171522008-01-30 Silvius Rus <rus@google.com>
17153
17154 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
17155
d6951cae
JH
171562008-01-30 Jan Hubicka <jh@suse.cz>
17157
17158 PR target/34982
17159 * i386.c (init_cumulative_args): Use real function declaration when
17160 calling locally.
17161
f36a5a88
RS
171622008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
17163
17164 PR rtl-optimization/34998
17165 * global.c (build_insn_chain): Treat non-subreg_lowpart
17166 SUBREGs of pseudos as clobbering all the words covered by the
17167 SUBREG, not just all the bytes.
17168 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
17169 original df_ref rather than an extract parameter.
17170 (global_conflicts): Update call accordingly.
17171
393c0058
AK
171722008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
17173
17174 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
17175 the overflow check to make it easier to read.
17176 (__fixtfdi): Change the type of the ll member in union
17177 long_double to UDItype_x.
17178
1033ffa8
JJ
171792008-01-30 Jakub Jelinek <jakub@redhat.com>
17180
2bafad93
JJ
17181 PR middle-end/34969
17182 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
17183 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
17184 * tree-inline.c (fold_marked_statements): Call
17185 cgraph_update_edges_for_call_stmt if folding a call statement.
17186 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
17187 debug_generic_stmt calls, reset it back afterwards.
17188
1033ffa8
JJ
17189 PR c/35017
17190 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
17191 static decls.
17192 * c-typeck.c (build_external_ref): Don't pedwarn about
17193 static vars in current function's scope.
17194
ed32d842
JM
171952008-01-29 Joseph Myers <joseph@codesourcery.com>
17196
17197 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
17198
ea429753
BF
171992008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
17200
17201 PR c/35002
17202 * ipa-struct-reorg.c: Fix spelling.
17203 * params.def: Ditto.
17204
4f5c64b8
RG
172052008-01-29 Richard Guenther <rguenther@suse.de>
17206
17207 PR middle-end/35006
17208 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
17209 field.
17210 * tree-inline.c (remap_type): Increment remapping_type_depth
17211 around remapping types.
17212 (copy_body_r): Only add referenced variables if they are referenced
17213 from code, not types.
17214
7b3e2d46
DG
172152008-01-29 Douglas Gregor <doug.gregor@gmail.com>
17216
17217 PR c++/34055
17218 PR c++/34103
17219 PR c++/34219
17220 PR c++/34606
17221 PR c++/34753
17222 PR c++/34754
17223 PR c++/34755
17224 PR c++/34919
17225 PR c++/34961
17226 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
17227 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
17228
12720317
AH
172292008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
17230
17231 PR target/34412
22129589 17232 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
12720317
AH
17233 pointer for tiny stack.
17234
b814cc0a
BF
172352008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
17236
17237 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
17238
f46ff798
BF
172392008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
17240
17241 * config/vx-common.h: Fix typo in comment.
17242
e8b0eabc
ILT
172432008-01-28 Ian Lance Taylor <iant@google.com>
17244
17245 PR c++/34862
17246 PR c++/33407
17247 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
17248 coalesce pointers if they have different DECL_NO_TBAA_P values.
17249 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
17250 between variables with different DECL_NO_TBAA_P values.
17251
2aa42e6e
NF
172522008-01-28 Nathan Froyd <froydnj@codesourcery.com>
17253
17254 PR 31535
17255 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
17256 are not legitimate small data references on SPE targets.
17257
4e2e9e9b
DD
172582008-01-28 David Daney <ddaney@avtrex.com>
17259
17260 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
17261
a26c7632
DD
172622008-01-28 David Daney <ddaney@avtrex.com>
17263
17264 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
17265
4f605349
JM
172662008-01-27 Joseph Myers <joseph@codesourcery.com>
17267
17268 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
17269 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
17270 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
17271 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
17272 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
17273 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
17274 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
17275 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
17276
9e148d6a
BF
172772008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
17278
17279 * basic-block.h (condjump_equiv_p): Fix comment.
17280
f749d3c6
BF
172812008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
17282
17283 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
17284 print_generic_stmt_indented): Fix comment.
17285
fed6d628
BF
172862008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
17287
17288 * configure.ac (__stack_chk_fail): Add detecion for availability
17289 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
17290 * configure: Regenerate.
17291
c01e4479
MK
172922008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
17293
17294 PR middle-end/34688
17295 * final.c (output_addr_const): Handle TRUNCATE.
17296
6e8c65f6
ZD
172972008-01-26 Zdenek Dvorak <ook@ucw.cz>
17298
17299 PR target/34711
17300 * tree-ssa-loop-ivopts.c (comp_cost): New type.
17301 (zero_cost, infinite_cost): New constants.
17302 (struct cost_pair): Change type of cost to comp_cost.
17303 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
17304 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
17305 New functions.
17306 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
17307 split_address_cost, ptr_difference_cost, difference_cost,
17308 get_computation_cost_at, get_computation_cost,
17309 determine_use_iv_cost_generic, determine_use_iv_cost_address,
17310 determine_use_iv_cost_condition, determine_use_iv_costs,
17311 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
17312 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
17313 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
17314 Change type of cost to comp_cost.
17315 (determine_iv_cost): Increase cost of non-original ivs, instead
17316 of decreasing the cost of original ones.
22129589 17317 (get_address_cost): Indicate the complexity of the addressing mode
6e8c65f6
ZD
17318 in comp_cost.
17319 (try_add_cand_for): Prefer using ivs not specific to some object.
17320 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
17321
c01e4479 173222008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
17323 Janis Johnson <janis187@us.ibm.com>
17324
17325 PR target/34814
17326 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
17327 (TARGET_INSTANTIATE_DECLS): Likewise.
17328 * target.h (expand_to_rtl_hook): New target hook.
17329 (instantiate_decls): Likewise.
17330 * function.c (instantiate_decl): Make non-static. Rename to...
17331 (instantiate_decl_rtl): ... this.
17332 (instantiate_expr): Use instantiate_decl_rtl.
17333 (instantiate_decls_1): Likewise.
17334 (instantiate_decls): Likewise.
17335 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
17336 * function.h (instantiate_decl_rtl): Add prototype.
17337 * cfgexpand.c (target.h): New include.
17338 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
17339 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
17340 (TARGET_INSTANTIATE_DECLS): Likewise.
17341 (TARGET_INITIALIZER): New target hooks added.
17342 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
17343 New prototype.
17344 * config/rs6000/rs6000.c (tree-flow.h): New include.
17345 (machine_function): Add sdmode_stack_slot field.
17346 (rs6000_alloc_sdmode_stack_slot): New function.
17347 (rs6000_instantiate_decls): Likewise.
17348 (rs6000_secondary_memory_needed_rtx): Likewise.
17349 (rs6000_check_sdmode): Likewise.
17350 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
17351 (TARGET_INSTANTIATE_DECLS): Likewise.
17352 (rs6000_hard_regno_mode_ok): Allow SDmode.
17353 (num_insns_constant): Likewise. Handle _Decimal32 constants.
17354 (rs6000_emit_move): Handle SDmode.
17355 (function_arg_advance): Likewise.
17356 (function_arg): Likewise.
17357 (rs6000_gimplify_va_arg): Likewise. Add special handling of
17358 SDmode var args for 32-bit compiles.
17359 (rs6000_secondary_reload_class): Handle SDmode.
17360 (rs6000_output_function_epilogue): Likewise.
17361 (rs6000_function_value): Simplify if statement.
17362 (rs6000_libcall_value): Likewise.
17363 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
17364 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
17365 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
17366 (movsd_hardfloat): New define_insn.
17367 (movsd_softfloat): Likewise.
17368 (movsd_store): Likewise.
17369 (movsd_load): Likewise.
17370 (extendsddd2): Likewise.
17371 (extendsdtd2): Likewise.
17372 (truncddsd2): Likewise.
17373 (movdd_hardfloat64): Fixup comment.
17374 (UNSPEC_MOVSD_LOAD): New constant.
17375 (UNSPEC_MOVSD_STORE): Likewise.
17376
6f536f74
JJ
173772008-01-26 Jakub Jelinek <jakub@redhat.com>
17378
17379 PR c++/34965
17380 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
17381 TRUTH_XOR_EXPR.
17382 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
17383 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
17384 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
17385 and TRUTH_XOR_EXPR.
17386
ba6a1b78
DE
173872008-01-26 David Edelsohn <edelsohn@gnu.org>
17388
17389 PR target/34794
17390 * config.gcc: Separate AIX 5.3 from AIX 6.1.
17391 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
17392 __LONGDOUBLE128 too.
17393 * config/rs6000/aix61.h: New file.
17394
1230d7f8
RS
173952008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
17396
17397 PR rtl-optimization/34959
17398 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
17399 popcount and parity rtxes the same mode as their operand.
17400 Truncate or extend the result to the return value's mode
17401 if necessary.
17402
dbc90b65
RS
174032008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
17404
17405 PR target/34981
17406 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
17407 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
17408 to GOT_VERSION_REGNUM.
17409 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
17410 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
17411 * config/mips/mips.c (mips_emit_call_insn): New function.
17412 (mips_call_tls_get_addr): Call mips_expand_call directly.
17413 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
17414 emit_call_insn.
17415 (mips16_build_call_stub): Likewise. Return the call insn or null.
17416 (mips_expand_call): Update the call to mips16_build_call_stub
17417 accordingly and a remove redundant condition. Assert that MIPS16
17418 stubs do not use lazy binding. Use mips_emit_call_insn and return
17419 the call insn.
17420 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
17421 TARGET_USE_GOT.
17422 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
17423 (mips_avoid_hazard): Remove hazard_set handling.
17424 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
17425 (UNSPEC_RESTORE_GP): ...this.
17426 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
17427 (FAKE_CALL_REGNO): Rename to...
17428 (GOT_VERSION_REGNUM): ...this.
17429 (type): Add "ghost" value. Add an associated insn reservation.
17430 (hazard_set): Remove.
17431 (exception_receiver): Rename to...
17432 (restore_gp): ...this and update the unspec identifier accordingly.
17433 (exception_receiver, nonlocal_got_receiver): New expanders.
17434 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
17435 FAKE_CALL_REGNO. Remove hazard_set attribute.
17436 (set_got_version, update_got_version): New patterns.
17437
763a27ee
DS
174382008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
17439
17440 PR target/34970
17441 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
17442
3725c0ca
JM
174432008-01-25 Joseph Myers <joseph@codesourcery.com>
17444
17445 PR other/31955
17446 * doc/install.texi2html: Generate gcc-vers.texi.
17447
0288980f
DD
174482008-01-25 DJ Delorie <dj@redhat.com>
17449
17450 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
17451
8d8da227
JM
174522008-01-25 Joseph Myers <joseph@codesourcery.com>
17453
17454 * config/c4x: Remove directory.
17455 * config.gcc (crx-*, mt-*): Mark obsolete.
17456 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
17457 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
17458 sh-*-rtemscoff*): Remove cases.
17459 * defaults.h (C4X_FLOAT_FORMAT): Remove.
17460 * real.c (encode_c4x_single, decode_c4x_single,
17461 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
17462 c4x_extended_format): Remove.
17463 * real.h (c4x_single_format, c4x_extended_format): Remove.
17464 * doc/extend.texi (interrupt, naked): Remove mention of attributes
17465 on C4x.
17466 (Pragmas): Remove comment about c4x pragmas.
17467 * doc/install.texi (c4x): Remove target-specific instructions.
17468 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
17469 * doc/md.texi (Machine Constraints): Remove C4x documentation.
17470 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
17471 refer to C4x source files as examples.
17472 (C4X_FLOAT_FORMAT): Remove documentation.
17473
fb7c3b05
BS
174742008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
17475
17476 * config/bfin/bfin.c (override_options): Reorder tests so that
17477 flag_pic gets enabled for -msep-data.
17478
dd3b33d7
RG
174792008-01-25 Richard Guenther <rguenther@suse.de>
17480
17481 PR middle-end/32244
17482 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
17483 to its bitfield precision if required.
17484
c256730c
JJ
174852008-01-25 Jakub Jelinek <jakub@redhat.com>
17486
17487 PR middle-end/33880
17488 * tree-nested.c (walk_omp_for): New function.
17489 (convert_nonlocal_reference, convert_local_reference): Call
17490 walk_omp_for on OMP_FOR.
17491 (convert_call_expr): Call walk_body on OMP_FOR's
17492 OMP_FOR_PRE_INIT_BODY.
17493
59805c3b
RG
174942008-01-25 Richard Guenther <rguenther@suse.de>
17495
17496 PR tree-optimization/34966
17497 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
17498 default defs and PHI_NODEs we have to insert after the
17499 defining statement.
17500
f84fe9b6
NC
175012008-01-24 Nick Clifton <nickc@redhat.com>
17502
17503 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
17504 Provide a default definition.
17505 (LIBGCC2_UNITS_PER_WORD): Likewise.
17506
17507 * config/stormy16/stormy16.c: Include df.h for the prototype
17508 for df_regs_ever_live_p.
17509 (xstormy16_expand_builtin_va_start): Convert the stack offset
17510 into a component_ref and then use POINTER_PLUS_EXPR to add it
17511 to the incoming_virtual_args_rtx.
17512 (xstormy16_gimplify_va_arg_expr): Rename to
17513 xstormy16_gimplify_va_arg_expr.
17514 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
17515 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
17516 xstormy16_gimplify_va_arg_expr.
17517 Fix up some formatting issues.
17518
17519 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
17520 Move to predicates.md.
17521 (xs_hi_general_operand): Likewise.
17522 (xs_hi_nonmemory_operand): Likewise.
17523 * config/stormy16/predicates.md:
17524 (xstormy16_carry_plus_operand): New predicate.
17525 (xs_hi_general_operand): New predicate.
17526 (xs_hi_nonmemory_operand): New predicate.
17527 * config/stormy16/stormy16-protos.h:
17528 (xstormy16_carry_plus_operand): Delete prototype.
17529 (xs_hi_general_operand): Likewise.
17530 (xs_hi_nonmemory_operand): Likewise.
17531
17532 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
17533 modifiers as they are no longer needed and they can trigger
17534 reload spill failures.
17535
17536 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
17537 with a match_operand in order to help reload.
17538
17539 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
17540 constraint with 'e' for the 8th alternative as this version of
17541 the mov.w instruction only accepts the lower 8 registers.
17542
d1f0728e
UB
175432008-01-25 Uros Bizjak <ubizjak@gmail.com>
17544
17545 PR target/34856
17546 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
17547 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
17548 vector elements.
17549
80e67011
JJ
175502008-01-25 Jakub Jelinek <jakub@redhat.com>
17551
17552 PR middle-end/33333
17553 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
17554
1525f2c3
GO
175552008-01-25 Golovanevsky Olga <olga@il.ibm.com>
17556
17557 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
17558 New functions.
17559 (remove_structure): Update allocations list before removing structure.
22129589 17560
bd91d743
OG
175612008-01-25 Golovanevsky Olga <olga@il.ibm.com>
17562
22129589 17563 * ipa-struct-reorg.c (is_safe_cond_expr,
bd91d743
OG
17564 create_new_stmts_for_cond_expr): Use integer_zerop function,
17565 that recognize not only zero-pointer, but zero-integer too.
17566
ae7a8ebc
BE
175672008-01-25 Ben Elliston <bje@au.ibm.com>
17568
17569 PR other/22232
17570 * fixproto: Escape "." in sed expression that strips leading "./".
17571
3371362c
L
175722008-01-24 H.J. Lu <hongjiu.lu@intel.com>
17573
17574 PR driver/34904
17575 * gcc.c (SWITCH_OK): Removed.
17576 (SWITCH_LIVE): Changed to bit.
17577 (SWITCH_FALSE): Likewise.
17578 (SWITCH_IGNORE): Likewise.
17579 (switchstr): Change live_cond to unsigned int.
17580 (process_command): Replace SWITCH_OK with 0.
17581 (do_self_spec): Likewise.
17582 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
17583 (give_switch): Likewise.
17584 (used_arg): Likewise.
17585 (do_spec_1): Set the SWITCH_IGNORE bit.
17586 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
17587 bits. Set the SWITCH_LIVE bit.
17588
5f1b2ee6
AK
175892008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
17590
17591 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
17592
986d97ed
RS
175932008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
17594
17595 PR tree-optimization/34472
17596 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
17597 parameter to a "bool *" and set *DATA to false if there is
17598 an unsafe access. Do not delete the structure here.
17599 (check_cond_exprs): Delete it here instead.
17600 (check_cond_exprs, exclude_cold_structs): Do not increase
17601 I when removing a structure.
17602
fcc44808
UB
176032008-01-24 Uros Bizjak <ubizjak@gmail.com>
17604
17605 PR target/34856
17606 * config/i386/i386.c (ix86_expand_vector_init): Consider only
17607 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
17608
134c2de3
JJ
176092008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
17610
17611 PR middle-end/34934
17612 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
17613 a fixed vector for stack.
17614
89bf8683
BE
176152008-01-24 Ben Elliston <bje@au.ibm.com>
17616
17617 PR c++/25701
17618 * doc/gcc.texi (Software development): Add a direntry for g++.
22129589 17619
02a4bca9
HPN
176202008-01-23 Hans-Peter Nilsson <hp@axis.com>
17621
6c660aeb
HPN
17622 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
17623 stale and straggling -fforce-addr comments above.
17624
02a4bca9
HPN
17625 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
17626 define.
17627 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
17628 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
17629
b4da9f9d
MM
176302008-01-23 Michael Matz <matz@suse.de>
17631
17632 PR debug/34895
17633 * dwarf2out.c (force_type_die): Use modified_type_die instead of
17634 gen_type_die.
17635
1b7af7b0
AK
176362008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
17637
17638 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
17639 malloc result type.
17640
19298da4
AS
176412008-01-23 Anatoly Sokolov <aesok@post.ru>
17642
17643 * config/avr/avr.c (avr_current_arch): New variable.
17644 (avr_arch_types): Add 'avr31' and 'avr51' entries.
17645 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
17646 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
22129589 17647 (avr_override_options): Init 'avr_current_arch'.
19298da4 17648 (base_arch_s): Move from here...
22129589
AS
17649 * config/avr/avr.h (base_arch_s): ... here. Add new members
17650 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19298da4 17651 'mega' to 'have_jmp_call'.
22129589 17652 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5617c135 17653 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19298da4 17654 macros.
22129589 17655 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19298da4 17656 architectures.
22129589 17657 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5617c135 17658 MULTILIB_MATCHES): Ditto.
19298da4 17659
b86b3ea3
RG
176602008-01-23 Richard Guenther <rguenther@suse.de>
17661
17662 PR middle-end/31529
17663 * cgraphunit.c (cgraph_reset_node): Always mark the node
17664 not reachable if it is not queued already.
17665
fa8d4a0f
BS
176662008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
17667
17668 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
17669 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
17670 (cputype_selected): New static variable.
17671 (bfin_handle_option): Set it if -mcpu is used.
17672 (override_option): Select default set of workarounds if no cpu type
17673 selected on the command line.
17674 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
17675
17676 From Michael Frysinger <michael.frysinger@analog.com>
17677 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
17678 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
17679
17680 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
17681 for bf547, bf523, bf524, and bf526.
17682 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
17683 bf526.
17684 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
17685 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
17686 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
17687 __ADSPBF547__ and __ADSPBF54x__ for bf547.
17688 * doc/invoke.texi (Blackfin Options): Document that
17689 -mcpu now accept bf547, bf523, bf524, and bf526.
17690
df1a98ae
EB
176912008-01-22 Eric Botcazou <ebotcazou@adacore.com>
17692
17693 PR rtl-optimization/34628
17694 * combine.c (try_combine): Stop and undo after the first combination
17695 if an autoincrement side-effect on the first insn has effectively
17696 been lost.
17697
1a23970d
DE
176982008-01-22 David Edelsohn <edelsohn@gnu.org>
17699
17700 PR target/34529
17701 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
17702 Offset addresses are not valid for Altivec or paired float modes.
17703
42a89d2d
JJ
177042008-01-22 Jakub Jelinek <jakub@redhat.com>
17705
61c3a446
JJ
17706 PR c++/34607
17707 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
17708 if DECL_INITIAL (decl) is error_mark_node.
17709
270e749d
JJ
17710 PR c++/34914
17711 * c-common.c (handle_vector_size_attribute): Only allow
17712 integral, scalar float and fixed point types. Handle OFFSET_TYPE
17713 the same way as pointer, array etc. types.
17714 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
17715
42a89d2d
JJ
17716 PR c++/34917
17717 * tree.c (build_type_attribute_qual_variant): Call
17718 build_qualified_type if attributes are equal, but quals are not.
17719
027b740e
MLI
177202008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17721
17722 PR 32102
17723 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
17724 * flags.h (warn_strict_aliasing): Remove.
17725 (warn_strict_overflow): Remove.
17726 * opts.c (warn_strict_aliasing): Remove.
17727 (warn_strict_overflow): Remove.
17728 * c-opts.c (c_common_handle_option): -Wall only sets
17729 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
17730 (c_common_post_options): Give default values to -Wstrict-aliasing
17731 and -Wstrict-overflow if they are uninitialized.
17732 * common.opt (Wstrict-aliasing): Specify Var and Init.
17733 (Wstrict-overflow): Likewise.
17734
4218dc2d 177352008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
17736
17737 PR rtl-optimization/26854
17738 PR rtl-optimization/34400
17739 PR rtl-optimization/34884
17740 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
17741 DF_RD->gen.
17742 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
17743 (df_rd_bb_info.expanded_lr_out): Deleted
17744 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
17745 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
17746 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
17747 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
17748 Removed code to allocate, initialize or free expanded_lr_out.
17749 (df_rd_bb_local_compute_process_def): Restructured to make more
17750 understandable.
17751 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
17752 sets if the sets are being trimmed.
17753
115e6e55
L
177542008-01-22 H.J. Lu <hongjiu.lu@intel.com>
17755
17756 PR bootstrap/32287
17757 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
17758 (as_vers): Likewise.
17759 * configure: Regenerated.
17760
f9d02384
MLI
177612008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17762
17763 PR middle-end/33092
17764 * tree-pass.h (pass_build_alias): New pass.
17765 * tree-ssa-alias.c (gate_build_alias): New.
17766 (pass_build_alias): New.
17767 * passes.c (init_optimization_passes): Add pass_build_alias after
17768 pass_create_structure_vars.
17769
0387c142
WG
177702008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
17771
17772 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
17773 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
17774 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
17775 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
17776 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
17777 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
17778 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
17779 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
17780 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
17781 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
17782 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
17783 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
17784 * config/s390/s390.md (FP_ALL): New mode iterator.
17785 (_d): New mode attribute.
17786 ("*signbit<mode>2>"): Changed mode of first operand.
17787 ("isinf<mode>2"): Changed mode of first operand.
17788 ("*TDC_insn"): Adaptation for DFP modes.
17789
1d4f5374
BE
177902008-01-22 Ben Elliston <bje@au.ibm.com>
17791
17792 * tree.c (check_qualified_type): Improve function description.
17793
33b45227
JM
177942008-01-21 Jason Merrill <jason@redhat.com>
17795
17796 PR c++/34196
17797 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
17798 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
17799 if it is set.
17800
79e168da
DD
178012008-01-21 DJ Delorie <dj@redhat.com>
17802
17803 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
17804 return zero.
17805
bb0c55f6
RG
178062008-01-21 Richard Guenther <rguenther@suse.de>
17807
17808 PR middle-end/34856
17809 * tree-cfg.c (verify_expr): Allow all invariant expressions
17810 instead of just constant class ones as reference argument.
17811 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
17812 like any other constant.
17813 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
17814
94c54fea
L
178152008-01-21 H.J. Lu <hongjiu.lu@intel.com>
17816
17817 * regmove.c (fixup_match_1): Update call crossed frequencies.
17818
c54e3854
RG
178192008-01-21 Richard Guenther <rguenther@suse.de>
17820
17821 PR c/34885
17822 * tree-inline.c (setup_one_parameter): Deal with mismatched
17823 types using a VIEW_CONVERT_EXPR.
17824
b158b5c6
AD
178252008-01-21 Alon Dayan <alond@il.ibm.com>
17826 Olga Golovanevsky <olga@il.ibm.com>
22129589 17827
b158b5c6
AD
17828 PR tree-optimization/34701
17829 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
17830 when the structure size is not a power of 2.
17831
4218dc2d 178322008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
17833
17834 * doc/install.texi: Add doc for --enable-checking=df.
22129589 17835
539c54ba
KK
178362008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
17837
17838 PR rtl-optimization/34808
17839 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
17840
ecff8c1c
RS
178412008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
17842
17843 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
17844 input.
17845
4218dc2d 178462008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
17847
17848 PR rtl-optimization/26854
17849 PR rtl-optimization/34400
17850 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
17851 DF_RD->gen.
17852 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
17853 (df_rd_bb_info.expanded_lr_out): New.
17854 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
17855 * loop_iv.c (iv_analysis_loop_init): Ditto.
17856 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
17857 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
17858 Added code to allocate, initialize or free expanded_lr_out.
17859 (df_rd_bb_local_compute_process_def): Restructured to make
17860 more understandable.
17861 (df_rd_confluence_n): Add code to do nothing with fake edges and
17862 code to no apply invalidate_by_call sets if the sets are being trimmed.
17863 (df_lr_local_finalize): Renamed to df_lr_finalize.
17864 (df_live_local_finalize): Renamed to df_live_finalize.
17865
0decaff6
RS
178662008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
17867
17868 PR target/34831
17869 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
17870 deciding whether to use reciprocal instructions.
17871
d0b9dbd5
UB
178722008-01-19 Uros Bizjak <ubizjak@gmail.com>
17873
17874 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
17875 dwarf2out_note_section_used if cold_text_section is NULL.
17876
135a171d
JJ
178772008-01-19 Jakub Jelinek <jakub@redhat.com>
17878
17879 PR gcov-profile/34610
17880 * tree-cfg.c (make_edges): Mark both outgoing edges from
17881 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
17882 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
17883 from OMP_FOR and OMP_CONTINUE outgoing edges.
17884
17885 * tree-profile.c (tree_profiling): Return early if
17886 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
17887 at the end.
17888 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
17889 from cfun to child_cfun.
17890 * function.h (struct function): Add after_tree_profile bit.
17891
0a84fec6
AS
178922008-01-19 Anatoly Sokolov <aesok@post.ru>
17893
17894 * config/avr/avr.S (_exit): Disable interrupt.
17895
5aa52064
KZ
178962008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
17897 Steven Bosscher <stevenb.gcc@gmail.com>
17898
17899 PR rtl-optimization/26854
17900 PR rtl-optimization/34400
17901 * df-problems.c (df_live_scratch): New scratch bitmap.
17902 (df_live_alloc): Allocate df_live_scratch when doing df_live.
17903 (df_live_reset): Clear the proper bitmaps.
17904 (df_live_bb_local_compute): Only process the artificial defs once
17905 since the order is not important.
17906 (df_live_init): Init the df_live sets only with the variables
17907 found live by df_lr.
17908 (df_live_transfer_function): Use the df_lr sets to prune the
22129589 17909 df_live sets as they are being computed.
5aa52064
KZ
17910 (df_live_free): Free df_live_scratch.
17911
28a08168
ILT
179122008-01-18 Ian Lance Taylor <iant@google.com>
17913
17914 * common.opt: Add fmerge-debug-strings.
17915 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
17916 flag_merge_debug_strings rather than flag_merge_constants.
17917 * doc/invoke.texi (Option Summary): Mention
17918 -fmerge-debug-strings.
17919 (Debugging Options): Document -fmerge-debug-strings.
17920
1ea193c2
ILT
179212008-01-18 Ian Lance Taylor <iant@google.com>
17922
17923 PR c++/33407
17924 * tree.h (DECL_IS_OPERATOR_NEW): Define.
17925 (struct tree_function_decl): Add new field operator_new_flag.
17926 * tree-inline.c (expand_call_inline): When inlining a call to
17927 operator new, force the return value to go into a variable, and
17928 set DECL_NO_TBAA_P on that variable.
17929 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
17930
74ab34d3
UB
179312008-01-18 Uros Bizjak <ubizjak@gmail.com>
17932
17933 PR debug/34484
17934 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
17935 DWARF2_DEBUGGING_INFO.
17936 (dwarf2out_note_section_used): Ditto. Add prototype.
17937 (have_multiple_function_sections, text_section_used,
17938 cold_text_section_used, *cold_text_sections): Move declarations
17939 before their uses.
17940
9a75e92d 179412008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
17942
17943 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
17944 field and add signal_ra.
17945 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
17946 assignments to frame state pc. Move end of stack check after
17947 MD_FALLBACK_FRAME_STATE_FOR.
17948 (uw_update_context_1): Use frame state signal_regs if set, instead
17949 of checking signal_frame flag.
17950 (uw_update_context): Use frame state signal_ra if set.
17951 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
17952 * config/xtensa/linux-unwind.h: New file.
17953
9a75e92d 179542008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
17955
17956 * modulo-sched.c (get_sched_window): Fix comment typo.
17957
fae25b37
AM
179582008-01-17 Andrew MacLeod <amacleod@redhat.com>
17959
17960 PR tree-optimization/34648
17961 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
17962
2e152e16
AS
179632008-01-17 Anatoly Sokolov <aesok@post.ru>
17964
17965 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
17966 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
17967
185082a7
SP
179682008-01-17 Seongbae Park <seongbae.park@gmail.com>
17969
17970 PR rtl-optimization/34400
17971 * df-core.c (df_worklist_dataflow_overeager,
17972 df_worklist_dataflow_doublequeue): New functions.
17973 (df_worklist_dataflow): Two different worklist solvers.
17974 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
17975 New param.
17976
01a550c2
SP
179772008-01-16 Sebastian Pop <sebastian.pop@amd.com>
17978
17979 PR testsuite/34821
17980 * doc/invoke.texi: Document the dependence on pthread for fopenmp
17981 and ftree-parallelize-loops.
17982
80663107
MN
179832008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
17984
17985 PR rtl-optimization/34826
17986 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
17987
599824d2
AK
179882008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
17989
17990 * global.c (find_reg): Mark the eh regs as used if necessary.
17991 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
17992 * ra.h (struct allocno): no_eh_reg field added. Changed
17993 no_stack_reg type to bitfield.
17994
9328dd57
EB
179952008-01-17 Eric Botcazou <ebotcazou@adacore.com>
17996
17997 * tree.c (substitute_in_expr): Add missing 'break'.
17998
8a5b57cd
RG
179992008-01-17 Richard Guenther <rguenther@suse.de>
18000
18001 PR tree-optimization/34825
18002 * tree-ssa-math-opts.c (is_division_by): Do not recognize
18003 x / x as division to handle.
18004
e7ce29e7
JDA
180052008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18006
18007 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
18008 "-pthread" is specified.
18009 * pa-hpux11.h (LIB_SPEC): Likewise.
18010
9a75e92d 180112008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
18012 Peter Bergner <bergner@vnet.ibm.com>
18013
18014 PR rtl-optimization/33796
18015 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
18016
6595ec51
JDA
180172008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18018
18019 PR libgfortran/34699
18020 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
18021 static links.
18022 * pa-hpux10.h (LINK_SPEC): Likewise.
18023 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
18024
bdb55eae
RG
180252008-01-16 Richard Guenther <rguenther@suse.de>
18026
18027 PR middle-end/32628
18028 * fold-const.c (fold_convert_const_int_from_int): Do not
18029 set overflow if that occured only because of a sign extension
18030 change when converting from/to a sizetype with the same
18031 precision and signedness.
18032
2e2c7ce2
UB
180332008-01-16 Uros Bizjak <ubizjak@gmail.com>
18034
18035 PR debug/34249
18036 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
18037 location address to the correct place. Update copyright year.
18038
d49c149d
SP
180392008-01-16 Sebastian Pop <sebastian.pop@amd.com>
18040
18041 * lambda-code.c (lambda_transform_legal_p): Handle the case of
18042 no dependences in the dependence_relations vector.
18043
a03c6d64
JH
180442008-01-16 Jan Hubicka <jh@suse.cz>
18045
18046 PR rtl-optimization/31396
18047 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
18048 * cfg.c (dump_reg_info): Print it.
18049 * regs.h (struct reg_info_t): add freq_calls_crossed.
18050 (REG_FREQ_CALLS_CROSSED): New macro.
18051 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
18052 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
18053 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
18054 regmove_optimize): Update call crossed frequencies.
18055 * local-alloc.c (struct qty): Add freq_calls_crossed.
18056 (alloc_qty): Copute freq_calls_crossed.
18057 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
18058 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
18059 * ra.h (struct allocno): Add freq_calls_crossed.
18060
daf49354
SP
180612008-01-16 Sebastian Pop <sebastian.pop@amd.com>
18062
18063 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
18064 libgomp when compiling with ftree-parallelize-loops.
18065 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
18066
a1a5996d
RG
180672008-01-16 Richard Guenther <rguenther@suse.de>
18068
18069 PR tree-optimization/34769
18070 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
18071 * tree.c (int_cst_value): Instead make this function more
18072 permissive in what it accepts as valid input. Document this
18073 function always sign-extends the value.
18074
de4af523 180752008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 18076 Richard Guenther <rguenther@suse.de>
de4af523
JJ
18077
18078 PR c/34668
18079 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
18080 (gimple_fold_indirect_ref_rhs): ... this.
18081 (gimple_fold_indirect_ref): New function with foldings
18082 that preserve lvalueness.
18083 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
18084 * tree-flow.h (gimple_fold_indirect_ref): Declare.
18085 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
18086 to fold an INDIRECT_REF, fall back to the old use of
18087 fold_indirect_ref_1.
18088
6935bae7
SP
180892008-01-16 Sebastian Pop <sebastian.pop@amd.com>
18090
22129589 18091 * tree-data-ref.c (subscript_dependence_tester_1): Call
6935bae7
SP
18092 free_conflict_function.
18093 (compute_self_dependence): Same.
18094
a4b6974e
UB
180952008-01-16 Uros Bizjak <ubizjak@gmail.com>
18096
18097 PR debug/34249
18098 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
18099 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
18100 function global.
18101 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
18102 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
18103 for DWARF2_UNWIND_INFO targets.
18104
eb1387a0
RG
181052008-01-16 Richard Guenther <rguenther@suse.de>
18106
18107 PR c/34768
18108 * c-typeck.c (common_pointer_type): Do not merge inconsistent
18109 type qualifiers for function types.
18110
9326236d
JD
181112008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
18112
18113 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
18114 loop_iterator li from previous commit.
18115
181162008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
18117
18118 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
18119
1d4af1e8
SP
181202008-01-12 Sebastian Pop <sebastian.pop@amd.com>
18121
18122 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
18123 (parallelize_loops): Don't parallelize irreducible components.
18124
8103eebf
MLI
181252008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18126
18127 PR c++/24924
18128 * c-opts (c_common_post_options): Do not enable CPP
18129 flag_pedantic_errors by default.
22129589 18130
d556d181
EB
181312008-01-14 Eric Botcazou <ebotcazou@adacore.com>
18132
18133 PR rtl-optimization/31944
18134 * cse.c (remove_pseudo_from_table): New function.
18135 (merge_equiv_classes): Use above function to remove pseudo-registers.
18136 (invalidate): Likewise.
18137
726612d2
RG
181382008-01-13 Richard Guenther <rguenther@suse.de>
18139
18140 PR middle-end/34601
18141 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
18142 instead of TYPE_MODE to deal with calls from expand_one_error_var.
18143
51134e52
UB
181442008-01-13 Uros Bizjak <ubizjak@gmail.com>
18145
18146 * gcse.c (cprop_jump): Call validate_unshare_change instead of
18147 validate_change to unshare the source of the PC set.
18148
3097760b
JH
181492008-01-12 Jan Hubicka <jh@suse.cz>
18150
18151 PR middle-end/32135
18152 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
18153 references above array bounds. This might trigger bounds checks for
18154 pointers to arrays.
18155
42b22da8
SP
181562008-01-12 Sebastian Pop <sebastian.pop@amd.com>
18157
18158 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
18159 new_replaceable_dependencies.
18160
5db2e9ca
DK
181612008-01-12 Doug Kwan <dougkwan@google.com>
18162
18163 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
18164 instead of OPT_Wreturn_type in warning due to ignored return type
18165 qualifiers.
18166 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
18167 options included in -Wextra.
18168 * c.opt: New option -Wignored_qualifiers.
18169 * doc/invoke.texi (Warning Options, -Wextra): Add new option
18170 -Wignore_qualifiers.
18171 (-Wignored-qualifiers): Document.
18172 (-Wreturn-type): Remove description of functionality now handled
18173 by -Wignored-qualifiers.
18174
52ef2874
EB
181752008-01-12 Eric Botcazou <ebotcazou@adacore.com>
18176
18177 PR ada/33788
18178 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
18179 NOP_EXPR if it is between integral types with the same precision.
18180
a60b56a4
JH
181812008-01-12 Jan Hubicka <jh@suse.cz>
18182
18183 PR other/28023
18184 * invoke.texi (max-inline-recursive-depth): Fix default value.
18185
29ac1d9a
ZD
181862008-01-12 Zdenek Dvorak <ook@ucw.cz>
18187
18188 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
18189 correct type.
18190
166b25dc 181912008-01-11 Bob Wilson <bob.wilson@acm.org>
22129589 18192
166b25dc 18193 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22129589 18194
ad8151b7
JW
181952008-01-11 James E. Wilson <wilson@specifix.com>
18196
18197 PR target/26015
18198 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
18199
0d40cc60
AS
182002008-01-11 Anatoly Sokolov <aesok@post.ru>
18201
22129589
AS
18202 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
18203 save/restore frame pointer register and don't use 'call-prologues'
0d40cc60
AS
18204 optimization in function with "OS_task" attribute.
18205
15af420d
EB
182062008-01-11 Eric Botcazou <ebotcazou@adacore.com>
18207
18208 PR middle-end/31309
18209 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
18210 when copying to memory.
18211
c1e3e2d9
SB
182122008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
18213
18214 PR rtl-optimization/30905
18215 * cfgcleanup.c: Include dce.h
18216 (crossjumps_occured): New global variable.
18217 (try_crossjump_bb): Exit loop after finding a fallthru edge.
18218 If something changed, set crossjumps_occured to true.
18219 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
18220 Don't add/remove fake edges to exit here...
18221 (cleanup_cfg): ...but do it here, when crossjumping.
18222 Run a fast DCE when successful crossjumps occured in the latest
18223 iteration of try_optimize_cfg.
18224
8d0eca24
RG
182252008-01-11 Richard Guenther <rguenther@suse.de>
18226
18227 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
18228 (struct vn_unary_op_s): Likewise.
18229 (vn_reference_insert): Free old reference on hash collision.
18230
acfb3980
RA
182312008-01-10 Raksit Ashok <raksit@google.com>
18232
18233 PR rtl-optimization/27971
31bfe034
RA
18234 * combine.c (find_split_point): Split PLUS expressions which are
18235 inside a MEM rtx, and whose first operand is complex.
acfb3980 18236
b8a669d0
DD
182372008-01-10 DJ Delorie <dj@redhat.com>
18238
18239 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
18240 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
18241 (m32c_hard_regno_ok): Call the underlying function.
18242
d0f76c4b
RG
182432008-01-10 Richard Guenther <rguenther@suse.de>
18244
18245 PR middle-end/34683
18246 * tree-cfg.c (tree_merge_blocks): Do not go through the
18247 full-blown folding and stmt updating path if we just deal
18248 with virtual operands.
18249 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
18250 test for abnormal SSA_NAMEs.
18251
90d12f1f
AK
182522008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
18253
18254 PR middle-end/34641
18255 * reload.c (push_reload): Add assertions. All constants from
18256 reg_equiv_constant should have been used for replacing the respective
18257 pseudo earlier.
18258 (find_reloads_address): Invoke find_reloads_address_part for
18259 constant taken from the reg_equiv_constant array.
18260
71ae8557
SB
182612008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
18262
18263 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
18264 field (valnum) the first in the struct. Replace bools with
18265 unit bit fields.
18266
125e025e
RG
182672008-01-10 Richard Guenther <rguenther@suse.de>
18268
18269 PR tree-optimization/34651
18270 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
18271 types and ordering for masking and converting.
18272
64cbaace
SP
182732008-01-09 Sebastian Pop <sebastian.pop@amd.com>
18274
18275 PR tree-optimization/34017
18276 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
18277 also for PHI_NODE expressions.
18278
88743d3a
JH
182792008-01-09 Jan Hubicka <jh@suse.cz>
18280
18281 PR tree-optimization/34708
18282 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
18283 based on number of case labels.
18284 (init_inline_once): Remove switch_cost.
18285 * tree-inline.h (eni_weights_d): Remove switch_cost.
18286
c3e203cf
RG
182872008-01-09 Richard Guenther <rguenther@suse.de>
18288 Andrew Pinski <andrew_pinski@playstation.sony.com>
18289
18290 PR middle-end/30132
18291 * gimplify.c (gimplify_cond_expr): Do not create an addressable
18292 temporary if an rvalue is ok or an lvalue is not required.
18293
def49dd7
RG
182942008-01-09 Richard Guenther <rguenther@suse.de>
18295
18296 PR middle-end/34458
18297 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
18298 adjust return type.
18299
cbad2e09
RG
183002008-01-09 Richard Guenther <rguenther@suse.de>
18301
18302 PR middle-end/34679
18303 * tree.c (host_integerp): Check for sizetype only if the
18304 type is an integer type.
18305
59e5c37d
SB
183062008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
18307
18308 PR debug/26364
18309 * opts.c (decode_options): Disable inlining of functions called
18310 once if not in unit-at-a-time mode.
18311
712db60e
AO
183122008-01-09 Alexandre Oliva <aoliva@redhat.com>
18313
18314 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
18315
3fe2f42a
RG
183162008-01-08 Richard Guenther <rguenther@suse.de>
18317
18318 PR middle-end/31863
18319 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
18320 out early if the result will be unused.
18321
4d869718
UB
183222008-01-08 Uros Bizjak <ubizjak@gmail.com>
18323
18324 PR target/34709
18325 Revert:
18326
18327 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
18328 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22129589
AS
18329 for TARGET_RECIP.
18330
cedbd764 183312008-01-08 Jan Sjodin <jan.sjodin@amd.com>
22129589 18332
4d869718
UB
18333 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
18334 for vectorization tuned.
22129589 18335
a9990582
RG
183362008-01-08 Richard Guenther <rguenther@suse.de>
18337
18338 PR tree-optimization/34683
18339 * tree-ssa-operands.c (operand_build_cmp): Export.
18340 * tree-ssa-operands.h (operand_build_cmp): Declare.
18341 * tree-vn.c (vuses_compare): Remove.
18342 (sort_vuses): Use operand_build_cmp.
18343 (sort_vuses_heap): Likewise.
18344 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
18345 to re-use old VEC if available. Do not sort already sorted VUSEs.
18346 (vdefs_to_vec): Do not sort already sorted VDEFs.
18347
c90eee44
JJ
183482008-01-08 Jakub Jelinek <jakub@redhat.com>
18349
18350 PR middle-end/34694
18351 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
18352
8bce96f5
UB
183532008-01-08 Uros Bizjak <ubizjak@gmail.com>
18354
18355 PR target/34702
18356 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
18357 limitations of reciprocal sequences on x86 targets.
18358
4eefcc98
RG
183592008-01-08 Richard Guenther <rguenther@suse.de>
18360
18361 PR tree-optimization/34683
18362 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
18363
b69d564b
JJ
183642008-01-07 Jakub Jelinek <jakub@redhat.com>
18365
18366 PR target/34622
18367 * config/darwin.c (darwin_mergeable_string_section): Don't use
18368 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
18369
6b761851
UB
183702008-01-07 Uros Bizjak <ubizjak@gmail.com>
18371
18372 PR target/34682
18373 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
18374 negxf2. Macroize expander using X87MODEF mode iterator. Change
18375 predicates of op0 and op1 to register_operand.
8bce96f5
UB
18376 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
18377 expander using X87MODEF mode iterator. Change predicates of
18378 op0 and op1 to register_operand.
6b761851
UB
18379 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
18380 corresponding patterns and macroize using MODEF macro. Change
18381 predicates of op0 and op1 to register_operand and remove
18382 "m" constraint. Disparage "r" alternative with "!".
18383 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
18384 macroize using X87MODEF macro. Change predicates of op0 and op1
18385 to register_operand and remove "m" constraint. Disparage "r"
18386 alternative with "!".
18387 (absneg splitter with memory operands): Remove.
18388 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
18389 patterns and macroize using X87MODEF mode iterator.
18390 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
18391 Change predicate of op1 to register_operand.
18392 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 18393 for memory operands.
6b761851 18394
5ca0373f
NF
183952008-01-07 Nathan Froyd <froydnj@codesourcery.com>
18396
18397 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
18398
2eac9a76
RG
183992008-01-07 Richard Guenther <rguenther@suse.de>
18400
18401 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
18402 fields.
18403
b61ea03d
RG
184042008-01-07 Richard Guenther <rguenther@suse.de>
18405
18406 PR tree-optimization/34683
18407 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
18408 VOPs of the needed size to save memory. Use VEC_quick_push
18409 to save compile-time.
18410 (vdefs_to_vec): Likewise.
18411
c4bd75cd 184122008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 18413
6b761851
UB
18414 * config/spu/spu.md (divdf3): Genetate inline code for double
18415 division. The implementation doesn't handle INF or NAN, therefore it
18416 only applies when -ffinite-math-only is given.
c4bd75cd 18417
ba551ec2
PC
184182008-01-06 Paolo Carlini <pcarlini@suse.de>
18419
18420 PR libstdc++/34680
18421 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
18422 * doc/cpp.texi ([Common Predefined Macros]): Document.
18423
43db7979
UB
184242008-01-06 Uros Bizjak <ubizjak@gmail.com>
18425
18426 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
18427 order to use commutative addition instead of subtraction.
18428
2c460d12
RE
184292008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
18430 Mircea Namolaru <namolaru@il.ibm.com>
18431 Vladimir Yanovsky <yanov@il.ibm.com>
18432 Revital Eres <eres@il.ibm.com>
18433
18434 PR tree-optimization/34263
18435 * tree-outof-ssa.c (process_single_block_loop_latch,
18436 contains_tree_r): New functions.
18437 (analyze_edges_for_bb): Call process_single_block_loop_latch
18438 function to empty single-basic-block latch block if possible.
18439
5a37a60c
UB
184402008-01-05 Uros Bizjak <ubizjak@gmail.com>
18441
18442 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
18443 for TARGET_RECIP.
18444 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
18445
1a8a3a5e
RS
184462008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
18447
18448 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
18449
2a4430a6
RS
184502008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
18451
18452 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
18453
58fcda21
JJ
184542008-01-05 Jakub Jelinek <jakub@redhat.com>
18455
18456 PR tree-optimization/34618
18457 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
18458 flag from T.
18459
f1bf33ce
UB
184602008-01-05 Uros Bizjak <ubizjak@gmail.com>
18461
18462 PR target/34673
18463 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
18464 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
18465 Update copyright year.
18466
18467 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
18468 Update copyright year.
18469 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
18470 using NR fixup.
18471
12a6309e
ZZ
184722008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
18473
18474 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
18475 edge does not point to current bb before changing need_assert.
18476
bdb69bee
RG
184772008-01-04 Richard Guenther <rguenther@suse.de>
18478
18479 PR middle-end/34029
18480 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
18481 for verifying purposes if they are is_gimple_min_invariant.
18482
ffed8a01
AH
184832008-01-04 Aldy Hernandez <aldyh@redhat.com>
18484
18485 PR tree-optimization/34448
18486 PR tree-optimization/34465
18487 * gimplify.c (gimplify_init_constructor): Add new parameter
18488 notify_temp_creation. Use it.
18489 (gimplify_modify_expr_rhs): Take volatiles into account when
18490 optimizing constructors.
18491 Do not optimize constructors if gimplify_init_constructor will dump to
18492 memory.
18493 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
18494 * gcc.c-torture/compile/pr34448.c: New.
18495
b5ca517c
JJ
184962008-01-04 Jakub Jelinek <jakub@redhat.com>
18497
18498 PR gcov-profile/34609
18499 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
18500 return_slot if result is TREE_ADDRESSABLE.
18501
6a3d1d49
RS
185022008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
18503
18504 * config/mips/mips.md (sqrt_condition): Tweak comment.
18505 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
18506
6fc3c3c0
TT
185072008-01-03 Tom Tromey <tromey@redhat.com>
18508
b5ca517c 18509 PR c/34457
6fc3c3c0
TT
18510 * c-common.c (c_type_hash): Handle VLAs.
18511
045685a9
JH
185122008-01-03 Jan Hubicka <jh@suse.cz>
18513
18514 PR tree-optimization/31081
18515 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
18516 0 when inlining and not inlining to first basic block.
18517 (remap_decl): When var is initialized to 0, don't set default_def.
18518 (expand_call_inline): Set entry_bb.
18519 * tree-inline.h (copy_body_data): Add entry_bb.
18520
2092ee7d
JJ
185212008-01-03 Jakub Jelinek <jakub@redhat.com>
18522
cac67c08
JJ
18523 PR c++/34619
18524 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
18525 before returning.
18526
2092ee7d
JJ
18527 PR tree-optimization/29484
18528 * tree-inline.c (inline_forbidden_p_2): New function.
18529 (inline_forbidden_p): Disallow inlining if some static var
18530 has an address of a local LABEL_DECL in its initializer.
18531 * doc/extend.texi (Labels as Values): Document &&foo behaviour
18532 vs. inlining.
18533
2726bafe 185342008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
18535
18536 PR tree-optimization/34635
18537 * tree-data-ref.c (add_other_self_distances): Make sure that the
18538 evolution step is constant.
18539
99819c63
JJ
185402008-01-03 Jakub Jelinek <jakub@redhat.com>
18541
18542 PR middle-end/34608
12a6309e 18543 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 18544
1463dfa4
RS
185452008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
18546
18547 * tree-sra.c (scalarize_init): Insert the generate_element_init
18548 statements after the generate_element_zero statements.
18549
ee6ec666
RG
185502008-01-02 Richard Guenther <rguenther@suse.de>
18551
18552 PR middle-end/34093
18553 PR middle-end/31976
18554 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
18555 for very large number of operands instead of ICEing.
18556
6893e828
AN
185572008-01-02 Arthur Norman <acn1@cam.ac.uk>
18558
12a6309e 18559 PR target/34013
d0fb20be 18560 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
18561 while stack probing.
18562
1a7817e4
DG
185632008-01-01 Douglas Gregor <doug.gregor@gmail.com>
18564
6893e828 18565 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 18566 in C++0x mode.
1a7817e4 18567
882e337b
VR
185682008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
18569
18570 PR libmudflap/26442
18571 * tree-mudflap.c (mx_register_decls): Guard warning by
18572 !DECL_ARTIFICIAL check.
18573
f02ffa12
JJ
185742008-01-01 Jakub Jelinek <jakub@redhat.com>
18575
18576 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
18577 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
18578 sse5_perm<mode>): Fix constraints.