Commit Graph

32162 Commits

Author SHA1 Message Date
Uros Bizjak 27120a5993 re PR target/31478 (Typos in sse2_umulv2siv2di3, sse2_pmaddwd, sdot_prodv8hi)
2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31478
	* config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
	of V8HImode when calling ix86_binary_operator_ok.
	(sse2_pmaddwd): Call ix86_binary_operator_ok.
	(sdot_prodv8hi): Operands 1 and 2 must be register.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r123527
2007-04-05 14:16:37 -07:00
Alexandre Oliva fa574e5154 tree-sra.c (try_instantiate_multiple_fields): Needlessly initialize align to silence bogus warning.
* tree-sra.c (try_instantiate_multiple_fields): Needlessly
initialize align to silence bogus warning.

From-SVN: r123526
2007-04-05 21:10:26 +00:00
Alexandre Oliva dc808df68a re PR middle-end/22156 (bit-field copying regressed)
PR middle-end/22156
* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
all_no_warning.
(struct sra_walk_fns): Remove use_all parameter from use.
(sra_hash_tree): Handle BIT_FIELD_REFs.
(sra_elt_hash): Don't hash bitfld blocks.
(sra_elt_eq): Skip them in parent compares as well.  Handle
BIT_FIELD_REFs.
(sra_walk_expr): Don't maintain or pass down use_all_p.
(scan_use): Remove use_all parameter.
(scalarize_use): Likewise.  Re-expand assignment to
BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
output, and re-scalarize after output.  Don't mark anything
for no warning.
(scalarize_ldst): Adjust.
(scalarize_walk_gimple_modify_statement): Likewise.
(build_element_name_1): Handle BIT_FIELD_REFs.
(instantiate_element): Don't warn for any element whose parent
is used as a whole.
(instantiate_missing_elements_1): Return the sra_elt.
(canon_type_for_field): New.
(try_instantiate_multiple_fields): New.
(instantiate_missing_elemnts): Use them.
(mark_no_warning): Removed.
(generate_one_element_ref): Handle BIT_FIELD_REFs.
(REPLDUP, sra_build_elt_assignment): New.
(generate_copy_inout): Use them.
(generate_element_copy): Likewise.  Handle bitfld differences.
(generate_element_zero): Don't recurse for blocks.  Use
sra_build_elt_assignment.
(generate_one_element_int): Take elt instead of var.  Use
sra_build_elt_assignment.
(generate_element_init_1): Adjust.
(scalarize_use, scalarize_copy): Use REPLDUP.
(scalarize_ldst): Move assert before dereference.
(dump_sra_elt_name): Handle BIT_FIELD_REFs.

From-SVN: r123524
2007-04-05 18:50:34 +00:00
Steven Bosscher 21f7aaa496 * regmove.c: Fix unused variable warnings due to previous commit.
From-SVN: r123523
2007-04-05 17:57:13 +00:00
Steven Bosscher a78f3e715c regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
* regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
	(regmove_bb_head): Remove.
	(copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
	(regmove_optimize): Don't do unnecessary CFG fixes for non-existing
	problems with fixup_match_1.
	Don't initialize/free regmove_bb_head.

	(reg_is_remote_constant_p): If an insn is in the same basic block
	but not before INSN, consider it remote, too.

From-SVN: r123522
2007-04-05 16:52:26 +00:00
Anatoly Sokolov f9ca0dee6d re PR target/25448 (Unfounded warnings from the AVR backend)
PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the 
	DECL_ASSEMBLER_NAME, not the DECL_NAME.

From-SVN: r123519
2007-04-05 19:43:35 +04:00
H.J. Lu 7706ca5daa i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
	(CONDITIONAL_REGISTER_USAGE): Likewise.

From-SVN: r123516
2007-04-05 06:17:13 -07:00
Richard Henderson 51a6c5b351 * config/alpha/lib1funcs.asm: Remove unused file.
From-SVN: r123510
2007-04-04 16:34:03 -07:00
Martin Michlmayr 59af43910d typo fix
From-SVN: r123500
2007-04-04 18:29:20 +00:00
Brooks Moses b5456e04b4 re PR other/31356 (gcc --help=<language> option has problems in the output header line.)
PR other/31356
* gcc.c (print_specific_help): Fix --help=<language>
header line.
(common_handle_option): Support --help=common.

From-SVN: r123499
2007-04-04 11:17:30 -07:00
Brooks Moses 2c4c82dde6 re PR driver/31353 (gcc --help=target gives a linker error.)
PR other/31353
* gcc.c (main): Do not run the linker if
print_subprocess_help indicates that it shouldn't be
run.

From-SVN: r123498
2007-04-04 11:10:17 -07:00
Brooks Moses 5bb43e6d24 PRR doc/31355
PRR doc/31355
* doc/invoke.texi (--help=): Document <languages> value, fix
formatting in tables of values.

From-SVN: r123497
2007-04-04 11:09:06 -07:00
Danny Smith 6acd883864 winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore dllimport attribute of virtual methods.
gcc
	* config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
	dllimport attribute of virtual methods.

gcc/cp
	* class.c (check_for_override): Don't remove dllmport attribute of
	virtual methods.

gcc/testsuite

	* g++.dg/ext/dllimport12.C: Update comments

From-SVN: r123492
2007-04-04 08:00:56 +00:00
Chen Liqin c668146359 crti.asm: Change _bss_start to __bss_start.
2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>

        * config/score/crti.asm: Change _bss_start to __bss_start.
        * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
        (OUTGOING_REG_PARM_STACK_SPACE) update.
        * config/score/score.opt: add options to make backend support
        score5, score5u, score7 and score7d.
        * config/score/score.md: Likewise.
        * config/score/misc.md: Likewise.
        * config/score/mac.md: Likewise.
        * doc/invoke.texi: Likewise.
        * doc/md.texi: update constraints define.

From-SVN: r123490
2007-04-04 01:49:10 +00:00
Richard Henderson fdd84500ae expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield an appropriate type...
* expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
        an appropriate type, use the mode instead.

From-SVN: r123477
2007-04-03 08:50:42 -07:00
Uros Bizjak 81e864cb18 re PR target/31175 (isinf incorrectly expanded)
PR target/31175
       * config/i386/i386.md (isinf<mode>2): Expand only when
       TARGET_C99_FUNCTIONS is set.

From-SVN: r123465
2007-04-03 12:20:53 +02:00
Richard Sandiford 9200d6c868 config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
gcc/
	* config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
	Set the default --with-arch setting to mips2.
	* config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
	(MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	(MULTILIB_OSDIRNAMES): Delete.
	(MULTILIB_DIRNAMES): Define.
	* config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
	(LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
	(TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
	definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
	VXWORKS_OS_CPP_BUILTINS.
	(SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
	(MIPS_DEBUGGING_INFO): Undefine.
	(FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.

From-SVN: r123459
2007-04-03 09:17:56 +00:00
Jakub Jelinek 0a9430a831 re PR middle-end/30704 (Incorrect constant generation for long long)
PR middle-end/30704
	* fold-const.c (native_encode_real): Encode real.c provided longs
	as a series of 32-bit native integers.
	(native_interpret_real): Interpret buffer as a series of 32-bit
	native integers.

	* gcc.c-torture/execute/ieee/pr30704.c: New test.

From-SVN: r123455
2007-04-03 11:05:38 +02:00
Richard Guenther 5be527d081 genpreds.c (write_insn_constraint_len): Write function optimized for CONSTRAINT_LEN implementation.
2007-04-03  Richard Guenther  <rguenther@suse.de>

	* genpreds.c (write_insn_constraint_len): Write function
	optimized for CONSTRAINT_LEN implementation.
	(write_tm_preds_h): Output insn_constraint_len inline and
	use it for CONSTRAINT_LEN.
	(write_insn_preds_c): Don't output insn_constraint_len.
	* doc/md.texi (define_register_constraint): Document multi-letter
	constraints shall have the same length if they start with the same
	letter.

From-SVN: r123451
2007-04-03 08:31:27 +00:00
Uros Bizjak 577565f934 config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
* config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
	(x86_64-*-linux*): Ditto.
	* config/i386/i386.opt (mpc): New option.
	* config/i386/i386.c (overrride_options): Handle
	ix87_precision_string.
	* config/i386/crtprec.c: New file.
	* config/i386/t-crtpc: Ditto.
	* config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
	and -mpc80 options.
	* config/i386/linux64.h (ENDFILE_SPEC): Ditto.
	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
	crtprec32.o, crtprec64.o and crtprec80.o.

	* doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
	and -mpc80 options.
	(i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.

libgcc/ChangeLog:

	* config/i386/t-crtpc: New file.
	* config.host (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
        (x86_64-*-linux*): Ditto.

From-SVN: r123450
2007-04-03 09:37:56 +02:00
Eric Christopher cb7ad97b41 invoke.texi (i386 and x86-64 Options): Document -m64 limitations on darwin.
2007-04-02  Eric Christopher  <echristo@apple.com>

	    * doc/invoke.texi (i386 and x86-64 Options): Document -m64
	    limitations on darwin.

From-SVN: r123446
2007-04-03 01:03:36 +00:00
Anatoly Sokolov c8bbabf282 re PR target/31137 (missing "break" in switch for MULT in avr_rtx_costs)
PR target/31137
	* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.

From-SVN: r123437
2007-04-03 01:43:53 +04:00
Dave Korn ae65d51219 ChangeLog: Fixed trivial whitespace formatting error.
* ChangeLog: Fixed trivial whitespace formatting error.

From-SVN: r123420
2007-04-02 08:27:37 +00:00
Dave Korn f71e957e40 tm.texi (FUNCTION_MODE): Update and extend documentation.
2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* doc/tm.texi (FUNCTION_MODE):  Update and extend documentation.

From-SVN: r123419
2007-04-02 08:16:44 +00:00
Dave Korn c82476bfff libgcc2.h (exception_descriptor): Don't forward-declare.
2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* libgcc2.h (exception_descriptor):  Don't forward-declare.
	(__get_eh_table_language, __get_eh_table_version):  Delete
	prototypes of long-dead functions.

From-SVN: r123418
2007-04-02 08:09:09 +00:00
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