1. 02 Dec, 2006 8 commits
  2. 01 Dec, 2006 17 commits
    • decl.c (poplevel): Check DECL_INITIAL invariant. · 72c4a4ca
      	* decl.c (poplevel): Check DECL_INITIAL invariant.
      	(duplicate_decls): Preserve DECL_INITIAL when eliminating
      	a new definition in favour of an old declaration.
      	(start_preparsed_function): Define and document value of
      	DECL_INITIAL before and after routine.
      	(finish_function): Check DECL_INITIAL invariant.
      	* parser.c 
      	(cp_parser_function_definition_from_specifiers_and_declarator): 
      	Skip duplicate function definitions.
      
      From-SVN: r119427
      Geoffrey Keating committed
    • spu.c (spu_immediate): Remove trailing comma. · 01975fc7
      	* config/spu/spu.c (spu_immediate): Remove trailing comma.
      	(reloc_diagnostic): Call warning when -mwarn-reloc is specified.
      	* config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
      	better optimization.
      	(floatv4siv4sf2): New.
      	(fix_truncv4sfv4si2): New.
      	(floatunsv4siv4sf2): New.
      	(fixuns_truncv4sfv4si2): New.
      	(addv16qi3): New.
      	(subv16qi3): New.
      	(negv16qi2): New.
      	(mulv8hi3): New.
      	(mulsi3): Remove.
      	(mul<mode>3): New.
      	(_mulv4si3): New.
      	(cmp<mode>): Don't accept constant arguments for DI, TI and SF.
      	* config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
      	spu_resolve_overloaded_builtin instead of static inline functions.
      
      From-SVN: r119424
      Trevor Smigiel committed
    • fold-const.c (fold_binary): Use the precision of the type instead of the size of… · f0dbdfbb
      fold-const.c (fold_binary): Use the precision of the type instead of the size of its mode to compute the...
      
      	* fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
      	type instead of the size of its mode to compute the highest and
      	lowest possible values.  Still check the size of the mode before
      	flipping the signedness of the comparison.
      
      From-SVN: r119422
      Eric Botcazou committed
    • predicates.md (spu_mov_operand): Add. · 09aad82b
              * config/spu/predicates.md (spu_mov_operand): Add.
              * config/spu/spu.c (spu_expand_extv): Remove unused code.
              (print_operand_address, print_operand): Handle addresses containing AND.
              (spu_split_load, spu_split_store): Use updated movti pattern.
              * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
              stores in mov patterns for correct operation of reload.
              (lq, lq_<mode>, stq, stq_<mode>): Remove.
      
      From-SVN: r119421
      Trevor Smigiel committed
    • re PR c++/30022 (ICE on vector operand in division) · 01c15146
      	PR c++/30022
      	* typeck.c (type_after_usual_arithmetic_conversions):
      	Fix assertion for vector types.
      	(build_binary_op): Use temporary for inner type of vector types.
      
      	* g++.dg/ext/vector5.C: New test.
      
      From-SVN: r119416
      Volker Reichelt committed
    • re PR c++/30021 (ICE on invalid parameter for main) · d8e1d619
      	PR c++/30021
      	* c-common.c (check_main_parameter_types): Check for error_mark_node.
      
      	* g++.dg/other/main1.C: New test.
      
      From-SVN: r119415
      Volker Reichelt committed
    • re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) · 07b3bbf2
      2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29568
      	* gfortran.dg/convert_implied_open.f90:  Change to
      	new default record length.
      	* gfortran.dg/unf_short_record_1.f90:  Adapt to
      	new error message.
      	* gfortran.dg/unformatted_subrecords_1.f90:  New test.
      
      2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29568
      	* gfortran.h (gfc_option_t):  Add max_subrecord_length.
      	(top level): Define MAX_SUBRECORD_LENGTH.
      	* lang.opt:  Add option -fmax-subrecord-length=.
      	* trans-decl.c:  Add new function set_max_subrecord_length.
      	(gfc_generate_function_code): If we are within the main
      	program and max_subrecord_length has been set, call
      	set_max_subrecord_length.
      	* options.c (gfc_init_options):  Add defaults for
      	max_subrecord_lenght, convert and record_marker.
      	(gfc_handle_option):  Add handling for
      	-fmax_subrecord_length.
      	* invoke.texi:  Document the new default for
      	-frecord-marker=<n>.
      
      2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29568
      	* libgfortran/libgfortran.h (compile_options_t):  Add
      	record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
      	* runtime/compile_options.c (set_record_marker):  Change
      	default to four-byte record marker.
      	(set_max_subrecord_length):  New function.
      	* runtime/error.c (translate_error):  Change error message
      	for short record on unformatted read.
      	* io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
      	and continued.
      	* io/file_pos.c (unformatted_backspace):  Change default of record
      	marker size to four bytes.  Loop over subrecords.
      	* io/open.c:  Default recl is max_offset.  If
      	compile_options.max_subrecord_length has been set, set set
      	u->recl_subrecord to its value, to the maximum value otherwise.
      	* io/transfer.c (top level):  Add prototypes for us_read, us_write,
      	next_record_r_unf and next_record_w_unf.
      	(read_block_direct):  Separate codepaths for unformatted direct
      	and unformatted sequential.  If a recl has been set by the
      	user, use the number of bytes left for the record if it is smaller
      	than the read request.  Loop over subrecords.  Set an error if the
      	user has set a recl and the read was short.
      	(write_buf):  Separate codepaths for unformatted direct and
      	unformatted sequential. If a recl has been set by the
      	user, use the number of bytes left for the record if it is smaller
      	than the read request.  Loop over subrecords.  Set an error if the
      	user has set a recl and the read was short.
      	(us_read):  Add parameter continued (to indicate that bytes_left
      	should not be intialized).  Change default of record marker size
      	to four bytes. Use subrecord.  If the subrecord length is smaller than
      	zero, this indicates a continuation.
      	(us_write):  Add parameter continued (to indicate that the continued
      	flag should be set).  Use subrecord.
      	(pre_position):  Use 0 for continued on us_write and us_read calls.
      	(skip_record):  New function.
      	(next_record_r_unf):  New function.
      	(next_record_r):  Use next_record_r_unf.
      	(write_us_marker):  Default size for record markers is four bytes.
      	(next_record_w_unf):  New function.
      	(next_record_w):  Use next_record_w_unf.
      
      From-SVN: r119412
      Thomas Koenig committed
    • common.opt (ftree-combine-temps): Remove. · 7c6a62dd
      
      	* common.opt (ftree-combine-temps): Remove.
      	* tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
      	(coalesce_ssa_name): Don't check for combine-temps.
      	(coalesce_vars): Remove.
      	(check_replaceable): Use num_imm_uses.
      	(remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't 
      	check for combine-temps.
      	(rewrite_out_of_ssa): Never create a ref_count in the var_map.
      	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
      	to register_ssa_partition calls.
      	* tree-ssa-live.c (register_ssa_partition): Remove prototype.
      	(init_var_map, delete_var_map): remove refernces to ref_count.
      	(create_ssa_var_map): Never calculate a ref count.
      	(type_var_init): Remove.
      	* tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
      	(SSA_VAR_MAP_REF_COUNT): Delete.
      	(create_ssa_var_map): Change Prototype to have no parameters.
      	(version_ref_count): Delete.
      	(register_ssa_partition): Remove 'is_use' paramater and don't set the
      	ref_count vector.
      	(type_var_num, type_var, type_var_first_partition,
      	type_var_next_partition, type_var_dump, type_var_delete,
      	type_var_remove_partition, type_var_find, type_var_compact,
      	type_var_decompact): Remove.
      
      	* gcc.dg/max-1.c: Remove reference to -fno-tree-lrs option.
      
      From-SVN: r119409
      Andrew MacLeod committed
    • bfin.md (pushsi_insn, popsi_insn): Set correct addrtype attribute. · 35e3ced9
      	* config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
      	attribute.
      
      From-SVN: r119408
      Bernd Schmidt committed
    • re PR c++/29433 (using boost::MPL requires lots of memory) · e01e0201
      2006-12-01  Richard Guenther  <rguenther@suse.de>
      
      	PR c++/29433
      	* dwarf2out.c (struct pubname_struct): Make name const.
      	(add_pubtype): Do not xstrdup identifiers.
      
      From-SVN: r119404
      Richard Guenther committed
    • re PR c++/29066 (ptrmemfunc_vbit_in_delta is broken) · c3a88be8
      2006-12-01  Ryan Mansfield  <rmansfield@qnx.com>
      
              PR c++/29066
              * typeck.c (build_binary_op):  Fix pointer to member function
              comparison for ptrmemfunc_vbit_in_delta targets.
      
      2006-12-01  Ryan Mansfield  <rmansfield@qnx.com>
      
              PR c++/29066
              * g++.dg/expr/pr29066.c: New.
      
      From-SVN: r119403
      Ryan Mansfield committed
    • bfin.c (bfin_valid_add): Fix the logic that ensures multiword accesses are in range. · 5308e943
      	* config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
      	multiword accesses are in range.
      
      From-SVN: r119402
      Bernd Schmidt committed
    • [multiple changes] · fbb5445b
      2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>
      
      	PR tree-optimization/29921
      	* tree-ssa-ccp.c (canonicalize_float_value): New function.
      	(set_lattice_value): Use canonicalize_float_value.
      
      2006-12-01  H.J. Lu  <hongjiu.lu@intel.com>
      	    Zdenek Dvorak <dvorakz@suse.cz>
      
      	PR tree-optimization/29921
      	* gcc.dg/pr29921-2.c: New test.
      
      From-SVN: r119401
      H.J. Lu committed
    • spu.c (spu_builtin_range): Move from spu-c.c · b66b813d
      2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
              (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
              (spu_cpu_cpp_builtins): Remove.
              (spu_override_options): Don't set warn_main.
              (spu_force_reg): Move from spu-c.c.
              (spu_check_builtin_parm): Likewise.
              (expand_builtin_args): Likewise.
              (spu_expand_builtin_1): Likewise.
              (spu_expand_builtin): Likewise.
              * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
              warn_main and targetm.resolve_overloaded_builtin.
              * config/spu/spu-c.c (spu_builtin_range): Remove.
              (spu_check_builtin_parm): Remove.
              (expand_builtin_args): Remove.
              (spu_expand_builtin_1): Remove.
              (spu_expand_builtin): Remove.
              (spu_cpu_cpp_builtins): Moved from spu.c
              (spu_force_reg): Remove.
      
      From-SVN: r119397
      Andrew Pinski committed
    • re PR target/24036 ([e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143) · 8521c414
      2006-12-01  Joseph Myers  <joseph@codesourcery.com>
                  David Edelsohn  <edelsohn@gnu.org>
      
      	PR target/24036
      	* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
      	HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
      	* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
      	HARD_REGNO_NREGS_WITH_PADDING): Define.
      	* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
      	HARD_REGNO_NREGS_WITH_PADDING): Define.
      	* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
      	Use new macros to detect modes with holes; do not look at integer
      	units.
      	(subreg_offset_representable_p): Check for and disallow cases
      	where the modes use different numbers of bits from registers.
      	* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
      	constant for soft-float.
      	(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
      	containing doubles.
      	(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
      	in E500 double case.
      	* config/rs6000/rs6000.md (movtf): Allow soft-float.
      	(movtf_softfloat): New.
      
      Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
      
      From-SVN: r119395
      Joseph Myers committed
    • i386-cpuid.h (bit_SSE3): New. · 877c1c55
      2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* gcc.dg/i386-cpuid.h (bit_SSE3): New.
      	(i386_get_cpuid): New function.
      	(i386_cpuid_ecx): Likewise.
      	(i386_cpuid_edx): Likewise.
      	(i386_cpuid): Updated to call i386_cpuid_edx.
      
      	* gcc.target/i386/sse3-addsubpd.c: New file.
      	* gcc.target/i386/sse3-addsubps.c: Likewise.
      	* gcc.target/i386/sse3-haddpd.c: Likewise.
      	* gcc.target/i386/sse3-haddps.c: Likewise.
      	* gcc.target/i386/sse3-hsubpd.c: Likewise.
      	* gcc.target/i386/sse3-hsubps.c: Likewise.
      	* gcc.target/i386/sse3-lddqu.c: Likewise.
      	* gcc.target/i386/sse3-movddup.c: Likewise.
      	* gcc.target/i386/sse3-movshdup.c: Likewise.
      	* gcc.target/i386/sse3-movsldup.c: Likewise.
      
      From-SVN: r119390
      H.J. Lu committed
    • Daily bump. · c928f426
      From-SVN: r119388
      GCC Administrator committed
  3. 30 Nov, 2006 15 commits
    • re PR c++/18313 (Missing warning for superfluous const's in return types) · 1891dec4
      2006-12-01  Dirk Mueller  <dmueller@suse.de>
      
              PR c++/18313
              * decl.c (grokdeclarator): Warn for type qualifiers on return
              type for non-dependent types.
              * pt.c (tsubst_function_type): Warn for type qualifiers on
              return type for dependent types.
      
              * g++.dg/warn/Wreturn-type-4.C: New testcase.
      
      From-SVN: r119382
      Dirk Mueller committed
    • simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than simplify_gen_subreg. · e2561558
      gcc/
      	* simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
      	simplify_gen_subreg.
      
      From-SVN: r119380
      Richard Sandiford committed
    • rtti.c (get_tinfo_decl): Handle return value from pushdecl_top_level_and_finish. · d71176b6
      	* rtti.c (get_tinfo_decl): Handle return value from
      	pushdecl_top_level_and_finish.
      
      From-SVN: r119379
      Geoffrey Keating committed
    • Implement coalesce list with hash table instead of linked list. · 9fa2efcd
      	* tree-ssa-live.c (create_coalesce_list): Create a hash table.
      	(COALESCE_HASH_FN): New.  Define hash function.
      	(partition_pair_map_hash): New.  Hash value for a partition pair.
      	(partition_pair_map_eq): New.  Equality for hash pairs.
      	(create_coalesce_list): Create hash table.
      	(delete_coalesce_list): Free hash table.
      	(find_partition_pair): Find/create pairs in hash table.
      	(compare_pairs):  Sort pairs in ascending order now.
      	(num_coalesce_pairs): New.  Number of pairs in hash table.
      	(struct partition_pair_iterator): Iterator struct for pair table.
      	(first_partition_pair): Iterator function for first pair.
      	(end_partition_pair_p): Iterator function for end of iteration.
      	(next_partition_pair): Iterator function for next pair.
      	(FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
      	(sort_coalesce_list): Sort pairs from hash table into an array.
      	(pop_best_coalesce): Take pairs from the array.
      	(dump_coalesce_list): Update to use hash table or sorted array.
      	* tree-ssa-live.h (struct partition_pair_d): Remove next field.
      	(struct coalesce_list_d): Add hash table related fields.
      
      From-SVN: r119378
      Andrew MacLeod committed
    • re PR middle-end/30028 (bcopy is wrongly converted to memcpy) · f7b410e0
      	PR middle-end/30028
      	* builtins.c (fold_builtin_memory_op): Fix typo in the check for
      	memmove/bcopy->memcpy conversion.
      
      From-SVN: r119375
      Jan Hubicka committed
    • tm.texi (MAX_OFILE_ALIGNMENT): Document default. · 11d90e2d
      gcc/
      
      2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>
      
      	* doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
      	* config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT): 
      	Default is the largest alignment supported for 32-bit ELF and 
      	representable on a 32-bit host.
      
      From-SVN: r119374
      Carlos O'Donell committed
    • dfp-bit.c (DFP_TO_INT): Use wider precision. · 2a061db5
      gcc/
      	* config/dfp-bit.c (DFP_TO_INT): Use wider precision.
      testsuite/
      	* gcc.dg/dfp/convert-int-max.c: New test.
      	* gcc.dg/dfp/convert-int-max-fold.c: New test.
      
      From-SVN: r119368
      Janis Johnson committed
    • re PR driver/29931 (following argv[0] symlink in process_command breaks… · 334737af
      re PR driver/29931 (following argv[0] symlink in process_command breaks symlinked-together toolchain)
      
      include:
      2006-05-03  Andrew Stubbs  <andrew.stubbs@st.com>
                  J"orn Rennecke <joern.rennecke@st.com>
      
      	PR driver/29931
      	* libiberty.h (make_relative_prefix_ignore_links): Declare.
      
      libiberty:
      2006-05-03  Andrew Stubbs  <andrew.stubbs@st.com>
                  J"orn Rennecke <joern.rennecke@st.com>
      
      	PR driver/29931
      	* make-relative-prefix.c (make_relative_prefix_1): New function,
      	broken out of make_relative_prefix.  Make link resolution dependent
      	on new parameter.
      	(make_relative_prefix): Use make_relative_prefix_1.
      	(make_relative_prefix_ignore_links): New function.
      
      Co-Authored-By: J"orn Rennecke <joern.rennecke@st.com>
      
      From-SVN: r119366
      Andrew Stubbs committed
    • tree-ssa-operands.h (struct ssa_operands): New. · 456cde30
      	* tree-ssa-operands.h (struct ssa_operands): New.
      	* tree-flow-inline.h (gimple_ssa_operands): New function.
      	* tree-flow.h: (struct gimple_df): Add ssa_operands.
      	* Makefile.in: Remove gt-tree-ssa-operands.h
      	* tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
      	(free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
      	operand_memory, operand_memory_index, ops_active): Remove statics.
      	(ALLOC_OPTYPE): Update.
      	(operand_build_sort_virtual): Update.
      	(ssa_operands_active): Update.
      	(init_ssa_operands): Update.
      	(fini_ssa_operands): Update.
      	(ssa_operand_alloc): Update.
      	(INITIALIZE_USE): Update.
      	(finalize_ssa_use_ops): Update.
      	(finalize_ssa_v_may_def_ops): Update.
      	(finalize_ssa_vuse_ops): Update.
      	(finalize_ssa_v_must_def_ops): Update.
      
      From-SVN: r119363
      Jan Hubicka committed
    • tree-vectorizer.h (vectorizable_function): Export. · c6b1b49b
      2006-11-30  Richard Guenther  <rguenther@suse.de>
      
      	* tree-vectorizer.h (vectorizable_function): Export.
      	* tree-vect-transform.c (vectorizable_function): Likewise.
              * tree-vect-patterns.c (vect_recog_pow_pattern): Set
              type_in to scalar type in recognition of squaring.
      	Make sure the target can vectorize sqrt in recognition
      	of sqrt, set type_in to vector type in this case.
      
      	* gcc.dg/vect/vect-pow-1.c: Rename ...
      	* gcc.dg/vect/fast-math-vect-pow-1.c: ... to this.  Use
      	floats instead of doubles, check successful vectorization.
      
      From-SVN: r119362
      Richard Guenther committed
    • i386.md (R10_REG): New constant. · 3c4ace25
      	* config/i386/i386.md (R10_REG): New constant.
      	* config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
      	(ix86_emit_restore_regs_using_mov): Ditto.
      	(ix86_expand_call): Ditto.
      	(x86_output_mi_thunk): Ditto. Also use R10_REG.
      
      From-SVN: r119360
      Uros Bizjak committed
    • cselib.c (cselib_init): Use special MEM rtx form for callmem. · ac3768f6
      	* cselib.c (cselib_init): Use special MEM rtx form for callmem.
      	* alias.c (canon_true_dependence): Update comment.
      
      From-SVN: r119358
      Steven Bosscher committed
    • cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline at the end of a diagnostics message. · e9ec5c6b
      	* cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
      	at the end of a diagnostics message.
      
      	* alloc-pool.c (pool_free): Postpone clearing the pool entry
      	until after asserting that it was allocated in the right pool.
      
      	* cfgrtl.c (print_rtl_with_bb): Print predecessor and
      	successor edge information as well.  Make output of live regs
      	on exit consistent with live regs on entry.
      
      From-SVN: r119357
      Steven Bosscher committed
    • re PR target/29852 (x86_64: SSE version missing for fmod{d,s,x}f3) · e26feb2c
      	PR target/29852
      	* config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
      	insn patterns for TARGET_80387.
      	(*truncxfsf2_i387, *truncxfdf2_i387): Remove.
      	(*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
      	(*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
      	(fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
      	Generate truncxf<mode>2 insn patterns for strict SSE math.
      
      From-SVN: r119356
      Uros Bizjak committed
    • i386.md (movsf_1): Enable pattern for standard 80387 constants before reload… · 8002331e
      i386.md (movsf_1): Enable pattern for standard 80387 constants before reload when optimizing for size.
      
      	* config/i386/i386.md (movsf_1): Enable pattern for standard
      	80387 constants before reload when optimizing for size.
      	(*movdf_nointeger, *movdf_integer): Ditto.
      	(*movxf_nointeger, *movxf_integer): Disable patterns for standard
      	80387 constants before reload when not optimizing for size.
      
      	(*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
      	extension of XFmode input operands.
      
      From-SVN: r119355
      Uros Bizjak committed