OSDN Git Service

* builtins.c (fold_builtin_frexp): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 6314414..cd1e85d 100644 (file)
@@ -1,3 +1,318 @@
+2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin_frexp): New.
+       (fold_builtin_2): Use it.
+
+2007-02-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/invoke.texi (Spec Files): Document getenv spec function.
+
+       * gcc.c (getenv_spec_function): New function.
+       (static_spec_functions): Add it.
+       * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
+       (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
+       header files.
+
+2007-02-22  Michael Matz  <matz@suse.de
+
+       PR c++/29433
+       * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
+       (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
+
+2007-02-22  Ian Lance Taylor  <iant@google.com>
+
+       PR debug/30898
+       * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
+       (mem_loc_descriptor): Call it.
+
+2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
+           Ira Rosen  <irar@il.ibm.com>
+
+       * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
+
+2007-02-22  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/30843
+       * tree-vect-transform.c (vect_transform_loop): Remove strided scalar 
+       stores only after all the group is vectorized.
+
+2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
+
+       PR tree-optimization/30858
+       * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
+       in the reduction cycle have a single use in the loop.
+       * tree-vectorizer.h (relevant): Add documentation.
+
+2007-02-20  Mike Stump  <mrs@apple.com>
+
+       * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
+       * configure: Regenerate.
+
+2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
+
+       Change the defaults of some parameters and options.
+       * config/spu/spu-protos.h (spu_optimization_options): Declare.
+       * config/spu/spu.c (spu_optimization_options): Add.
+       (spu_override_options): Change params in spu_optimization_options.
+       * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
+
+       Register 127 is only 16 byte aligned when used as a frame pointer.
+       * config/spu/spu-protos.h (spu_init_expanders): Declare.
+       * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
+       HARD_FRAME_POINTER_REGNUM.
+       (spu_legitimate_address):  Use regno_aligned_for_reload.
+       (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
+       aligned when frame_pointer_needed is true.
+       (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
+       to 8 bits.
+       * config/spu/spu.h (INIT_EXPANDERS): Define.
+
+       Make sure shift and rotate instructions have valid immediate operands.
+       * config/spu/predicates.md (spu_shift_operand): Remove.
+       * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
+       * config/spu/constraints.md (W, O): Extend range.
+       * config/spu/spu.md (umask, nmask): Define.
+       (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
+       lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
+       rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
+       rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
+       spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
+       (lshr<mode>3_reg):  Fix rtl description.
+
+       Make sure mulhisi immediate operands are valid.
+       * config/spu/predicates.md (imm_K_operand): Add.
+       * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
+
+       Generate constants using fsmbi and andi.
+       * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
+       (print_operand, spu_split_immediate, classify_immediate,
+       fsmbi_const_p): Handle IC_FSMBI2.
+
+       Correctly handle a CONST_VECTOR containing symbols.
+       * config/spu/spu.c (print_operand): Handle HIGH correctly.
+       (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
+       (immediate_load_p): Allow symbols that use 2 instructions to create.
+       (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
+       with symbols when flag_pic is set.
+       (const_vector_immediate_p): New.
+       (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
+       accept a CONST_VECTOR with symbols.
+       (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
+       accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
+       correctly.
+       * config/spu/spu.md (high, low): Delete.
+       (low_<mode>): Define.
+
+       Remove INTRmode and INTR_REGNUM, which didn't work.
+       * config/spu/spu.c (spu_conditional_register_usage): Remove reference
+       of INTR_REGNUM.
+       * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
+       set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
+       peephole2 pattern): Don't use INTR or 131.
+       (movintrcc): Delete.
+       * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
+       CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
+       * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
+       (UNSPEC_SET_INTR): Add.
+       * config/spu/spu-modes.def (INTR): Remove.
+
+       More accurate warnings about run-time relocations.
+       * config/spu/spu.c (reloc_diagnostic): Test in_section.
+
+       Correctly warn about immediate arguments to specific intrinsics.
+       * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
+       (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
+       the instruction predicate.
+
+       Fix tree check errors with latest update.
+       * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
+       CALL_EXPR_ARG.
+       (spu_expand_builtin): Use CALL_EXPR_FN.
+
+       Add missing specific intrinsics.
+       * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
+       si_bislede.
+       * config/spu/spu_internals.h: Ditto.
+
+       Fix incorrect operand modifiers.
+       * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
+       * config/spu/spu.md (xor<mode>3):  Change %S to %J.
+
+       Optimize one case of zero_extend of a vec_select.
+       * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
+
+       Accept any immediate for hbr.
+       * config/spu/spu.md (hbr):  Change s constraints to i.
+
+2007-02-21  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
+       condexec_count when skipping USE and CLOBBER.
+
+2007-02-21  Nick Clifton  <nickc@redhat.com>
+
+       * common.opt (Warray-bounds): Add Warning attribute.
+       (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
+       Likewise.
+       (fsized-zeroes): Add Optimization attribute.
+       (fsplit-wide-types, ftree-scev-cprop): Likewise.
+       * c.opt (Wc++0x-compat): Add Warning attribute.
+
+2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       PR middle-end/30761
+       * reload1.c (eliminate_regs_in_insn): In the single_set special
+       case, attempt to re-recognize the insn before falling back to
+       having reload fix it up.
+
+2007-02-20  Eric Christopher  <echristo@gmail.com>
+
+       * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
+       Rewrite accordingly.
+       (frv_read_iacc_argument): Ditto.
+       (frv_expand_set_builtin): Take a call instead of arglist, update for
+       above changes.
+       (frv_expand_unop_builtin): Ditto.
+       (frv_expand_binop_builtin): Ditto.
+       (frv_expand_cut_builtin): Ditto.
+       (frv_expand_binopimm_builtin): Ditto.
+       (frv_expand_voidbinop_builtin): Ditto.
+       (frv_expand_int_void2arg): Ditto.
+       (frv_expand_prefetches): Ditto.
+       (frv_expand_voidtriop_builtin): Ditto.
+       (frv_expand_voidaccop_builtin): Ditto.
+       (frv_expand_load_builtin): Ditto.
+       (frv_expand_store_builtin): Ditto.
+       (frv_expand_mdpackh_builtin): Ditto.
+       (frv_expand_mclracc_builtin): Ditto.
+       (frv_expand_mrdacc_builtin): Ditto.
+       (frv_expand_mwtacc_builtin): Ditto.
+       (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
+       calls for above.
+
+2007-02-20  Janis Johnson  <janis187@us.ibm.com>
+
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
+       * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
+       cmpb instruction.
+       (HAVE_GAS_DFP): Check for assembler support of decimal floating
+       point instructions.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
+       * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
+       masks to power6 and power6x and to POWERPC_MASKS.
+       * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
+       _ARCH_PWR6.
+       * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
+       * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
+       * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
+       Access PROTOTYPE as variable, not mask.
+
+2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * rtl.h (remove_reg_equal_equiv_notes): New prototype.
+       * rtlanal.c (remove_reg_equal_equiv_notes): New function.
+       * combine.c (adjust_for_new_dest): Use it.
+       * postreload.c (reload_combine): Likewise.
+
+2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
+       notes on an insn with multiple sets, even if single_set returns
+       non-NULL for that insn.
+
+2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
+       scalbn and scalbln.
+
+2007-02-20  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
+       if user didn't pass it.
+       * config/i386/darwin.h (CC1_SPEC): Likewise.
+       * config/rs6000/darwin.h (CC1_SPEC): Likewise.
+       (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
+       -mmacosx-version-min.
+
+2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+           Uros Bizjak  <ubizjak@gmail.com>
+
+       * optabs.h (enum optab_index): Add new OTI_scalb.
+       (scalb_optab): Define corresponding macro.
+       * optabs.c (init_optabs): Initialize scalb_optab.
+       * genopinit.c (optabs): Implement scalb_optab using scalb?f3
+       patterns.
+       * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
+       BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
+       (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
+       and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
+       flag_unsafe_math_optimizations is set.
+
+       * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
+       to implement scalbf, scalb and scalbl built-ins as inline x87
+       intrinsics.
+
+2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+           DJ Delorie <dj@redhat.com>
+
+       PR other/30824
+       * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
+       (diagnostic_report_diagnostic): ... here, and turn them into real
+       errors. If warnings are inhibited, no need to do anything.
+
+2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (expm1xf2): Reorder insn sequence for
+       better code generation.
+
+2007-02-20  Ben Elliston  <bje@au.ibm.com>
+
+       * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
+
+2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/alpha/alpha.c, config/alpha/alpha.md,
+       config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
+       config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
+       config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
+       config/arm/lib1funcs.asm: Follow spelling conventions.
+
+       * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
+       config/fr30/fr30.md, config/i386/i386.h,
+       config/iq2000/iq2000.h, config/iq2000/predicates.md,
+       config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
+       config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
+       config/pdp11/pdp11.c, config/pdp11/pdp11.h,
+       config/rs6000/altivec.md, config/rs6000/rs6000.c,
+       config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
+       config/sparc/sparc.c, config/sparc/sparc.h,
+       config/sparc/sparc.md, config/spu/constraints.md,
+       config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
+       conventions.
+
+2007-02-20  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/29943
+       * varasm.c (use_blocks_for_decl_p): Return false for decls with
+       alias attribute.
+
+2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
+
+       * doc/invoke.texi (-ftree-lrs): Remove.
+
+2007-02-19  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
+       NULL.
+
+2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
+
+       * config/ia64/ia64.c (ia64_expand_builtin): Use the
+       new CALL_EXPR_FN macro for retrieving the function
+       declaration of the input expression.
+
 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * c.opt (Waddress): New.
        -Wstring-literal-comparison and -Walways-true with -Waddress.
        * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
        with -Waddress.
-       
+
 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-cfg.c (dump_function_to_file): Be prepared for functions
 
 2007-02-19  Richard Henderson  <rth@redhat.com>
 
-        PR debug/29558
-        * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
-        in memory.
+       PR debug/29558
+       * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
+       in memory.
 
 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
 
 
        * except.c (expand_builtin_eh_return_data_regno): Pass entire
        CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
-        accessors.
+       accessors.
 
        * coverage.c (create_coverage): Use build_call_expr.
 
 
 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
 
-       * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
-       warn about C++0x compatibility.
+       * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
+       warn about C++0x compatibility.
 
 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>