PR tree-optimization/29801
* tree-ssa-ccp.c (get_symbol_constant_value): New function.
(get_default_value): Use get_symbol_constant_value.
(set_lattice_value): ICE when the value of the constant is
changed.
(visit_assignment): Ignore VDEFs of read-only variables.
* gcc.dg/pr29801.c: New test.
From-SVN: r118926
PR middle-end/29584
* tree-ssa-forwprop.c (simplify_switch_expr): Don't
optimize if DEF doesn't have integral type.
* gcc.dg/torture/pr29584.c: New test.
From-SVN: r118921
* config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
pre-darwin9 system, unless the user asks for it directly.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
* config.gcc: Add suppport for darwin9.h.
* config/darwin9.h: Add.
* doc/install.texi (Specific): Clarify darwin documentation.
From-SVN: r118917
* gcc.dg/tree-ssa/stdarg-2.c, gcc.dg/tree-ssa/stdarg-4.c:
Condition PowerPC tests for saving FPRs on powerpc_fprs.
* gcc.target/powerpc/compress-float-ppc.c,
gcc.target/powerpc/compress-float-ppc-pic.c: Only test if
powerpc_fprs.
* gcc.target/powerpc/rs6000-power2-2.c: Only test if powerpc_fprs;
do not pass -mhard-float.
From-SVN: r118912
PR middle-end/26306
* gimplify.c (gimplify_expr): Only force a load for references to
non-BLKmode volatile values.
* doc/implement-c.texi (Qualifiers implementation): Document the
interpretation of what a volatile access is.
* doc/extend.texi (C++ Extensions): Rework same documentation.
From-SVN: r118900
PR fortran/29391
PR fortran/29489
* simplify.c (simplify_bound): Fix the simplification of
LBOUND/UBOUND intrinsics.
* trans-intrinsic.c (simplify_bound): Fix the logic, and
remove an erroneous assert.
* gcc/testsuite/gfortran.dg/bound_2.f90: Add more checks.
* gcc/testsuite/gfortran.dg/bound_3.f90: New test.
From-SVN: r118888
* trans-decl.c (gfc_get_symbol_decl): Fix formatting.
* io/open.c (new_unit): Format %d expects an int variable.
* runtime/error.c (show_locus): Format %d expects an int variable.
From-SVN: r118887
* arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
Thumb.
(arm_neg_abssi2): Renamed from neg_abssi2.
(thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
From-SVN: r118884
* config/i386/i386.c (ix86_function_sseregparm): Fix comment:
number of arguments passed to local functions in SSE registers is 3.
* doc/invoke.texi (Function Attributes) [sseregparm]: Correct
number of arguments passed in SSE registers to 3.
From-SVN: r118883
2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR target/29201
* cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
bb to ...
(get_last_bb_insn): ... new global function.
(basic_block.h): Declare it.
* haifa-sched.c (create_recovery_block): Use it.
2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR target/29201
* gcc.c-torture/compile/pr29201.c: New test for ia64 target.
From-SVN: r118882
2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29788
* fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
to what is the const decl is a place holder for.
2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR tree-opt/29788
* gfortran.fortran-torture/compile/inline_1.f90:
New testcase.
From-SVN: r118861
* config/i386/i386.opt: New target option -mx87regparm.
* config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
float_in_x87: Add new variables. mmx_words, sse_words: Remove.
(X87_REGPARM_MAX): Define.
* config/i386/i386.c (override_options): Error out for
-mx87regparm but no 80387 support.
(ix86_attribute_table): Add x87regparm.
(ix86_handle_cconv_attribute): Update comments for x87regparm.
(ix86_comp_type_attributes): Check for mismatched x87regparm types.
(ix86_function_x87regparm): New function.
(ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
point registers.
(init_cumulative_args): Initialize x87_nregs and float_in_x87
variables.
(function_arg_advance): Process x87_nregs and x87_regno when
floating point argument is to be passed in 80387 register.
(function_arg): Pass XFmode arguments in 80387 registers for local
functions. Pass SFmode and DFmode arguments to local functions
in 80387 registers when flag_unsafe_math_optimizations is set.
* reg-stack.c (convert_regs_entry): Disable NaN load for
stack registers that are used for argument passing.
* doc/extend.texi: Document x87regparm function attribute.
* doc/invoke.texi: Document -mx87regparm.
testsuite/ChangeLog:
* gcc.target/i386/x87regparm-1.c: New test.
* gcc.target/i386/x87regparm-2.c: New test.
* gcc.target/i386/x87regparm-3.c: New test.
* gcc.target/i386/x87regparm-4.c: New test.
From-SVN: r118859
* tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
* tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
arg MODE; all callers changed. Use it to determine validity per
machine mode instead of using Pmode for all memory references.
(get_address_cost): Likewise add and use new arg MEM_MODE.
From-SVN: r118856
PR tree-optimization/29581
* lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
REPLACEMENTS, FIRSTBSI arguments. If initial condition or
type is different between Y and USE, create a temporary
variable, initialize it at the beginning of the body bb
and use it as replacement instead of Y.
* gcc.dg/pr29581-1.c: New test.
* gcc.dg/pr29581-2.c: New test.
* gcc.dg/pr29581-3.c: New test.
* gcc.dg/pr29581-4.c: New test.
* gfortran.dg/pr29581.f90: New test.
From-SVN: r118848
2006-11-15 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/29753
* gimplify.c (fold_indirect_ref_rhs): Use
STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
From-SVN: r118845
2006-11-15 Bud Davis <bdavis9659@sbcglobal.net>
PR fortran/28974
* gfortran.h (gfc_expr): Add element which holds a splay-tree
for the exclusive purpose of quick access to a constructor by
offset.
* data.c (find_con_by_offset): Use the splay tree for the search.
(gfc_assign_data_value): Use the splay tree.
(gfc_assign_data_value_range): ditto.
* expr.c (gfc_get_expr): Initialize new element to null.
(gfc_free_expr): Delete splay tree when deleting gfc_expr.
From-SVN: r118844
* gfortran.h (GFC_MAX_LINE): Remove constant definition.
(gfc_option_t): Clarify comments.
* options.c: Set default line length limits to actual default
values, rather than flag values.
* scanner.c: Eliminate checking and handling of the
fixed/free_line_length flag values.
From-SVN: r118842
* expmed.c (emit_store_flag_1): New function.
(emit_store_flag): Call it. If we can't find a suitable scc insn,
try a cstore insn.
* expr.c (do_store_flag): If we can't find a scc insn, try cstore.
Use do_compare_rtx_and_jump.
* arm.h (BRANCH_COST): Increase to 2 on Thumb.
* arm.md (cstoresi4): New define_expand.
(cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
(cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
(cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
From-SVN: r118829
2006-11-14 Richard Guenther <rguenther@suse.de>
* gcc.target/i386/math-torture/math-torture.exp: Restrict
to i?86 and x86_64 targets.
From-SVN: r118827
* config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
iwmmxt_nregs if TARGET_IWMMXT_ABI.
* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
movv2si_internal): Support moves between core registers.
From-SVN: r118825