1. 09 Oct, 2012 25 commits
    • type_traits (common_time): Provide "SFINAE-friendly" implementation. · b3618b71
      2012-10-09  Daniel Krugler  <daniel.kruegler@googlemail.com>
      
      	* include/std/type_traits (common_time): Provide "SFINAE-friendly"
      	implementation.
      	(__success_type, __failure_type): Fix.
      	* include/std/chrono (common_type): Likewise for the chrono::time_point
      	specialization.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: New.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
      	Likewise.
      	* testsuite/20_util/duration/requirements/sfinae_friendly_1.cc:
      	Likewise.
      	* testsuite/20_util/common_type/requirements/typedefs-1.cc: Adjust wrt
      	LWG 2141.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
      	dg-error line numbers.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
      
      	* testsuite/20_util/result_of/sfinae_friendly_1.cc: Trivial stylistic
      	tweaks.
      	* testsuite/20_util/result_of/sfinae_friendly_2.cc: Likewise.
      
      From-SVN: r192276
      Daniel Krugler committed
    • ext_ins.c: Modify f2 to aviod uninitialized data. · 71111e6b
      2012-10-09  Steve Ellcey  <sellcey@mips.com>
      
      	* gcc.target/ext_ins.c: Modify f2 to aviod uninitialized data.
      
      From-SVN: r192274
      Steve Ellcey committed
    • Change more non-GTY hash tables to use the new type-safe template hash table. · 703c8606
      Constify member function parameters that can be const.
      Correct a couple of expressions in formerly uninstantiated templates.
      
      The new code is 0.362% faster in bootstrap, with a 99.5% confidence of
      being faster.
      
      Tested on x86-64.
      
      
      Index: gcc/java/ChangeLog
      
      2012-10-01  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o.
      	(JCFDUMP_OBJS): Add dependence on hash-table.o.
      	(jcf-io.o): Add dependence on hash-table.h.
      	* jcf-io.c (memoized_class_lookups): Change to use type-safe hash table.
      
      Index: gcc/c/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (c-decl.o): Add dependence on hash-table.h.
      	* c-decl.c (detect_field_duplicates_hash): Change to new type-safe
      	hash table.
      
      Index: gcc/objc/ChangeLog
      
      2012-10-01  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
      	(objc-act.o): Add dependence on hash-table.h.
      	* objc-act.c (objc_detect_field_duplicates): Change to new type-safe
      	hash table.
      
      Index: gcc/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Makefile.in (fold-const.o): Add depencence on hash-table.h.
      	(dse.o): Likewise.
      	(cfg.o): Likewise.
      	* fold-const.c (fold_checksum_tree): Change to new type-safe hash table.
      	* (print_fold_checksum): Likewise.
      	* cfg.c (var bb_original): Likewise.
      	* (var bb_copy): Likewise.
      	* (var loop_copy): Likewise.
      	* hash-table.h (template hash_table): Constify parameters for find...
      	and remove_elt... member functions.
              (hash_table::empty) Correct size expression.
              (hash_table::clear_slot) Correct deleted entry assignment.
      	* dse.c (var rtx_group_table): Change to new type-safe hash table.
      
      Index: gcc/cp/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (class.o): Add dependence on hash-table.h.
      	(tree.o): Likewise.
      	(semantics.o): Likewise.
      	* class.c (fixed_type_or_null): Change to new type-safe hash table.
      	* tree.c (verify_stmt_tree): Likewise.
      	(verify_stmt_tree_r): Likewise.
      	* semantics.c (struct nrv_data): Likewise.
      
      From-SVN: r192273
      Lawrence Crowl committed
    • * basic-block. (profile_record): New struct, moved from passes.c. · aa4723d7
      	* cfghooks.h (struct cfg_hooks) <account_profile_record>: New hook.
      	(account_profile_record): New prototype.
      	* cfghooks.c (account_profile_record): New function.
      	* tree-cfg.c (gimple_account_profile_record): New function
      	(gimple_cfg_hooks): Add it.
      	* cfgrtl.c (rtl_account_profile_record): New function
      	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Add it.
      	* passes.c (check_profile_consistency): Simplify.  Move IR-dependent
      	code around using cfghooks machinery.
      
      From-SVN: r192271
      Steven Bosscher committed
    • ChangeLog: Move testsuite entries ... · ca427758
      	* ChangeLog: Move testsuite entries ...
      	* testsuite/ChangeLog: ... here.
      
      From-SVN: r192270
      Uros Bizjak committed
    • re PR target/54760 ([SH] Add __builtin_thread_pointer, __builtin_set_thread_pointer) · be06a8b0
      	PR target/54760
      	* doc/extend.texi (Target Builtins): Add SH built-in section.
      	Document __builtin_thread_pointer and __builtin_set_thread_pointer.
      
      From-SVN: r192269
      Oleg Endo committed
    • re PR libstdc++/54861 (std::atomic_signal_fence(std::memory_order_seq_cst)… · 3cedb910
      re PR libstdc++/54861 (std::atomic_signal_fence(std::memory_order_seq_cst) issues unnecessary mfence)
      
      
      2012-10-09  Andrew MacLeod  <amacleod@redhat.com>
      
      	PR libstdc++/54861
      	* include/bits/atomic_base.h (atomic_signal_fence): Call
      	__atomic_signal_fence instead of __atomic_thread_fence.
      
      From-SVN: r192268
      Andrew MacLeod committed
    • Add support for tracing through shared libraries. · e561a992
      	* configure.ac: Check for link.h and dl_iterate_phdr.
      	* elf.c: #include <link.h> if system has dl_iterate_phdr.  #undef
      	ELF macros before #defining them.
      	(dl_phdr_info, dl_iterate_phdr): Define if system does not have
      	dl_iterate_phdr.
      	(struct elf_syminfo_data): Add next field.
      	(elf_initialize_syminfo): Initialize next field.
      	(elf_add_syminfo_data): New static function.
      	(elf_add): New static function, broken out of
      	backtrace_initialize.  Call backtrace_dwarf_add instead of
      	backtrace_dwarf_initialize.
      	(struct phdr_data): Define.
      	(phdr_callback): New static function.
      	(backtrace_initialize): Call elf_add.
      	* dwarf.c (struct dwarf_data): Add next and base_address fields.
      	(add_unit_addr): Add base_address parameter.  Change all callers.
      	(add_unit_ranges, build_address_map): Likewise.
      	(add_line): Add ddata parameter.  Change all callers.
      	(read_line_program, add_function_range): Likewise.
      	(dwarf_lookup_pc): New static function, broken out of
      	dwarf_fileline.
      	(dwarf_fileline): Call dwarf_lookup_pc.
      	(build_dwarf_data): New static function.
      	(backtrace_dwarf_add): New function.
      	(backtrace_dwarf_initialize): Remove.
      	* internal.h (backtrace_dwarf_initialize): Don't declare.
      	(backtrace_dwarf_add): Declare.
      	* configure, config.h.in: Rebuild.
      
      From-SVN: r192267
      Ian Lance Taylor committed
    • 808590.cc: Fix constant value. · 1a61077e
      2012-10-09  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
      	Fix constant value.
      
      From-SVN: r192265
      Benjamin Kosnik committed
    • re PR c++/53763 (Missing error check on decltype when used within variadic template argument list) · 5b5d3d76
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/53763
      	* g++.dg/cpp0x/decltype43.C: New.
      
      From-SVN: r192263
      Paolo Carlini committed
    • Fix for PR53397 by making prefecthing less agressive · a5497b12
      From-SVN: r192261
      Venkataramanan Kumar committed
    • re PR libstdc++/54869 (ext/random/simd_fast_mersenne_twister_engine/cons/default.cc FAILs) · eeeef8f4
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR libstdc++/54869
      	* include/ext/random (simd_fast_mersenne_twister_engine): Provide
      	only for little endian targets.
      	* include/ext/random.tcc: Likewise.
      	* config/cpu/i486/opt/ext/opt_random.h: Likewise.
      	* testsuite/lib/libstdc++.exp (check_v3_target_little_endian): Add.
      	* testsuite/lib/dg-options.exp (dg-require-little-endian): Add.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	operators/equal.cc: Use the latter.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	operators/serialize.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	operators/inequal.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	cons/copy.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	cons/seed1.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	cons/seed2.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	cons/default.cc: Likewise.
      	* testsuite/ext/random/simd_fast_mersenne_twister_engine/
      	cons/seed_seq.cc: Likewise.
      
      From-SVN: r192256
      Paolo Carlini committed
    • re PR bootstrap/54837 (lto bootstrap error: ICE in expand_debug_source_expr, at cfgexpand.c:3538) · 7b575cfa
      2012-10-09  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/54837
      	* cfgexpand.c (expand_debug_source_expr): Move checking
      	code conditional on a found decl_debug_args vector.
      
      From-SVN: r192255
      Richard Guenther committed
    • Fix gcc.target/i386/long-double-80-7.c (PR target/54866) · d2310dd1
      	PR target/54866
      	* gcc.target/i386/long-double-80-7.c: Add -msse2 to dg-options.
      
      From-SVN: r192253
      Rainer Orth committed
    • tree-streamer.c (streamer_tree_cache_get): Move ... · 58191b2e
      2012-10-09  Richard Guenther  <rguenther@suse.de>
      
      	* tree-streamer.c (streamer_tree_cache_get): Move ...
      	* tree-streamer.h (streamer_tree_cache_get): ... here as inline.
      
      From-SVN: r192252
      Richard Guenther committed
    • loop-unroll.c (unroll_loop_constant_iterations): Add update of… · 73367f92
      loop-unroll.c (unroll_loop_constant_iterations): Add update of loop->nb_iterations_upper_bound I missed in my previous commit...
      
      
      	* loop-unroll.c (unroll_loop_constant_iterations): Add
      	update of loop->nb_iterations_upper_bound I missed in my previous
      	commit; use TRUNC_DIV_EXPR instead of FLOOR_DIV_EXPR to divide
      	iteration count.
      	(decide_unroll_runtime_iterations): Avoid overflow.
      	(unroll_loop_runtime_iterations): Use TRUNC_DIV_EXPR instead of
      	FLOOR_DIV_EXPR to update iteration bounds.
      	(decide_peel_simple): Avoid integer overflow when deciding
      	on number of peelings.
      	(decide_unroll_stupid): Likewise.
      
      From-SVN: r192251
      Jan Hubicka committed
    • lto-cgraph.c (input_node_opt_summary): Remove unused code. · 0b8c30f9
      gcc/
      2012-10-08  Tobias Burnus  <burnus@net-b.de>
      
      	* lto-cgraph.c (input_node_opt_summary): Remove unused code.
      	* lto-opts.c (append_to_collect_gcc_options): Fix condition.
      	* lto-symtab.c (lto_cgraph_replace_node): Don't xstrdup string
      	which is passed to fprintf.
      
      gcc/lto/
      2012-10-08  Tobias Burnus  <burnus@net-b.de>
      
      	* lto-lang.c (lto_register_builtin_type): Avoid useless
      	decl creation.
      	* lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.
      
      From-SVN: r192250
      Tobias Burnus committed
    • re PR c++/54194 (misleading suggestion about arithmetic in operand of '|') · 5d9de0d0
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54194
      	* tree.h: Add EXPR_LOC_OR_LOC.
      
      c-family/
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54194
      	* c-common.c (warn_about_parentheses): Add location_t parameter;
      	use EXPR_LOC_OR_LOC.
      	* c-common.h: Update declaration.
      
      c/
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54194
      	* c-typeck.c (parser_build_binary_op): Update warn_about_parentheses
      	call.
      
      /cp
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54194
      	* typeck.c (build_x_binary_op): Update warn_about_parentheses call.
      	* parser.c (cp_parser_binary_expression): Use SET_EXPR_LOCATION
      	on current.lhs.
      
      /testsuite
      2012-10-09  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/54194
      	* g++.dg/warn/Wparentheses-26.C: Adjust.
      	* g++.dg/warn/Wparentheses-27.C: New.
      
      From-SVN: r192246
      Paolo Carlini committed
    • re PR rtl-optimization/54739 (FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 "Splitting reg") · 3b867892
      	PR rtl-optimization/54739
      	* config/mcore/mcore.md: (anddi3, iordi3, xordi3): Delete
      	patterns.
      
      From-SVN: r192244
      Nick Clifton committed
    • re PR target/54661 (mcore_output_movedouble: operation on ‘memexp’ may be undefined) · d72fe292
      	PR target/54661
      	* config/mcore/mcore.c (mcore_output_movedouble): Fix typo.
      
      From-SVN: r192241
      Nick Clifton committed
    • re PR libstdc++/54754 ([parallel mode] 'make check-parallel' only works on x86-64) · 80241991
      	PR libstdc++/54754
      	* include/parallel/compatibility.h: Use atomic built-ins when they are
      	lock-free.
      
      From-SVN: r192240
      Jonathan Wakely committed
    • ChangeLog: Move testsuite entries ... · eef26c05
      	* ChangeLog: Move testsuite entries ...
      	* testsuite/ChangeLog: ... here.  Remove testsuite/ from filenames.
      
      From-SVN: r192239
      Uros Bizjak committed
    • re PR c++/54427 (Expose more vector extensions) · a212e43f
      2012-10-09  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR c++/54427
      
      c/
      	* c-typeck.c: Include c-common.h.
      	(enum stv_conv): Moved to c-common.h.
      	(scalar_to_vector): Moved to c-common.c.
      	(build_binary_op): Adapt to scalar_to_vector's new prototype.
      	* Make-lang.in: c-typeck.c depends on c-common.h.
      
      c-family/
      	* c-common.c (scalar_to_vector): Moved from c-typeck.c. Support
      	more operations. Make error messages optional.
      	* c-common.h (enum stv_conv): Moved from c-typeck.c.
      	(scalar_to_vector): Declare.
      
      cp/
      	* typeck.c (cp_build_binary_op): Handle mixed scalar-vector
      	operations.
      	[LSHIFT_EXPR, RSHIFT_EXPR]: Likewise.
      
      gcc/
      	* fold-const.c (fold_binary_loc): Use build_zero_cst instead of
      	build_int_cst for a potential vector.
      
      testsuite/
      	* c-c++-common/vector-scalar.c: New testcase.
      	* g++.dg/ext/vector18.C: New testcase.
      	* g++.dg/ext/vector5.C: This is not an error anymore.
      	* gcc.dg/init-vec-1.c: Move ...
      	* c-c++-common/init-vec-1.c: ... here. Adapt error message.
      	* gcc.c-torture/execute/vector-shift1.c: Move ...
      	* c-c++-common/torture/vector-shift1.c: ... here.
      	* gcc.dg/scal-to-vec1.c: Move ...
      	* c-c++-common/scal-to-vec1.c: ... here. Avoid narrowing for
      	C++11. Adapt error messages.
      	* gcc.dg/convert-vec-1.c: Move ...
      	* c-c++-common/convert-vec-1.c: ... here.
      	* gcc.dg/scal-to-vec2.c: Move ...
      	* c-c++-common/scal-to-vec2.c: ... here.
      
      From-SVN: r192238
      Marc Glisse committed
    • testsuite_abi.cc (check_version): Add CXXABI_1.3.7. · f5220359
      	* testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.7.
      
      From-SVN: r192237
      Uros Bizjak committed
    • Daily bump. · 425622ad
      From-SVN: r192234
      GCC Administrator committed
  2. 08 Oct, 2012 15 commits
    • * es.po: Update. · 2383575d
      From-SVN: r192226
      Joseph Myers committed
    • atom.md (atom_sse_4): Merge atom_sse_attr attibutes. · 69e3f332
      	* config/i386/atom.md (atom_sse_4): Merge atom_sse_attr attibutes.
      	(atom_sse_5): Ditto.
      
      From-SVN: r192224
      Uros Bizjak committed
    • re PR middle-end/54400 (recognize vector reductions) · b790dea2
      2012-10-08  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	PR target/54400
      	* config/i386/i386.md (type attribute): Add sseadd1.
      	(unit attribute): Add support for sseadd1.
      	(memory attribute): Likewise.
      	* config/i386/athlon.md: Likewise.
      	* config/i386/core2.md: Likewise.
      	* config/i386/atom.md: Likewise.
      	* config/i386/ppro.md: Likewise.
      	* config/i386/bdver1.md: Likewise.
      	* config/i386/sse.md (sse3_h<plusminus_insn>v2df3): split into...
      	(sse3_haddv2df3): ... expander.
      	(*sse3_haddv2df3): ... define_insn. Accept permuted operands.
      	(sse3_hsubv2df3): ... define_insn.
      	(*sse3_haddv2df3_low): New define_insn.
      	(*sse3_hsubv2df3_low): New define_insn.
      
      gcc/testsuite/
      	PR target/54400
      	* gcc.target/i386/pr54400.c: New testcase.
      
      From-SVN: r192223
      Marc Glisse committed
    • re PR c++/54858 (ICE in cp_tree_equal) · 9b2770f2
      	PR c++/54858
      	* tree.c (cp_tree_equal): Handle FIELD_DECL.
      
      	* g++.dg/template/pr54858.C: New test.
      
      From-SVN: r192220
      Jakub Jelinek committed
    • loop-unswitch.c (unswitch_single_loop): Use estimated_loop_iterations_int to… · e3a8f1fa
      loop-unswitch.c (unswitch_single_loop): Use estimated_loop_iterations_int to prevent unswitching when...
      
      
      	* loop-unswitch.c (unswitch_single_loop): Use
      	estimated_loop_iterations_int to prevent unswitching when loop
      	is known to not roll.
      	* tree-ssa-loop-niter.c (estimated_loop_iterations): Do not segfault
      	when SCEV is not initialized.
      	(max_loop_iterations): Likewise.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Use
      	estimated_loop_iterations_int to prevent unswithcing when
      	loop is known to not roll.
      	* tree-scalar-evolution.c (scev_initialized_p): New function.
      	* tree-scalar-evolution.h (scev_initialized_p): Likewise.
      	* loop-unroll.c (decide_peel_once_rolling): Use
      	max_loop_iterations_int.
      	(unroll_loop_constant_iterations): Update
      	nb_iterations_upper_bound and nb_iterations_estimate.
      	(decide_unroll_runtime_iterations): Use
      	estimated_loop_iterations or max_loop_iterations;
      	(unroll_loop_runtime_iterations): fix profile updating.
      	(decide_peel_simple): Use estimated_loop_iterations
      	and max_loop_iterations.
      	(decide_unroll_stupid): Use estimated_loop_iterations
      	ad max_loop_iterations.
      	* loop-doloop.c (doloop_modify): Use max_loop_iterations_int.
      	(doloop_optimize): Likewise.
      	* loop-iv.c (iv_number_of_iterations): Use record_niter_bound.
      	(find_simple_exit): Likewise.
      	* cfgloop.h (struct niter_desc): Remove niter_max.
      
      From-SVN: r192219
      Jan Hubicka committed
    • re PR debug/54831 (ICE: in vt_add_function_parameter, at var-tracking.c:9412… · ee84cd37
      re PR debug/54831 (ICE: in vt_add_function_parameter, at var-tracking.c:9412 with -O -fno-split-wide-types -g)
      
      PR54831.
      
      From-SVN: r192218
      Marek Polacek committed
    • lto.c (lto_wpa_write_files, [...]): Free lto_file struct after closing the file. · da3202a8
      2012-10-08  Tobias Burnus  <burnus@net-b.de>
      
              * lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
              Free lto_file struct after closing the file.
      
      From-SVN: r192216
      Tobias Burnus committed
    • predict.c (predict_loops): Predict for short-circuit conditions. · 16fdb75f
      gcc:
      	2012-10-08  Dehao Chen  <dehao@google.com>
      
      	* predict.c (predict_loops): Predict for short-circuit conditions.
      	(predict_extra_loop_exits): New Function.
      
      testsuite:
      	2012-10-08  Dehao Chen  <dehao@google.com>
      
      	* g++.dg/predict-loop-exit-1.C: New.
      	* g++.dg/predict-loop-exit-2.C: New.
      	* g++.dg/predict-loop-exit-3.C: New.
      
      From-SVN: r192215
      Dehao Chen committed
    • lto.c (remember_with_vars): Also fixup INTEGER_CST. · 2512a443
      
      	* lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
      	(fixup_integer_cst): New functoin.
      	(lto_ft_type): Fixup BASETYPE of methods and offsets.
      
      From-SVN: r192214
      Jan Hubicka committed
    • bitmap.h (bitmap_and_into): Update prototype. · 7b19209f
      	* bitmap.h (bitmap_and_into): Update prototype.
      	* bitmap.c (bitmap_and_into): Return true if the target bitmap
      	changed, false otherwise.
      
      	* df.h (df_dump_insn_problem_function): New function type.
      	(struct df_problem): Add two functions, to dump just before and
      	just after an insn.
      	(DF_RD_PRUNE_DEAD_DEFS): New changable flag.
      	(df_dump_insn_top, df_dump_insn_bottom): New prototypes.
      	* df-core (df_dump_region): Use dump_bb.
      	(df_dump_bb_problem_data): New function.
      	(df_dump_top, df_dump_bottom): Rewrite using df_dump_bb_problem_data.
      	(df_dump_insn_problem_data): New function.
      	(df_dump_insn_top, df_dump_insn_bottom): New functions.
      	* df-scan.c (problem_SCAN): Add NULL fields for new members.
      	* df-problems.c (df_rd_local_compute): Ignore hard registers if
      	DF_NO_HARD_REGS is in effect.
      	(df_rd_transfer_function): If DF_RD_PRUNE_DEAD_DEFS is in effect,
      	prune reaching defs using the LR problem.
      	(df_rd_start_dump): Fix dumping of DEFs map.
      	(df_rd_dump_defs_set): New function.
      	(df_rd_top_dump, df_rd_bottom_dump): Use it.
      	(problem_RD): Add NULL fields for new members.
      	(problem_LR, problem_LIVE): Likewise.
      	(df_chain_bb_dump): New function.
      	(df_chain_top_dump): Dump only for artificial DEFs and USEs,
      	using df_chain_bb_dump.
      	(df_chain_bottom_dump): Likewise.
      	(df_chain_insn_top_dump, df_chain_insn_bottom_dump): New functions.
      	(problem_CHAIN): Add them as new members.
      	(problem_WORD_LR, problem_NOTE): Add NULL fields for new members.
      	(problem_MD): Likewise.
      	* cfgrtl.c (rtl_dump_bb): Use df_dump_insn_top and df_dump_insn_bottom.
      	(print_rtl_with_bb): Likewise.
      
      	* dce.c (init_dce): Use DF_RD_PRUNE_DEAD_DEFS.
      	* loop-invariant.c (find_defs): Likewise.
      	* loop-iv.c (iv_analysis_loop_init): Likewise.
      	* ree.c (find_and_remove_re): Likewise.
      	* web.c (web_main): Likewise.
      
      From-SVN: r192213
      Steven Bosscher committed
    • Require tls_runtime in gcc.target/i386/pr54445-1.c · 76cee070
      	* gcc.target/i386/pr54445-1.c: Require tls_runtime, add tls options.
      
      From-SVN: r192212
      Rainer Orth committed
    • Allow dynamic initialization of thread_locals. · 7c424acd
      gcc/cp/
      	* decl.c: Define tls_aggregates.
      	(expand_static_init): Remove sorry.  Add to tls_aggregates.
      	* cp-tree.h: Declare tls_aggregates.
      	* call.c (set_up_extended_ref_temp): Add to tls_aggregates.
      	* decl2.c (var_needs_tls_wrapper): New.
      	(var_defined_without_dynamic_init): New.
      	(get_tls_init_fn, get_tls_wrapper_fn): New.
      	(generate_tls_wrapper, handle_tls_init): New.
      	(cp_write_global_declarations): Call handle_tls_init and
      	enerate_tls_wrapper.
      	* mangle.c (write_guarded_var_name): Split out from..
      	(mangle_guard_variable): ...here.
      	(mangle_tls_init_fn, mangle_tls_wrapper_fn): Use it.
      	(decl_tls_wrapper_p): New.
      	* semantics.c (finish_id_expression): Replace use of thread_local
      	variable with a call to its wrapper.
      libiberty/
      	* cp-demangle.c (d_special_name, d_dump): Handle TH and TW.
      	(d_make_comp, d_print_comp): Likewise.
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_TLS_INIT and DEMANGLE_COMPONENT_TLS_WRAPPER.
      
      From-SVN: r192211
      Jason Merrill committed
    • Support C++11 thread_local destructors. · 5b031b9b
      gcc/cp/
      	* decl.c (get_thread_atexit_node): New.
      	(register_dtor_fn): Use it for TLS.
      libstdc++-v3/
      	* libsupc++/cxxabi.h: Declare __cxa_thread_atexit.
      	* libsupc++/atexit_thread.cc: New.
      	* libsupc++/Makefile.am (nested_exception.lo): Add it.
      	* config/abi/pre/gnu.ver: Add __cxa_thread_atexit.
      
      From-SVN: r192210
      Jason Merrill committed
    • Partial implementation of C++11 thread_local. · b1db7f91
      c-family/
      	* c-common.c (c_common_reswords): Add thread_local.
      cp/
      	* decl.c (cp_finish_decl): Remove errors about non-trivial
      	initialization and destruction of TLS variables.
      	(register_dtor_fn): Add sorry about TLS variables.
      	(expand_static_init): Add sorry about non-local TLS variables,
      	or error with __thread.
      	Don't emit thread-safety guards for local TLS variables.
      	(grokdeclarator): thread_local in a function implies static.
      	* decl.h: Adjust prototype.
      	* decl2.c (get_guard): Copy DECL_TLS_MODEL.
      	* parser.c (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
      	(set_and_check_decl_spec_loc): Take the token rather than the location.
      	Distinguish between __thread and thread_local.
      	(cp_parser_set_storage_class): Don't complain about thread_local before
      	extern/static.
      	(token_is__thread): New.
      	* call.c (make_temporary_var_for_ref_to_temp): Handle TLS.
      	* cp-tree.h (DECL_GNU_TLS_P): New.
      	(cp_decl_specifier_seq): Add gnu_thread_keyword_p.
      
      From-SVN: r192209
      Jason Merrill committed
    • rs6000.c (rs6000_code_end): Protect the use of ASM_WEAKEN_DECL with #if RS6000_WEAK. · 2991392b
      	* config/rs6000/rs6000.c (rs6000_code_end): Protect the use of
      	ASM_WEAKEN_DECL with #if RS6000_WEAK.
      
      From-SVN: r192207
      Jason Merrill committed