Commit Graph

29428 Commits

Author SHA1 Message Date
Paolo Bonzini cc11cc9b0f re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/25670

	* Makefile.tpl ([+compare-target+]): Print explanation messages.

	* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
	* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
	(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
	BUILD_PREFIX, BUILD_PREFIX_1.
	* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.

	* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
	* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.

	* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
	all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
	of `cat stage_current`.  Always provide the `r' and `s' variables.
	(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
	a single shell execution.
	(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
	bootstrapped modules, make the stage1 module if the build was not
	started yet, else build the current stage.
	(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
	(all-build, all-host, all-target, [+make_target+]-host,
	[+make_target+]-target): Do not use \-continued lines.
	(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
	(current_stage, restrap, stage_last): New.

	* Makefile.in: Regenerate.
	* configure: Regenerate.

gcc:
2006-02-20  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/25476

	* Makefile.in (LDFLAGS): Define from autoconf substitution.

	* Makefile.in (BOOTSTRAPPING): New.
	(quickstrap): New definition if BOOTSTRAPPING=yes.

	* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
	* configure.ac: Substitute all_selected_languages with the languages
	that were configured.  For all the other variables except
	lang_specs_files, include all the languages in the tree.
	* configure: Regenerate.
	
	* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
	if there is one.  Run the commands to run fixincludes in the same
	subshell.

	* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
	* doc/install.texi: Document exact conventions for searching target tools.
	Document --with-build-time-tools.  Document toplevel bootstrap.  Document
	something more about building an Ada cross-compiler.  Don't list GNU Make
	requirements which affect all platforms.

From-SVN: r111295
2006-02-20 08:29:17 +00:00
Roger Sayle 6a34c78895 re PR middle-end/19543 ([4.1 only] fortran LOGICAL*8 not consistently distinguished from 32 bit integers)
PR middle-end/19543
	* varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
	only equivalent if the have both the same mode and precision.

	* gfortran.dg/logical_1.f90: New test case.

From-SVN: r111294
2006-02-20 00:34:12 +00:00
Ben Elliston 9c603f8f1e * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
From-SVN: r111286
2006-02-20 10:09:26 +11:00
Roger Sayle 3d8504ac32 gcse.c (want_to_gcse_p): On STACK_REGS targets...
* gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
	constant pool references to identify stack mode constants.
	* rtlanal.c (constant_pool_constant_p): New predicate to check
	whether operand is a floating point constant in the pool.
	* rtl.h (constant_pool_constant_p): Prototype here.
	* loop.c (scan_loop): Avoid hoisting constants from the constant
	pool on STACK_REGS targets.
	(load_mems): Likewise.
	* loop-invariant.c (get_inv_cost): Make hoisting constant pool
	loads into x87 registers expensive in terms of register pressure.


Co-Authored-By: Steven Bosscher <stevenb.gcc@gmail.com>

From-SVN: r111283
2006-02-19 22:01:17 +00:00
Roger Sayle c2a8530e21 gthr-posix.h: On Tru64...
* gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
	__foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.

From-SVN: r111282
2006-02-19 21:49:58 +00:00
David Edelsohn 0d5817b2d6 xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
* config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.

From-SVN: r111275
2006-02-19 13:46:12 -05:00
Daniel Berlin 4cf4d6a323 invoke.texi: Document -fipa-pta.
2006-02-19  Daniel Berlin  <dberlin@dberlin.org>

	* doc/invoke.texi: Document -fipa-pta.
	* common.opt: Add ipa-pta option.
	* tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
	(do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
	(do_ds_constraint): Ditto.
	(get_constraint_for): Only add to referenced_vars if
	referenced_vars exists.
	(insert_into_field_list): Rewrite to do this unsorted.
	(insert_into_field_list_sorted): Rename old insert_into_field_list
	to this.
	(create_function_info_for): Use insert_into_field_list_sorted.
	(create_variable_info_for): Rewrite so it uses unsorted version,
	since the field list is sorted.
	(intra_create_variable_infos): Only add to referenced_vars if
	referenced_vars exists.
	(ipa_pta_execute): Init heapvars, and delete when done.
	* passes.c (init_optimization_passes): Add call to pass_ipa_pta.

From-SVN: r111273
2006-02-19 18:26:00 +00:00
John David Anglin 353f74e8ee install.texi: Add missing `@samp'.
* doc/install.texi: Add missing `@samp'.

From-SVN: r111272
2006-02-19 18:15:58 +00:00
Andrew Pinski 69b61bb160 darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use the arguments.
2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>

        * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
        Use the arguments.

From-SVN: r111265
2006-02-18 21:59:55 -08:00
Mark Wielaard 43e96d007a contrib.texi (Contributors): Add classpath/libgcj hackers who added new 4.1 features...
* doc/contrib.texi (Contributors): Add classpath/libgcj hackers
       who added new 4.1 features, bug fixes and integration support.

From-SVN: r111256
2006-02-19 00:02:20 +00:00
David Edelsohn aa9cf005f7 re PR target/26350 (ICE in extract_insn, at recog.c:2084, -fPIC -mlong-double-128)
PR target/26350
        * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
        MEM for ABI_V4 pic.

From-SVN: r111255
2006-02-18 18:19:02 -05:00
Richard Sandiford aacd3885eb re PR target/9703 ([arm] Accessing data through constant pool more times could be solved in less instructions)
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
	* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
	(copy_insn_1): Likewise.  Don't copy each field individually.
	Reindent.
	* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
	of RTX_SIZE.
	* reload1.c (eliminate_regs): Use shallow_copy_rtx.
	* rtl.c (rtx_size): Rename variable to...
	(rtx_code_size): ...this.
	(rtx_size): New function.
	(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
	(copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
	Reindent.
	(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
	* rtl.h (rtx_code_size): New variable.
	(rtx_size): Change from a variable to a function.
	(RTX_SIZE): Rename to...
	(RTX_CODE_SIZE): ...this.

	PR target/9703
	PR tree-optimization/17106
	* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
	(Anchored Addresses): New section.
	* doc/invoke.texi (-fsection-anchors): Document.
	* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
	(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
	(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
	* hooks.c (hook_bool_mode_rtx_false): New function.
	* hooks.h (hook_bool_mode_rtx_false): Declare.
	* gengtype.c (create_optional_field): New function.
	(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
	SYMBOL_REF_IN_BLOCK_P is true.
	* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
	(min_anchor_offset, max_anchor_offset): Likewise.
	(use_anchors_for_symbol_p): New hook.
	* toplev.c (compile_file): Call output_object_blocks.
	(target_supports_section_anchors_p): New function.
	(process_options): Check that -fsection-anchors is only used on
	targets that support it and when -funit-at-a-time is in effect.
	* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
	if the decl doesn't have one.
	* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
	* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
	of force_const_mem through use_anchored_address.
	(expand_expr_constant): New function.
	(expand_expr_addr_expr_1): Call it.  Use the same modifier when
	calling expand_expr for INDIRECT_REF.
	(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
	for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
	* expr.h (use_anchored_address): Declare.
	* loop-unroll.c: Don't declare rtx vectors here.
	* explow.c: Include output.h.
	(validize_mem): Call use_anchored_address.
	(use_anchored_address): New function.
	* common.opt (-fsection-anchors): New switch.
	* varasm.c (object_block_htab, anchor_labelno): New variables.
	(hash_section, object_block_entry_eq, object_block_entry_hash)
	(use_object_blocks_p, get_block_for_section, create_block_symbol)
	(use_blocks_for_decl_p, change_symbol_section): New functions.
	(get_variable_section): New function, split out from assemble_variable.
	(make_decl_rtl): Create a block symbol if use_object_blocks_p and
	use_blocks_for_decl_p say so.  Use change_symbol_section if the
	symbol has already been created.
	(assemble_variable_contents): New function, split out from...
	(assemble_variable): ...here.  Don't output any code for
	block symbols; just pass them to place_block_symbol.
	Use get_variable_section and assemble_variable_contents.
	(get_constant_alignment, get_constant_section, get_constant_size): New
	functions, split from output_constant_def_contents.
	(build_constant_desc): Create a block symbol if use_object_blocks_p
	says so.  Or into SYMBOL_REF_FLAGS.
	(assemble_constant_contents): New function, split from...
	(output_constant_def_contents): ...here.  Don't output any code
	for block symbols; just pass them to place_section_symbol.
	Use get_constant_section and get_constant_alignment.
	(force_const_mem): Create a block symbol if use_object_blocks_p and
	use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
	(output_constant_pool_1): Add an explicit alignment argument.
	Don't switch sections here.
	(output_constant_pool): Adjust call to output_constant_pool_1.
	Switch sections here instead.  Don't output anything for block symbols;
	just pass them to place_block_symbol.
	(init_varasm_once): Initialize object_block_htab.
	(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
	(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
	(place_block_symbol, get_section_anchor, output_object_block)
	(output_object_block_htab, output_object_blocks): New functions.
	* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
	(TARGET_ASM_OUT): Include it.
	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
	(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
	(TARGET_INITIALIZER): Include them.
	* rtl.c (rtl_check_failed_block_symbol): New function.
	* rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
	(block_symbol, object_block): New structures.
	(rtx_def): Add a block_symbol field to the union.
	(BLOCK_SYMBOL_CHECK): New macro.
	(rtl_check_failed_block_symbol): Declare.
	(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
	(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
	(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
	(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
	* output.h (output_section_symbols): Declare.
	(object_block): Name structure.
	(place_section_symbol, get_section_anchor, default_asm_output_anchor)
	(default_use_anchors_for_symbol_p): Declare.
	* Makefile.in (RTL_BASE_H): Add vec.h.
	(explow.o): Depend on output.h.
	* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
	(TARGET_MAX_ANCHOR_OFFSET): Likewise.
	(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
	(rs6000_use_blocks_for_constant_p): New function.

From-SVN: r111254
2006-02-18 22:06:53 +00:00
John David Anglin dcf966bd82 install.texi (hppa*-hp-hpux*): Update for 4.1.0.
* doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.

From-SVN: r111253
2006-02-18 21:32:06 +00:00
Andrew Pinski add9e6d3bd re PR tree-optimization/25680 (Store CCP does not understand REALPART_EXPR < COMPLEX_CST >)
2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/25680
        * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
        IMAGPART_EXPR.
2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>

        PR tree-opt/25680
        * testsuite/gcc.dg/tree-ssa/complex-3.c: New test.

From-SVN: r111251
2006-02-18 13:09:35 -08:00
Diego Novillo faf7c6784e tree-flow.h (struct var_ann_d): Rename field is_alias_tag to is_aliased.
* tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
	is_aliased.
	Update all users.

From-SVN: r111249
2006-02-18 15:31:28 -05:00
Jakub Jelinek 3f2de3dcf9 re PR middle-end/26334 (ICE in lhd_set_decl_assembler_name)
PR middle-end/26334
	* stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
	instead of DECL_REGISTER.

	* gcc.c-torture/compile/20060217-1.c: New test.
	* gcc.dg/20060218-1.c: New test.

From-SVN: r111247
2006-02-18 19:58:42 +01:00
Olivier Hainque 4ea42ebadb re PR ada/13408 (acats numeric tests cxg* fail on pa/hpux)
PR ada/13408
	* pa.h (WIDEST_HARDWARE_FP_SIZE): Define.

From-SVN: r111241
2006-02-18 16:15:07 +00:00
Joseph Myers 7bd85ce0da re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new DYNAMIC_LINKER)
PR target/24837
	* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
	* opth-gen.awk: Handle Var and InverseMask together.
	* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
	* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
	(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
	(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
	used together.
	(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
	LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
	* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
	UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER): Define.
	(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
	* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
	TARGET_GLIBC.
	* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
	* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	(TARGET_C99_FUNCTIONS): Don't define.
	* config/i386/linux.h (DYNAMIC_LINKER): Rename to
	GLIBC_DYNAMIC_LINKER.
	(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
	* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
	GLIBC_DYNAMIC_LINKER64): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
	LINUX_DYNAMIC_LINKER64.
	* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
	GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
	UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
	and LINUX_DYNAMIC_LINKER32.
	* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
	TARGET_GLIBC.
	* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
	UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
	CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
	(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
	(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
	* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
	UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER): Define.
	(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
	* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
	GLIBC_DYNAMIC_LINKER64): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
	LINUX_DYNAMIC_LINKER64.
	* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
	UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
	* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
	GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
	UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
	(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
	(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
	(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
	* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* doc/invoke.texi (-muclibc): Remove caveat about supported
	targets.

testsuite:
	* gcc.dg/glibc-uclibc-1.c, gcc.dg/glibc-uclibc-2.c: New tests.

From-SVN: r111235
2006-02-18 11:12:51 +00:00
Grigory Zagorodnev be8ac3e243 cpp.texi (__TIMESTAMP__): Document.
2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>

gcc/ChangeLog:
     * doc/cpp.texi (__TIMESTAMP__): Document.

libcpp/ChangeLog:
     * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
     * files.c (_cpp_get_file_stat): New function.
     * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
     * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
     * internal.h (_cpp_get_file_stat): Prototype.
     (struct cpp_buffer): Add timestamp.

gcc/testsuite/ChangeLog:
     * gcc.dg/cpp/undef3.c: New test.
     * gcc.dg/cpp/trad/builtins2.c: New test.

From-SVN: r111232
2006-02-18 10:25:31 +01:00
Roger Sayle 8305d7868d re PR rtl-optimization/25600 (unsigned>>31?-1:0 should be optimized to int>>31)
PR middle-end/25600
	* fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
	C is one less than the width of X (and related transformations).
	* simplify_rtx.c (simplify_unary_operation_1): Transform 
	(neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
	depending on STORE_FLAG_VALUE, were C is one less then the
	width of X.

From-SVN: r111226
2006-02-18 05:22:46 +00:00
Daniel Berlin dd7b13d8f4 re PR tree-optimization/26341 (930217-1.c and 931013-3.c ICE at -O2 and above in add_virtual_operand)
2006-02-17  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/26341
	* tree-ssa-operands.c (add_virtual_operand): Remove assert 
	about NAME_MEMORY_TAG's.

From-SVN: r111217
2006-02-18 00:09:51 +00:00
John David Anglin 7e646101de re PR target/26255 (internal compiler error: in reload_cse_simplify_operands, at postreload.c:391)
PR target/26255
	* pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
	with hardware float support, and software float support.  Add fcpy
	alternative to hardware patterns.  Add alternatives to copy between
	general and floating-point registers to the 32-bit pattern.
	* pa.c (pa_secondary_reload): Don't abort if reload tries to find a
	secondary reload to load a QI or HI mode constant into a floating
	point register. 
	* pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
	* pa64-regs.h (VALID_FP_MODE_P): Likewise.

From-SVN: r111214
2006-02-17 22:19:05 +00:00
Andrew Pinski d5b5b8bf92 re PR rtl-optimization/26272 (gcc.c-torture/execute/built-in-setjmp.c fails at -O2 and above on powerpc-darwin)
2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>

        PR target/26272
        * config/rs6000/darwin.md (load_macho_picbase_si): Add
        pc to the pattern.
        (load_macho_picbase_di): Likewise.

From-SVN: r111206
2006-02-17 11:52:28 -08:00
Jeff Law b16caf72c7 tree-vrp.c (set_value_range_to_nonnegative): New function.
* tree-vrp.c (set_value_range_to_nonnegative): New function.
	(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
	(ssa_name_nonzero_p): Likewise.
	(get_value_range): Return NULL if VRP is not running.
	(extract_range_from_expr): Fallback to tree_expr_XXX_p if
	VRP routines do not discover a range.
	(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
	* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
	* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
	(tree_expr_nonnegative_p): Similarly.
	* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
	(restore_nonzero_vars_to_original_value): Remove.
	(unsafe_associative_fp_binop): Remove.
	(tree_ssa_dominator_optimize): Remove initialization and
	finalization of nonzero_vars and nonzero_vars_stack.
	(dom_opt_initialize_block): No longer push marker on
	nonzero_vars_stack.
	(dom_opt_finalize_block): No longer call
	restore_nonzero_vars_to_original_value.
	(record_equivalences_from_phis): No longer look for
	nonzero PHI arguments.
	(cprop_into_successor_phis): No longer propagate nonzero
	property into PHI arguments.  Lose unused argument.  Caller
	updated.
	(record_equivalences_from_stmt): No longer record nonzero
	values for SSA_NAMEs.
	(lookup_avail_expr): No longer use nonzero_vars.

	* gcc.dg/tree-ssa/vrp24.c: Update expected output.
	* gcc.dg/tree-ssa/vrp26.c: New test.

From-SVN: r111175
2006-02-16 21:15:32 -07:00
Jeff Law 7f18f91710 stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly for sizetype when sizetype is unsigned.
* stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
        for sizetype when sizetype is unsigned.

From-SVN: r111170
2006-02-16 17:18:03 -07:00
Denis Nagorny d0236c3be1 re PR target/25603 (Miscompiled FORTRAN program)
2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>

	PR rtl-optimization/25603
	* reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
	(regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
	* reload1.c (choose_reload_regs): Added call of regno_clobbered_p 
	with new meaning of SETS.

From-SVN: r111162
2006-02-16 16:03:06 -08:00
Joseph Myers 464aea9859 re PR target/20353 (uclibc does not provide C99 math functions)
gcc:
	PR target/20353
	PR target/24578
	PR target/24837
	* config/linux.opt: New file.
	* config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
	LINUX_DYNAMIC_LINKER): Define.
	(TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
	* config.gcc (*-*-linux*): Define extra_options.
	(*-*-*uclibc*): Define UCLIBC_DEFAULT.
	(arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
	* config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
	GLIBC_DYNAMIC_LINKER.
	* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
	(LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
	(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
	* doc/invoke.texi (GNU/Linux Options): New section.

gcc/testsuite:
	* gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Don't define if
	__UCLIBC__ is defined.

libstdc++-v3:
	PR libstdc++/14939
	* config/os/uclibc/ctype_base.h, config/os/uclibc/ctype_inline.h,
	config/os/uclibc/ctype_noninline.h, config/os/uclibc/os_defines.h:
	New.
	* acinclude.m4 (GLIBCXX_CONFIGURE): Test whether using uClibc.
	* configure.host: Use os/uclibc for uClibc.
	* crossconfig.m4 (*-linux*): Use link tests.  Don't hardcode
	presence of math functions.
	* configure: Regenerate.

From-SVN: r111160
2006-02-16 23:29:10 +00:00
Eric Botcazou e1e835dcbb sparc.md (setjmp): Rewrite.
* config/sparc/sparc.md (setjmp): Rewrite.
	(setjmp_32): Delete.
	(setjmp_64): Likewise.

From-SVN: r111154
2006-02-16 21:41:23 +00:00
Daniel Berlin 8afa305af6 tree-ssa-operands.c (access_can_touch_variable): Fix typo in previous change.
2006-02-16  Daniel Berlin <dberlin@dberlin.org>

	* tree-ssa-operands.c (access_can_touch_variable): Fix typo in
	 previous change.

From-SVN: r111148
2006-02-16 20:29:19 +00:00
Zdenek Dvorak b6c9b9bcca loop-invariant.c (invariant_for_use, [...]): Fail for read-write uses.
* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
	read-write uses.

From-SVN: r111141
2006-02-16 15:59:00 +00:00
Zdenek Dvorak 28749cfbf3 re PR rtl-optimization/26296 (ACATS ICE cxg2007 cxg2012 verify_flow_info failed)
PR rtl-optimization/26296
	* Makefile.in (loop-invariant.c): Add except.h dependency.
	* loop-invariant.c: Include except.h.
	(find_invariant_insn): Ignore insns satisfying can_throw_internal.

From-SVN: r111139
2006-02-16 15:47:20 +00:00
Paul Brook b81ac2881e reload1.c (emit_reload_insns): Invalidate dead input registers used for reloads.
2005-02-16  Paul Brook  <paul@codesourcery.com>

	* reload1.c (emit_reload_insns): Invalidate dead input registers used
	for reloads.

From-SVN: r111137
2006-02-16 15:14:23 +00:00
Bernd Schmidt 1929b9988c re PR rtl-optimization/25636 (opts.c is being miscompiled, write to read only memory)
PR rtl-optimization/25636
	* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
	when deciding whether an insn is an initializing insn.

From-SVN: r111129
2006-02-16 01:26:54 +00:00
Daniel Berlin 3c0b6c4300 tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
2006-02-15 Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
	(tree_code_size): Ditto.
	* tree.h (struct tree_memory_tag): Remove parent_var.
	(struct tree_struct_field_tag): New.
	(SFT_OFFSET): New.
	(SFT_SIZE): New.
	(union tree_node): Add sft member.
	* tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
	specially here.
	(create_sft): Add size and offset argument, set SFT_OFFSET and
	SFT_SIZE.
	(create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
	* treestruct.def: Add TS_STRUCT_FIELD_TAG.
	* tree-flow-inline.h (get_subvar_at): Update for
	SFT_OFFSET/SFT_SIZE.
	(var_can_have_subvars): Ditto.
	(overlap_subvar): Ditto.
	* print-tree.c (print_node): Print out interesting things for
	SFT's.
	* tree-flow.h (struct subvar): Remove offset and size members.
	* tree-ssa-operands.c (get_expr_operands): Update for
	get_indirect_ref_operands changes.
	(get_indirect_ref_operands): Call add_virtual_operand instead of
	add_stmt_operand.  Only recurse on base var if requested.
	(access_can_touch_variable): New function.
	(add_stmt_operand): Split virtual operand handling into ...
	(add_virtual_operand): Here.  Add offset, size, and for_clobber
	arguments.  Prune alias sets.
	(add_call_clobber_ops): Call add_virtual_operand.

From-SVN: r111120
2006-02-15 22:09:45 +00:00
Jakub Jelinek 01ea23f3d2 re PR middle-end/26300 (ICE in trunc_int_for_mode)
PR middle-end/26300
	* combine.c (make_extraction): Bail out if ORIG_POS is negative.

	* gcc.c-torture/compile/20060215-1.c: New test.

From-SVN: r111116
2006-02-15 21:41:03 +01:00
Jakub Jelinek fb57dc0bf0 tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather than TREE_CODE as index into omp_clause_num_ops array.
* tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
	than TREE_CODE as index into omp_clause_num_ops array.

From-SVN: r111115
2006-02-15 21:38:59 +01:00
Uttam Pawar f4daf7e44e re PR rtl-optimization/26184 (memory leaks in swing modulo scheduling function)
2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>

        PR rtl-optimization/26184
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        uses_of_defs.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        must_precede, must_follow and tobe_scheduled.

        PR other/26147
        * opts.c (common_handle_option): Free new_option pointer.
        * df-core.c (df_analyze): Free postorder pointer.

From-SVN: r111114
2006-02-15 14:33:33 -05:00
Rafael Espindola f7ca46d66f Makefile.in: Fix the examples about the use of stamps
* gcc/Makefile.in: Fix the examples about the use of stamps

M    gcc/ChangeLog
M    gcc/Makefile.in

From-SVN: r111113
2006-02-15 18:46:57 +00:00
Michael Matz d1a701eb17 re PR middle-end/22275 (bitfield layout change)
PR middle-end/22275

        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        influenced by maximum_field_alignment or DECL_PACKED.
        (update_alignment_for_field): Ditto.
        (place_field): Ditto.
        * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
        this behaviour.

From-SVN: r111109
2006-02-15 12:19:49 +00:00
Paolo Bonzini 5b4fdb2060 cfg.c (dump_flow_info): Get dump flags as an additional parameter.
2006-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* cfg.c (dump_flow_info): Get dump flags as an additional parameter.
	(debug_flow_info): Pass it.
	* alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
	* bb-reorder.c (reorder_basic_blocks): Likewise.
	* cfgcleanup.c (rest_of_handle_jump2): Likewise.
	* cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
	* flow.c (life_analysis, recompute_reg_usage): Likewise.
	* gcse.c (gcse_main, bypass_jumps): Likewise.
	* ifcvt.c (rest_of_handle_if_conversion): Likewise.
	* local-alloc.c (rest_of_handle_local_alloc): Likewise.
	* loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
	* profile.c (compute_branch_probabilities, branch_prob): Likewise.
	* rtl.h (dump_flow_info): Adjust prototype.
	* tracer.c (rest_of_handle_tracer, tracer): Likewise.
	* var-tracking.c (variable_tracking_main): Likewise.
	* passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
	* tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
	options.

From-SVN: r111020
2006-02-15 09:15:56 +00:00
Marcin Dalecki bc4632d404 tree-ssa-dom.c (dom_thread_across_edge): fix tag expression construction.
2006-02-15  Marcin Dalecki <martin@dalecki.de>

	* tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
	construction.

From-SVN: r111019
2006-02-15 08:58:22 +01:00
Zdenek Dvorak 43ec2467a8 re PR tree-optimization/26209 (Specific code causes g++ 4.1.0 dominance ICE when compiled with -O3)
PR tree-optimization/26209
	* tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
	* tree-cfgcleanup.c (cleanup_control_flow): Remove dead
	eh edges.
	* tree-cfg.c (replace_uses_by): Do not alter cfg.

From-SVN: r110999
2006-02-14 23:55:22 +00:00
Roger Sayle 03bebcacbe re PR middle-end/23670 (Fold does not fold (a|b)&b to b likewise for (a&b) | b to b)
PR middle-end/23670
	* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
	(X,Y) and the corresponding symmetry related transformations.
	(fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
	(X,Y) and its symmetry related transformations.

	* gcc.dg/tree-ssa/andor-2.c: New test case.

From-SVN: r110997
2006-02-14 21:08:52 +00:00
Roger Sayle fb9c6d49ff dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU and GEU.
* dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
	and GEU.

From-SVN: r110992
2006-02-14 17:54:41 +00:00
Adam Nemet de7f492b61 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
From-SVN: r110990
2006-02-14 17:45:55 +00:00
Rainer Orth 1cf0118daf re PR bootstrap/26053 (Misdetection of COMDAT group support with GNU as and non-GNU ld)
PR bootstrap/26053
	* configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
	support COMDAT group.
	* configure: Regenerate.

From-SVN: r110985
2006-02-14 16:46:04 +00:00
Roger Sayle 1dc5d842d4 re PR middle-end/26279 (ICE in do_compare_rtx_and_jump)
PR middle-end/26279
	PR middle-end/26280
	PR middle-end/26283
	* dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.

From-SVN: r110983
2006-02-14 16:26:16 +00:00
Daniel Berlin 98035a75ac re PR tree-optimization/26260 (PTA is slow with large structs (hits clisp))
2006-02-14  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/26260

	* doc/invoke.texi (max-fields-for-field-sensitive): Document
	param.
	* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
	* tree-ssa-structalias.c (create_variable_info_for): Use
	MAX_FIELDS_FOR_FIELD_SENSITIVE.

From-SVN: r110972
2006-02-14 14:49:13 +00:00
Zdenek Dvorak 1768461812 invoke.texi (-fprefetch-loop-arrays, [...]): Document.
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
	Document.
	* tree-ssa-loop-niter.c (number_of_iterations_ne,
	number_of_iterations_lt, number_of_iterations_cond): Remember the shape
	of the ending condition.
	* tree-ssa-loop-manip.c: Include params.h.
	(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
	tree_unroll_loop): New functions.
	* tree-pass.h (pass_loop_prefetch): Declare.
	* loop.c (rest_of_handle_loop_optimize): Test for
	-fprefetch-loop-arrays-rtl.
	* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
	* timevar.def (TV_TREE_PREFETCH): New timevar.
	* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
	pass_loop_prefetch): New.
	* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
	(cleanup_tree_cfg_loop): Call scev_reset.
	* common.opt (fprefetch-loop-arrays-rtl): Add.
	* tree-ssa-loop-prefetch.c: New file.
	* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
	(new_temp_expr_table): Initialize expr_vars.
	(free_temp_expr_table): Cleanup expr_vars.
	(check_replaceable, find_replaceable_in_bb): Prevent accumulating
	expressions from being merged into one.
	* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
	(struct tree_niter_desc): Add control, bound and cmp fields.
	(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
	Declare.
	* Makefile.in (tree-ssa-loop-prefetch.o): Add.
	(tree-cfgcleanup.o): Add SCEV_H dependency.
	(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
	* passes.c (init_optimization_passes): Add pass_loop_prefetch.

From-SVN: r110964
2006-02-14 12:22:11 +00:00
Richard Guenther 0a4288d92e re PR tree-optimization/26258 (Wrong alias information for struct addresses in PHIs)
2006-02-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/26258
	* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
	in PHI argument processing.

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

From-SVN: r110963
2006-02-14 09:58:57 +00:00