gcc/
PR tree-optimization/25485
* tree-vrp.c (extract_range_from_binary_expr): Handle cases
where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
is known to be false and true, respectively.
gcc/testsuite/
PR tree-optimization/25485
* gcc.dg/tree-ssa/pr25485.c: New.
From-SVN: r109704
2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
Richard Guenther <rguenther@suse.de>
PR rtl-optimization/24257
* gcse.c (find_moveable_store): Only consider a store movable
when the SET_SRC of the insn can be assigned to a register.
* gcc.dg/torture/pr24257.c: New testcase.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r109701
* combine.c (struct reg_stat): Add new fields truncation_label and
truncated_to_mode.
(record_value_for_reg): Reset truncated_to_mode.
(record_truncated_value): New function.
(check_promoted_subreg): Call it. Rename to check_conversions.
(combine_instructions): Rename check_promoted_subreg to
check_conversions.
(reg_truncated_to_mode): New function.
(make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
(gen_lowpart_or_truncate): New function.
(force_to_mode): Use it instead of gen_lowpart.
From-SVN: r109679
2006-01-13 Steven G. Kargl <kargls@comcast.net>
PR fortran/25756
* symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
from g95).
2006-01-13 Bernhard Fischer <rep.nop@aon.at>
PR fortran/25756
* gfortran.dg/label_3.f90: New test.
From-SVN: r109674
* config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
alternatives to match style of other entries.
(*vec_extractv2di_1_sse): Likewise. Fix mode attr.
From-SVN: r109671
2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/24365
* tree-inline.c (declare_return_variable): If the return variable
was marked as a non gimple complex, set the return slot variable
to be a non gimple comple variable.
2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/24365
* g++.dg/opt/complex5.C: New test.
From-SVN: r109667
2006-01-13 Richard Guenther <rguenther@suse.de>
* builtins.c (expand_builtin_sincos): New function.
(expand_builtin_mathfn_3): Remove dead code, sin and cos
do not set errno.
(expand_builtin): Expand sincos using expand_builtin_sincos.
* gcc.target/i386/387-9.c: New testcase.
From-SVN: r109664
* config/m32c/shift.md: Rewrite: Allow arbitrary operands for
shift counts, separate SI shifts for m32c vs m16c, pass shift type
so that constant shifts can be split.
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
(m32c_valid_pointer_mode): Make static.
(shift_gen_func_for): New.
(m32c_prepare_shift): Use it. Split large const shifts into
multiple shifts.
* config/m32c/predicates.md (shiftcount_operand): Allow more
general operands.
(longshiftcount_operand): New.
* doc/md.texi (Machine Constraints): Document In6.
From-SVN: r109661
2006-01-11 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
to try to avoid clobbering pieces of structures when we know
something about the whole structure.
* tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
From-SVN: r109651
* config/m32c/addsub.md (addhi3): Add two more alternatives, for
mova with fb, and for fb+0 -> An.
* config/m32c/mov.md (peephole2): Fix enabling logic.
* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
FINI_ARRAY_SECTION_ASM_OP): Define.
* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary variable.
(m32c_legitimize_reload_address): New logic to reload FB to An.
(m32c_output_reg_push): Add newline.
(m32c_output_reg_pop): Likewise.
From-SVN: r109648
* intrinsics/c99_functions.c: Add function prototypes to avoid
warnings from -Wstrict-prototypes -Wmissing-prototypes. On Tru64
work around a brain-dead libm by redirecting calls to cabs{,f,l}
to a local __gfc_cabs{,f,l}.
From-SVN: r109646