Ian Lance Taylor
0e6c5b5854
lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the high part of a paradoxical subreg, return a constant zero.
...
* lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
high part of a paradoxical subreg, return a constant zero.
From-SVN: r121466
2007-02-01 16:43:20 +00:00
Zdenek Dvorak
c0d919fa35
toplev.c (lang_dependent_init): Call init_set_costs.
...
* toplev.c (lang_dependent_init): Call init_set_costs.
* loop-init.c (loop_optimizer_init): Do not call init_set_costs.
From-SVN: r121464
2007-02-01 14:57:08 +00:00
Richard Guenther
ee7d8048d5
re PR middle-end/30656 (ICE with -ftrapv)
...
2007-02-01 Richard Guenther <rguenther@suse.de>
PR middle-end/30656
* fold-const.c (fold_negate_expr): Allow negating a
constant if overflow does not change.
From-SVN: r121460
2007-02-01 10:27:17 +00:00
Ralf Wildenhues
ab873839aa
c-tree.texi (Expression trees): Improve markup.
...
2007-01-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/c-tree.texi (Expression trees): Improve markup.
* doc/tm.texi (Register Classes, Addressing Modes)
(Floating Point): Fix spacing after abbreviations. Fix some
typos.
From-SVN: r121457
2007-01-31 21:36:17 -08:00
Ben Elliston
b818de221c
invoke.texi: Replace "bugfix" with "bug fix" throughout.
...
* doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
* doc/contrib.texi: Likewise.
* doc/install.texi: Likewise.
From-SVN: r121455
2007-02-01 14:05:18 +11:00
Ian Lance Taylor
e53a16e75f
lower-subreg.c: New file.
...
gcc/:
* lower-subreg.c: New file.
* rtl.def (CONCATN): Define.
* passes.c (init_optimization_passes): Add pass_lower_subreg and
pass_lower_subreg2.
* emit-rtl.c (update_reg_offset): New static function, broken out
of gen_rtx_REG_offset.
(gen_rtx_REG_offset): Call update_reg_offset.
(gen_reg_rtx_offset): New function.
* regclass.c: Revert patch of 2006-03-05, restoring
reg_scan_update.
(clear_reg_info_regno): New function.
* dwarf2out.c (concatn_loc_descriptor): New static function.
(loc_descriptor): Handle CONCATN.
* common.opt (fsplit_wide_types): New option.
* opts.c (decode_options): Set flag_split_wide_types when
optimizing.
* timevar.def (TV_LOWER_SUBREG): Define.
* rtl.h (gen_reg_rtx_offset): Declare.
(reg_scan_update): Declare.
* regs.h (clear_reg_info_regno): Declare.
* tree-pass.h (pass_lower_subreg): Declare.
(pass_lower_subreg2): Declare.
* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
(Optimize Options): Add -fsplit-wide-types to -O1 list. Document
-fsplit-wide-types.
* doc/rtl.texi (Regs and Memory): Document concat and concatn.
* Makefile.in (OBJS-common): Add lower-subreg.o.
(lower-subreg.o): New target.
gcc/testsuite/:
* gcc.dg/lower-subreg-1.c (test): New test.
From-SVN: r121453
2007-02-01 01:09:35 +00:00
Kazu Hirata
52f7138e13
* config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
...
From-SVN: r121443
2007-01-31 23:46:54 +00:00
Anatoly Sokolov
d1fc69e4a5
re PR target/19087 (Overflowed address in dwarf debug line information)
...
PR target/19087
* config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
From-SVN: r121426
2007-01-31 20:23:49 +03:00
Kaveh R. Ghazi
4fc7842350
re PR middle-end/29335 (transcendental functions with constant arguments should be resolved at compile-time)
...
PR middle-end/29335
* builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
testsuite:
* gcc.dg/torture/builtin-math-2.c: Add sqrt cases.
* gcc.dg/torture/builtin-math-3.c: Likewise.
From-SVN: r121423
2007-01-31 15:06:19 +00:00
Zdenek Dvorak
677cc14d2d
cfgloop.h: Include vec-prim.h.
...
* cfgloop.h: Include vec-prim.h.
(enum li_flags): Remove LI_ONLY_OLD.
(loop_iterator): Changed.
(fel_next, fel_init): Iterate over loop tree.
(FOR_EACH_LOOP_BREAK): New macro.
* loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
FOR_EACH_LOOP.
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
* modulo-sched.c (sms_schedule): Ditto.
* tree-vectorizer.c (vectorize_loops): Ditto.
* doc/loop.texi: Update information on loop numbering and behavior of
FOR_EACH_LOOP wrto new loops.
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
add_to_evolution_1): Test nestedness of loops instead of comparing
their numbers.
* tree-chrec.c (chrec_fold_plus_poly_poly,
chrec_fold_multiply_poly_poly, chrec_evaluate,
hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
reset_evolution_in_loop): Ditto.
* Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
From-SVN: r121422
2007-01-31 13:50:06 +00:00
Dirk Mueller
e7917d06e8
c-common.c (warn_about_parentheses): Separate warning about un-parenthized sequence of comparison operators from the...
...
2007-01-31 Dirk Mueller <dmueller@suse.de>
* c-common.c (warn_about_parentheses): Separate warning about
un-parenthized sequence of comparison operators from the one
which is supposed to warn about x <= y <= z.
* testsuite/gcc.dg/Wparentheses-2.c: Update and add new tests.
From-SVN: r121421
2007-01-31 13:43:40 +00:00
Uros Bizjak
9ed4207fce
optabs.h (enum optab_index): Add new OTI_isinf.
...
* optabs.h (enum optab_index): Add new OTI_isinf.
(isinf_optab): Define corresponding macro.
* optabs.c (init_optabs): Initialize isinf_optab.
* genopinit.c (optabs): Implement isinf_optab using isinf?f2
patterns.
* builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
(expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
using isinf_optab.
(expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
expand_builtin_interclass_mathfn.
* reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
* config/i386/i386.md (UNSPEC_FXAM): New constant.
(fxam<mode>2_i387): New insn pattern.
(isinf<mode>2) New expander to implement isinf, isinff and isinfl
built-in functions as x87 inline asm.
testsuite/ChangeLog:
* gcc.dg/builtins-63.c: New test.
From-SVN: r121419
2007-01-31 13:30:20 +01:00
Kazu Hirata
c9cde24cd1
* gcc/config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
...
From-SVN: r121377
2007-01-31 05:23:09 +00:00
Eric Christopher
537bbabdc3
config.gcc: Add geode.
...
2007-01-30 Eric Christopher <echristo@apple.com>
* config.gcc: Add geode.
From-SVN: r121376
2007-01-31 05:16:23 +00:00
Kazu Hirata
88512ba0b8
cgraphunit.c, [...]: Fix comment typos.
...
* cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
ipa-inline.c, tree-profile.c, tree-ssa-live.c,
tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
value-prof.c: Fix comment typos.
From-SVN: r121374
2007-01-31 03:45:38 +00:00
Manuel López-Ibáñez
b9edb4b11c
re PR c++/24745 (unpleasant warning for "if (NULL)")
...
2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/24745
* doc/invoke.texi (Wpointer-arith): Document warning.
cp/
* typeck.c (build_binary_op): Fix logic for warning. Move warning
to -Wpointer-arith.
* call.c (convert_like_real): Don't warn when converting to
boolean type.
testsuite/
* g++.dg/warn/null4.C: New.
From-SVN: r121361
2007-01-30 22:29:11 +00:00
Janis Johnson
05f182f63a
extend.texi (Decimal Floating Types): Remove decfloat.h from the list of discrepancies from the draft TR.
...
* doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
the list of discrepancies from the draft TR.
From-SVN: r121358
2007-01-30 20:23:25 +00:00
Dirk Mueller
01a40464d4
re PR c++/30601 (-Wreturn-type warns about more than what the documentation says)
...
2007-01-30 Dirk Mueller <dmueller@suse.de>
PR c++/30601
* doc/invoke.texi (-Wreturn-type): Update description to
match new behavior.
From-SVN: r121342
2007-01-30 16:20:06 +00:00
Richard Sandiford
9caea4a72f
cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
...
gcc/
* cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
From-SVN: r121339
2007-01-30 15:07:34 +00:00
Uros Bizjak
eaee446477
builtins.c (expand_builtin_int_interclass_roundingfn): New function to handle optabs that operate on floating point input argument and...
...
* builtins.c (expand_builtin_int_interclass_roundingfn): New function
to handle optabs that operate on floating point input argument and
output to integer output.
(expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
(expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
(expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
expand_builtin_interclass_mathfn ().
* config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
(ilogbsi2): Remove.
(ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
ilogbl built-in functions as x87 intrinsics.
From-SVN: r121336
2007-01-30 12:20:07 +01:00
Richard Guenther
9b1959ffca
re PR middle-end/27657 (bogus undefined reference error to static var with -g and -O)
...
2007-01-30 Richard Guenther <rguenther@suse.de>
PR middle-end/27657
* dwarf2out.c (reference_to_unused): Query varpool if the
variable was output.
* g++.dg/debug/pr27657.C: New testcase.
From-SVN: r121335
2007-01-30 10:23:01 +00:00
Richard Guenther
91851351be
re PR c/30313 (sizeof of expression including bit-field)
...
2007-01-30 Richard Guenther <rguenther@suse.de>
PR middle-end/30313
* passes.c (execute_one_pass): Reset in_gimple_form to not
confuse non-unit-at-a-time mode.
* gcc.dg/torture/pr30313.c: New testcase.
From-SVN: r121334
2007-01-30 10:17:09 +00:00
Roger Sayle
bcf52d7b57
fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to avoid undefined behaviour on overflow.
...
* fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
avoid undefined behaviour on overflow. Use force_fit_type_double
to construct the constant with the specified TREE_OVERFLOW.
From-SVN: r121332
2007-01-30 04:39:59 +00:00
Ben Elliston
5b08110801
Belated typo fix from 2007-01-02.
...
From-SVN: r121319
2007-01-30 10:06:44 +11:00
Janis Johnson
d9a66f98c1
decExcept.c: New.
...
libdecnumber/
* decExcept.c: New.
* decExcept.h: New.
libgcc/
* Makefile.in (dec-filenames): Add decExcept.
gcc/
* config/dfp-bit.c: Add parameterized support for fp exceptions.
* config/dfp-bit.h: Ditto.
gcc/testsuite/
* gcc.dg/dfp/dfp-except.h: New file.
* gcc.dg/dfp/fe-check.h: New file.
* gcc.dg/dfp/fe-binop.c: New test.
* gcc.dg/dfp/fe-convert-1.c: New test.
* gcc.dg/dfp/fe-convert-2.c: New test.
* gcc.dg/dfp/fe-convert-3.c: New test.
From-SVN: r121317
2007-01-29 23:01:35 +00:00
Manuel López-Ibáñez
c616e51b00
007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
...
* c-decl.c (pop_scope): Replace warnings with call to
warn_for_unused_label.
* c-common.h (warn_for_unused_label): Declare.
* c-common.c (warn_for_unused_label): Define.
cp/
* decl.c (pop_label): Replace warning with call to
warn_for_unused_label.
From-SVN: r121310
2007-01-29 21:05:58 +00:00
Manuel López-Ibáñez
971005966f
tree-optimize.c (update_inlined_to_pointers): Delete unused function.
...
2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* tree-optimize.c (update_inlined_to_pointers): Delete unused
function.
From-SVN: r121309
2007-01-29 20:54:59 +00:00
Janis Johnson
b7f0fff23b
Makefile.in (USER_H): Remove decfloat.h.
...
gcc/
* Makefile.in (USER_H): Remove decfloat.h.
* ginclude/decfloat.h: Delete, moving contents to ...
* ginclude/float.h: Add support for decimal floating point,
guarded by __STDC_WANT_DEC_FP__.
gcc/testsuite/
* gcc.dg/dfp/dec-eval-method.c: Replace decfloat.h with float.h.
* gcc.dg/dfp/decfloat-constants.c: Ditto.
* gcc.dg/dfp/convert-dfp.c: Ditto.
* gcc.dg/dfp/convert-int-saturate.c: Ditto.
From-SVN: r121308
2007-01-29 20:27:41 +00:00
Mike Stump
821f6218d7
gccint.texi (Top): Rename Loop Representation to Loop Analysis and Representation to resolve case...
...
* doc/gccint.texi (Top): Rename Loop Representation to Loop
Analysis and Representation to resolve case insensitive conflict.
* doc/loop.texi (Loop Analysis and Representation): Likewise.
From-SVN: r121306
2007-01-29 20:10:33 +00:00
Daniel Berlin
306219a28d
tree.h (struct tree_memory_tag): Add aliases member.
...
2007-01-28 Daniel Berlin <dberlin@dberlin.org>
* tree.h (struct tree_memory_tag): Add aliases member.
(MTAG_ALIASES): New macro.
* tree-ssa-alias.c (alias_bitmap_obstack): New variable.
(add_may_alias): Remove pointer-set. Update for may_aliases being
a bitmap.
(mark_aliases_call_clobbered): Update for may_aliases being a
bitmap.
(compute_tag_properties): Ditto.
(create_partition_for): Ditto.
(compute_memory_partitions): Ditto.
(dump_may_aliases_for): Ditto.
(is_aliased_with): Ditto.
(add_may_alias_for_new_tag): Ditto.
(rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
(compute_is_aliased): New function.
(compute_may_aliases): Call compute_is_aliased).
(init_alias_info): Initialize alias_bitmap_obstack.
(union_alias_set_into): New function.
(compute_flow_sensitive_aliasing): Use union_aliases_into.
(have_common_aliases_p): Rewrite to take two bitmaps and use
intersection.
(compute_flow_insensitive_aliasing): Stop using pointer-sets.
Update for bitmaps.
(finalize_ref_all_pointers): Update for add_may_alias changes.
(new_type_alias): Ditto.
* tree-flow-inline.h (may_aliases): Return a bitmap.
* tree-dfa.c (dump_variable): Check for MTAG_P'ness.
* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
may_aliases being a bitmap.
* tree-flow.h (struct var_ann_d): Remove may_aliases member.
may_aliases now returns a bitmap.
* tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
being a bitmap.
* tree-ssa-operands.c (add_virtual_operand): Update for
may_aliases being a bitmap.
From-SVN: r121302
2007-01-29 19:38:00 +00:00
Daniel Berlin
48e540b04f
re PR tree-optimization/30630 (Trunk GCC hangs while compiling cpu2k6/perlbench at -O2)
...
2007-01-29 Daniel Berlin <dberlin@dberlin.org>
PR tree-optimization/30630
* tree-ssa-structalias.c (do_complex_constraint): Mark correct
variable as changed.
From-SVN: r121295
2007-01-29 17:25:04 +00:00
Simon Martin
abc67de15a
re PR c++/28266 (ICE on invalid default variable)
...
PR c++/28266
* gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
expanded only once even if an error occurs.
From-SVN: r121288
2007-01-29 11:27:21 -05:00
Ben Elliston
098b68ad53
gcov-io.h (__gcov_indirect_call_profiler): Declare.
...
* gcov-io.h (__gcov_indirect_call_profiler): Declare.
(__gcov_average_profiler): Likewise.
(__gcov_ior_profiler): Likewise.
(__gcov_merge_ior): Likewise.
From-SVN: r121280
2007-01-29 16:53:40 +11:00
Jan Hubicka
52ca6d3504
builtins.c (expand_builtin_memset): Fix typo in my last patch.
...
* builtins.c (expand_builtin_memset): Fix typo in my last patch.
* value-prof.c (stringop_block_profile): Likewise.
From-SVN: r121272
2007-01-28 22:27:37 +00:00
Jan Hubicka
079a182e02
expr.c (emit_block_move_via_movmem, [...]): Add variant handling histograms; add wrapper.
...
* expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
variant handling histograms; add wrapper.
(clear_storage_via_libcall): Export.
(emit_block_move_hints): Break out from ...; add histograms.
(emit_block_move): ... this one.
(clear_storage_hints): Break out from ...; add histograms.
(clear_storage): ... this one.
(set_storage_via_memset): Handle histogram.
* expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
(clear_storage_hints, clear_storage_via_libcall): Declare.
(set_storage_via_setmem): Update prototype.
* doc/md.texi (movmem, setmem): Document new arguments.
* value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
new histograms.
(stringop_block_profile): New global function.
(tree_stringops_values_to_profile): Profile block size and alignment.
* value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
HIST_TYPE_IOR.
(struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
(stringop_block_profile): Declare.
* builtins.c: Include value-prof.h.
(expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
* gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
(GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
(GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
* profile.c (instrument_values): Add new counters.
* cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
calls.
* tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
(tree_init_edge_profiler): Build new profilers.
(tree_gen_average_profiler, tree_gen_ior_profiler): New.
(pass_tree_profile): Add dump.
(tree_profile_hooks): Update.
* Makefile.in (LIBGCOV): Add new constants.
* libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
__gcov_ior_profiler): New.
* i386.md (movmem/setmem expanders): Add new optional arguments.
From-SVN: r121270
2007-01-28 19:38:39 +00:00
David Edelsohn
b6bd337183
* doc/md.texi (Standard Pattern Names): Document blockage pattern.
...
From-SVN: r121268
2007-01-28 14:26:43 -05:00
Zdenek Dvorak
7f9bc51b09
tree-ssa-loop-unswitch.c: Include tree-inline.h.
...
* tree-ssa-loop-unswitch.c: Include tree-inline.h.
(tree_unswitch_single_loop): Pass eni_size_weights to
tree_num_loop_insns.
* tree-ssa-loop-manip.c: Include tree-inline.h.
(can_unroll_loop_p): Pass eni_size_weights to
tree_num_loop_insns.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
Pass eni_size_weights to estimate_num_insns.
* tree.h (init_inline_once): Export.
* toplev.c (backend_init): Call init_inline_once.
* cgraphunit.c (cgraph_process_new_functions,
cgraph_analyze_function): Pass eni_inlining_weights to
estimate_num_insns.
* ipa-inline.c (compute_inline_parameters): Ditto.
* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
to estimate_num_insns.
(try_unroll_loop_completely): Pass eni_size_weights to
tree_num_loop_insns.
* tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
ot estimate_num_insns.
* tree-ssa-loop-prefetch.c: Include tree-inline.h.
(loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
* tree-inline.c (eni_inlining_weights, eni_size_weights,
eni_time_weights): New variables.
(init_inline_once): Initialize them.
(struct eni_data): Mew.
(estimate_num_insns_1, estimate_num_insns): Use weights.
* tree-inline.h (struct eni_weights_d): New.
(eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
(estimate_num_insns): Declaration changed.
* cfgloop.h (tree_num_loop_insns): Declaration changed.
* Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
* gcc.dg/tree-ssa/loop-23.c: New test.
From-SVN: r121260
2007-01-28 17:40:38 +00:00
Zdenek Dvorak
b39c670645
tree-data-ref.c (conflict_fn): Assert that the number of affine relations in the conflict function is valid.
...
* tree-data-ref.c (conflict_fn): Assert that the number of affine
relations in the conflict function is valid.
From-SVN: r121259
2007-01-28 17:29:30 +00:00
Ian Lance Taylor
eeef0e452e
common.opt: Add fstrict-overflow.
...
./: * common.opt: Add fstrict-overflow.
* opts.c (decode_options): Set flag_strict_overflow if -O2.
* flags.h (TYPE_OVERFLOW_WRAPS): Define.
(TYPE_OVERFLOW_UNDEFINED): Define.
(TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
Replace all uses.
* tree.h (TYPE_TRAP_SIGNED): Don't define.
* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
(fold_negate_expr): Likewise.
(make_range): Likewise.
(extract_muldiv_1): Likewise.
(maybe_canonicalize_comparison): Likewise.
(fold_comparison): Likewise.
(fold_binary): Likewise.
(tree_expr_nonnegative_p): Likewise.
(tree_expr_nonzero_p): Likewise.
* tree-vrp.c (compare_values): Likewise.
(extract_range_from_binary_expr): Likewise.
(extract_range_from_unary_expr): Likewise.
* tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
Likewise.
(nowrap_type_p): Likewise.
* tree-scalar-evolution.c (simple_iv): Likewise.
* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
(build_range_check): Likewise.
(extract_muldiv_1): Likewise.
(fold_comparison): Likewise.
* tree-vrp.c (vrp_int_const_binop): Likewise.
(extract_range_from_unary_expr): Likewise.
* convert.c (convert_to_integer): Likewise.
* fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
(fold_comparison): Likewise.
(fold_binary): Likewise.
* optabs.c (optab_for_tree_code): Likewise.
* tree-vectorizer.c (vect_is_simple_reduction): Likewise.
* simplify-rtx.c (simplify_const_relational_operation): Check
flag_strict_overflow and flag_trapv.
(simplify_const_relational_operation): Likewise.
* doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
(Optimize Options): Add -fstrict-overflow to -O2 list. Document
-fstrict-overflow.
testsuite/:
* gcc.dg/strict-overflow-1.c: New test.
* gcc.dg/no-strict-overflow-1.c: New test.
* gcc.dg/strict-overflow-2.c: New test.
* gcc.dg/no-strict-overflow-2.c: New test.
* gcc.dg/strict-overflow-3.c: New test.
* gcc.dg/no-strict-overflow-3.c: New test.
* gcc.dg/strict-overflow-4.c: New test.
* gcc.dg/no-strict-overflow-4.c: New test.
* gcc.dg/fold-mod-1.c: Add -fstrict-overflow option.
* gcc.dg/pr15784-1.c: Likewise.
* gcc.dg/pr20922-1.c: Likewise.
* gcc.dg/pr20922-3.c: Likewise.
* gcc.dg/pr20922-4.c: Likewise.
* gcc.dg/pr20922-6.c: Likewise.
* gcc.dg/compare-4.c: Likewise.
* gcc.dg/torture/pr26898-1.c: Likewise.
* gcc.dg/tree-ssa/divide-1.c: Likewise.
* gcc.dg/tree-ssa/divide-2.c: Likewise.
* gcc.dg/tree-ssa/divide-3.c: Likewise.
* gcc.dg/tree-ssa/divide-4.c: Likewise.
* gcc.dg/tree-ssa/pr14490-1.c: Likewise.
* gcc.dg/tree-ssa/pr14490-3.c: Likewise.
* gcc.dg/tree-ssa/pr21082.c: Likewise.
* gcc.dg/tree-ssa/pr26899.c: Likewise.
* g++.dg/tree-ssa/pr21082.C: Likewise.
From-SVN: r121254
2007-01-28 05:15:06 +00:00
Roger Sayle
b73a605656
tree.c (tree_fold_gcd): Delete.
...
* tree.c (tree_fold_gcd): Delete.
* tree.h (tree_fold_gcd): Remove prototype.
* tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
test whether one constant integer is a multiple of another. Instead
call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
* fold-const.c (multiple_of_p): We've determined both TOP and
BOTTOM are integer constants so we can call int_const_binop directly
instead of the more generic const_binop.
From-SVN: r121253
2007-01-28 05:04:48 +00:00
Roger Sayle
74890d7bbd
fold-const.c (size_binop): In the fast-paths for X+0...
...
* fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
1*X check that the constant hasn't overflowed, to preserve the
TREE_OVERFLOW bit.
(round_up): Provide an efficient implementation when rouding-up an
INTEGER_CST to a power-of-two.
* gcc-dg/large-size-array-3.c: New test case.
From-SVN: r121252
2007-01-28 03:48:41 +00:00
Gerald Pfeifer
b93633383b
Add missing doc/install.texi to ChangeLog entry of the previous commit.
...
From-SVN: r121245
2007-01-28 00:12:11 +00:00
Ralf Wildenhues
2a01aae626
sourcebuild.texi: Add comma for clarity.
...
* doc/sourcebuild.texi: Add comma for clarity.
* doc/extend.texi: Fix some typos.
* doc/passes.texi: Likewise.
* doc/cppinternals.texi: Likewise.
* doc/c-tree.texi: Likewise.
* doc/tree-ssa.texi: Likewise.
From-SVN: r121242
2007-01-27 23:55:27 +00:00
Jan Hubicka
7fbb9a499c
tree-sra.c (sra_walk_function): Don't rely on aliases being build.
...
* tree-sra.c (sra_walk_function): Don't rely on aliases being build.
(pass_sra): Do not require alias information.
* passes.c (init_optimization_passes): Add SRA
From-SVN: r121240
2007-01-27 22:31:19 +00:00
Steven Bosscher
9eab67850b
tracer.c (rest_of_handle_tracer): We already cleaned up the CFG in tracer() so don't do it here again.
...
* tracer.c (rest_of_handle_tracer): We already cleaned
up the CFG in tracer() so don't do it here again.
* cfgcleanup.c (rest_of_handle_jump2): Don't repeat
cleanup_cfg here, either. And don't call renumber_insns.
* cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
and BB_HEAD are in the insn stream here. Instead make sure
that BB_INSN is valid on all insns. Also, do check here that
there are no pending branch predictions...
(rtl_verify_flow_info): ...instead of doing it here. Checks
for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
here.
From-SVN: r121231
2007-01-27 14:48:02 +00:00
Roger Sayle
ffa1b3c684
i386.c (ix86_swap_binary_operands_p): New helper function to simplify/factorize operand order canonicalization.
...
* config/i386/i386.c (ix86_swap_binary_operands_p): New helper
function to simplify/factorize operand order canonicalization.
(ix86_fixup_binary_operands): Reorganize using the above function.
(ix86_binary_operator_ok): Likewise.
From-SVN: r121227
2007-01-27 02:52:37 +00:00
Jakub Jelinek
e2e3023612
genattrtab.c (struct attr_value_list, [...]): Move to file scope from optimize_attrs.
...
* genattrtab.c (struct attr_value_list, insn_code_values): Move to
file scope from optimize_attrs.
(simplify_test_exp): If insn_code_values is not NULL, use it to speed
up search.
(optimize_attrs): Clear insn_code_values after freeing it.
From-SVN: r121216
2007-01-27 00:15:08 +01:00
Zdenek Dvorak
cdd76d88c8
tree-ssa-address.c (create_mem_ref): Remove ", bsi" from a parts.base assignment.
...
* tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
a parts.base assignment.
From-SVN: r121213
2007-01-26 19:47:20 +00:00
Zdenek Dvorak
d93817c435
tree-data-ref.c (dump_subscript): Use dump_conflict_function.
...
* tree-data-ref.c (dump_subscript): Use dump_conflict_function.
(compute_subscript_distance, initialize_data_dependence_relation,
finalize_ddr_dependent, analyze_ziv_subscript,
analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_univar,
compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
analyze_siv_subscript, analyze_miv_subscript,
analyze_overlapping_iterations, subscript_dependence_tester_1,
compute_self_dependence, free_dependence_relation): Work
with affine_fn instead of chrecs.
(dump_affine_function, dump_conflict_function, affine_function_equal_p,
common_affine_function, affine_function_base,
affine_function_constant_p, affine_fn_op, affine_fn_plus,
affine_fn_minus, affine_fn_free, conflict_fn_not_known,
conflict_fn_no_dependence, free_conflict_function, free_subscripts,
conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
(all_chrecs_equal_p): Removed.
* tree-data-ref.h (affine_fn, conflict_function): New types.
(struct subscript): Change type of conflicting_iterations_in_a
and conflicting_iterations_in_b.
From-SVN: r121212
2007-01-26 19:33:04 +00:00
Steve Ellcey
dfcb2b5145
re PR target/30182 (FAIL: gcc.dg/pr28796-2.c (test for excess errors))
...
PR other/30182
* config/pa/pa.h (TARGET_HPUX_11): New.
* config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
* config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
From-SVN: r121211
2007-01-26 18:16:29 +00:00