Commit Graph

113636 Commits

Author SHA1 Message Date
Andrew Pinski
6c1c875d6e host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
2011-11-17  Andrew Pinski  <apinski@cavium.com>

	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.

From-SVN: r181456
2011-11-17 13:01:08 -08:00
Jason Merrill
bb94892a9a re PR c++/51186 (declaring main() with auto but without --std=c++11 gives inconsistent error messages)
PR c++/51186
	* decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.

From-SVN: r181455
2011-11-17 16:00:30 -05:00
Uros Bizjak
f6546dbc89 * lib/gcc-simulate-thread.exp (simulate-thread): Improve error message.
From-SVN: r181454
2011-11-17 22:00:16 +01:00
Andrew MacLeod
e351ae8587 builtins.c (expand_builtin): Remove 4th parameter representing weak/strong mode when...
2011-11-17  Andrew MacLeod  <amacleod@redhat.com>

	* builtins.c (expand_builtin): Remove 4th parameter representing 
	weak/strong mode when __atomic_compare_exchange becomes a library call.

	* gcc.dg/atomic-generic-aux.c (__atomic_compare_exchange): Fail if 
	memory model parameters don't match expected values.
	* gcc.dg/atomic-generic.c: Pass specific memory model parameters to
	__atomic_compare_exchange.
	* gcc.dg/atomic-noinline.c: Pass specific memory model parameters to
	__atomic_compare_exchange_n.
	* gcc.dg/atomic-noinline-aux.c (__atomic_compare_exchange_2): Remove
	weak/strong parameter and fail if memory models aren't correct.

From-SVN: r181453
2011-11-17 20:51:51 +00:00
Uros Bizjak
29e339fd2e gcc-simulate-thread.exp (simulate-thread): Run on all targets.
* lib/gcc-simulate-thread.exp (simulate-thread): Run on all targets.
	Look for simulate_thread_done to determine working gdb.  Reduce timeout
	to 10 seconds and fail when timeout occurs.  Improve error messages.

From-SVN: r181452
2011-11-17 20:56:39 +01:00
Richard Henderson
c39169c82c Unify implementations of __builtin_mem_*_fence and __sync_synchronize.
* builtins.c (expand_builtin_mem_thread_fence): Remove.
	(expand_builtin_mem_signal_fence): Remove.
	(expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
	(expand_builtin_sync_synchronize): Likewise.
	(expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
	* optabs.c (expand_asm_memory_barrier): Split out from
	expand_builtin_mem_signal_fence.
	(expand_mem_thread_fence): New, a combination of code from
	expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
	(expand_mem_signal_fence): Moved and renamed from
	expand_builtin_mem_signal_fence.
	(expand_atomic_exchange): Use expand_mem_thread_fence.
	(expand_atomic_load, expand_atomic_store): Likewise.
	* expr.h, optabs.h: Update decls.

From-SVN: r181451
2011-11-17 11:29:04 -08:00
Bin Cheng
cfb9952179 re PR rtl-optimization/50663 (conditional propagation missed in cprop.c pass)
PR rtl-optimization/50663
	* cprop.c (implicit_set_indexes): New global variable.
	(insert_set_in_table): Add additional parameter and record implicit
	set information.
	(hash_scan_set): Add additional parameter and pass it to above.
	(hash_scan_insn): Pass false to hash_scan_set.
	(compute_hash_table_work): Pass true to hash_scan_set.
	(compute_cprop_data): Add implicit set to AVIN of block which the
	implicit set is recorded for.
	(one_cprop_pass): Handle implicit_set_indexes array.

From-SVN: r181446
2011-11-17 17:11:16 +00:00
Jason Merrill
830dea94f2 class.c (add_implicitly_declared_members): Update move conditions.
N3203
	* class.c (add_implicitly_declared_members): Update move
	conditions.

From-SVN: r181445
2011-11-17 11:35:11 -05:00
Jason Merrill
a8e237782f re PR c++/51137 ([C++0x] [4.7 Regression] ICE with -std=c++0x and virtual inheritance)
PR c++/51137
	* class.c (build_base_path): Don't do calculation in templates.

From-SVN: r181444
2011-11-17 11:34:59 -05:00
Michael Matz
f14c43566a re PR tree-optimization/50644 (ICE in set_is_used added today)
PR middle-end/50644
	PR middle-end/50741

	* tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
	current function.
	(remove_unused_locals): Ditto.

testsuite/

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

From-SVN: r181443
2011-11-17 16:03:56 +00:00
Rainer Orth
d846e425c9 Provide all dummy functions in alloc_cpp.cc, eh_cpp.cc
* alloc_cpp.cc [__osf__] (_ZnwX, _ZdlPv, _ZnaX, _ZdaPv,
	_ZnwXRKSt9nothrow_t, _ZdlPvRKSt9nothrow_t, _ZdaPvRKSt9nothrow_t):
	Dummy functions.
	* eh_cpp.cc [__osf__] (__cxa_allocate_exception, __cxa_throw,
	__cxa_begin_catch, __cxa_end_catch, __cxa_tm_cleanup): Likewise.

From-SVN: r181442
2011-11-17 11:34:33 +00:00
Rainer Orth
1502e1556c Skip simulate-thread tests on all alpha targets
* lib/gcc-simulate-thread.exp (simulate-thread): Skip on
	alpha*-*-*.

From-SVN: r181441
2011-11-17 11:25:10 +00:00
Jonathan Wakely
ee42e4b6ef status_cxx2011.xml: Status of piecewise construction and ios_base::failure.
* doc/xml/manual/status_cxx2011.xml: Status of piecewise construction
	and ios_base::failure.
	* doc/xml/manual/backwards_compatibility.xml: List headers in
	alphabetical order.

From-SVN: r181438
2011-11-17 10:14:11 +00:00
Richard Henderson
4eace304b8 Copy ALIAS_SET_MEMORY_BARRIER when creating a new MEM for atomic ops.
* config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
	ALIAS_SET_MEMORY_BARRIER when creating a new memory.
	(alpha_split_atomic_exchange_12): Likewise.
	* config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.

From-SVN: r181436
2011-11-16 20:44:27 -08:00
David Edelsohn
00449933e6 inclhack.def (aix_once_init_[12]): New fixes.
* inclhack.def (aix_once_init_[12]): New fixes.
        * fixincl.x: Regenerate.
        * tests/base/pthread.h: Update.

From-SVN: r181434
2011-11-16 21:28:07 -05:00
GCC Administrator
091d26a69c Daily bump.
From-SVN: r181431
2011-11-17 00:18:35 +00:00
Uros Bizjak
e6972b8faa memopt-6.c: Cleanup tmedge tree dump.
* gcc.dg/tm/memopt-6.c: Cleanup tmedge tree dump.
	* gcc.dg/tm/memopt-13.c: Cleanup tmmark tree dump.
	* g++.dg/eh/array1.C: Cleanup gimple tree dump.

From-SVN: r181426
2011-11-17 00:09:17 +01:00
Tobias Burnus
c3f3495248 re PR fortran/39427 (F2003: Procedures with same name as types/type constructors)
gcc/fortran
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * decl.c (match_data_constant, match_data_constant,
        * variable_decl,
        gfc_match_decl_type_spec, access_attr_decl,
        check_extended_derived_type, gfc_match_derived_decl,
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
        with DT constructors.
        * gfortran.h (gfc_find_dt_in_generic,
        gfc_convert_to_structure_constructor): New function prototypes.
        * interface.c (check_interface0, check_interface1,
        gfc_search_interface): Ignore DT constructors in generic list.
        * match.h (gfc_match_structure_constructor): Update prototype.
        * match.c (match_derived_type_spec): Ensure that one uses the DT
        not the generic function.
        * module.c (MOD_VERSION): Bump.
        (dt_lower_string, dt_upper_string): New functions.
        (find_use_name_n, find_use_operator, compare_true_names,
        find_true_name, add_true_name, fix_mio_expr, load_needed,
        read_module, write_dt_extensions, write_symbol): Changes to deal with
        different symtree vs. sym names.
        (create_derived_type): Create also generic procedure.
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and
        * generic
        function as the same.
        * primary.c (gfc_convert_to_structure_constructor): New
        * function.
        (gfc_match_structure_constructor): Restructured; calls
        gfc_convert_to_structure_constructor.
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
        functions.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        is_illegal_recursion, resolve_generic_f, resolve_variable,
        resolve_fl_variable_derived, resolve_fl_derived0,
        resolve_symbol): Handle DT and DT generic constructors.
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
        gen_special_c_interop_ptr, gen_cptr_param,
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
        derived-types, which are hidden in the generic type.
        (gfc_find_dt_in_generic): New function
        * trans-array.c (gfc_conv_array_initializer): Replace
        * FL_PARAMETER
        expr by actual value.
        * trans-decl.c (gfc_get_module_backend_decl,
        * gfc_trans_use_stmts):
        Ensure that we use the DT and not the generic function.
        * trans-types.c (gfc_get_derived_type): Ensure that we use the
        * DT
        and not the generic procedure.

gcc/testsuite/
2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * gfortran.dg/constructor_1.f90: New.
        * gfortran.dg/constructor_2.f90: New.
        * gfortran.dg/constructor_3.f90: New.
        * gfortran.dg/constructor_4.f90: New.
        * gfortran.dg/constructor_5.f90: New.
        * gfortran.dg/constructor_6.f90: New.
        * gfortran.dg/use_only_5.f90: New.
        * gfortran.dg/c_ptr_tests_17.f90: New.
        * gfortran.dg/c_ptr_tests_18.f90: New.
        * gfortran.dg/used_types_25.f90: New.
        * gfortran.dg/used_types_26.f90: New
        * gfortran.dg/type_decl_3.f90: New.
        * gfortran.dg/function_types_3.f90: Update dg-error.
        * gfortran.dg/result_1.f90: Ditto.
        * gfortran.dg/structure_constructor_3.f03: Ditto.
        * gfortran.dg/structure_constructor_4.f03: Ditto.

From-SVN: r181425
2011-11-16 22:37:43 +01:00
Joseph Myers
16e835bb5c * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
From-SVN: r181423
2011-11-16 20:35:27 +00:00
David Edelsohn
27b0b3571e rs6000.c (rs6000_xcoff_section_type_flags): Default to minimum alignment if decl is NULL.
* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
        Default to minimum alignment if decl is NULL.

From-SVN: r181422
2011-11-16 13:33:52 -05:00
Uros Bizjak
c05e32f58d sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode sequence for AVX.
* config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
	sequence for AVX.
	(<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.

From-SVN: r181421
2011-11-16 19:28:08 +01:00
Matthew Gretton-Dann
a6bbb56fef pr30858.c: Update expected output for architectures with multiple vector sizes.
2011-10-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* gcc.dg/vect/pr30858.c: Update expected output for
	architectures with multiple vector sizes.

From-SVN: r181420
2011-11-16 18:19:37 +00:00
Matthew Gretton-Dann
425d737b36 lib1funcs.asm (udivsi3): Add support for divide functions.
2011-11-16  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/lib1funcs.asm (udivsi3): Add support for divide
	functions.
	(aeabi_uidivmod): Likewise.	
	(umodsi3): Likewise.
	(divsi3): Likewise.
	(aeabi_idivmod): Likewise.
	(modsi3): Likewise.

From-SVN: r181419
2011-11-16 18:02:12 +00:00
Venkataramanan Kumar
0fe1f31b9e * doc/invoke.texi: Document AMD bdver1 and btver1.
From-SVN: r181417
2011-11-16 17:31:38 +00:00
Richard Earnshaw
77b1138b71 re PR target/49641 (Wrong code for ARMv4T and stmia)
2011-11-16  Richard Earnshaw  <rearnsha@arm.com>
	    Bernd Schmidt <bernds@coudesourcery.com>
	    Sebastian Huber <sebastian.huber@embedded-brains.de>

	PR target/49641
	* config/arm/arm.c (store_multiple_sequence): Avoid cases where
	the base reg is stored iff compiling for Thumb1.

	* gcc.target/arm/pr49641.c: New test.

Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Sebastian Huber <sebastian.huber@embedded-brains.de>

From-SVN: r181416
2011-11-16 17:02:44 +00:00
Andrew MacLeod
3b04e1e4c4 re PR libstdc++/51102 (missing macros in <atomic>)
2011-11-16  Andrew MacLeod  <amacleod@redhat.com>

	PR libstdc++/51102
	* include/bits/atomic_base.h (ATOMIC_BOOL_LOCK_FREE,
	ATOMIC_POINTER_LOCK_FREE): New. Add missing macros.

From-SVN: r181414
2011-11-16 15:43:15 +00:00
Razya Ladelsky
1a4571cb56 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* tree-data-ref.c (initialize_data_dependence_relation): Add initializations. 
	Remove call to compute_self_dependence.
	(compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
	(compute_self_dependence): Remove old code. Add call to compute_affine_dependence.
	(compute_all_dependences): Remove call to compute_self_dependence. 
	Add call to compute_affine_dependence.

From-SVN: r181411
2011-11-16 15:01:47 +00:00
Razya Ladelsky
4122ed2b77 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* gcc.dg/autopar/pr49960.c: New test.
	* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181410
2011-11-16 14:59:14 +00:00
Razya Ladelsky
3f660e4726 re PR tree-optimization/49960 (inconsistent outputs when enabling autopar for a self -dependence testcase)
PR tree-optimization/49960

	* gcc.dg/autopar/pr49960.c: New test.
	* gcc.dg/autopar/pr49960-1.c: New test.

From-SVN: r181409
2011-11-16 14:58:04 +00:00
Uros Bizjak
807133470c re PR bootstrap/51098 (bootstrap failed on avx i686, svn revision 181259 to 181267)
PR bootstrap/51098
	* acinclude.m4 (LIBITM_CHECK_AS_AVX): Fix target selector.
	* configure: Regenerate.

From-SVN: r181408
2011-11-16 15:51:13 +01:00
Paolo Carlini
75abb33d21 2011-11-16 Paolo Carlini <paolo.carlini@oracle.com>
* Fix name in ChangeLog entry.

From-SVN: r181407
2011-11-16 10:23:59 +00:00
Andreas Krebbel
41272e2a5d re PR middle-end/50325 (76 new fails with rev. 177691)
2011-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR middle-end/50325
	* expmed.c (store_bit_field_1): Use extract_bit_field on big
	endian targets if the source cannot be exactly covered by word
	mode chunks.

From-SVN: r181405
2011-11-16 09:27:56 +00:00
Tristan Gingold
f2a176dcf5 qrnnd.S: Use specific pseudos for VMS.
2011-11-16  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/qrnnd.S: Use specific pseudos for VMS.

From-SVN: r181403
2011-11-16 08:36:46 +00:00
Joseph Myers
4a7bdab0f2 i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to ELF_STRING_LIMIT.
* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
	ELF_STRING_LIMIT.

From-SVN: r181400
2011-11-16 00:21:56 +00:00
GCC Administrator
36fbf1dd21 Daily bump.
From-SVN: r181399
2011-11-16 00:18:50 +00:00
Richard Henderson
2371d1a0a1 alpha: Convert to atomic optabs.
From-SVN: r181395
2011-11-15 15:43:08 -08:00
Paolo Carlini
6dc88283f6 re PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.)
2011-11-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/51142
	* include/debug/unordered_map (unordered_map<>::erase(iterator),
	unordered_multimap<>::erase(iterator)): Add, consistently with
	LWG 2059.
	* include/debug/unordered_set (unordered_set<>::erase(iterator),
	unordered_multiset<>::erase(iterator)): Likewise.
	* include/debug/map.h (map<>::erase(iterator)): Likewise.
	* include/debug/multimap.h (multimap<>::erase(iterator)): Likewise.
	* include/profile/map.h (map<>::erase(iterator)): Likewise.
	* include/profile/multimap.h (multimap<>::erase(iterator)): Likewise.
	* include/bits/hashtable.h (_Hashtable<>::erase(iterator)): Likewise.
	* include/bits/stl_map.h (map<>::erase(iterator)): Likewise.
	* include/bits/stl_multimap.h (multimap<>::erase(iterator)): Likewise.
	* include/bits/stl_tree.h (_Rb_tree<>::erase(iterator)): Likewise.
	* testsuite/23_containers/unordered_map/erase/51142.cc: New.
	* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
	* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.

From-SVN: r181394
2011-11-15 23:28:49 +00:00
Tom de Vries
f01fe5f68a pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
2011-11-16  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/pr43864.c: Check for absence of 'Invalid sum' in pre tree-dump.
	* gcc.dg/pr43864-2.c: Same.
	* gcc.dg/pr43864-3.c: Same.
	* gcc.dg/pr43864-4.c: Same.

From-SVN: r181393
2011-11-15 23:04:46 +00:00
Tom de Vries
fa405d7bbe tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
2011-11-16  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.

From-SVN: r181392
2011-11-15 23:04:39 +00:00
Alan Modra
1ff2fd21dc re PR rtl-optimization/51051 (build fails on cris-elf building libstdc++-v3)
PR rtl-optimization/51051
	PR bootstrap/51086
	* function.c (thread_prologue_and_epilogue_insns): Guard
	emitting return with single_succ_p test.

From-SVN: r181391
2011-11-16 08:40:46 +10:30
Uros Bizjak
e35525e9b4 sse2-cvt-vec.c: New test.
* gcc.target/i386/sse2-cvt-vec.c: New test.
	* gcc.target/i386/avx-cvt-vec.c: Ditto.
	* gcc.target/i386/avx-cvt-2-vec.c: Ditto.

From-SVN: r181390
2011-11-15 20:40:04 +01:00
Joern Rennecke
f41fc8aaaa epiphany.md (mov<mode>cc): Fix code to get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
* config/epiphany/epiphany.md (mov<mode>cc): Fix code to
        get mode from CMP_OP1 if CMP_OP0 is VOIDmode.

From-SVN: r181388
2011-11-15 19:06:32 +00:00
Uros Bizjak
76a2c904df sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
* config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
	(vec_pack_sfix_trunc_v2df): Ditto.
	(vec_pack_sfix_v2df): Ditto.
	(vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
	avx_vec_concatv8si patterns.
	(vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
	avx_vec_concatv8si patterns.

testsuite/ChangeLog:

	* gcc.target/i386/avx-floor-sfix-2-vec.c: New test.
	* gcc.target/i386/avx-ceil-sfix-2-vec.c: Ditto.
	* gcc.target/i386/avx-rint-sfix-2-vec.c: Ditto.
	* gcc.target/i386/avx-round-sfix-2-vec.c: Ditto.

From-SVN: r181387
2011-11-15 19:45:20 +01:00
Iain Sandoe
6bbb00938c gcc-simulate-thread.exp (simulate-thread): Do not run on powerpc*-*-darwin* targets.
gcc/testsuite:

	* lib/gcc-simulate-thread.exp (simulate-thread): Do not run on
	powerpc*-*-darwin* targets.

From-SVN: r181384
2011-11-15 13:16:17 +00:00
Torvald Riegel
69b765189a Require parentheses when parsing transaction expressions.
gcc/
	* c-parser.c (c_parser_transaction_expression): Require parentheses
	when parsing transaction expressions.

	gcc/cp/
	* parser.c (cp_parser_transaction_expression): Require parentheses
	when parsing transaction expressions.

	gcc/testsuite/
	* c-c++-common/tm/trxn-expr-3.c: New test.

From-SVN: r181383
2011-11-15 12:16:13 +00:00
Jason Dick
402356d146 re PR libstdc++/51133 (Incorrect implementation of std::tr1::hermite())
2011-11-15  Jason Dick  <dickphd@gmail.com>

	PR libstdc++/51133
	* include/tr1/poly_hermite.tcc (__poly_hermite_recursion): Fix
	wrong sign in recursion relation.

From-SVN: r181381
2011-11-15 10:49:00 +00:00
Tristan Gingold
0ea069123c incpath.c (get_added_cpp_dirs): New function.
2011-11-15  Tristan Gingold  <gingold@adacore.com>

	* incpath.c (get_added_cpp_dirs): New function.
	* incpath.h (get_added_cpp_dirs): Declare.
	* config/vms/vms-c.c (vms_c_register_includes): New function.
	(vms_std_modules): New variable.
	* config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
	(vms_c_register_includes): Declare.

From-SVN: r181380
2011-11-15 10:25:36 +00:00
Tristan Gingold
e50e723eec c-pragma.h (pragma_extern_prefix): Declare.
2011-11-15  Tristan Gingold  <gingold@adacore.com>

	* c-family/c-pragma.h (pragma_extern_prefix): Declare.
	* c-family/c-pragma.c (pragma_extern_prefix): Make it public.
	* config/vms/vms-c.c (saved_extern_prefix): New variable.
	(vms_pragma_extern_prefix): New function.
	(vms_c_register_pragma): Register vms_pragma_extern_prefix.

From-SVN: r181379
2011-11-15 10:22:55 +00:00
Georg-Johann Lay
7c20948114 re PR target/49868 (Implement named address space to place/access data in flash memory)
gcc/
	PR target/49868
	* config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
	(REGISTER_TARGET_PRAGMAS): New define.
	* config/avr/avr-protos.h (avr_mem_pgm_p): New.
	(avr_load_libgcc_p): New.
	(asm_output_external_libcall): Remove.
	(avr_register_target_pragmas): New.
	(avr_log_t): Add field "progmem".  Order alphabetically.
	* config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
	* config/avr/avr-c.c (langhooks.h): New include.
	(avr_register_target_pragmas): New function. Register address
	space __pgm.
	(avr_cpu_cpp_builtins): Add built-in define __PGM.
	* config/avr/avr.c: Include "c-family/c-common.h".
	(TARGET_LEGITIMATE_ADDRESS_P): Remove define.
	(TARGET_LEGITIMIZE_ADDRESS): Remove define.
	(TARGET_ADDR_SPACE_SUBSET_P): Define to...
	(avr_addr_space_subset_p): ...this new static function.
	(TARGET_ADDR_SPACE_CONVERT): Define to...
	(avr_addr_space_convert): ...this new static function.
	(TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
	(avr_addr_space_address_mode): ...this new static function.
	(TARGET_ADDR_SPACE_POINTER_MODE): Define to...
	(avr_addr_space_pointer_mode): ...this new static function.
	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
	(avr_addr_space_legitimate_address_p): ...this new static function.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
	(avr_addr_space_legitimize_address): ...this new static function.
	(avr_mode_code_base_reg_class): Handle address spaces.
	(avr_regno_mode_code_ok_for_base_p): Ditto.
	(lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
	(avr_option_override): Initialize them.
	(output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
	variables.
	(avr_pgm_segment): New static function.
	(avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
	(avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
	(output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
	avr_out_lpm to handle loads from progmem.
	(avr_load_libgcc_p): New static function.
	(avr_progmem_p): Test if decl is in flash.
	(avr_pgm_pointer_const_p): New static function.
	(avr_nonconst_pointer_addrspace): New static function.
	(avr_pgm_check_var_decl): New static function.
	(avr_insert_attributes): Use it.  Change error message to report
	cause (progmem or address space) when code wants to write to flash.
	(avr_section_type_flags): Unset section flag SECTION_BSS for
	data in progmem.
	* config/avr/predicates.md (nop_general_operand): New predicate.
	(nox_general_operand): New predicate.
	* config/avr/avr.md (LPM_REGNO): New define_constant.
	(load<mode>_libgcc): New expander.
	(*load.<mode>.libgcc): New insn.
	(mov<mode>): Handle loads from non-generic AS.
	(movmemhi): Ditto.  Propagate address space information to newly
	created MEM.
	(movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
	to nox_general_operand.
	(ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to nop_general_operand.
	(ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
	(lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
	(split-lpmx): New split.
	(*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
	*lshrhi3_const, *lshrsi3_const): Indent, unquote C.

libgcc/
	PR target/49868
	* config/avr/t-avr (LIB1ASMFUNCS): Add _load_3,  _load_4.
	* config/avr/lib1funcs.S (__load_3, __load_4, __xload_2): New functions.

From-SVN: r181378
2011-11-15 09:01:46 +00:00
Maxim Kuvyrkov
d2d668fbbb ipa-cp.c (ipa_value_from_jfunc): Make global.
* ipa-cp.c (ipa_value_from_jfunc): Make global.
	(ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
	(get_indirect_edge_target): Rename, make global.
	(devirtualization_time_bonus, estimate_local_effects,)
	(ipcp_discover_new_direct_edges): Update.
	* ipa-inline-analysis.c (evaluate_conditions_for_edge):
	Generalize to also handle types.  Rename to ...
	(evaluate_properties_for_edge): Use instead of
	evaluate_conditions_for_edge.
	(estimate_edge_devirt_benefit): New function.
	(estimate_calls_size_and_time): Use it.
	(estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
	(inline_merge_summary):	Update.
	(do_estimate_edge_time, do_estimate_edge_growth): Update.  Calculate
	parameter information at the call site and pass it on to subroutines.
	* tree-inline.c (estimate_num_insns): Distinguish between direct and
	indirect calls.
	(init_inline_once): Set size and time costs or indirect calls.
	* tree-inline.h (eni_weights): Add indirect_call_cost.

From-SVN: r181377
2011-11-15 03:46:08 +00:00