Commit Graph

32287 Commits

Author SHA1 Message Date
Daniel Berlin 53a853de22 ebitmap.h: New file
2007-04-01  Daniel Berlin  <dberlin@dberlin.org>

	* ebitmap.h: New file
	* ebitmap.c: New file
	* Makefile.in (ebitmap.o): New target.

From-SVN: r123415
2007-04-02 03:44:25 +00:00
Jan Hubicka 26cb39935f emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit before very first instruction.
* emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
	before very first instruction.

	* ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
	waring on 64bit hosts.
	* bitmap.h: Fix typo in bitmap_head_def.

From-SVN: r123408
2007-04-01 19:48:01 +00:00
Steven Bosscher 5b52976bb8 re PR rtl-optimization/31391 (undefined label with -O -g due to cfglayout)
PR rtl-optimization/31391
	* cfgcleanup.c (try_optimize_cfg): If a removed label is turned
	into a DELETED_LABEL note, and the label is in an empty basic
	block, update BB_END as well as BB_HEAD.

From-SVN: r123406
2007-04-01 18:26:00 +00:00
Richard Henderson af33044f05 re PR tree-optimization/31169 (Bootstrap comparison error at revision 122821)
PR tree-optimization/31169 
        * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
        to varying if the range is outside [0,  prec-1].

From-SVN: r123405
2007-04-01 11:17:38 -07:00
Richard Sandiford 1732457d7f re PR target/31388 (ICE building libiberty multilib for mips16 multilibs)
gcc/
	PR target/31388
	* config/mips/mips.md (load_const_gp): New insn.
	* config/mips/mips.c (mips_split_symbol): Avoid using or creating
	the MIPS16 GP pseudo register if no_new_pseudos.
	(mips16_gp_pseudo_reg): Use gen_load_const_gp.

From-SVN: r123398
2007-04-01 11:23:54 +00:00
Andrew Pinski ee05ef5682 re PR target/31364 (secureplt breaks bootstrap)
2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/31364
        * config/rs6000/rs6000.md (call): Convert to LR hard reg for
        secureplt.
        (call_value): Likewise.

From-SVN: r123390
2007-03-31 14:29:21 -07:00
Wolfgang Bangerth c9516c38e3 re PR rtl-optimization/14737 (Purge political statement from -ffast-math docs)
2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 14737
	* doc/invoke.texi: (optimization options): Reword description
	of -ffast-math. Document its primary purpose.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r123382
2007-03-31 15:22:51 +00:00
Richard Guenther 6be42dd4a2 omp-low.c (splay-tree.h): Include.
2007-03-31  Richard Guenther  <rguenther@suse.de>

	* omp-low.c (splay-tree.h): Include.
	(lookup_decl): Replace splay-tree usage by pointer-map.
	(maybe_lookup_decl): Likewise.
	(new_omp_context): Likewise.
	(delete_omp_context): Likewise.
	* gimplify.c (splay-tree.h): Include.
	* tree-inline.c (insert_decl_map): Replace splay-tree usage by
	pointer-map.
	(remap_ssa_name): Likewise.
	(remap_decl): Likewise.
	(remap_type_1): Likewise.
	(remap_type): Likewise.
	(copy_body_r): Likewise.
	(expand_call_inline): Likewise.
	(clone_body): Likewise.
	(copy_tree_r): Likewise.
	(remap_save_expr): Likewise.
	(unsave_r): Likewise.
	(unsave_expr_now): Likewise.
	(tree_function_versioning): Likewise.
	(build_duplicate_type): Likewise.
	* tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
	(struct copy_body_data): Replace splay-tree by pointer-map.
	* Makefile.in (TREE_INLINE_H): Depend on pointer-map.h, not $(SPLAY_TREE_H).
	(gimplify.o): Depend on $(SPLAY_TREE_H).
	(omp-low.p): Likewise.

	* optimize.c (maybe_clone_body): Replace splay-tree usage by
	pointer-map.

From-SVN: r123381
2007-03-31 14:07:29 +00:00
Anatoly Sokolov d54a92b5f6 predicates.md (even_register_operand, [...]): New predicates.
* config/avr/predicates.md (even_register_operand, 
	odd_register_operand): New predicates.
	* config/avr/avr.md (movw peephole2): New.
	(movw_r peephole2): New.

From-SVN: r123379
2007-03-31 13:03:10 +04:00
Rafael Avila de Espindola 47ecd38dbf typeck.c (java_signed_or_unsigned_type): Remove.
gcc/java/ChangeLog:
   * typeck.c (java_signed_or_unsigned_type): Remove.
   (java_signed_type): use get_signed_or_unsigned_type instead of
java_signed_or_unsigned_type.
   (java_unsigned_type): Ditto.
   * lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
   * java-tree.h (java_signed_or_unsigned_type): Remove

gcc/Changelog:
   * tree.h(get_signed_or_unsigned_type): New
   * fold-const.c (operand_equal_for_comparison_p): Use
get_signed_or_unsigned_type instead of
lang_hooks.types.signed_or_unsigned_type.
   * expr.c (store_expr): Ditto.
   * langhooks.c (get_signed_or_unsigned_type): New.
     (lhd_signed_or_unsigned_type): New
   * langhooks.h (lhd_signed_or_unsigned_type): New.
   * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.

gcc/treelang/ChangeLog:
   * treetree.c (tree_lang_signed_or_unsigned_type): Remove.
   (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE) Remove.

gcc/ada/ChangeLog:
    * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
instead of gnat_signed_or_unsigned_type.
    * utils.c (gnat_signed_or_unsigned_type): Remove.
    * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
    * gigi.h (gnat_signed_or_unsigned_type): Remove

gcc/forrtan/trans-types.c:
   * trans-types.c (gfc_signed_or_unsigned_type): Remove.
     (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
gfc_signed_or_unsigned_type.
     (gfc_signed_type): Ditto.
   * trans-types.h (gfc_signed_or_unsigned_type): Remove.
   * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.

From-SVN: r123373
2007-03-30 22:09:01 +00:00
Richard Henderson ccf8e764e9 cygming.h (DWARF2_DEBUGGING_INFO): Enable by default for 64-bit.
gcc/
	* config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
	default for 64-bit.
	(PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
	(TARGET_64BIT_MS_ABI): New.
	(DBX_REGISTER_NUMBER): Handle 64-bit.
	(SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
	(LONG_TYPE_SIZE): Force to 32.
	(REG_PARM_STACK_SPACE): New.
	(OUTGOING_REG_PARM_STACK_SPACE): New.
	(REGPARM_MAX, SSE_REGPARM_MAX): New.
	(HANDLE_PRAGMA_PUSH_POP_MACRO): New.
	(STACK_BOUNDARY): Use 128 for 64-bit.
	* config/i386/cygwin.asm: Use push/ret to preserve call stack.
	Add 64-bit implementation.
	* config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
	argument unused.
	* config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
	(override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
	Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
	for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
	(ix86_handle_cconv_attribute): Don't warn when ignoring if
	TARGET_64BIT_MS_ABI.
	(ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(ix86_build_builtin_va_list): Likewise.
	(ix86_va_start, ix86_gimplify_va_arg): Likewise.
	(function_arg_advance_ms_64): New.
	(function_arg_advance): Call it.
	(function_arg_ms_64): New.
	(function_arg): Call it.
	(function_value_ms_64): New.
	(ix86_function_value_1): Call it.
	(return_in_memory_ms_64): New.
	(ix86_return_in_memory): Call it.
	(setup_incoming_varargs_ms_64): New.
	(ix86_setup_incoming_varargs): Call it.
	(ix86_expand_prologue): Handle 64-bit stack probing.
	(legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
	(output_pic_addr_const): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.
	(x86_function_profiler): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): New.
	* config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
	(TARGET_64BIT_MS_ABI): New.
	(CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
	* config/i386/i386.md (allocate_stack_worker): Remove.
	(allocate_stack_worker_32): Rename from allocate_stack_worker_1;
	describe the clobber of eax without a match_scratch.
	(allocate_stack_worker_postreload): Remove.
	(allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
	describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
	(allocate_stack_worker_rex64_postreload): Remove.
	(allocate_stack): Handle 64-bit.
	* config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
	* config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
	(EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
	(STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
	(STANDARD_STARTFILE_PREFIX_1): Likewise.
	* config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
	* config.build (x86_64-*-mingw*): New host.
	* config.host (x86_64-*-mingw*): New host.
	* config.gcc (x86_64-*-mingw*): New target.
	* gthr-win32.h (__gthread_key_create): Mark dtor unused.
libgcc/
	* config.host (x86_64-*-mingw*): New target.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r123372
2007-03-30 14:45:03 -07:00
Richard Henderson 121de39fc0 directives.c (lex_macro_node_from_str): New.
libcpp/
        * directives.c (lex_macro_node_from_str): New.
        (cpp_push_definition, cpp_pop_definition): New.
        * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
gcc/
        * c-pragma.c (struct def_pragma_macro_value): New.
        (struct def_pragma_macro): New.
        (pushed_macro_table): New.
        (dpm_hash, dpm_eq): New.
        (handle_pragma_push_macro, handle_pragma_pop_macro): New.
        (init_pragma): Install them.
        * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.

Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>

From-SVN: r123370
2007-03-30 14:12:53 -07:00
Anatoly Sokolov 6c7ac15dc6 avr.c (avr_override_options): Clear 'flag_delete_null_pointer_checks'.
* config/avr/avr.c (avr_override_options): Clear 
	'flag_delete_null_pointer_checks'.

From-SVN: r123367
2007-03-31 00:28:55 +04:00
Paolo Carlini cb68ec5005 re PR c++/26099 (support for type traits is not available)
gcc/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
	RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
	RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
	RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
	RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
	RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
	RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
	C++ extensions.
	* doc/extend.texi (Extensions to the C++ Language): Add Type Traits.

gcc/cp/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* cp-tree.h (enum cp_trait_kind, struct tree_trait_expr,
	TRAIT_EXPR_TYPE1, TRAIT_EXPR_TYPE2, TRAIT_EXPR_KIND): Add.
	(enum cp_tree_node_structure_enum, union lang_tree_node): Update.
	(CLASS_TYPE_NON_UNION_P): Add.
	(struct lang_type_class): Add has_complex_dflt.
	(TYPE_HAS_COMPLEX_DFLT, TYPE_HAS_TRIVIAL_DFLT): Add.
	(locate_copy, locate_ctor, locate_dtor, finish_trait_expr): Declare.
	* cp-tree.def: Add TRAIT_EXPR.
	* cp-objcp-common.c (cp_tree_size): Add TRAIT_EXPR case.
	* lex.c (struct resword): Add __has_nothrow_assign,
	__has_nothrow_constructor, __has_nothrow_copy, __has_trivial_assign,
	__has_trivial_constructor, __has_trivial_copy,
	__has_trivial_destructor, __has_virtual_destructor, __is_abstract,
	__is_base_of, __is_class, __is_convertible_to, __is_empty, __is_enum,
	__is_pod, __is_polymorphic, __is_union.
	* parser.c (cp_parser_primary_expression): Deal with the new RIDs.
	(cp_parser_trait_expr): New.
	* semantics.c (finish_trait_expr, trait_expr_value
	classtype_has_nothrow_copy_or_assign_p): New.
	* method.c (locate_copy, locate_ctor, locate_dtor): Do not define
	as static.
	* decl.c (cp_tree_node_structure): Add TRAIT_EXPR.
	* class.c (check_bases, check_field_decl, check_bases_and_members):
	Deal with TYPE_HAS_COMPLEX_DFLT (t) too.
	* pt.c (uses_template_parms, tsubst_copy_and_build,
	value_dependent_expression_p, type_dependent_expression_p): Deal with
	TRAIT_EXPR.
	* tree.c (cp_walk_subtrees): Deal with TRAIT_EXPR.

gcc/testsuite/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* g++.dg/ext/is_base_of.C: New.
	* g++.dg/ext/has_virtual_destructor.C: New.
	* g++.dg/ext/is_polymorphic.C: New.
	* g++.dg/ext/is_base_of_diagnostic.C: New.
	* g++.dg/ext/is_enum.C: New.
	* g++.dg/ext/has_nothrow_assign.C: New.
	* g++.dg/ext/has_nothrow_constructor.C: New.
	* g++.dg/ext/is_empty.C: New.
	* g++.dg/ext/has_trivial_copy.C: New.
	* g++.dg/ext/has_trivial_assign.C: New.
	* g++.dg/ext/is_abstract.C: New.
	* g++.dg/ext/is_pod.C: New.
	* g++.dg/ext/has_nothrow_copy.C: New.
	* g++.dg/ext/is_class.C: New.
	* g++.dg/ext/has_trivial_constructor.C: New.
	* g++.dg/ext/is_union.C: New.
	* g++.dg/ext/has_trivial_destructor.C: New.
	* g++.dg/tree-ssa/pr22444.C: Adjust, avoid __is_pod.
	* g++.dg/template/crash43.C: Likewise.

libstdc++-v3/
2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* include/bits/cpp_type_traits.h (struct __is_pod, struct __is_empty):
	Remove.
	* include/bits/valarray_array.h: Adjust.
	* include/bits/allocator.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

From-SVN: r123366
2007-03-30 19:45:57 +00:00
Steven Bosscher c7a0240aa5 regmove.c: Move all of pass_stack_adjustments from here...
* regmove.c: Move all of pass_stack_adjustments from here...
	* combine-stack-adj.c: ...to this new file.
	* Makefile.in: Add rules for combine-stack-adj.o.

From-SVN: r123363
2007-03-30 18:17:31 +00:00
Zdenek Dvorak f86289d5e5 re PR tree-optimization/31383 (ICE with -O2 -ftree-vectorize (regression))
PR tree-optimization/31383
	* tree-data-ref.c (affine_function_equal_p): Do not require the vectors
	to have the same length.

From-SVN: r123359
2007-03-30 09:36:19 +00:00
Jan Hubicka 4f40bddfb0 PR middle-end/PR30700
PR middle-end/PR30700
	* dwarf2out.c (reference_to_unused): Ask cgraph for functions 
	availablility; add more sanity checking; ask varpool only about
	VAR_DECL.

From-SVN: r123358
2007-03-30 08:03:55 +00:00
Richard Henderson 58c1146737 unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG to decide, but __SIZEOF_LONG_LONG__.
* unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
        to decide, but __SIZEOF_LONG_LONG__.

From-SVN: r123352
2007-03-29 16:35:33 -07:00
Richard Henderson 5b77de89ae emutls.c (struct __emutls_array): New.
* emutls.c (struct __emutls_array): New.
        (emutls_destroy): Use it instead of casting element 0 from void*.
        (__emutls_get_address): Likewise.

From-SVN: r123351
2007-03-29 16:34:10 -07:00
Richard Henderson da489f7340 varasm.c (initializer_constant_valid_p): Don't deny DECL_DLLIMPORT_P on functions.
* varasm.c (initializer_constant_valid_p): Don't deny
	DECL_DLLIMPORT_P on functions.

	* config/i386/cygming.h: Remove function declarations.
	(SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
	(ASM_OUTPUT_LABELREF): Remove.
	(COMMON_ASM_OP): Remove.
	(ASM_OUTPUT_COMMON): Remove.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
	Rename from TARGET_ENCODE_SECTION_INFO.
	* config/i386/netware.h: Likewise.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
	of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
	(legitimate_constant_p): Reject dllimports.
	(dllimport_map, get_dllimport_decl): New.
	(legitimize_dllimport_symbol): New.
	(legitimize_address, ix86_expand_move): Use it.
	(TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
	(SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
	(SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
	* config/i386/predicates.md (constant_call_address_operand): Only
	accept symbols; reject dllimport_p symbols.
	* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
	i386_pe_maybe_record_exported_symbol.
	* config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
	(i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
	(i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
	trust the setting of DECL_DLLIMPORT_P.
	(i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
	(i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
	(gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
	tidy the argument scanning loop.
	(i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
	SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
	(i386_pe_strip_name_encoding): Remove.
	(i386_pe_binds_local_p): New.
	(i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
	(i386_pe_output_labelref): Remove.
	(i386_pe_asm_output_aligned_decl_common): New.
	(i386_pe_maybe_record_exported_symbol): Rename from
	i386_pe_record_exported_symbol; check for dllexported symbols.

From-SVN: r123344
2007-03-29 14:54:35 -07:00
Mike Stump ab1da110d0 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
From-SVN: r123337
2007-03-29 16:17:42 +00:00
Zack Weinberg 311e3ff0b6 gengtype.c (oprintf): Mostly revert changes from 2007-03-26...
* gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
	add comment explaining why vsnprintf cannot be used.

From-SVN: r123332
2007-03-29 14:59:52 +00:00
Douglas Gregor e89886a0ea re PR middle-end/30666 (warning: canonical types differ for identical types double __complex__ and double __complex__)
2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR tree-optimization/30666
	* tree.c (build_complex_type): When creating type names for DWARF2
	debug info, create TYPE_DECLs for TYPE_NAME instead of
	IDENTIFIER_NODEs.
	(build_common_tree_nodes_2): Use build_complex_type when building
	predefined complex types, to preserve canonical types.

From-SVN: r123330
2007-03-29 14:11:28 +00:00
Steven Bosscher cab6e7717e ifcvt.c (struct noce_if_info): Add then_else_reversed field.
* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
	(noce_get_alt_condition): Look at it to determine whether to
	reverse the condition or not.
	(noce_get_condition): Substitute the truth for lies.
	(noce_find_if_block): Set the then_else_reversed field.

From-SVN: r123327
2007-03-29 12:04:09 +00:00
Lars Poeschel ed31d14caf fr30.md (movdi): Do not accept immediates as the destination of this insn.
* config/fr30/fr30.md (movdi): Do not accept immediates as the destination of this insn.
* config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather than calling gen_rtx_SET directly.
  Use r0 to hold the value of 'address + 4' rather than a stack based temporary which can be
  mis-optimized away.

From-SVN: r123326
2007-03-29 10:23:27 +00:00
Andreas Krebbel 833cd70a0c s390.c (s390_secondary_input_reload_class, [...]): Functions removed.
2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_secondary_input_reload_class,
	s390_secondary_output_reload_class): Functions removed.
	(s390_secondary_reload): New function.
	(TARGET_SECONDARY_RELOAD): Target macro defined.
	* config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
	SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
	* config/s390/s390.md ("reload_outti", "reload_outdi",
	"reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
	"reload_out<mode>"): Expanders removed.
	("reload<mode>_plus", "reload<mode>_nonoffmem_in",
	"reload<mode>_nonoffmem_out"): Expanders added.

From-SVN: r123324
2007-03-29 06:58:42 +00:00
Andreas Krebbel 040f69ebaa regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if SRC->DEST replacement failed anyway.
2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
	SRC->DEST replacement failed anyway.

From-SVN: r123323
2007-03-29 06:57:42 +00:00
Mike Stump 4beb5c4bd1 darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
	* config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.

testsuite:
	* gcc.dg/darwin-comm.c: Add.

From-SVN: r123321
2007-03-29 01:44:26 +00:00
Dwarakanath Rajagopal aafc814c7b Adding barcelona as a variant of amdfam10 architecture
From-SVN: r123313
2007-03-28 21:44:56 +00:00
Eric Botcazou 8975ae2285 tree-dfa.c (get_ref_base_and_extent): Do not expect positive offsets for BIT_FIELD_REF and COMPONENT_REF.
* tree-dfa.c (get_ref_base_and_extent): Do not expect positive
	offsets for BIT_FIELD_REF and COMPONENT_REF.

From-SVN: r123311
2007-03-28 20:11:20 +00:00
Richard Guenther 1c2e50d8fa tree.c (is_global_var): Move ...
2007-03-28  Richard Guenther  <rguenther@suse.de>

	* tree.c (is_global_var): Move ...
	* tree-flow-inline.h (is_global_var): ... here.
	* tree.h (is_global_var): Remove declaration.

From-SVN: r123303
2007-03-28 15:01:08 +00:00
Uros Bizjak a646adedf0 i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning option.
* config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
        option.
        (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
        * config/i386/i386.c (ix86_tune_features): Initialize new
        tuning option.
        * config/i386/predicates.md (promotable_binary_operator): Use
        TARGET_TUNE_PROMOTE_HIMODE_IMUL.

From-SVN: r123301
2007-03-28 16:05:48 +02:00
Grigory Zagorodnev e701c05c17 re PR target/31380 ([4.1/4.2]: Typo in gcc/config/i386/sse.md)
2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>

	PR target/31380
	* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

From-SVN: r123299
2007-03-28 06:38:24 -07:00
Nick Clifton 446347f9c4 Fix dates on recent entries
From-SVN: r123298
2007-03-28 12:58:02 +00:00
Lars Poeschel 0893725024 fr30.md (movsi_internal): Change destination constraint from m to V and add m to the end.
* config/fr30/fr30.md (movsi_internal): Change destination
  constraint from m to V and add m to the end.

From-SVN: r123297
2007-03-28 12:56:11 +00:00
Christian Bruel 5261837677 sh.md (movsi_i): Fix type attribute.
* config/sh/sh.md (movsi_i): Fix type attribute.

From-SVN: r123296
2007-03-28 12:52:07 +00:00
Christian Bruel bbccf9081e sh.md (movsi_ie): Fix memory constraints attribute length.
* config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
	(movsf_ie): Likewise.

From-SVN: r123295
2007-03-28 12:37:12 +00:00
Christian Bruel 27a0ce7d42 config.gcc: Add sh4-300 to multilib.
* config.gcc: Add sh4-300 to multilib.
	* config/sh/t-mlib-sh4-300: New file.

From-SVN: r123292
2007-03-28 12:18:51 +00:00
Andreas Krebbel 99cd7dd0e6 s390.md ("fix_trunc<mode>di2"): New expander.
2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
	("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
	fix_trunc<mode>di2.
	("fixuns_truncdddi2", "fixuns_trunctddi2"): Use 
	fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
	("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
	"fixuns_trunctddi2"): Whitespace fix.

From-SVN: r123291
2007-03-28 08:39:03 +00:00
Kaz Kojima e318fc8fab sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after the definition of struct sh_args.
* config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
	the definition of struct sh_args.
	(CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
	CALL_COOKIE_INT_REG_GET): Likewise.

From-SVN: r123290
2007-03-28 05:18:03 +00:00
Steven Bosscher 96647293f6 ifcvt.c (cond_exec_find_if_block): Return FALSE if no transformations are applied successfully.
* ifcvt.c (cond_exec_find_if_block): Return FALSE if no
	transformations are applied successfully.

From-SVN: r123289
2007-03-28 04:13:10 +00:00
Douglas Gregor 00ffc97ce5 tree.c (tree_contains_struct): Permit 512 tree codes.
2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>

	* tree.c (tree_contains_struct): Permit 512 tree codes.
	* tree.h (tree_contains_struct): Ditto.
	(MAX_TREE_CODES): Ditto.
	(struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
	SPARE member to store remaining padding bits.

From-SVN: r123287
2007-03-28 01:56:58 +00:00
Anatoly Sokolov 39418b53b8 avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' architecture.
* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' 
	architecture.

From-SVN: r123273
2007-03-28 02:44:34 +04:00
Janis Johnson 0d74c0ee2f configure.ac: Fix assembler test for powerpc*-linux decimal float.
* configure.ac: Fix assembler test for powerpc*-linux decimal float.
	* configure: Regenerate.

From-SVN: r123272
2007-03-27 22:14:02 +00:00
Janis Johnson a3bba7679c * configure: Regenerate using the correct version of autoconf.
From-SVN: r123271
2007-03-27 22:06:52 +00:00
Anatoly Sokolov deb2378c15 Fix year in CangeLog.
From-SVN: r123264
2007-03-27 21:59:23 +04:00
Anatoly Sokolov 2cd11105ec avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack pointer regs.
* config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
	pointer regs.
	* config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
	regs to "__SP_L__" and "__SP_H__".

From-SVN: r123263
2007-03-27 21:53:51 +04:00
Richard Guenther c21c775aeb tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and computations with it with a HOST_WIDE_INT variable.
2007-03-27  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
	computations with it with a HOST_WIDE_INT variable.

From-SVN: r123259
2007-03-27 15:40:09 +00:00
Mike Stump 6b692a83a1 darwin.h (DARWIN_MINVERSION_SPEC): Add objective-c-header, objective-c++-header and objc++-cpp-output support.
* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
	objective-c-header, objective-c++-header and objc++-cpp-output
	support.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

From-SVN: r123252
2007-03-27 01:04:30 +00:00
Richard Henderson 24bfafbc9d re PR target/31361 (SSE2 generation bug with shifts)
PR target/31361
        * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
        IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
        IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
        IX86_BUILTIN_PSRLQ128): New.
        (ix86_init_mmx_sse_builtins): Add them.
        (ix86_expand_builtin): Expand them.
        * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
        operand 2 be TImode.
        * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
        _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
        _mm_srli_epi64): Mark __B const.
        (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
        (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
        _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use 
        new two-vector shift builtins.

From-SVN: r123250
2007-03-26 17:30:32 -07:00
Ian Lance Taylor fa6338517f re PR tree-optimization/31345 (ICE in set_value_range, at tree-vrp.c:269)
./:	PR tree-optimization/31345
	* tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
	[+INF, +INF(OVF)] into VARYING.
testsuite/:
	PR tree-optimization/31345
	* gcc.c-torture/compile/pr31345-1.c: New test.

From-SVN: r123237
2007-03-26 21:43:30 +00:00
Zack Weinberg 01d419aec1 gengtype-parse.c: New file.
* gengtype-parse.c: New file.
	* gengtype-yacc.y: Delete.
	* gengtype-lex.l: Don't include gengtype-yacc.h.
	Define YY_DECL and yyterminate appropriately for recursive
	descent parser.  yylval is now a string out-parameter to yylex.
	(HWS, EOID): New shorthand.
	(IWORD): Add a couple more types.
	(yylex): Add a setup stanza.  Remove the complex rules for
	detecting GTY'ed types and typedefs; replace with simple
	keyword detectors.  Adjust everything for the changed
	definition of yylval.  Ignore all pp-directives, not just #define.
	(yyerror): Delete.
	(parse_file): Rename yybegin; do not call yyparse.
	(yyend): New.
	* gengtype.c (xasprintf): Export again.
	(this_file): New.  Use everywhere __FILE__ was being used.
	(get_lang_bitmap): Special case types defined in gengtype.c.
	(do_typedef, new_structure): Suppress definition of certain types.
	(new_structure): Improve diagnostics of duplicate definitions.
	Make sure location_s is associated with input.h.
	(nreverse_pairs, define_location_structures): New functions.
	(main): Improve tagging of kludge types.  Remove old kludges
	for input.h types; use define_location_structures.
	* gengtype.h: Update prototypes.  Define token codes here.
	* Makefile.in: Remove all references to gengtype-yacc.
	Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
	and gengtype.
	* bitmap.h (struct bitmap_head_def): Coalesce definitions,
	add GTY((skip)) to the field that's only conditionally there.
	* doc/install.texi: Document that Bison is no longer required
	unless building treelang.

From-SVN: r123235
2007-03-26 21:18:43 +00:00
Zack Weinberg 11a675992a gengtype.c: Don't include gtyp-gen.h.
* gengtype.c: Don't include gtyp-gen.h.
	(srcdir): Declare here.
	(base_files, lang_dir_names): Allocate dynamically.
	(gt_files, num_gt_files, num_lang_dirs): New globals.
	(measure_input_list, read_input_line, read_input_list)
	(set_lang_bitmap): New functions.
	(get_base_file_bitmap): Rename get_lang_bitmap and drastically
	simplify, relying on read_input_list to set up the bitmaps.
	(main): Arguments are no longer unused.  Check for correct number
	of command line arguments, set srcdir and srcdir_len, then call
	read_input_list, before doing anything else.  No need to worry
	about duplicates in main loop.
	* configure.ac: Simplify the calculation of all_gtfiles.
	Put language tags in there.  Don't set or substitute
	all_gtfiles_files_langs or all_gtfiles_files_frags.
	* Makefile.in: Revamp the way gengtype is invoked, now that it
	takes a file on its command line with a much simpler format.
	Remove or replace with gtyp-input.list all references to gtyp-gen.h.
	(GTFILES): Remove duplicates and C source files.
	* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
	* objcp/config-lang.in: Add c-pragma.h to gtfiles.
	* configure: Regenerate.

From-SVN: r123234
2007-03-26 21:07:27 +00:00
Zack Weinberg 065ae61175 gengtype.h: Remove all type definitions to gengtype.c...
* gengtype.h: Remove all type definitions to gengtype.c; leave
	only definitions of options_p, type_p, and pair_p as opaque
	pointers.  Update prototypes.
	* gengtype.c: Many type definitions moved here from gengtype.h.
	Consolidate type definitions at the top of the file.
	(xvasprintf): Delete.
	(xasprintf): Make static.
	(create_nested_pointer_option): Add 'next' parameter.
	(create_field_all, create_field_at): New functions.
	(create_field): Now a thin wrapper around create_field_all.
	(create_optional_field): Rename create_optional_field_ and add
	line argument.  Original name is now a macro which supplies
	__LINE__.
	(oprintf): Use vsnprintf directly.
	(close_output_files): Use fatal rather than perror/exit.
	(note_def_vec, note_def_vec_alloc): Use create_field_at.
	(main): Set progname.  Don't use exit.
	* gengtype-yacc.y (struct_fields): Use create_field_at.
	(option, optionseqopt): Delete.
	(optionseq): Consolidate productions from option here so we
	can use the first argument to create_option.

From-SVN: r123233
2007-03-26 21:04:59 +00:00
Zack Weinberg 17defa6a13 gengtype-lex.l: Distinguish unions from structures in the token type.
* gengtype-lex.l: Distinguish unions from structures in the
	token type.  Don't call find_structure; return the tag as a string.
	* gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
	Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
	Reorganize typedef_struct production accordingly.
	Use create_nested_ptr_option.
	* gengtype.c (create_nested_ptr_option): New function.
	* gengtype.h: Declare it.

From-SVN: r123232
2007-03-26 21:00:20 +00:00
Zack Weinberg 95161faf6d gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
* gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
	(string_type): Don't declare.
	(do_scalar_typedef): Declare.
	(create_scalar_type): Update prototype.
	* gengtype.c (string_type): Make static.
	(scalar_nonchar, scalar_char): New.
	(do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
	(resolve_typedef): Use scalar_nonchar for error recovery.
	(create_scalar_type): Remove name_len field.  Return scalar_char
	or scalar_nonchar as appropriate.
	(adjust_field_type): Look at scalar_is_char boolean to decide whether
	to use string_type.
	(throughout): Use scalar_nonchar instead of calling create_scalar_type,
	whenever possible.
	(main): Initialize scalar_char and scalar_nonchar before calling
	gen_rtx_next.
	* gengtype-lex.l: Adjust for removal of second argument to
	create_scalar_type.  Use yylval.s instead of yylval.t when
	returning SCALAR.
	* gengtype-yacc.y: Type of SCALAR is string.  Call
	create_scalar_type from type:SCALAR rule.  Adjust for removal of
	second argument to create_scalar_type.

From-SVN: r123231
2007-03-26 20:55:10 +00:00
Zack Weinberg 4a399aef3a vec.h: Remove all #if IN_GENGTYPE blocks.
* vec.h: Remove all #if IN_GENGTYPE blocks.
	Add comment saying that changes may require adjustments to gengtype.
	* gengtype.c: Don't include coretypes.h or tm.h.
	Add comment to inclusion of errors.h.
	(note_def_vec, note_def_vec_alloc): New functions.
	* gengtype.h: Declare new functions.
	* gengtype-lex.l: Don't include coretypes.h.
	(YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
	Delete.
	(update_lineno): Remove unnecessary prototype.
	(DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
	(VEC rule): Just return VEC_TOKEN.
	* gengtype-yacc.y (VEC_TOKEN): New token type.
	(type): Add a production for VEC(a,b).
	* Makefile.in: Update dependencies.

From-SVN: r123229
2007-03-26 20:49:17 +00:00
Zack Weinberg d287ace688 gengtype-lex.l: Remove rules for parsing pointer-to-function typedefs that use the old PARAMS macro.
* gengtype-lex.l: Remove rules for parsing pointer-to-function
	typedefs that use the old PARAMS macro.

From-SVN: r123227
2007-03-26 20:46:29 +00:00
Zack Weinberg cff4720f62 gengtype-lex.l: Remove all rules and states relating to yacc input files.
* gengtype-lex.l: Remove all rules and states relating to yacc
	input files.
	* gengtype-yacc.y: Similarly.
	* gengtype.c (note_yacc_type): Delete function.
	* gengtype.h: Update prototypes.

From-SVN: r123226
2007-03-26 20:45:01 +00:00
Joseph Myers 71175bf368 tree-pretty-print.c (dump_generic_node): Report precision of unnamed integer types.
* tree-pretty-print.c (dump_generic_node): Report precision of
	unnamed integer types.

From-SVN: r123224
2007-03-26 20:56:59 +01:00
Steven Bosscher 93242b9c1b ifcvt.c (noce_try_store_flag_constants): Don't check no_new_pseudos here.
* ifcvt.c (noce_try_store_flag_constants): Don't check
	no_new_pseudos here.
	(noce_try_store_flag_constants): Don't check no_new_pseudos.
	(noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_try_sign_mask): Likewise.
	(if_convert): Check no_new_pseudos here.

	(cond_exec_process_if_block, noce_process_if_block, find_if_block):
	Remove prototypes.
	(struct noce_if_info): Add then_bb, else_bb, join_bb members.
	(noce_get_condition): Handle new then_else_reversed argument.
	(noce_init_if_info): Remove, fold into noce_find_if_block.
	(noce_process_if_block): Take a struct noce_if_info as the
	argument.  Don't set up one based on ce_if_info.  Update pointer
	references accordingly.
	(cond_move_process_if_block): Likewise.
	(process_if_block): Removed.
	(find_if_block): Removed.  Move functionality two new functions,
	noce_find_if_block and cond_exec_find_if_block.
	(noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
	blocks and the symmetric IF-ELSE-JOIN case.
	(cond_exec_find_if_block): Also new function mostly based on old
	find_if_block and process_if_block.
	(find_if_header): Replace find_if_block call with separately
	guarded calls to noce_find_if_block and cond_exec_find_if_block.
	(find_cond_trap): Update noce_get_condition call.
	(dead_or_predicable): Likewise.

From-SVN: r123223
2007-03-26 19:37:11 +00:00
Jakub Jelinek 85acef0e28 i386.c (IX86_BUILTIN_CMPNEPD, [...]): Remove.
* config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
	Remove.
	(IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
	IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
	IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
	(ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
	v4si_ftype_v4si_v2di.   Remove __builtin_ia32_psllw128,
	__builtin_ia32_pslld128, __builtin_ia32_psllq128,
	__builtin_ia32_psrlw128, __builtin_ia32_psrld128,
	__builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
	__builtin_ia32_psrad128 builtins.

From-SVN: r123215
2007-03-26 15:23:17 +02:00
Uros Bizjak 8dde5924c6 reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
* reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
        * config/i386/constraints.md
	(define_constraint "I"): Use IN_RANGE macro.
	(define_constraint "J"): Ditto.
	(define_constraint "K"): Ditto.
	(define_constraint "M"): Ditto.
	(define_constraint "N"): Ditto.
	(define_constraint "O"): Ditto.
	* config/i386/predicates.md
	(define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
	(define_predicate "const_0_to_3_operand"): Ditto.
	(define_predicate "const_0_to_7_operand"): Ditto.
	(define_predicate "const_0_to_15_operand"): Ditto.
	(define_predicate "const_0_to_63_operand"): Ditto.
	(define_predicate "const_0_to_255_operand"): Ditto.
	(define_predicate "const_1_to_31_operand"): Ditto.
	(define_predicate "const_2_to_3_operand"): Ditto.
	(define_predicate "const_4_to_7_operand"): Ditto.

From-SVN: r123210
2007-03-26 10:34:01 +02:00
David Edelsohn a5ad201780 rs6000.c (rs6000_emit_prologue): Always clobber LR in SImode for save_world.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
        in SImode for save_world.
        * config/rs6000/altivec.md (save_world, restore_world): Convert to
        LR hard reg.

From-SVN: r123198
2007-03-25 08:44:40 -04:00
Dorit Nuzman 5773afc5b5 re PR middle-end/30784 (ICE on loop vectorization (-O1 -march=athlon-xp -ftree-vectorize))
PR tree-optimization/30784
        * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
        BIT_FIELD_REF.

From-SVN: r123197
2007-03-25 11:08:29 +00:00
Revital Eres 3ece6cc239 fix in tree-if-conv.c
From-SVN: r123194
2007-03-25 06:53:02 +00:00
David Edelsohn e65a3857a5 darwin.md (load_macho_picbase): Ignore operand 0.
* config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
        (load_macho_picbase_{si,di}): Convert to LR hard reg.
        (call_indirect_nonlocal_darwin64): Same.
        (call_nonlocal_darwin64): Same.
        (call_value_indirect_nonlocal_darwin64): Same.
        (call_value_nonlocal_darwin64): Same.
        (sibcall_nonlocal_darwin64): Same.
        (sibcall_value_nonlocal_darwin64): Same.
        (sibcall_symbolic_64): Same.
        (sibcall_value_symbolic_64): Same.
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
        LR pseudo.
        (rs6000_emit_load_toc_table): Same.
        * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
        * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
        (mull_call): Same.
        (divss_call): Same.
        (divus_call): Same.
        (quoss_call): Same.
        (quous_call): Same.
        (load_toc_v4_pic_si): Same
        (load_toc_v4_PIC_1): Same.
        (load_toc_v4_PIC_1b): Same.
        (call_indirect_aix{32,64}): Same.
        (call_value_indirect_aix{32,64}): Same.
        (call): Same.
        (call_value): Same.
        (call_local{32,64}): Same.
        (call_value_local{32,64}): Same.
        (call_indirect_nonlocal_aix{32,64}): Same.
        (call_nonlocal_aix{32,64}): Same.
        (call_value_indirect_nonlocal_aix{32,64}): Same.
        (call_value_nonlocal_aix{32,64}): Same.
        (call_indirect_nonlocal_sysv<mode>): Same.
        (call_nonlocal_sysv<mode>): Same.
        (call_value_indirect_nonlocal_sysv<mode>): Same.
        (call_value_nonlocal_sysv<mode>): Same.
        (sibcall): Same.
        (sibcall_local{32,64}): Same.
        (sibcall_value_local{32,64}): Same.
        (sibcall_nonlocal_aix{32,64}): Same.
        (sibcall_value_nonlocal_aix{32,64}): Same.
        (sibcall_value_nonlocal_aix{32,64}): Same.
        (sibcall_nonlocal_sysv<mode>): Same.
        (sibcall_value): Same.
        (sibcall_value_nonlocal_sysv<mode>): Same.

From-SVN: r123193
2007-03-24 22:41:54 -04:00
Paul Brook 3303be154c lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
2007-03-24  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
	* config/arm/linux-eabi.h: Remove legacy syscall hack.

From-SVN: r123192
2007-03-25 01:07:45 +00:00
Richard Henderson 13f703423a constraints.md: New file.
* config/ia64/constraints.md: New file.
        * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
        satisfies_constraint_?.
        * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
        ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
        ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
        ia64_output_mi_thunk): Likewise.
        (ia64_const_ok_for_letter_p): Remove.
        (ia64_const_double_ok_for_letter_p): Remove. 
        (ia64_extra_constraint): Remove.
        * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
        (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
        CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
        CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
        CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
        EXTRA_MEMORY_CONSTRAINT): Remove.
        * config/ia64/ia64.md: Include constriants.md.  Replace
        CONST_OK_FOR_? with satisfies_constraint_?.

From-SVN: r123186
2007-03-24 12:28:37 -07:00
Michael Meissner 79b87c74d7 Add BID decimal support
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
Co-Authored-By: Marius Cornea <marius.cornea@intel.com>

From-SVN: r123185
2007-03-24 17:04:47 +00:00
Ian Lance Taylor f870ab63f9 * fold-const.c (fold_binary): Correct warning for X - c >= X.
From-SVN: r123172
2007-03-23 23:21:46 +00:00
Ian Lance Taylor ed3d212ba2 * tree-dump.c (dump_files): Correct comment.
From-SVN: r123171
2007-03-23 23:19:25 +00:00
Ian Lance Taylor c8539275c3 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
From-SVN: r123170
2007-03-23 23:17:02 +00:00
Steven Bosscher c0a78a1786 Remove the patch from ChangeLog
From-SVN: r123168
2007-03-23 23:06:52 +00:00
Steven Bosscher ad21dab7f7 tracer.c (tracer): Don't take FLAGS argument.
* tracer.c (tracer): Don't take FLAGS argument.  Assert we are
	in cfglayout mode.  Don't go into and out of cfglayout mode.
	Link the blocks in the order of the constructed traces.
	(rest_of_handle_tracer): Adjust call to tracer.
	* loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
	Don't go into cfglayout mode.
	(rtl_loop_done): Don't go out of cfglayout mode.
	* cfglayout.c (relink_block_chain): New function, split out from...
	(fixup_reorder_chain): ...here.  Remove redundant checking.
	(cfg_layout_finalize): Don't clear the header, footer, and aux
	fields here, move the code to do so to relink_block_chain.  Likewise
	for free_original_copy_tables.
	* rtl.h (tracer): Update prototype.
	* bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
	Assert we are in cfglayout mode.  Don't go into and out of cfglayout
	mode.  Use relink_block_chain to serialize the CFG according to the
	new basic block order.  Move targetm.cannot_modify_jumps_p check from
	here...
	(gate_handle_reorder_blocks): ...to here.
	(duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
	from here...
	(gate_duplicate_computed_gotos): ...to here.
	(rest_of_handle_reorder_blocks): Don't see if anything has changed,
	something always changes when going into and out of cfglayout mode.
	Perform an expensive cfg cleanup while going into cfglayout mode.
	Always update liveness information on HAVE_conditional_execution
	targets.  Reserialize the basic blocks and go out of cfglayout mode.
	* reg-stack.c: Include cfglayout.h.
	(rest_of_handle_stack_regs): Go into and out of cfglayout mode around
	the call to reorder_basic_blocks.
	* basic-block.h (reorder_basic_blocks): Update prototype.
	(relink_block_chain): New prototype.
	* passes.c (pass_outof_cfg_layout_mode): Move after cse2.

From-SVN: r123167
2007-03-23 23:05:28 +00:00
Joseph Myers 00f9e1ca8e mips.md (type, [...]): Change xfer instruction type to mfc and mtc, as applicable.
* config/mips/mips.md (type, hazard, *movdi_32bit,
	*movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
	*movhi_internal, *movqi_internal, *movsf_hardfloat,
	*movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
	movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
	mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
	applicable.
	(movcc): Change first xfer to multi.
	* config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
	config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
	config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
	config/mips/generic.md: Change reservations using "xfer" to use
	"mfc,mtc".
	* config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
	using match_operand.
	(ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
	* config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
	examining mode.
	(ir_sr70_xfer_to): Use "mtc" instead of examining mode.

From-SVN: r123164
2007-03-23 19:44:46 +00:00
Richard Henderson 2ed941ecd0 i386.c: Remove unnecessary function declarations.
* config/i386/i386.c: Remove unnecessary function declarations.
        Move targetm definition, and all related macros, to the end of
        the file.  Resort some functions to put definitions before uses.
        (ix86_attribute_table): Make static.  Move to end of file.
        (ix86_gimplify_va_arg): Make static.

From-SVN: r123159
2007-03-23 09:34:51 -07:00
Richard Henderson ee2f65b4bf i386.c (ix86_function_regparm): Early exit for 64-bit...
* config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
        don't increase local_regparm with force_align_arg_pointer check.
        (ix86_function_sseregparm): Assert 32-bit.
        (type_has_variadic_args_p): New.
        (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
        type_has_variadic_args_p.
        (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
        (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
        use memset instead.  Do maybe_vaarg check first; skip attribute
        tests if true; skip attribute tests for 64-bit.
        (construct_container): Remove TARGET_DEBUG_ARG.
        (function_arg_advance_32, function_arg_advance_64): Split out ...
        (function_arg_advance): ... from here.
        (function_arg_32, function_arg_64): Split out ...
        (function_arg): ... from here.
        (ix86_pass_by_reference): Tidy.
        (ix86_function_value_regno_p): Rearrange w/ switch on regno.
        (function_value_32): New, from parts of ix86_function_value
        and ix86_value_regno.
        (function_value_64): New, from parts of ix86_function_value
        and ix86_libcall_value.
        (ix86_function_value_1): New.
        (ix86_function_value, ix86_libcall_value): Use it.
        (return_in_memory_32, return_in_memory_64): Split out ...
        (ix86_return_in_memory): ... from here. 
        (ix86_struct_value_rtx): Skip for 64-bit.
        (ix86_libcall_value, ix86_value_regno): Remove.
        (setup_incoming_varargs_64): Split out ...
        (ix86_setup_incoming_varargs): ... from here. 
        (ix86_va_start): Remove TARGET_DEBUG_ARG.
        (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
        * config/i386/i386-protos.h (ix86_function_value): Remove.
        * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.

From-SVN: r123146
2007-03-22 19:02:38 -07:00
Manuel López-Ibáñez 92ef5cf999 re PR other/23572 (No warning for assigning a value to a 'float' variable that overflows with option -Wextra)
2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR other/23572
	* c-lex.c (interpret_float): On overflow, emit pedantic warning if
	infinities not supported, otherwise emit warning if -Woverflow. On
	underflow, emit warning if -Woverflow.
	* real.c (real_from_string): Return -1 if underflow, +1 if overflow
	and 0 otherwise.
	* real.h (real_from_string): Update declaration
testsuite/
	* gcc.dg/float-range-4.c: New.
	* gcc.dg/float-range-1.c: Update. Test for a warning.
	* gcc.dg/float-range-3.c: New.
	* gcc.dg/float-range-5.c: New.

From-SVN: r123137
2007-03-22 23:04:24 +00:00
Kai Tietz ac294f0bbc defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
* defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
        * calls.c (compute_argument_block_size, expand_call,
        emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
        * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
        * function.c (STACK_DYNAMIC_OFFSET): Likewise.
        * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
        * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
        config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
        config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
        config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
        Set to 1.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r123135
2007-03-22 14:33:45 -07:00
Joseph Myers 9a20062365 c-incpath.c (add_sysroot_to_chain): New.
* c-incpath.c (add_sysroot_to_chain): New.
	(merge_include_chains): Add sysroot argument.  Call
	add_sysroot_to_chain if sysrooted.
	(register_include_chains): Update call to merge_include_chains.
	* doc/cppopts.texi: Document use of '=' in include directory
	arguments.

From-SVN: r123134
2007-03-22 20:38:27 +00:00
Uros Bizjak 8766652c6e i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
* config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
	Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
	(*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
	insn pattern using X87MODEF12 mode macro.

From-SVN: r123128
2007-03-22 15:59:10 +01:00
Seongbae Park 1e4c6dc5b9 regmove.c (regmove_optimize): Use reg_mentioned_p instead of reg_overlap_mentioned_p for DST.
2007-03-21  Seongbae Park <seongbae.park@gmail.com>

	* regmove.c (regmove_optimize): Use reg_mentioned_p
	instead of reg_overlap_mentioned_p for DST.

From-SVN: r123124
2007-03-22 06:18:33 +00:00
Mike Stump 2cbac420ea * c.opt: Fixup for Objective-C/C++.
From-SVN: r123114
2007-03-21 18:45:40 +00:00
Steve Ellcey 17939c986e explow.c (convert_memory_address): Fold memory reference when POINTERS_EXTEND_UNSIGNED < 0
* explow.c (convert_memory_address): Fold memory reference when
	POINTERS_EXTEND_UNSIGNED < 0

From-SVN: r123113
2007-03-21 16:02:32 +00:00
Richard Henderson b5cf27d7ec re PR target/31245 (SSE2 generation bug with 4.1.2 and -O3)
PR target/31245
        * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
        * config/i386/mmintrin.h (__m64): Likewise.
        * config/i386/xmmintrin.h (__m128): Likewise.

From-SVN: r123112
2007-03-21 08:52:23 -07:00
Richard Sandiford cb717c4098 vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
gcc/
	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
	(VXWORKS_OS_CPP_BUILTINS): Define.
	* config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
	(TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.

From-SVN: r123108
2007-03-21 12:21:33 +00:00
Richard Sandiford 2a45063980 rtl.h (constant_pool_reference_p): Delete.
gcc/
	* rtl.h (constant_pool_reference_p): Delete.
	(find_constant_src): Declare.
	* rtlanal.c (find_constant_src): New function.
	* simplify-rtx.c (constant_pool_reference_p): Delete.
	* config/i386/i386.md: Use find_constant_src instead of
	constant_pool_reference_p/avoid_constant_pool_reference pairs.

From-SVN: r123106
2007-03-21 09:10:08 +00:00
Richard Sandiford 7c0ffd09f8 invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
gcc/
	* doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
	* c-cppbuiltin.c (c_cpp_builtins): Define them.

From-SVN: r123104
2007-03-21 09:07:19 +00:00
Mark Mitchell 9f2966203f elf.h (TARGET_ASM_DESTRUCTOR): Define.
* config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
	* config/arm/arm.c (arm_elf_asm_cdtor): New function.
	(arm_elf_asm_constructor): Use it.
	(arm_elf_asm_destructor): New function.

From-SVN: r123103
2007-03-21 05:21:31 +00:00
Bernd Schmidt 5dab4eb703 jump.c (mark_jump_label): Treat SEQUENCE specially.
* jump.c (mark_jump_label): Treat SEQUENCE specially.

From-SVN: r123096
2007-03-20 23:43:33 +00:00
Nathan Sidwell caaf5345bb * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
From-SVN: r123086
2007-03-20 14:13:30 +00:00
Andrew Haley 2b31200511 [multiple changes]
2007-03-19  Andrew Haley  <aph@redhat.com>

        PR tree-optimization/31264
        * tree-vrp.c (register_edge_assert_for_1): Don't look though
        VIEW_CONVERT_EXPRs.

2007-03-20  Andrew Haley  <aph@redhat.com>

        * testsuite/libjava.lang/PR31264.java: New test.

From-SVN: r123085
2007-03-20 12:45:19 +00:00
Paolo Bonzini fb4061627b re PR middle-end/30907 (Propagation of addresses within loops pessimizes code)
2007-03-19  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/30907
	* fwprop.c (forward_propagate_into): Never propagate inside a loop.
	(fwprop_init): Always call loop_optimizer_initialize.
	(fwprop_done): Always call loop_optimizer_finalize.
	(fwprop): We always have loop info now.
	(gate_fwprop_addr): Remove.
	(pass_fwprop_addr): Use gate_fwprop as gate.

	PR rtl-optimization/30841
	* df-problems.c (df_ru_local_compute, df_rd_local_compute,
	df_chain_alloc): Call df_reorganize_refs unconditionally.
	* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
	refs_organized to refs_organized_size.
	(df_ref_create_structure): Use refs_organized_size instead of
	bitmap_size if refs had been organized, and keep refs_organized_size
	up-to-date.
	* df.h (struct df_ref_info): Change refs_organized to
	refs_organized_size.
	(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
	bitmap_size.

From-SVN: r123084
2007-03-20 08:31:13 +00:00
Mark Mitchell 0a85ec2e8c except.c (output_function_exception_table): Do not reference the EH personality routine for functions that do not require...
* except.c (output_function_exception_table): Do not reference the
	EH personality routine for functions that do not require an
	exception table.

From-SVN: r123082
2007-03-20 03:16:25 +00:00
Jakub Jelinek 79077aea85 re PR c/30762 (IMA messes up with inlining)
PR c/30762
	* c-typeck.c (convert_for_assignment): Call comptypes for
	RECORD_TYPE or UNION_TYPE.

	* gcc.dg/pr30762-1.c: New test.
	* gcc.dg/pr30762-2.c: New test.

From-SVN: r123073
2007-03-20 00:26:14 +01:00
Jakub Jelinek 5d8a54345a re PR inline-asm/30505 (asm operand has impossible constraints.)
PR inline-asm/30505
	* reload1.c (reload): Do invalid ASM checking after
	cleanup_subreg_operands.

	* gcc.target/i386/pr30505.c: New test.

From-SVN: r123072
2007-03-20 00:24:43 +01:00
Jeff Law 1799efef2c re PR tree-optimization/30984 (ICE with computed goto and constants)
* tree-cfg.c (find_taken_edge): Tighten conditions for
        optimizing computed gotos.

        * PR tree-optimization/30984
        * gcc.c-torture/pr30984.c: New test.

From-SVN: r123067
2007-03-19 13:52:19 -06:00
Michael Matz 1e395249a9 builtins.c (expand_builtin_sync_operation, [...]): Care for extending CONST_INTs correctly.
* builtins.c (expand_builtin_sync_operation,
        expand_builtin_compare_and_swap,
        expand_builtin_lock_test_and_set): Care for extending CONST_INTs
        correctly.

        * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
        sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
        for operand 3.

From-SVN: r123064
2007-03-19 17:07:29 +00:00
Andreas Krebbel 17f6dbbf4e tm.texi: Add brackets around the return type of TARGET_SECONDARY_RELOAD.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* doc/tm.texi: Add brackets around the return type of
	TARGET_SECONDARY_RELOAD.

From-SVN: r123062
2007-03-19 15:17:55 +00:00
Andrew Pinski 60e0af9418 re PR tree-optimization/31254 (verify_ssa failed: type mismatch between an SSA_NAME and its symbol)
2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31254
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
	Use handled_component_p () where appropriate.  Continue
	propagating into the rhs if we propagated into an INDIRECT_REF
	on the lhs.

	* gcc.dg/torture/pr31254.c: New testcase.

Co-Authored-By: Richard Guenther <rguenther@suse.de>

From-SVN: r123060
2007-03-19 13:36:29 +00:00
Andreas Krebbel 609e7e8092 s390.md (op_type attribute): RRR instruction type added.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (op_type attribute): RRR instruction type added.
	(FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
	(xde, xdee): Mode attributes adjusted to support DFP modes.
	(RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
	("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
	DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3", 
	"*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
	"*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
	"div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
	"*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP 
	numbers.
	("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
	"movsf"): Insn definitions removed.
	("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
	"*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
	"trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
	definitions added.
	("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
	"reload_in<mode>", "reload_out<mode>"): Expander added.
	("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
	Expander removed.

From-SVN: r123058
2007-03-19 08:51:20 +00:00
Andreas Krebbel 7b6baae190 s390.md: Only non-functional changes.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md: Only non-functional changes.  Renamed
	FPR mode macro to BFP all over the file.

From-SVN: r123057
2007-03-19 08:49:53 +00:00
Andreas Krebbel 85dae55a9a s390.md (UNSPEC_COPYSIGN): New constant.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
	(op_type attribute): RRF instruction type added.
	(fT0): New mode attribute.
	("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
	"*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
	* config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
	no secondary memory is needed when moving DFmode values between GPRs
	and FPRs.

From-SVN: r123056
2007-03-19 08:48:36 +00:00
Andreas Krebbel 3443392a8a s390.opt ("mhard-float", [...]): Bit value inverted and documentation adjusted.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
	inverted and documentation adjusted.
	("mhard-dfp", "msoft-dfp"): New options.
	* config/s390/s390.c (s390_handle_arch_option): New architecture
	switch: z9-ec.
	(override_options): Sanity checks for the new options added.
	* config.gcc: New architecture switch: z9-ec.
	* config/s390/s390.h (processor_flags): PF_DFP added.
	(TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
	(TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
	when the bit is NOT set so remove it from the defaults.

From-SVN: r123055
2007-03-19 08:46:57 +00:00
Andreas Krebbel c413e1b5be genemit.c (main): Print include statement for dfp.h.
2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* genemit.c (main): Print include statement for dfp.h.
	* dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
	is not available.

From-SVN: r123054
2007-03-19 08:45:29 +00:00
Hans-Peter Nilsson 1375006a87 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
From-SVN: r123053
2007-03-19 08:29:43 +00:00
Kaz Kojima c6ac6e82ac re PR target/31022 ([SH4] internal compiler error with inline)
PR target/31022
	* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
	instead of PATTERN.

From-SVN: r123049
2007-03-19 04:14:59 +00:00
John David Anglin ecc418c4f9 pa.c (output_deferred_plabels, [...]): Cleanup formatting of targetm calls.
* pa.c (output_deferred_plabels, output_bb, output_millicode_call,
	attr_length_call, output_call, output_indirect_call): Cleanup
	formatting of targetm calls.

From-SVN: r123048
2007-03-19 01:48:34 +00:00
Hans-Peter Nilsson c3271cd263 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
From-SVN: r123043
2007-03-18 23:46:02 +00:00
John David Anglin d4f2728ad9 pa.md: Add fpstore_load and store_fpload instruction types.
* pa.md: Add fpstore_load and store_fpload instruction types.  Provide
	reservation, bypass and anti-bypass descriptions for these instructions.
	Update move patterns.
	* pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
	TYPE_FPSTORE.

From-SVN: r123041
2007-03-18 19:47:43 +00:00
Dorit Nuzman f58e97341c tree-vect-transform.c (get_initial_def_for_induction): Replace GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
* tree-vect-transform.c (get_initial_def_for_induction): Replace
        GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
        (get_initial_def_for_reduction): Likewise.

From-SVN: r123034
2007-03-18 04:37:32 +00:00
Daniel Berlin 1e4816bcc9 re PR tree-optimization/29922 ([Linux] ICE in insert_into_preds_of_block)
2007-03-16  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/29922
	* tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
	(get_representative): Removed.
	(value_dies_in_block_x): Update for rvuse removal.
	(valid_in_sets): Update for renaming of vuses_dies_in_block_x.
	(compute_antic_aux): Handle when PHI nodes appear in
	non-single-successors. 
	(dump_bitmap_of_names): Removed.
	(compute_antic_safe): Renamed and removed rvuse calculation.
	Calculate only antic safe.
	(insert_into_preds_of_block): Remove assert.
	(execute_pre): Update for renamed functions.
	(defer_or_phi_translate_block): New function.

From-SVN: r123029
2007-03-17 23:07:34 +00:00
Kazu Hirata 79b8aae86d * tree-data-ref.h: Remove the prototype for analyze_array.
From-SVN: r123026
2007-03-17 17:51:39 +00:00
Kazu Hirata 44c7bd63b6 arm.c, [...]: Fix comment typos.
* config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
	config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
	typos.
	* doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
	Follow spelling conventions.

From-SVN: r123025
2007-03-17 17:44:02 +00:00
Dorit Nuzman c492dc9a66 re PR tree-optimization/31041 (verify_stmts failed: invalid operand to binary operator with -O2 -ftree-vectorize)
PR tree-optimization/31041
        * tree-vect-transform.c (get_initial_def_for_induction): Call
        force_gimple_operand.

From-SVN: r123023
2007-03-17 14:43:30 +00:00
Olga Golovanevsky 44d974b5d2 ipa-type-escape fix for ada
From-SVN: r123022
2007-03-17 12:47:53 +00:00
Kazu Hirata 604e4ce3fe final.c (final_scan_insn): Alter the condition of a conditional trap if we have nonstandard CC.
* final.c (final_scan_insn): Alter the condition of a
	conditional trap if we have nonstandard CC.

From-SVN: r123021
2007-03-17 11:43:07 +00:00
Alexandre Oliva cf0eb7a12b configure.ac: Remove excess quoting from asm line 0 test.
* configure.ac: Remove excess quoting from asm line 0 test.
* configure: Rebuilt.

From-SVN: r123006
2007-03-16 23:44:42 +00:00
Manuel López-Ibáñez 07231d4f83 invoke.texi (-Wconversion): Document warnings specific to C++.
2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (-Wconversion): Document warnings specific to C++.
	* c-common.c (convert_and_check): Move warning logic to...
	(warnings_for_convert_and_check): ...here. Define.
	* c-common.h (warnings_for_convert_and_check): Declare.
cp/
	* cvt.c (cp_convert_and_check) : Define.
	* cp-tree.h (cp_convert_and_check): Declare.
	* call.c (convert_conversion_warnings): Rename to
	conversion_null_warnings.  The warning for floating-point to
	integer is handled by convert_and_check in convert_like_real.
	(convert_like_real): convert_conversion_warnings was renamed as
	conversion_null_warnings.
	* typeck.c (build_binary_op): Use cp_convert_and_check to warn for
	overflow and changes of value during conversion.
testsuite/
	* g++.dg/warn/Wconversion-integer.C: New
	* g++.dg/warn/Wconversion-real.C: New.
	* g++.dg/warn/Wconversion-real-integer.C: New.
	* g++.dg/warn/conv2.C: Updated.

From-SVN: r123005
2007-03-16 23:32:12 +00:00
John David Anglin aefd26064c pa.c (attr_length_call): Partially revert change of 2007-03-09.
* pa.c (attr_length_call): Partially revert change of 2007-03-09.
	(output_call): Likewise.

From-SVN: r123002
2007-03-16 23:12:46 +00:00
Richard Sandiford ad8577fdb6 vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
gcc/
	* config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.

From-SVN: r122992
2007-03-16 14:35:26 +00:00
Richard Sandiford d95d45fd6b vx-common.h (WINT_TYPE, [...]): Define.
gcc/
	* config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.

From-SVN: r122991
2007-03-16 14:34:56 +00:00
Uros Bizjak 0935e0910e i386.c (override_options): Add PTA_NO_SAHF to k8...
* config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
	opteron, athlon-64 and athlon-fx processor_alias_table entries.

From-SVN: r122989
2007-03-16 13:32:08 +01:00
Sebastian Pop a9549792d3 re PR tree-optimization/31183 (ICE in int_cst_value, at tree.c:7684 with -O3 -ftree-loop-linear)
PR tree-optimization/31183
	* tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): 
	Use double_int instead of unsigned int for representing access_strides.
	* testsuite/gcc.dg/tree-ssa/pr31183.c: New.

From-SVN: r122988
2007-03-16 11:30:48 +00:00
Richard Guenther 7b1737d07a re PR tree-optimization/31146 (forwprop does not look through casts)
2007-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31146
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
	to allow recursion of forward_propagate_addr_expr.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(forward_propagate_addr_expr): Likewise.
	(tree_ssa_forward_propagate_single_use_vars): Likewise.
	(forward_propagate_addr_expr_1): Recurse on simple copies
	instead of propagating into them.  Do so for useless conversions
	as well.
	(forward_propagate_addr_expr): Clean up unused statements after
	recursion.

	* g++.dg/tree-ssa/pr31146.C: New testcase.

From-SVN: r122985
2007-03-16 10:11:14 +00:00
Richard Guenther 4c8a652e3f builtins.c (expand_builtin_cexpi): Use the right argument for the expansion via cexp.
2007-03-16  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Use the right argument
	for the expansion via cexp.

From-SVN: r122982
2007-03-16 09:54:39 +00:00
Alexandre Oliva 43bc306a76 configure.ac: Don't require ELF binutils to tolerate # 0 "".
* configure.ac: Don't require ELF binutils to tolerate # 0 "".
* configure: Rebuilt.

From-SVN: r122978
2007-03-16 05:50:58 +00:00
Alexandre Oliva 8857ae1c20 re PR debug/29906 (-g option creates internal compiler error)
gcc/ChangeLog:
PR debug/29906
* dwarf2out.c (force_type_die): Adjust comment.
(dwarf2out_imported_module_or_decl): Handle base AT_import types.
gcc/testsuite/ChangeLog:
PR debug/29906
* g++.dg/debug/pr29906.C: New

From-SVN: r122976
2007-03-16 05:08:25 +00:00
DJ Delorie ba502ad6be predicates.md (minmax_operator): Don't check operands here.
* config/frv/predicates.md (minmax_operator): Don't check operands
here.

From-SVN: r122971
2007-03-15 20:56:36 -04:00
Zdenek Dvorak 9bdb685eda tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
* tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
	Update constant estimates of number of iterations.
	(record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
	argument renamed to "realistic".
	(compute_estimated_nb_iterations): Removed.
	(record_niter_bound): New function.
	(idx_infer_loop_bounds): For possible but unlikely tail arrays,
	call record_nonwrapping_iv with upper = false.
	(infer_loop_bounds_from_signedness): Pass upper argument to
	record_nonwrapping_iv.
	(estimate_numbers_of_iterations_loop): Do not call
	compute_estimated_nb_iterations.  Record estimate based on profile
	information.  Initialize the constant estimates of number of
	iterations.
	* tree-data-ref.c (estimated_loop_iterations): Return the recorded
	estimates.
	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
	number of iterations is too small.
	* cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
	(EST_NOT_AVAILABLE): Removed.
	(struct loop): Replace estimated_nb_iterations by any_upper_bound,
	nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
	fields.

	* gcc.dg/tree-ssa/prefetch-5.c: New test.

From-SVN: r122969
2007-03-16 00:25:30 +00:00
Zdenek Dvorak 17b236ed68 tree-ssa-loop-niter.c (refine_bounds_using_guard, [...]): Handle NE_EXPR guards.
* tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
	Handle NE_EXPR guards.

From-SVN: r122963
2007-03-15 23:47:18 +00:00
Manuel López-Ibáñez 9b439fe168 re PR c++/24924 (front end and preprocessor pedantic_errors settings should agree)
2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24924
	* c-opts.c (c_common_post_options): Handle C++ post-processing here.
	Set also -pedantic-errors by default for the  preprocessor unless
	-fpermissive is given.
cp/
	* decl.c (cxx_init_decl_processing): Move command-line options
	processing to c-opts.c.
testsuite/
	* g++.dg/cpp/pedantic-errors.C: New.
	* g++.dg/cpp/permissive.C: New.

From-SVN: r122961
2007-03-15 22:24:42 +00:00
Richard Guenther 34a24c113b re PR middle-end/29719 (newlib targets ICEs in expand_builtin_int_roundingfn)
2007-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/29719
	PR middle-end/31161
	* builtins.c (expand_builtin_int_roundingfn): Always fall
	back to floor/ceil and its variants even if they may be
	not available.
	(expand_builtin_cexpi): As a fallback if we
	don't have builtins for sincos or cexp create a function
	declaration for cexp and expand to a call to that.

From-SVN: r122958
2007-03-15 20:14:49 +00:00
Steven Bosscher 49ea3702aa cfglayout.c (fixup_reorder_chain): Postpone deleting dead jump tables...
* cfglayout.c (fixup_reorder_chain): Postpone deleting dead
	jump tables, move the call to delete_dead_jumptables from here...
	(cfg_layout_finalize): ...to here.  But rebuild jump labels first.
	* cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
	don't allow merging of blocks that try_redirect_by_replacing_jump
	also does not handle when not optimizing.

From-SVN: r122957
2007-03-15 20:08:29 +00:00
Uros Bizjak 419452fe7e i386.md (x86_sahf_1): Correctly handle HAVE_AS_IX86_SAHF.
* config/i386/i386.md (x86_sahf_1): Correctly handle
       HAVE_AS_IX86_SAHF.


Co-Authored-By: Francois-Xavier Coudert <coudert@clipper.ens.fr>

From-SVN: r122953
2007-03-15 11:31:49 +01:00
Uros Bizjak 68b8830aa0 re PR target/31167 (ICE wnen using __int128_t on x86_64)
PR target/31167
        * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
        x86_64_general_operand as operand[2] predicate.  Remove "iF"
        from operand constraints and use "e" constraint instead.
        (*subti3_1, *subti3_1 splitter): Ditto.
        (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
        operand[1] predicate.

testsuite/ChangeLog

       PR target/31167
       * gcc.target/i386/pr31167.c: New test.

From-SVN: r122945
2007-03-15 08:25:22 +01:00
Sebastian Pop c4d8f83b55 tree-loop-linear.c (gather_interchange_stats): For multidimensional arrays...
* tree-loop-linear.c (gather_interchange_stats): For multidimensional
	arrays, multiply the access strides by the size of the sub-array.
	* testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.

From-SVN: r122935
2007-03-14 23:23:24 +00:00
Uros Bizjak 38ca376525 configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether the configured assembler supports the sahf mnemonic.
* configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
        the configured assembler supports the sahf mnemonic.
        * configure: Regenerate.
        * config.in: Regenerate.

        * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
        emit "sahf" or ".byte\t0x9e" as asm template.

From-SVN: r122931
2007-03-14 22:03:59 +01:00
Michael Meissner e9f646295d Fix 31018 -- move TARGET_xxx in i386.md to tuning options
From-SVN: r122929
2007-03-14 20:02:03 +00:00
Dirk Mueller 62e00e9474 c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2007-03-14  Dirk Mueller  <dmueller@suse.de>

        * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
        * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
        * c-parser.c (c_parser_if_body): Always add an empty statement in case
        of empty body.
        * c-parser.c (c_parser_do_statement): Warn about empty body in
        do/while statement.
        * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
        * doc/invoke.texi (-Wempty-body): Update documentation.

        * cp/semantics.c (c_finish_if_stmt): Call empty_if_body_warning.
        (finish_do_body): Warn about empty body in do/while statement.

        * g++.dg/warn/do-empty.C: New.
        * gcc.dg/do-empty.c: New.
        * gcc.dg/if-empty-1.c: Update.
        * gcc.dg/20001116-1.c: Update.
        * gcc.dg/pr23165.c: Update.

From-SVN: r122928
2007-03-14 19:33:17 +00:00
Manuel López-Ibáñez 2e9cb75ef7 re PR c/21438 (Warning about division by zero depends on lexical form)
2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/21438
	* c-common.h (warn_for_div_by_zero): Declare.
	* c-common.c (warn_for_div_by_zero): Define.
	* c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
	warning.
cp/
	* typeck.c (build_binary_op): Call warn_for_div_zero instead of
	warning.

From-SVN: r122925
2007-03-14 18:37:37 +00:00
Richard Sandiford 925af765a6 Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators to PREFIX and STANDARD_PREFIX.
gcc/
	* Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
	to PREFIX and STANDARD_PREFIX.

From-SVN: r122924
2007-03-14 16:06:36 +00:00
Richard Sandiford ac0d72f6f0 200x-xx-xx Richard Sandiford <richard@codesourcery.com> Phil Edwards <phil@codesourcery.com>
gcc/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>

	* gthr-vxworks.h: Add an extern "C" wrapper for C++.
	(__gthread_once_t): Remove busy field for RTPs.
	(__GTHREAD_ONCE_INIT): Update accordingly.

Co-Authored-By: Phil Edwards <phil@codesourcery.com>

From-SVN: r122923
2007-03-14 13:58:21 +00:00
Richard Sandiford cd773ac48b invoke.texi: Document VxWorks options.
gcc/
	* doc/invoke.texi: Document VxWorks options.

From-SVN: r122922
2007-03-14 13:58:04 +00:00
Uros Bizjak 8c5fd59f94 invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
* doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.

From-SVN: r122910
2007-03-14 08:47:32 +01:00
Seongbae Park e31657e812 re PR tree-optimization/30590 (tree-nrv optimization clobbers return variable)
2007-03-13  Seongbae Park <seongbae.park@gmail.com>

	PR tree-optimization/30590
	* tree-nrv.c (tree_nrv): Check for the partial update of the
	return value.

From-SVN: r122909
2007-03-14 05:48:35 +00:00
Alexandre Oliva 403d485122 flags.h (flag_random_seed): Remove declaration, in favor of...
gcc/ChangeLog:
* flags.h (flag_random_seed): Remove declaration, in favor of...
* toplev.h (get_random_seed, set_random_seed): ... these.
* tree.c (get_file_function_name): Use the former.
* opts.c (common_handle_option): Use the latter.
* toplev.c
gcc/cp/ChangeLog:
* cp/repo.c (init_repo): Initialize random_seed saved options.
(finish_repo): Adjust.

From-SVN: r122901
2007-03-14 01:47:33 +00:00
Alexandre Oliva 481e0a49bb re PR middle-end/31127 (ICE in cse_find_path, at cse.c:5930)
gcc/ChangeLog:
PR middle-end/31127
* cse.c (cse_find_path): Do not bail out if a basic block that
we already visited now becomes part of a path that starts at a
different basic block.  Just disallow this, to make sure we
visit each basic block at most once.
gcc/testsuite/ChangeLog:
PR middle-end/31127
* gcc.dg/pr31127.c: New.

From-SVN: r122900
2007-03-14 01:45:39 +00:00
Jan Hubicka 4cdb798f6c ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes...
* ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
	when profile esitmate is present, calls with very low frequency are
	cold.

From-SVN: r122898
2007-03-14 01:26:00 +00:00
Zdenek Dvorak b3ce5b6ed7 re PR tree-optimization/30730 (-Wunsafe-loop-optimizations gives too many warnings)
PR tree-optimization/30730
	PR tree-optimization/26900
	* tree-ssa-loop-niter.c: Include gmp.h.
	(bounds): New type.
	(mpz_set_double_int, get_type_bounds, mpz_to_double_int,
	split_to_var_and_offset, determine_value_range,
	bound_difference_of_offsetted_base, refine_bounds_using_guard,
	bound_difference, bounds_add, bounds_negate,
	number_of_iterations_ne_max, dump_affine_iv): New functions.
	(number_of_iterations_ne, number_of_iterations_lt_to_ne,
	assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
	difference of initial and final value of control iv to validate
	results.
	(number_of_iterations_cond): Add loop parameter.  Determine bounds
	on the difference of the extremes of the control iv.  Add dumps.
	(expand_simple_operations): Handle phi nodes.
	(simplify_using_initial_conditions): Do not record used conditions.
	(number_of_iterations_exit): Pass loop to number_of_iterations_cond.
	Do not set additional_info.
	(implies_nonnegative_p, implies_ge_p): Removed.
	(derive_constant_upper_bound): Do not use parameter `additional'.
	(record_estimate): Parameter `additional' removed.  Parameter
	`i_bound' added.  Do not call derive_constant_upper_bound.
	(record_nonwrapping_iv): Use derive_constant_upper_bound to
	bound the number of iterations estimate.
	(estimate_numbers_of_iterations_loop): Pass the estimate from
	the number of iterations analysis to record_estimate.
	* tree.h (multiple_of_p): Declare.
	* tree-scalar-evolution.c (expression_expensive_p): Removed.
	(scev_const_prop): Do not check expression_expensive_p.
	* fold-const.c (multiple_of_p): Exported.
	* double-int.c (double_int_mask): Exported.
	* double-int.h (double_int_mask): Declare.
	* tree-flow.h (struct tree_niter_desc): Removed additional_info
	field.  Added max field.

	* gcc.dg/tree-ssa/loop-26.c: New test.

From-SVN: r122896
2007-03-14 00:38:34 +00:00
David Taylor 3dfe046fa7 re PR driver/12448 (-MT / -MQ don't behave as documented.)
2007-03-13  David Taylor  <taylor@candd.org>

	PR driver/12448:
	* gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
	default -MQ.

From-SVN: r122889
2007-03-13 23:50:42 +00:00
John David Anglin dc92acbc66 re PR target/31123 (FAIL: gcc.c-torture/execute/builtin-bitops-1.c compilation, -O3 ...)
PR target/31123
	Fix ChangeLog entry.

From-SVN: r122887
2007-03-13 23:23:54 +00:00
John David Anglin de94a581a9 pa.md (vdepi_ior): Don't allow zero length deposit.
* pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
	two unamed patterns.

From-SVN: r122885
2007-03-13 23:09:08 +00:00
Uros Bizjak 5be6cb59b3 i386.opt (mcx16, msahf): New options.
* config/i386/i386.opt (mcx16, msahf): New options.
        * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
        (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.

        * config/i386/driver-i386.c (bit_LAHF_LM): New define.
        (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
        Output -mcx16 and -msahf options when corresponding bit is set.

        * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
        and -msahf options.

testsuite/ChangeLog

        * testsuite/gcc.target/i386/cmpxchg16b-1.c: New test.

From-SVN: r122884
2007-03-13 22:18:33 +01:00
Alexandre Oliva 03943c05c1 configure.ac: Test for assembler tolerance to # 0 "".
* configure.ac: Test for assembler tolerance to # 0 "".
* configure, config.in: Rebuilt.
* final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.

From-SVN: r122879
2007-03-13 07:19:14 +00:00
Geoffrey Keating 98312a9bed * doc/invoke.texi (Spec Files): Update for '%{,' spec.
From-SVN: r122878
2007-03-13 07:15:51 +00:00
Geoffrey Keating 49522de2d2 darwin-fallback.c: Compile file only on powerpc.
* config/rs6000/darwin-fallback.c: Compile file only on powerpc.
	(handle_syscall): Handle direct system calls.
	* config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.

From-SVN: r122877
2007-03-13 07:13:16 +00:00
Brooks Moses 7d07e4ea35 invoke.texi: Fix cpp.info cross-reference.
* doc/invoke.texi: Fix cpp.info cross-reference.
* doc/passes.texi: Fix gcc.info cross-reference.

From-SVN: r122869
2007-03-12 15:05:07 -07:00
Zdenek Dvorak fbb0d4f878 re PR middle-end/30835 (ICE with -O2 -ftree-loop-linear)
PR tree-optimization/30835
	* lambda-code.c (can_convert_to_perfect_nest): Check whether
	bb_for_stmt is not NULL before accessing it.

From-SVN: r122866
2007-03-12 21:56:12 +00:00
Joseph Myers dc5bbad332 gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for some multilibs.
* gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
	some multilibs.

From-SVN: r122865
2007-03-12 21:32:41 +00:00
Brooks Moses 80ca80e9cc re PR bootstrap/30635 (--enable-stage1-langauges configure option is not documented.)
PR 30635
* doc/install.texi: Document --enable-stage1-languages

From-SVN: r122861
2007-03-12 13:03:33 -07:00
Steven Bosscher dacb3cda32 tree-pass.h (pass_into_cfg_layout_mode, [...]): Declare.
* tree-pass.h (pass_into_cfg_layout_mode,
	pass_outof_cfg_layout_mode): Declare.
	* cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
	* passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
	(pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.

From-SVN: r122858
2007-03-12 19:38:06 +00:00
Brooks Moses 6da4bc4e6e Fixed erroneous ChangeLog and gcc/ChangeLog entries.
From-SVN: r122856
2007-03-12 12:00:28 -07:00
Seongbae Park 50d50fc7ee invoke.texi (Wvla): New warning.
ChangeLog:

2007-03-12  Seongbae Park <seongbae.park@gmail.com>

	* gcc/doc/invoke.texi (Wvla): New warning.

gcc/ChangeLog:

2007-03-12  Seongbae Park <seongbae.park@gmail.com>

	* c-decl.c (warn_variable_length_array): New function.
	Refactored from grokdeclarator to handle warn_vla
	and handle unnamed array case.
	(grokdeclarator): Refactored VLA warning case.
	* c.opt (Wvla): New flag.

gcc/cp/ChangeLog:

2007-03-12  Seongbae Park <seongbae.park@gmail.com>

	* decl.c (compute_array_index_type): New warning flag warn_vla.

gcc/testsuite/ChangeLog:

2007-03-12  Seongbae Park <seongbae.park@gmail.com>

 	* gcc.dg/wvla-1.c: New test
 	* gcc.dg/wvla-2.c: New test
 	* gcc.dg/wvla-3.c: New test
 	* gcc.dg/wvla-4.c: New test
 	* gcc.dg/wvla-5.c: New test
 	* gcc.dg/wvla-6.c: New test
 	* gcc.dg/wvla-7.c: New test
	* g++.dg/warn/Wvla-1.C: New test
	* g++.dg/warn/Wvla-2.C: New test
	* g++.dg/warn/Wvla-3.C: New test

From-SVN: r122851
2007-03-12 18:31:39 +00:00
Richard Henderson ae0698035b alpha.c (alpha_elf_section_type_flags): New.
* config/alpha/alpha.c (alpha_elf_section_type_flags): New.
	(TARGET_SECTION_TYPE_FLAGS): New.

From-SVN: r122850
2007-03-12 11:15:51 -07:00
Richard Henderson 24c78b3ac8 darwin.c (machopic_reloc_rw_mask): New.
* config/darwin.c (machopic_reloc_rw_mask): New.
        * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
        * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.

From-SVN: r122846
2007-03-12 10:00:11 -07:00
Mark Mitchell 6d4817e374 cppdefault.c (cpp_EXEC_PREFIX): New variable.
* cppdefault.c (cpp_EXEC_PREFIX): New variable.
	* cppdefault.h (cpp_PREFIX): Document.
	(cpp_PREFIX_len): Likewise.
	(cpp_EXEC_PREFIX): New variable.
	* Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
	* c-incpath.c (add_standard_paths): Correct logic for relocating
	paths within prefix.

From-SVN: r122843
2007-03-12 15:59:06 +00:00
Uros Bizjak d8e3118a8b i386.md (fixuns_trunc<mode>hi2): Implement from fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF mode macro.
* config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
	fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
	mode macro.
	(fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
	fix_truncdfdi_sse using SSEMODEF mode macro.
	(fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
	fix_truncdfsi_sse using SSEMODEF mode macro.
	(fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
	(fix_trunc?f?i_sse K8 peephole2): Fix register constraint.

From-SVN: r122839
2007-03-12 12:32:13 +01:00
Richard Sandiford 8906bbc09c config.gcc (i[4567]86-wrs-vxworks, [...]): Add elfos.h to tm_file.
gcc/
	* config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
	elfos.h to tm_file.

From-SVN: r122837
2007-03-12 09:58:50 +00:00
Olga Golovanevsky d4e702949e ipa-type-escape improvements
From-SVN: r122835
2007-03-12 08:44:48 +00:00
Richard Guenther 13338552e2 re PR middle-end/31115 (libstdc++ 22_locale/num_get/get/char/2.cc 27_io/basic_ostream/inserters_arithmetic/char/6.cc)
2007-03-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31115
	* tree-vrp.c (extract_range_from_binary_expr): Make sure
	the shift count is positive and non-anti-range for RSHIFT_EXPR.
	A shift count of zero is not special as with *_DIV_EXPR.
	(vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
	direction.

	* gcc.dg/torture/pr31115.c: New testcase.

From-SVN: r122821
2007-03-11 16:08:35 +00:00
Ian Lance Taylor d7419dec45 tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and the *_DIV_EXPR codes correctly with overflow infinities.
* tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
	the *_DIV_EXPR codes correctly with overflow infinities.

From-SVN: r122820
2007-03-11 15:53:30 +00:00
Ira Rosen e838422b9e tree-data-ref.c (analyze_offset): Add a return value (bool) to indicate success/failure of the analysis.
* tree-data-ref.c (analyze_offset): Add a return value (bool) to
	indicate success/failure of the analysis. Add negation to subtrahend
	in case of subtraction. Fail if both operands contain constants.
	(create_data_ref): Fail if analyze_offset fails.

From-SVN: r122817
2007-03-11 11:13:34 +00:00
Uros Bizjak acaaf0c621 i386.md (frndintxf2): Rename to ...
* config/i386/i386.md (frndintxf2): Rename to ...
        (rintxf2): ... this. Remove expander having same name.
        (rintsf2, rintdf2): Implement using SSEMODEF macro.
        (roundsf2, rounddf2): Ditto.
        (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
        (lround<mode>di2, lround<mode>si2): Ditto.

From-SVN: r122815
2007-03-11 11:27:30 +01:00
Steven Bosscher 7984c78796 lower-subreg.c: Include except.h.
* lower-subreg.c: Include except.h.
	(decompose_multiword_subregs): Verify that the only control flow
	insns we can split are loads to multi-words pseudos.
	Handle breaking such blocks after splitting, instead of calling
	find_many_sub_basic_blocks.

	* loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
	on the new basic block.  Add a lengthy comment explaining why we
	thought this was necessary.
	* cfglayout.c (cfg_layout_finalize): Don't break superblocks.

From-SVN: r122807
2007-03-10 23:33:40 +00:00
Mark Mitchell ed574fe919 Fix PR number.
From-SVN: r122804
2007-03-10 19:48:44 +00:00
Mark Mitchell 222725d08c re PR target/20924 (inline float divide does not set correct fpu status flags)
PR c++/20924
	* tree.c (walk_type_fields): Recurse into the element type of
	ARRAY_TYPEs if there is a pointer set.

	PR c++/20924
	* g++.dg/template/array18.C: New test.

From-SVN: r122801
2007-03-10 19:35:03 +00:00
Dirk Mueller 89132ebc4c c-common.c (warn_logical_operator): Fix condition.
2007-03-10  Dirk Mueller  <dmueller@suse.de>

       * c-common.c (warn_logical_operator): Fix condition.

From-SVN: r122800
2007-03-10 18:49:28 +00:00
Tobias Schlüter df990293b8 Fix typo in ChangeLog entry
From-SVN: r122797
2007-03-10 18:07:41 +01:00
Tobias Schlüter 4f6480020e darwin.h (DARWIN_MINVERSION_SPEC): Add missing quotation mark.
* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
quotation mark.
* config/i386/darwin.c (machopic_select_section): Remove
superfluous argument in call to categorize_decl_for_section.
Remove unused variable shlib.

From-SVN: r122796
2007-03-10 18:06:19 +01:00
Joseph Myers c9ecbf8693 configure.ac (glibc_header_dir): Set using with_build_sysroot if defined.
* configure.ac (glibc_header_dir): Set using with_build_sysroot if
	defined.
	* configure: Regenerate.

From-SVN: r122795
2007-03-10 16:43:55 +00:00
Uros Bizjak 79cd820a29 i386.md (UNSPEC_C2_FLAG): New constant.
* config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
        (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
        (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
        Add LABEL_NUSES to emmitted label.
        * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
        branch probability value to emmitted jump insn.
        * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
        Do not check life information and do not re-arrange input operands
        for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.

From-SVN: r122793
2007-03-10 13:52:52 +01:00
Kaz Kojima 343d66ade5 sh.c (sh_insn_length_adjustment): Adjust for the change of decode_asm_operands.
* config/sh/sh.c (sh_insn_length_adjustment): Adjust for
	the change of decode_asm_operands.

From-SVN: r122792
2007-03-10 06:57:16 +00:00
Kaz Kojima 07288ab037 mode-switching.c (create_pre_exit): Skip blockage insn.
* mode-switching.c (create_pre_exit): Skip blockage insn.

From-SVN: r122791
2007-03-10 05:04:10 +00:00
Diego Novillo 706ca88ebb tree-pass.h (TODO_update_smt_usage): Remove.
* tree-pass.h (TODO_update_smt_usage): Remove.
	Update all users.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
	argument SOME.
	Update all users.

From-SVN: r122787
2007-03-09 20:54:13 -05:00
John David Anglin 751d985534 pa.c (attr_length_call): Revise condition for long pc-relative branch.
* pa.c (attr_length_call): Revise condition for long pc-relative branch.
	(output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
	calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
	SOM target.

From-SVN: r122784
2007-03-10 01:34:23 +00:00
Geoffrey Keating 48137d59c3 gcc.c: Document %{, in big comment at top.
* gcc.c: Document %{, in big comment at top.
	(input_suffix_matches): Remove special handling for .s and
	.S.
	(input_spec_matches): New.
	(handle_braces): Handle %{,.
	(validate_switches): ',' indicates a value which is not a switch.
	* config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
	to detect assembler input.
	* config/i386/sol2.h (CPP_SPEC): Likewise.
	* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/rs6000/lynx.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
	-m64 causes deployment target to default to 10.5.
	* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

From-SVN: r122783
2007-03-10 01:03:36 +00:00
Richard Henderson 9b580a0b53 re PR target/26090 (IA-64 creates DT_TEXTREL binaries)
PR target/26090
	* target.h (targetm.asm.out.reloc_rw_mask): New.
	* target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_OUT): Use it.
	* targhooks.c, targhooks.h (default_reloc_rw_mask): New.
	* varasm.c (categorize_decl_for_section): Remove shlib argument;
	use the new reloc_rw_mask target hook instead.
	(default_section_type_flags_1): Merge into...
	(default_section_type_flags): ... here.
	(decl_readonly_section_1): Merge into...
	(decl_readonly_section): ... here.
	(default_elf_select_section_1): Merge into...
	(default_elf_select_section): ... here.
	(default_unique_section_1): Merge into...
	(default_unique_section): ... here.
	(compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
	(default_select_rtx_section): Use it.
	(default_elf_select_rtx_section): Likewise.
	* output.h: Update to match.
	* doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
	* config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/i386/i386.c (x86_64_elf_select_section): Adjust call
	to categorize_decl_for_section.
	(x86_64_elf_unique_section): Likewise.
	* config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/ia64/ia64.c (ia64_rwreloc_select_section,
	ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
	(ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
	(TARGET_RWRELOC): Remove.
	(ia64_section_type_flags): Adjust call to default_section_type_flags.
	* config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
	(rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
	(rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
	(rs6000_xcoff_select_section): Use decl_readonly_section.
	(rs6000_xcoff_section_type_flags): Use default_section_type_flags.
	* config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
	(TARGET_SECTION_TYPE_FLAGS): Remove.
	* config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.

From-SVN: r122781
2007-03-09 16:53:09 -08:00
Roger Sayle 23b9463ba6 fold-const.c (fold_comparison): Remove compile-time evaluation of complex constant equality/inequality...
* fold-const.c (fold_comparison): Remove compile-time evaluation of
	complex constant equality/inequality comparisons for here.
	(fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
	known at compile-time or can be simplified to a scalar comparison.
	(fold_relational_const): Move compile-time evaluation of complex
	constant equality/inequality comparisons to here.

	* gcc.dg/fold-eqcmplx-1.c: New test case.

From-SVN: r122767
2007-03-09 23:09:10 +00:00
Alexandre Oliva 7cd4f641a0 Add line that went missing in the last ChangeLog entry.
From-SVN: r122761
2007-03-09 20:16:25 +00:00
Alexandre Oliva 7e7e28c7c7 re PR rtl-optimization/30643 (CSE pessimization)
gcc/ChangeLog:
PR rtl-optimization/30643
* cse.c (cse_insn): Recompute dest_hash after insert_regs for
(fold_rtx): Recurse, like before 2006-11-03.
gcc/testsuite/ChangeLog:
PR rtl-optimization/30643
* gcc.dg/pr30643.c: New.

From-SVN: r122760
2007-03-09 20:13:10 +00:00
DJ Delorie a009aafece * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to m32c-pragma.o
From-SVN: r122759
2007-03-09 15:08:13 -05:00
Aldy Hernandez 0f84b06679 re PR tree-optimization/30375 (tree-ssa-dse incorrectly removes struct initialization)
PR tree-optimization/30375
        * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
        LHS of statements is not the same.
        * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.

From-SVN: r122758
2007-03-09 20:05:08 +00:00
Chao-ying Fu 3204138527 extend.texi (MIPS DSP Built-in Functions): Document the DSP REV 2.
* doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
REV 2.
* doc/invoke.texi (-mdspr2): Document new option.
* config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
New unspec for DSP REV 2.
(<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
these instructions are extended in DSP REV 2.
(mips-dspr2.md): Include.
* config/mips/mips.opt (mdspr2): New option.
* config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
(override_options): Check TARGET_DSPR2 to enable MASK_DSP.
(CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
(dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
(dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
and 2 builtins.
(bdesc_map): Add one field of unsupported_target_flags.
(bdesc_arrays):  Update entries to have extra fields.  Add
dsp_32only_bdesc.
(mips_init_builtins): Initialize new function types.
Check unsupported_target_fileds to filter out builtins.
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
TARGET_DSPR2.
(ASM_SPEC): Pass mdspr2 to the assembler.
* config/mips/mips-dspr2.md: New file.

From-SVN: r122756
2007-03-09 19:19:44 +00:00
Sa Liu 4a71edd9b8 altivec.md: Fix vcond patterns using if_then_else.
2007-03-09  Sa Liu  <saliu@de.ibm.com>

	* config/rs6000/altivec.md: Fix vcond patterns using if_then_else.

From-SVN: r122755
2007-03-09 18:17:08 +00:00
Ian Lance Taylor 4d4362c8da opts.c (common_handle_option): Treat -Wstrict-overflow (with no argument) like -Wstrict-overflow=2.
* opts.c (common_handle_option): Treat -Wstrict-overflow (with no
	argument) like -Wstrict-overflow=2.
	* doc/invoke.texi (Warning Options): Update documentation.

From-SVN: r122753
2007-03-09 17:59:47 +00:00
Dirk Mueller 63a0874077 re PR c/17946 (wanted: warning for "a && MASK" when "a & MASK" was probably intended)
2007-03-09  Dirk Mueller  <dmueller@suse.de>

       PR c++/17946
       * doc/invoke.texi (-Wlogical-op): Document.
       * common.opt (-Wlogical-op): New.
       * c-common.h (warn_logical_operator): Declare.
       * c-common.c (warn_logical_operator): Define.
       * c-typeck.c (parser_build_binary_op): Call
       warn_logical_operator.

       * cp/call.c (build_new_op): Call warn_logical_operator.

       * testsuite/gcc.dg/Wlogical-op-1.c: New.
       * testsuite/g++.dg/warn/Wlogical-op-1.C: New.

From-SVN: r122751
2007-03-09 16:16:35 +00:00
Alexandre Oliva 0de2ae0273 rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
* rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
* final.c (final_scan_insn): Test for non-"" file name.

From-SVN: r122750
2007-03-09 15:10:33 +00:00
Sebastian Pop 3d8864c06f loop.texi: Document the Omega linear constraints solver.
* doc/loop.texi: Document the Omega linear constraints solver.
	* doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
	omega-max-geqs, omega-max-eqs, omega-max-wild-cards, 
	omega-hash-table-size, omega-max-keys, and 
	omega-eliminate-redundant-constraints.
	* tree-pass.h (pass_check_data_deps): Declared.
	* omega.c: New.
	* omega.h: New.
	* timevar.def (TV_CHECK_DATA_DEPS): Declared.
	* tree-ssa-loop.c (check_data_deps, gate_check_data_deps, 
	pass_check_data_deps): New.
	* tree-data-ref.c (init_data_ref): Remove declaration.
	(dump_data_dependence_relation): Dump DDR_INNER_LOOP.
	(analyze_array): Renamed init_array_ref, move up initializations.
	(init_data_ref): Renamed init_pointer_ref.  Moved before its call.
	Removed arguments that are set to NULL.
	(analyze_indirect_ref): Correct indentation, correct call to 
	init_pointer_ref.
	(object_analysis): Call init_array_ref instead of analyze_array.
	(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
	(access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
	of DR_ACCESS_FNS_ADDR.
	(init_omega_eq_with_af, omega_extract_distance_vectors, 
	omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
	ddr_consistent_p): New.
	(compute_affine_dependence): Check consistency of ddrs when 
	flag_check_data_deps is passed.
	(analyze_all_data_dependences): Uncomment.
	(tree_check_data_deps): New.
	* tree-data-ref.h: Include omega.h.
	(DR_ACCESS_FNS_ADDR): Removed.
	(data_dependence_relation): Add inner_loop.
	(DDR_INNER_LOOP): New.
	* common.opt (fcheck-data-deps): New.
	* tree-flow.h (tree_check_data_deps): Declare.
	* Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
	(OBJS-common): Depend on omega.o.
	(omega.o): Define.
	* passes.c (pass_check_data_deps): Scheduled.
	* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, 
	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
	PARAM_VECT_MAX_VERSION_CHECKS,
	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.

From-SVN: r122749
2007-03-09 12:39:49 +00:00