2014-06-13 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Rewrite to propagate the VN result into all uses where
possible and to remove stmts becoming dead because of that.
(eliminate): Generalize stmt removal handling, remove in
reverse dominator order to support proper debug stmt
generation. Update stmts before removing stmts.
* tree-ssa-propagate.c (propagate_tree_value): Remove
bogus assert.
* c-c++-common/pr46562-2.c: Adjust.
* g++.dg/tree-ssa/pr8781.C: Likewise.
* gcc.dg/tree-ssa/ssa-fre-24.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-25.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-32.c: Likewise.
* gcc.dg/tree-ssa/ssa-fre-39.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-16.c: Likewise.
From-SVN: r211625
2014-06-13 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case Pred/Succ): Change
reason to Overflow.
2014-06-13 Robert Dewar <dewar@adacore.com>
* makeutl.adb: Minor reformatting.
2014-06-13 Gail Schenker <schenker@adacore.com>
* debug.adb, sem_eval.adb (Why_Not_Static): Remove temporary code and
associated flag (d.z), no longer needed.
2014-06-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): For Import and
Export aspects, do not check whether a corresponding Convention
aspect has been specified. Convention is optional in Ada2012,
and defaults to Convention_Ada.
From-SVN: r211624
2014-06-13 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb (Apply_Address_Clause_Check): Only issue the new
warning if the propagation warning is issued.
2014-06-13 Thomas Quinot <quinot@adacore.com>
* exp_ch4.adb: Minor reformatting.
2014-06-13 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case Pred):
Handle float range check case (Expand_N_Attribute_Reference,
case Succ): Handle float range check case.
* sem_attr.adb (Analyze_Attribute, case Pred/Succ): Handle float
range check case.
2014-06-13 Vincent Celier <celier@adacore.com>
* makeutl.ads (Compute_Builder_Switches): Change name of
parameter Root_Environment to Env.
* prj-conf.adb (Check_Switches): Call Locate_Runtime with the
Env parameter of procedure Get_Or_Create_Configuration_File.
(Locate_Runtime): Call Find_Rts_In_Path with the Project_Path
of new parameter Env.
* prj-conf.ads (Locate_Runtime): New parameter Env of type
Prj.Tree.Environment.
2014-06-13 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor comment clarification for Check_Float_Overflow.
From-SVN: r211623
2014-06-13 Robert Dewar <dewar@adacore.com>
* exp_attr.adb, exp_ch9.adb, lib-writ.adb, g-comlin.adb: Minor
reformatting.
* sem_attr.adb: Minor code reformatting and simplification.
* checks.adb: Fix minor typo.
From-SVN: r211622
2014-06-13 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb (Get_Argument): fix expansion
of command line arguments (e.g. "*.adb") when using a custom
parser. The parser was not passed to the recursive call, and
thus we were trying to do the expansion on the default command
line parser.
2014-06-13 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb: Minor reformatting.
2014-06-13 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case 'Old):
To determine whether the attribute should be expanded, examine
whether the enclosing postcondition pragma is to be checked,
rather than using the internal flag Assertions_Enabled.
From-SVN: r211621
2014-06-13 Ben Brosgol <brosgol@adacore.com>
* gnat_rm.texi: Minor fixes.
* gnat_ugn.texi: Added a missing "@itemize".
2014-06-13 Robert Dewar <dewar@adacore.com>
* debug.adb: Remove -gnatd.1 flag documentation.
* layout.adb (Layout_Type): Remove special handling of size
for anonymous access type.
* sem_ch3.adb (Replace_Type): Remove special handling of size
for anonymous access type.
From-SVN: r211620
2014-06-13 Robert Dewar <dewar@adacore.com>
* layout.adb (Layout_Type): Anonymous access types designating
unconstrained arrays are always thin pointers.
* sem_ch3.adb (Replace_Type): Anonymous access types designating
unconstrained arrays are always thin pointers.
2014-06-13 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute): Use Check_Parameterless_Call
to resolve the prefix of an attribute that is an entity name
and may be a parameterless call. Minor code reorganization.
From-SVN: r211618
2014-06-13 Robert Dewar <dewar@adacore.com>
* lib.ads, lib.adb, lib-writ.adb, lib-load.adb (Is_Compiler_Unit):
Removed.
* opt.ads (Compiler_Unit): New flag.
* par-ch5.adb (Test_Statement_Required): Call Check_Compiler_Unit
for null statement sequence (not allowed in compiler unit).
* par-prag.adb (Prag): Handle Compiler_Unit[_Warning] during
parsing.
* restrict.ads, restrict.adb (Check_Compiler_Unit): New version and new
calling sequence.
* sem_ch11.adb, sem_ch3.adb, sem_ch4.adb: New calling sequence for
Check_Compiler_Unit.
* sem_ch6.adb (Analyze_Extended_Return_Statement): Call
Check_Compiler_Unit (this construct is not allowed in compiler
units).
* sem_prag.adb (Analyze_Pragma, case Compiler_Unit[_Warning]):
Set Opt.Compiler_Unit.
From-SVN: r211617
2014-06-13 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Entity): Remove the check concerning volatile
types in SPARK as it is poorly placed and poorly formulated. The
check was flagging ALL volatile entities as illegal in SPARK.
* sem_prag.adb (Process_Atomic_Shared_Volatile): Flag volatile
types as illegal in SPARK.
From-SVN: r211615
2014-06-13 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Record_Type): Remove checks related to SPARK
volatile types.
(Freeze_Type): Volatile types are now illegal in SPARK.
2014-06-13 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Add aspect Thread_Local_Storage.
* gnat_rm.texi: Document aspect Thread_Local_Storage.
2014-06-13 Ed Schonberg <schonberg@adacore.com>
* sem_cat.adb (Validate_Static_Object_Name): A constant whose
value is a temporary that renames an aggregate is legal in a
preelaborated unit. Illegalities, if any will be detected in
the aggregate components.
2014-06-13 Ed Schonberg <schonberg@adacore.com>
* einfo.ads: Minor reformatting an comment expansion.
From-SVN: r211613
2014-06-13 Robert Dewar <dewar@adacore.com>
* back_end.ads, back_end.adb: Make_Id, Make_SC, Set_RND are moved to
Tbuild.
* tbuild.ads, tbuild.adb: Make_Id, Make_SC, Set_RND are moved here from
Back_End.
* gnat1drv.adb: Make_Id, Make_SC, Set_RND are moved to Tbuild
* sem_warn.adb: Minor reformatting.
2014-06-13 Doug Rupp <rupp@adacore.com>
* adaint.c (__gnat_open_new_temp) [VMS]: Open binary
files with rfm=udf.
From-SVN: r211612
2014-06-13 Yannick Moy <moy@adacore.com>
* sem_warn.adb (Check_Unset_References): Take
case of Refined_Post into account in Within_Postcondition check.
2014-06-13 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Record_Type): Volatile types are not allowed in
SPARK.
2014-06-13 Yannick Moy <moy@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Import,
Aspect_Export): Consider that variables may be set outside the program.
From-SVN: r211611
2014-06-13 Robert Dewar <dewar@adacore.com>
* back_end.adb (Make_Id): New function.
(Make_SC): New function.
(Set_RND): New procedure.
* back_end.ads (Make_Id): New function.
(Make_SC): New function.
(Set_RND): New procedure.
* einfo.ads: Minor comment updates.
* frontend.adb: Move Atree.Initialize call to Gnat1drv.
* gnat1drv.adb (Gnat1drv): New calling sequence for
Get_Target_Parameters.
(Gnat1drv): Move Atree.Initialize here from Frontend.
* targparm.adb (Get_Target_Parameters): New calling
sequence (Get_Target_Parameters): Handle pragma Restriction
(No_Dependence,..)
* targparm.ads (Get_Target_Parameters): New calling sequence.
2014-06-13 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): Exit the homonym
loop if the pragma does not come from source, so that an implicit
pragma Import only applies to the first declaration, avoiding
possible conflicts with earlier explicit and implicit declarations
due to multiple Provide_Shift_Operators pragmas.
(Set_Imported): Remove previous fix that bypassed pragma duplication
error.
* gnat_rm.texi: Change 'equivalent' to 'similar' in description
of Provide_Shift_Operators.
From-SVN: r211610
2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/61375
* tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
symbolic number cannot be represented in an uint64_t.
(find_bswap_or_nop_1): Likewise.
gcc/testsuite/
PR tree-optimization/61375
* gcc.c-torture/execute/pr61375-1.c: New test.
From-SVN: r211604
* symtab.c (symtab_node::reset_section): New method.
* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
for localization.
* cgraph.h (reset_section): Declare.
* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
do not consider comdat locals.
* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
for new symbol.
* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
reset sections of symbols dragged out of the comdats.
(function_and_variable_visibility): Reset sections of localized symbols.
From-SVN: r211600
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
to use symtab and decl_binds_to_current_def_p
* tree-vectorizer.c (increase_alignment): Increase alignment
of alias target, too.
From-SVN: r211599
PR middle-end/61486
* gimplify.c (struct gimplify_omp_ctx): Add distribute field.
(gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
if outer combined construct is distribute.
(gimplify_omp_for): For OMP_DISTRIBUTE set
gimplify_omp_ctxp->distribute.
* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
mapping into decl map.
c-family/
* c-omp.c (c_omp_split_clauses): Don't crash on firstprivate in
#pragma omp target teams or
#pragma omp {,target }teams distribute simd.
testsuite/
* c-c++-common/gomp/pr61486-1.c: New test.
* c-c++-common/gomp/pr61486-2.c: New test.
From-SVN: r211596
PR tree-optimization/61009
* tree-ssa-threadedge.c (thread_through_normal_block): Correct return
value when we stop processing a block due to problematic PHIs.
From-SVN: r211586
gcc/
* common.md: New file.
* doc/md.texi: Update description of generic, machine-independent
constraints.
* config/s390/constraints.md (e): Delete.
* Makefile.in (md_file): Include common.md.
* config/m32c/t-m32c (md_file): Likewise.
* genpreds.c (general_mem): New array.
(generic_constraint_letters): Remove constraints now defined by
common.md.
(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
Allow the first character to be '<' or '>' as well.
* genoutput.c (general_mem): New array.
(indep_constraints): Remove constraints now defined by common.md.
(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
Remove special handling of 'm'.
* ira-costs.c (record_reg_classes): Remove special handling of
constraints now defined by common.md.
* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
* ira-lives.c (single_reg_class): Likewise.
(ira_implicitly_set_insn_hard_regs): Likewise.
* lra-constraints.c (reg_class_from_constraints): Likewise.
(process_alt_operands, process_address, curr_insn_transform): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reload.c (push_secondary_reload, scratch_reload_class)
(find_reloads, alternative_allows_const_pool_ref): Likewise.
* reload1.c (maybe_fix_stack_asms): Likewise.
* targhooks.c (default_secondary_reload): Likewise.
* stmt.c (parse_output_constraint): Likewise.
* recog.c (preprocess_constraints): Likewise.
(constrain_operands, peep2_find_free_register): Likewise.
(asm_operand_ok): Likewise, but add a comment saying why 'o'
must be handled specially.
From-SVN: r211475
gcc/
* genpreds.c (write_lookup_constraint): Rename to...
(write_lookup_constraint_1): ...this.
(write_lookup_constraint_array): New function.
(write_tm_preds_h): Define lookup_constraint as an inline function
that uses write_lookup_constraint_array where possible.
(write_insn_preds_c): Update for the changes above.
From-SVN: r211469
gcc/
* doc/md.texi (regclass_for_constraint): Rename to...
(reg_class_for_constraint): ...this.
* genpreds.c (num_constraints, enum_order, register_start)
(register_end, satisfied_start, memory_start, memory_end)
(address_start, address_end): New variables.
(add_constraint): Count the number of constraints.
(choose_enum_order): New function.
(write_enum_constraint_num): Iterate over enum_order.
(write_regclass_for_constraint): Rename to...
(write_reg_class_for_constraint_1): ...this and update output
accordingly.
(write_constraint_satisfied_p): Rename to...
(write_constraint_satisfied_p_1): ...this and update output
accordingly. Do nothing if all extra constraints are register
constraints.
(write_insn_extra_memory_constraint): Delete.
(write_insn_extra_address_constraint): Delete.
(write_range_function): New function.
(write_tm_preds_h): Define constraint_satisfied_p and
reg_class_for_constraint as inline functions that do a range check
before calling the out-of-line function. Use write_range_function
to implement insn_extra_{register,memory,address}_constraint,
the first of which is new.
(write_insn_preds_c): Update after above changes to write_* functions.
(main): Call choose_enum_order.
From-SVN: r211468
2014-06-11 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb: Minor reformatting.
2014-06-11 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Check_Clause_Syntax): Add new
local variable Outputs. Account for the case where multiple
output items appear as an aggregate.
2014-06-11 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning
with ?j? not ??.
2014-06-11 Ed Schonberg <schonberg@adacore.com>
* einfo.ads: Minor reformatting.
2014-06-11 Hristian Kirtchev <kirtchev@adacore.com>
* a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add
new variable First_Node. Update the position after all insertions have
taken place to First_Node.
2014-06-11 Robert Dewar <dewar@adacore.com>
* debug.adb: Remove debug flag -gnatd.1, no longer needed.
* layout.adb (Layout_Type): Remove test of -gnatd.1.
From-SVN: r211465