Commit Graph

125478 Commits

Author SHA1 Message Date
Richard Biener
e1fb4ad332 re PR tree-optimization/58404 (&noninvariant_address not forwproped into ->handled_component)
2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58404
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
	propagate non-invariant addresses into dereferences wrapped
	in component references.

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

From-SVN: r202525
2013-09-12 13:20:17 +00:00
Richard Biener
154c91887b re PR middle-end/58402 (FAIL: gcc.dg/tree-ssa/phi-opt-1.c scan-tree-dump-times optimized "if" 0)
2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58402
	* passes.def: Move pass_late_warn_uninitialized later.

From-SVN: r202524
2013-09-12 13:19:21 +00:00
Andrew MacLeod
7a30045280 tree-ssa.h: New.
* tree-ssa.h: New.  Move content from tree-flow.h and
	tree-flow-inline.h.
	* tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
	Move prototypes belonging to tree-ssa.c.
	* tree-flow-inline.h (redirect_edge_var_map_def, 
	redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
	tree-ssa.h.
	* gimple.h: Adjust prototypes.
	* tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to...
	* gimple.c (useless_type_conversion_p, types_compatible_p):  Here.
	* tree.h: Move prototype to tree-ssa.h.
	* gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
	* Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
	* alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
	cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
	cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
	ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
	gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
	graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c,
	graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c,
	graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c,
	ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c,
	ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c,
	loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
	lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
	passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
	tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
	tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
	tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
	tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
	tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
	tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
	tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
	tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
	tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
	value-prof.c, var-tracking.c,
	varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h

From-SVN: r202523
2013-09-12 13:03:18 +00:00
Martin Jambor
33605886ff re PR ipa/58371 (internal compiler error: in ipcp_verify_propagated_values, at ipa-cp.c:892)
2013-09-12  Martin Jambor  <mjambor@suse.cz>

	PR ipa/58371
	* g++.dg/ipa/pr58371.C: New test.

From-SVN: r202522
2013-09-12 14:15:15 +02:00
Richard Biener
97463b2b87 re PR tree-optimization/58396 (heap-use-after-free at gcc/tree-loop-distribution.c:1959)
2013-09-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/58396
	* tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
	(build_rdg): Take a loop-nest parameter, fix memleaks.
	(distribute_loop): Compute loop-nest here and pass it to build_rdg.

From-SVN: r202521
2013-09-12 11:18:46 +00:00
Yuri Rumyantsev
80ecd89dab x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM.
* config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
  for SLM.

From-SVN: r202520
2013-09-12 10:48:53 +00:00
Thomas Schwinge
46ae49e8a5 ChangeLog entry for
* gcc-interface/Makefile.in: Import target_cpu, target_vendor,
        target_os and their host_ counterparts. Remove host_canonical and
        target_cpu_default, unused. Remove local ad-hoc computations of
        "host", "targ", "arch", "osys" and "manu". Replace uses of these by
        uses of the now imported family, hence back to filters against
        canonical values. Remove filters on e500 for target_cpu, expected to
        be canonicalized into powerpc. Invert the logic filtering on 64bit
        sparc for VxWorks. Simplify the filtering logic for bareboard tools
        target pairs, now using straight elf/eabi filters on the target_os
        part only.

From-SVN: r202519
2013-09-12 09:41:42 +00:00
Thomas Schwinge
69d9ba631b Makefile.in: Import target_cpu, target_vendor, target_os and their host_ counterparts.
2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
            Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/Makefile.in: Import target_cpu, target_vendor,
	target_os and their host_ counterparts. Remove host_canonical and
	target_cpu_default, unused. Remove local ad-hoc computations of
	"host", "targ", "arch", "osys" and "manu". Replace uses of these by
	uses of the now imported family, hence back to filters against
	canonical values. Remove filters on e500 for target_cpu, expected to
	be canonicalized into powerpc. Invert the logic filtering on 64bit
	sparc for VxWorks. Simplify the filtering logic for bareboard tools
	target pairs, now using straight elf/eabi filters on the target_os
	part only.

From-SVN: r202518
2013-09-12 09:35:54 +00:00
Cameron McInally
893e85fa0d extend.texi: Fix errors in x86 FMA builtin naming.
* doc/extend.texi: Fix errors in x86 FMA builtin naming.
	The FMA instruction names should have a 'v' prefix.

From-SVN: r202517
2013-09-12 11:23:08 +02:00
Richard Biener
174ec470af tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
2013-09-12  Richard Biener  <rguenther@suse.de>

	* tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
	(dot_rdg): Use popen instead of system in optional code.
	(remaining_stmts, upstream_mem_writes): Remove global bitmaps.
	(already_processed_vertex_p): Adjust.
	(has_anti_or_output_dependence, predecessor_has_mem_write,
	mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
	rdg_flag_uses): Remove.
	(rdg_flag_vertex): Simplify.
	(rdg_flag_vertex_and_dependent): Rely on a correct RDG and
	remove recursion.
	(build_rdg_partition_for_component): Process the first vertex
	of a component only.
	(ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.

	* gcc.dg/tree-ssa/ldist-4.c: Remove undefined behavior.  Adjust
	expected outcome and comment why that happens.

From-SVN: r202516
2013-09-12 08:49:01 +00:00
Alan Modra
38c89763f9 rs6000.c (toc_relative_expr_p): Use add_cint_operand.
* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.

From-SVN: r202515
2013-09-12 12:17:05 +09:30
GCC Administrator
1543c0ac6f Daily bump.
From-SVN: r202514
2013-09-12 00:17:06 +00:00
DJ Delorie
3e3d9d17aa predicates.md (rl78_cmp_operator_signed): New.
* config/rl78/predicates.md (rl78_cmp_operator_signed): New.
(rl78_stack_based_mem): New.
* config/rl78/constraints.md (Iv08): New.
(Iv16): New.
(Iv24): New.
(Is09): New.
(Is17): New.
(Is25): New.
(ISsi): New.
(IShi): New.
(ISqi): New.
* config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
(movhi): Likewise.
(movsi): Change from expand to insn-and-split.
(ashrsi3): Clobber AX.
(lshrsi3): New.
(ashlsi3): New.
(cbranchsi4): New.
* config/rl78/rl78.md (CC_REG): Fix.
(addsi3): Allow memory and immediate operands.
(addsi3_internal): Split into...
(addsi3_internal_virt): ...new, and ...
(addsi3_internal_real): ...new.
(subsi): New.
(subsi3_internal_virt): New.
(subsi3_internal_real): New.
(mulsi3): Add memory operand.
(mulsi3_rl78): Likewise.
(mulsi3_g13): Likewise.
* config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
(cbranchqi4_real): Add more constraint options.
(cbranchhi4_real): Expand pattern.
(cbranchhi4_real_signed): New.
(cbranchhi4_real_inverted): New.
(cbranchsi4_real_lt): New.
(cbranchsi4_real_ge): New.
(cbranchsi4_real_signed): New.
(cbranchsi4_real): New.
(peephole2): New.
* config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for constant shifts.
(lshrsi3_virt): Likewise.
(ashlsi3_virt): Likewise.
(cbranchqi4_virt_signed): New.
(cbranchhi4_virt_signed): New.
(cbranchsi4_virt): New.
* config/rl78/rl78.c: Whitespace fixes throughout.
(move_elim_pass): New.
(pass_data_rl78_move_elim): New.
(pass_rl78_move_elim): New.
(make_pass_rl78_move_elim): New.
(rl78_devirt_info): Run devirt earlier.
(rl78_move_elim_info): New.
(rl78_asm_file_start): Register it.
(rl78_split_movsi): New.
(rl78_as_legitimate_address): Allow virtual base registers when
appropriate.
(rl78_addr_space_convert): Remove spurious debug stuff.
(rl78_print_operand_1): Add z,s,S,r,E modifiers.
(rl78_print_operand): More cases for not printing '#'.
(rl78_expand_compare): Remove most of the logic.
(content_memory): New.
(clear_content_memory): New.
(get_content_index): New.
(get_content_name): New.
(display_content_memory): New.
(update_content): New.
(record_content): New.
(already_contains): New.
(insn_ok_now): Re-recog insns with virtual registers.
(add_postponed_content_update): New.
(process_postponed_content_update): New.
(gen_and_emit_move): New.
(transcode_memory_rtx): Record new location content.  Use
gen_and_emit_move.
(force_into_acc): New.
(move_to_acc): Use gen_and_emit_move.
(move_from_acc): Likewise.
(move_acc_to_reg): Likewise.
(move_to_x): Likewise.
(move_to_hl): Likewise.
(move_to_de): Likewise.
(rl78_alloc_physical_registers_op1): Record location content.
(has_constraint): New.
(rl78_alloc_physical_registers_op2): Record location content.
Optimize use of HL.
(rl78_alloc_physical_registers_ro1): Likewise.
(rl78_alloc_physical_registers_cmp): Likewise.
(rl78_alloc_physical_registers_umul): Likewise.
(rl78_alloc_address_registers_macax): New.
(rl78_alloc_physical_registers): Initialize and set location
content memory as needed.
(rl78_reorg): Make sure split2 is called.
(rl78_rtx_costs): New.

Co-Authored-By: Nick Clifton <nickc@redhat.com>

From-SVN: r202511
2013-09-11 20:16:03 -04:00
Mitsuru Kariya
4b47d65500 re PR libstdc++/58358 (search_n has a Complexity violation for random access iterator)
2013-09-11  Mitsuru Kariya  <kariya_mitsuru@hotmail.com>
	    Chris Jefferson  <chris@bubblescope.net>

	PR libstdc++/58358
	* include/bits/stl_algo.h (search_n): Fix to guarantee a number
	of comparisons <= number of elements in the range.
	* testsuite/25_algorithms/search_n/58358.cc: New.
	* testsuite/25_algorithms/search_n/iterator.cc: Extend.

Co-Authored-By: Chris Jefferson <chris@bubblescope.net>

From-SVN: r202510
2013-09-11 22:24:50 +00:00
Richard Sandiford
088845a5f0 simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg ...)) and (neg (not ...)) cases.
gcc/
	* simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
	for (not (neg ...)) and (neg (not ...)) cases.

From-SVN: r202506
2013-09-11 17:40:56 +00:00
Richard Biener
5c2961cf38 re PR c++/58377 (spurious "may be used uninitialized" warning with -Og)
2013-09-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/58377
	* passes.def: Split critical edges before late uninit warning passes.
	* tree-cfg.c (pass_split_crit_edges): Implement clone method.

	* g++.dg/uninit-pred-4.C: New testcase.

From-SVN: r202496
2013-09-11 12:20:07 +00:00
Jakub Jelinek
427e6a1421 re PR middle-end/58385 (likely wrong code bug)
PR tree-optimization/58385
	* fold-const.c (build_range_check): If both low and high are NULL,
	use omit_one_operand_loc to preserve exp side-effects.

	* gcc.c-torture/execute/pr58385.c: New test.

From-SVN: r202494
2013-09-11 13:35:51 +02:00
Kyrylo Tkachov
df45c0cc8d arm.md (arm_shiftsi3): New alternative l/l/M.
[gcc/]

	* config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.


[gcc/testsuite]	

	* gcc.target/arm/thumb-ifcvt-2.c: New test.

From-SVN: r202493
2013-09-11 11:14:39 +00:00
Richard Biener
80ab0b1946 tree-data-ref.c (dump_rdg_vertex, [...]): Move ...
2013-09-11  Richard Biener  <rguenther@suse.de>

	* tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
	dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
	dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
	create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
	stmts_from_loop, known_dependences_p, build_empty_rdg,
	build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
	* tree-loop-distribution.c: ... here.
	* tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
	RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
	RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
	struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
	* tree-loop-distribution.c: ... here.
	* tree-loop-distribution.c: Include gimple-pretty-print.h.
	(struct partition_s): Add loops member.
	(partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
	rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
	build_rdg_partition_for_component, rdg_build_partitions): Adjust.

From-SVN: r202492
2013-09-11 10:09:41 +00:00
Alexander Ivchenko
85a7722144 constraints.md (k): New.
* config/i386/constraints.md (k): New.
(Yk): Ditto.
* config/i386/i386.c (const regclass_map): Add new mask registers.
(dbx_register_map): Ditto.
(dbx64_register_map): Ditto.
(svr4_dbx_register_map): Ditto.
(ix86_conditional_register_usage): Squash mask registers if AVX512F is
disabled.
(ix86_preferred_reload_class): Disable constants for mask registers.
(ix86_secondary_reload): Do spill of mask register using 32-bit insn.
(ix86_hard_regno_mode_ok): Support new mask registers.
(x86_order_regs_for_local_alloc): Ditto.
* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
(FIXED_REGISTERS): Add new mask registers.
(CALL_USED_REGISTERS): Ditto.
(REG_ALLOC_ORDER): Ditto.
(VALID_MASK_REG_MODE): New.
(FIRST_MASK_REG): Ditto.
(LAST_MASK_REG): Ditto.
(reg_class): Add MASK_EVEX_REGS, MASK_REGS.
(MAYBE_MASK_CLASS_P): New.
(REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
(REG_CLASS_CONTENTS): Ditto.
(MASK_REGNO_P): New.
(ANY_MASK_REG_P): Ditto.
(HI_REGISTER_NAMES): Add new mask registers.
* config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG,
MASK3_REG, MASK4_REG, MASK5_REG, MASK6_REG,
MASK7_REG): Constants for new mask registers.
(attribute "type"): Add mskmov, msklog.
(attribute "length_immediate"): Support them.
(attribute "memory"): Ditto.
(attribute "prefix_0f"): Ditto.
(*movhi_internal): Support new mask registers.
(*movqi_internal): Ditto.
(define_split): Split out clobber pattern is a logic
insn on mask registers.
(*k<logic><mode>): New.
(*andhi_1): Extend to support mask regs.
(*andqi_1): Extend to support mask regs.
(kandn<mode>): New.
(define_split): Split and-not to and and not if operands
are not mask regs.
(*<code><mode>_1): Separate HI mode to new pattern...
(*<code>hi_1): This.
(*<code>qi_1): Extend to support mask regs.
(kxnor<mode>): New.
(kortestzhi): Ditto.
(kortestchi): Ditto.
(kunpckhi): Ditto.
(*one_cmpl<mode>2_1): Remove HImode and handle it...
(*one_cmplhi2_1): ...Here, now with mask registers support.
(*one_cmplqi2_1): Support new mask registers.
(HI/QImode arithmetics splitter): Don't split if mask registers are used.
(HI/QImode not splitter): Ditto.
* config/i386/predicated.md (mask_reg_operand): New.
(general_reg_operand): Ditto.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r202491
2013-09-11 07:32:30 +00:00
Alexander Ivchenko
7e57082152 *·doc/invoke.texi:·Document·fxsr,·xsave·and·xsaveopt·options.
*·doc/extend.texi:·Document·fxsr,·xsave·and·xsaveopt·builtins.

From-SVN: r202490
2013-09-11 07:21:15 +00:00
Jeff Law
9e1376e94d re PR tree-optimization/58380 (ice in fold_comparison)
PR tree-optimization/58380
	* tree-ssa-threadupdate.c (thread_block): Recognize another case
	of threading through a buried loop header.

	* tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
	return value for single successor case.

	* g++.dg/torture/pr58380.C: New test.

2013-09-10  Jeff Law  <law@redhat.com>

From-SVN: r202489
2013-09-10 20:23:48 -06:00
Ed Smith-Rowland
df7d9dfde3 value.cc: Change template args from char to wchar_t, literals from 'x' to L'x'.
2013-09-10  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* testsuite/28_regex/traits/wchar_t/value.cc: Change template args
	from char to wchar_t, literals from 'x' to L'x'.

From-SVN: r202487
2013-09-11 01:27:31 +00:00
GCC Administrator
174a05526a Daily bump.
From-SVN: r202486
2013-09-11 00:16:45 +00:00
Jan Hubicka
5bbcb88835 * ipa-devirt.c (ipa_devirt): Enable with LTO.
From-SVN: r202482
2013-09-10 21:41:38 +00:00
Caroline Tice
db7ca3c021 Now that it's official, add myself back in as libvtv
maintainer.

From-SVN: r202481
2013-09-10 12:17:37 -07:00
Paolo Carlini
8b415b271e re PR bootstrap/58386 (libstdc++.so.6: undefined symbol: htab_hash_pointer)
2013-09-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR bootstrap/58386
	Revert:

	2013-09-10  Gary Benson  <gbenson@redhat.com>

	* cp-demangle.c: Include hashtab.h.
	(struct d_print_info): New field saved_scopes.
	(d_print_init): Initialize the above.
	(d_print_free): New function.
	(cplus_demangle_print_callback): Call the above.
	(struct d_saved_scope): New structure.
	(d_store_scope): New function.
	(d_free_scope) Likewise.
	(d_restore_scope) Likewise.
	(d_hash_saved_scope) Likewise.
	(d_equal_saved_scope) Likewise.
	(d_print_comp): New variable saved_scope.
	[DEMANGLE_COMPONENT_REFERENCE,
	DEMANGLE_COMPONENT_RVALUE_REFERENCE]: Capture scope the first
	time the component is traversed, and use the captured scope for
	subsequent traversals.

From-SVN: r202480
2013-09-10 18:45:29 +00:00
Richard Earnshaw
d742ff4ba1 re PR target/58361 (Wrong floating point code generated for ARM target)
PR target/58361
	* arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
	support conditional execution.
	(combine_vcvt_f64_<FCVTI32typename>): Likewise.

From-SVN: r202475
2013-09-10 16:46:55 +00:00
Kai Tietz
1329f0c4e2 Add PR's section
From-SVN: r202473
2013-09-10 18:18:34 +02:00
Kai Tietz
6da10826b2 gnu-versioned-namespace.ver: Add thunk _ZTv0_n12_NS* like in gnu.ver.
PR/54314
	* config/abi/pre/gnu-versioned-namespace.ver: Add thunk _ZTv0_n12_NS*
	like in gnu.ver.

From-SVN: r202472
2013-09-10 18:17:25 +02:00
Caroline Tice
747fed27cc To prevent further confusion, remove myself as libvtv
maintainer until (if) I am officially approved as such.

From-SVN: r202471
2013-09-10 09:10:28 -07:00
H.J. Lu
f5ebad64c9 Move VTV_SUPPORTED check after AC_CANONICAL_SYSTEM
PR other/58374
	* configure.ac: Move VTV_SUPPORTED check after AC_CANONICAL_SYSTEM.
	* configure: Regenerated.

From-SVN: r202470
2013-09-10 09:00:13 -07:00
Vladimir Makarov
b0681c9e51 lra.c (lra): Clear lra_optional_reload_pseudos before every constraint pass.
2013-09-10  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Clear lra_optional_reload_pseudos before every
	constraint pass.
	* lra-constraints.c (curr_insn_transform): Switch on optional
	reloads.  Check destination too to check move insn.
	(undo_optional_reloads): Add check that the original peudo did not
	changed its allocation and the optional reload was inherited on
	last inheritance pass.  Break loop after deciding to keep optional
	reload.
	(lra_undo_inheritance): Add check that inherited pseudo still in
	memory.

From-SVN: r202468
2013-09-10 15:37:57 +00:00
Arnaud Charlet
14c3433049 [multiple changes]
2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: sem_ch3.adb:
	(Replace_Anonymoous_Access_To_Protected_Subprogram): If the
	return type is itself an access to function, recurse to emit
	another anonymous type.
	gcc-interface/decl.c (gnat_to_gnu_entity): In ASIS mode
	(type_annotate_only) do not check whether access types have a set size.

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode.
	* errout.adb (Warning_Doc_Switch): Ignored in VMS mode.
	* errout.ads (Warning_Doc_Switch): Ignored in VMS mode.
	* inline.ads (Warnings): New component in Pending_Body_Info.
	* sem_ch12.adb (Pending_Body_Info): Save and restore warnings
	at instantiation point.
	* warnsw.adb (Save_Warnings): New function (Restore_Warnings):
	New procedure Remove special handling of Warning_Doc_Switch,
	cleaner to handle the VMS case in errout, than to introduce
	undocumented oddities here.
	* warnsw.ads (Warning_Record) : New type.
	(Save_Warnings): New function.
	(Restore_Warnings): New procedure.

From-SVN: r202467
2013-09-10 17:30:44 +02:00
Arnaud Charlet
fb620b37de [multiple changes]
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* sinput.adb (Check_For_BOM): Avoid reading past end of file.

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* errout.adb (Error_Msg_Ada_2012_Feature): New procedure.
	* errout.ads (Error_Msg_Ada_2012_Feature): New procedure.
	* inline.ads: Save/Restore Ada_Version_Pragma.
	* opt.adb: Save/Restore Ada_Version_Pragma.
	* opt.ads (Ada_Version_Pragma): New variable.
	* par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb,
	par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature.
	* prj.adb: Initialize Ada_Version_Pragma.
	* sem_attr.adb: Use Error_Msg_Ada_2012_Feature.
	* sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma.
	* sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma.
	* switch-c.adb: Initialize Ada_Version_Pragma.
	* sem_ch12.adb: Minor reformatting.

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Subtype): Discard constraint on access
	to class-wide type. Such constraints are not supported and are
	considered a language pathology.

From-SVN: r202466
2013-09-10 17:21:28 +02:00
Robert Dewar
ac40189179 gnatbind.adb: Correct starting date in --version string.
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* gnatbind.adb: Correct starting date in --version string.
	* gnatdll.adb: Use Check_Version_And_Help_G to implement --help
	and --version.
	* gnatkr.adb: Use Check_Version_And_Help_G to implement --help
	and --version.
	* gnatlink.adb: Correct starting date in --version string.
	* gnatls.adb: Correct starting date in --version string.
	* make.adb: Correct starting date in --version string.

From-SVN: r202465
2013-09-10 17:17:44 +02:00
Robert Dewar
f2c0ca6632 switch-c.adb: Minor reformatting.
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* switch-c.adb: Minor reformatting.
	* atree.ads (Original_Nodes): Add documentation on ASIS usage.
	* sinfo.ads: Add section on ASIS mode (documentation only).

From-SVN: r202464
2013-09-10 17:16:41 +02:00
Robert Dewar
7b64b700f2 sem_prag.adb (Analyze_Pragma, [...]): Don't allow REASON parameter in compiler units (bootstrap issues).
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Warnings): Don't allow
	REASON parameter in compiler units (bootstrap issues).

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Output warning if
	-gnateE specified for a target that does not support it.

From-SVN: r202463
2013-09-10 17:15:20 +02:00
Arnaud Charlet
80e59506c2 [multiple changes]
2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Handle properly
	a subprogram body without previous spec.

2013-09-10  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb: Minor typo fixes.

2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb (Aspects_On_Body_OK): New routine.
	* aspects.ads: Modify type Aspect_Expression to include
	the Optional_XXX variants. Update the contents of
	table Aspect_Argument. Add table Aspect_On_Body_OK.
	(Aspects_On_Body_OK): New routine.
	* par-ch13.adb (Get_Aspect_Specifications): Account for optional
	names and expressions when parsing an aspect.
	* sem_ch6.adb: Add with and use clause for Aspects.
	(Analyze_Subprogram_Body_Helper): Do not emit an error when
	analyzing a body with aspects that can be applied simultaneously
	to both spec and body.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
	corresponding pragma of an aspect that applies to a subprogram
	body in the declarative part.
	(Make_Aitem_Pragma): Do not generate a pragma with an empty argument
	list.

From-SVN: r202462
2013-09-10 17:12:42 +02:00
Arnaud Charlet
4bb9c7b9ed [multiple changes]
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* switch-c.adb: Diagnose -gnatc given after -gnatRm.
	* gnat_ugn.texi: Add documentation for -gnatRm.
	* usage.adb: Minor reorganization (put style entries in proper
	order) Document -gnatRm switch.
	* sinfo.ads: Minor comment fix.

2013-09-10  Sergey Rybin  <rybin@adacore.com frybin>

	* tree_io.ads: Update ASIS_Version_Number.

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Declaration): Check whether the
	designated type can appear in a parameterless call.
	* sem_ch4.adb (Analyze_Call): Do not insert an explicit dereference
	in the case of an indirect call through an access function that
	returns an array type.
	(Analyze_One_Call): Handle properly legal parameterless calls
	whose result is indexed, in constructs of the for F.all (I)
	* sem_ch6.ads (May_Need_Actuals): Make public, for use on access
	to subprogram types.
	* sem_res.adb (Resolve_Call): If the call is indirect, there is
	no entity to set on the name in the call.

From-SVN: r202461
2013-09-10 17:09:33 +02:00
Arnaud Charlet
cdcf1c7ae2 [multiple changes]
2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* aspects.adb: Add entries in the Has_Aspect_Specifications_Flag
	table for package body and body stubs.
	(Move_Or_Merge_Aspects): New routine.
	(Remove_Aspects): New routine.
	* aspects.ads (Move_Aspects): Update comment on usage.
	(Move_Or_Merge_Aspects): New routine.
	(Remove_Aspects): New routine.
	* par-ch3.adb: Update the grammar of private_type_declaration,
	private_extension_declaration, object_renaming_declaration,
	and exception_renaming_declaration.
	(P_Subprogram): Parse the
	aspect specifications that apply to a body stub.
	* par-ch6.adb: Update the grammar of subprogram_body_stub and
	generic_instantiation.
	* par-ch7.adb: Update the grammar of package_declaration,
	package_specification, package_body, package_renaming_declaration,
	package_body_stub.
	(P_Package): Parse the aspect specifications
	that apply to a body, a body stub and package renaming.
	* par-ch9.adb: Update the grammar of entry_declaration,
	protected_body, protected_body_stub, task_body,
	and task_body_stub.
	(P_Protected): Add local variable
	Aspect_Sloc. Add local constant Dummy_Node.  Parse the aspect
	specifications that apply to a protected body and a protected
	body stub.
	(P_Task): Add local variable Aspect_Sloc. Add local
	constant Dummy_Node. Parse the aspect specifications that apply
	to a task body and a task body stub.
	* par-ch12.adb: Update the grammar of
	generic_renaming_declaration.
	(P_Generic): Parse the aspect
	specifications that apply to a generic renaming.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not emit
	an error when analyzing aspects that apply to a body stub. Such
	aspects are relocated to the proper body.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the aspect
	specifications that apply to a body.
	* sem_ch9.adb (Analyze_Protected_Body): Warn about user-defined
	aspects not being supported on protected bodies. Remove the
	aspect specifications.	(Analyze_Single_Protected_Declaration):
	Analyze the aspects that apply to a single protected declaration.
	(Analyze_Task_Body): Warn about user-defined aspects not being
	supported on task bodies. Remove the aspect specifications.
	* sem_ch10.adb: Add with and use clause for Aspects.
	(Analyze_Package_Body_Stub): Propagate the aspect specifications
	from the stub to the proper body.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Insert the
	corresponding pragma of an aspect that applies to a body in the
	declarations of the body.
	* sinfo.ads: Update the gramma of expression_function,
	private_type_declaration, private_extension_declaration,
	object_renaming_declaration, exception_renaming_declaration,
	package_renaming_declaration, subprogram_renaming_declaration,
	generic_renaming_declaration, entry_declaration,
	subprogram_body_stub, package_body_stub, task_body_stub,
	generic_subprogram_declaration.

2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Add processing
	for aspect/pragma SPARK_Mode when it applies to a [library-level]
	subprogram or package [body].

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Document that -gnatc and -gnatR cannot be
	given together.
	* switch-c.adb (Scan_Front_End_Switches): Give error if both
	-gnatR and -gnatc given.

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* g-table.ads, g-table.adb (For_Each): New generic procedure
	(Sort_Table): New generic procedure.

From-SVN: r202460
2013-09-10 17:05:40 +02:00
Arnaud Charlet
3699edc41f [multiple changes]
2013-09-10  Thomas Quinot  <quinot@adacore.com>

	* adaint.c (__gnat_is_executable_file_attr): Should be true
	for an executable regular file only only (not for a directory
	that has the executable permission).

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Further work on operator calls in ASIS.

2013-09-10  Yannick Moy  <moy@adacore.com>

	* sinfo.ads, sem_prag.ads, sem_ch13.adb: Minor correction and comment
	update.

From-SVN: r202459
2013-09-10 17:02:33 +02:00
Thomas Quinot
860917b625 aspects.ads, [...]: Minor reformatting.
2013-09-10  Thomas Quinot  <quinot@adacore.com>

	* aspects.ads, sem_ch13.adb: Minor reformatting.
	* adaint.c (__gnat_set_close_on_exec): Add comment documenting
	that this routine is shared between OS_Lib and Sockets.

From-SVN: r202458
2013-09-10 16:58:22 +02:00
Robert Dewar
7fe6c02682 exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set.
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set.
	* sem_ch13.adb (Make_Aitem_Pragma): Set Is_Checked if needed.
	* sem_prag.adb (Check_Kind): Moved from spec (Analyze_Pragma):
	Make sure Is_Ignored/Is_Checked are set right (Analyze_Pragma,
	case Check): Ditto (Check_Applicable_Policy): Handle
	Statement_Assertion case Throughout, set and check the Is_Checked
	flag as appropriate.
	* sem_prag.ads (Check_Kind): Moved to body.
	* sinfo.ads, sinfo.adb (Is_Checked): New flag.

From-SVN: r202457
2013-09-10 16:56:41 +02:00
Arnaud Charlet
15e934bf71 [multiple changes]
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* aspects.ads (Delay_Type): New type (Aspect_Delay): New table.
	* einfo.adb (Has_Delayed_Rep_Aspects): New flag
	(May_Inherit_Delayed_Rep_Aspects): New flag (Rep_Clause): Removed
	(use Get_Attribute_Representation_Clause).
	* einfo.ads (Has_Delayed_Rep_Aspects): New flag
	(May_Inherit_Delayed_Rep_Aspects): New flag
	* freeze.adb: Minor reformatting
	* sem_ch13.adb (Analyze_Aspect_Speficifications): Redo
	handling of delayed evaluation, including optimizing some cases
	and avoiding delays.
	(Analyze_Aspects_At_Freeze_Point): Now
	handled inheriting delayed rep aspects for type derivation case.
	(Inherit_Delayed_Rep_Aspects): New procedure
	* sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Now handled
	inheriting delayed rep aspects for type derivation case.
	* sem_ch3.adb (Build_Derived_Type): Set
	May_Inherit_Derived_Rep_Aspects if parent type flag
	Has_Delayed_Rep_Aspects is set

2013-09-10  Robert Dewar  <dewar@adacore.com>

	* errout.adb (Finalize): Don't delete real errors with specific
	warning control.

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Timed_Entry_Call,
	Expand_N_Conditional_Entry_Call, Expand_N_Asynchronous_Select):
	Handle properly a trigger that is  a call to a primitive operation
	of a type that implements a limited interface, if the type itself
	is not limited.

From-SVN: r202456
2013-09-10 16:54:41 +02:00
Robert Dewar
573e5dd6ac sem_ch3.adb, [...]: Minor reformatting.
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sinfo.ads, exp_ch9.adb, sem_prag.adb, sem_ch12.adb,
	exp_ch4.adb, sprint.adb: Minor reformatting.

From-SVN: r202455
2013-09-10 16:52:46 +02:00
Arnaud Charlet
eefe376107 [multiple changes]
2013-09-10  Yannick Moy  <moy@adacore.com>

	* sinfo.ads: Document splitting of pre/post in N_Contract description.

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Multiply): If the operation is of the
	form X * 2 ** N and it has been marked Is_Power_Of_2_For_Shift,
	add a mod operation if the result type is a binary modular type.

2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Add local
	variable Context.  Remove local variable Subp_Id. Start the
	context traversal from the current subprogram rather than the
	current scope. Update the scope traversal and error reporting.

2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Timed_Entry_Call): New procedure
	Rewrite_Triggering_Statements, to encapsulate the statements that
	follow the trigger of the entry call. This procedure is needed
	when the trigger is a dispatching call, because the expansion
	requires several copies of those statements. The procedure is
	more efficient, and preserves non-local references when the
	construct is within an instance.

From-SVN: r202454
2013-09-10 16:50:09 +02:00
Ed Schonberg
31dd3f4bf6 sem_ch12.adb (Analyze_Package_Instantiation): If the instantiation is a compilation unit...
2013-09-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation): If the
	instantiation is a compilation unit, analyze aspects before
	analyzing the package declaration for the instance.
	* sem_ch13.adb (Analyze_Aspect_Specifications): If the
	corresponding node is a package instantiation, insert generated
	pragmas at the head of visible declarations.
	* sem_prag.adb (Analyze_Pragma, case Preelaborate): In an instance
	do not ignore the pragma if it comes from an aspect specification
	in the instance, and not from the generic unit.
	* sprint.adb (Sprint_Node_Actual): For a package declaration that
	is an instantiation, print aspects after declaration.

From-SVN: r202453
2013-09-10 16:48:04 +02:00
Robert Dewar
3f910f7bd1 einfo.adb, [...]: Minor reformatting.
2013-09-10  Robert Dewar  <dewar@adacore.com>

	* einfo.adb, sem_prag.adb, rtsfind.ads: Minor reformatting.

From-SVN: r202452
2013-09-10 16:45:08 +02:00
Hristian Kirtchev
a98838ff82 sem_prag.adb (Get_SPARK_Mode_Id): Handle the case where the pragma may appear without an argument.
2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Get_SPARK_Mode_Id): Handle the
	case where the pragma may appear without an argument.
	(Analyze_Global_List): Add expanded_name to the list of constructs
	that denote a single item.
	(Collect_Global_List): Add expanded_name to the list of constructs
	that denote a single item.

2013-09-10  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Apply_Accessibility_Check): Add local constant
	Pool_Id and local variables Fin_Call and Free_Stmt. Finalize
	and deallocate a heap-allocated class-wide object after it
	has been determined that it violates the accessibility rules.
	* rtsfind.ads: Add new RTU_Id for System.Memory. Add new RE_Id
	and entry in RE_Unit_Table for RE_Free.

From-SVN: r202451
2013-09-10 16:43:06 +02:00