aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-06-11mmix-protos.h (mmix_asm_output_source_line): Remove prototype.Maciej W. Rozycki2-1/+5
* config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove prototype. From-SVN: r211478
2014-06-11common.md: New file.Richard Sandiford18-697/+209
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
2014-06-11system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.Richard Sandiford9-188/+18
gcc/ * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison. * genpreds.c (have_const_dbl_constraints): Delete. (add_constraint): Don't set it. (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P. * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE constraints using the lookup_constraint logic. * ira-lives.c (single_reg_class): Likewise. * ira.c (ira_setup_alts): Likewise. * lra-constraints.c (process_alt_operands): Likewise. * recog.c (asm_operand_ok, constrain_operands): Likewise. * reload.c (find_reloads): Likewise. From-SVN: r211474
2014-06-11genpreds.c (const_int_start, [...]): New variables.Richard Sandiford7-2/+68
gcc/ * genpreds.c (const_int_start, const_int_end): New variables. (choose_enum_order): Output CONST_INT constraints before memory constraints. (write_tm_preds_h): Always define insn_const_int_ok_for_constraint. Add CT_CONST_INT. * ira-costs.c (record_reg_classes): Handle CT_CONST_INT. * ira.c (ira_setup_alts): Likewise. * lra-constraints.c (process_alt_operands): Likewise. * recog.c (asm_operand_ok, preprocess_constraints): Likewise. * reload.c (find_reloads): Likewise. From-SVN: r211473
2014-06-11recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok, decmem_ok and ↵Richard Sandiford3-25/+11
incmem_ok. gcc/ * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok, decmem_ok and incmem_ok. Reformat other bitfields for consistency. * recog.c (preprocess_constraints): Update accordingly. From-SVN: r211472
2014-06-11system.h (REG_CLASS_FROM_CONSTRAINT): Poison.Richard Sandiford15-288/+350
gcc/ * system.h (REG_CLASS_FROM_CONSTRAINT): Poison. (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise. (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise. * genpreds.c (print_type_tree): New function. (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT, REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR. Write out enum constraint_type and get_constraint_type. * lra-constraints.c (satisfies_memory_constraint_p): Take a constraint_num rather than a constraint string. (satisfies_address_constraint_p): Likewise. (reg_class_from_constraints): Avoid old constraint macros. (process_alt_operands, process_address_1): Likewise. (curr_insn_transform): Likewise. * ira-costs.c (record_reg_classes): Likewise. (record_operand_costs): Likewise. * ira-lives.c (single_reg_class): Likewise. (ira_implicitly_set_insn_hard_regs): Likewise. * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. * postreload.c (reload_cse_simplify_operands): Likewise. * recog.c (asm_operand_ok, preprocess_constraints): Likewise. (constrain_operands, peep2_find_free_register): Likewise. * reload.c (push_secondary_reload, scratch_reload_class): Likewise. (find_reloads, alternative_allows_const_pool_ref): Likewise. * reload1.c (maybe_fix_stack_asms): Likewise. * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. * targhooks.c (default_secondary_reload): Likewise. * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference to EXTRA_CONSTRAINT_STR. * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT. From-SVN: r211471
2014-06-11genpreds.c (write_constraint_satisfied_p_1): Replace with...Richard Sandiford2-24/+21
gcc/ * genpreds.c (write_constraint_satisfied_p_1): Replace with... (write_constraint_satisfied_p_array): ...this new function. (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with an array. (write_insn_preds_c): Update accordingly. From-SVN: r211470
2014-06-11genpreds.c (write_lookup_constraint): Rename to...Richard Sandiford2-4/+52
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
2014-06-11md.texi (regclass_for_constraint): Rename to...Richard Sandiford3-73/+153
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-11re PR c++/19200 (Friend declaration misinterpreted as constructor)Paolo Carlini7-27/+95
/cp 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/19200 * parser.c (cp_parser_declarator): Add bool parameter. (cp_parser_direct_declarator): Likewise, use it. (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator. (cp_parser_condition, cp_parser_explicit_instantiation, cp_parser_init_declarator, cp_parser_type_id_1, cp_parser_parameter_declaration, cp_parser_exception_declaration, cp_parser_cache_defarg, cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init): Adjust. * decl.c (grokdeclarator): Fix handling of friend declared in namespace scope (g++.dg/parse/friend10.C). /testsuite 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/19200 * g++.dg/parse/friend9.C: New. * g++.dg/parse/friend10.C: Likewise. * g++.dg/parse/friend7.C: Adjust. From-SVN: r211467
2014-06-11[multiple changes]Arnaud Charlet11-52/+132
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
2014-06-11[multiple changes]Arnaud Charlet7-62/+108
2014-06-11 Thomas Quinot <quinot@adacore.com> * freeze.ads: Minor reformatting. * checks.adb (Determine_Range): Do not attempt to determine the range of a deferred constant whose full view has not been seen yet. * sem_res.adb (Resolve): Remove undesirable guard against resolving expressions from expression functions. 2014-06-11 Robert Dewar <dewar@adacore.com> * debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous access types. * layout.adb (Layout_Type): Make anonymous access types for subprogram formal types and return types always thin. For now only enabled if -gnatd.1 set. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality rule for stream attributes of interface types (RM 13.13.2 (38/3)): subprogram must be a null procedure. From-SVN: r211464
2014-06-11Minor reformatting.Arnaud Charlet2-4/+5
From-SVN: r211463
2014-06-11Code clean up.Arnaud Charlet1-2/+18
From-SVN: r211462
2014-06-11Code clean ups.Arnaud Charlet2-5/+30
From-SVN: r211461
2014-06-11[multiple changes]Arnaud Charlet4-92/+191
2014-06-11 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Input_Item): Allow formal parameters to appear as input_items in an initialization_list of pragma Initializes. Encapsulation now applies to states and variables only (as it should). Add RM references to key errors. * sem_prag.adb (Set_Imported): Suppress errors about preceding Imports when the pragma does not come from source, which can happen through use of pragma Provide_Shift_Operators. 2014-06-11 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb: Minor reformatting. * einfo.ads (Full_View): Minor comment update. From-SVN: r211460
2014-06-11[multiple changes]Arnaud Charlet16-366/+122
2014-06-11 Robert Dewar <dewar@adacore.com> * gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb, opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of pragma/aspects Pure_05 Pure_12 Preelaborate_05. * errout.adb (Output_Messages): Avoid duplicate output for library level instance. * sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level (Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal * exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular. * s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to accomodate largest modulus value. * gnat_ugn.texi: Minor updates. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Instantiate_Package_Body): Do not attempt to load body of generic package or its parent, if body is optional and the unit does not require a body. From-SVN: r211459
2014-06-11gnat_rm.texi: Document System.Unsigned_Types.Robert Dewar4-3/+23
2014-06-11 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document System.Unsigned_Types. * impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible. * s-unstyp.ads: Update comments (this is now user available unit). From-SVN: r211458
2014-06-11[multiple changes]Arnaud Charlet16-29/+37
2014-06-11 Robert Dewar <dewar@adacore.com> * make.adb, sem_res.adb: Minor reformatting. 2014-06-11 Thomas Quinot <quinot@adacore.com> * a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads, a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads, a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas Preelaborate_05 to just Preelaborate in runtime units, and similarly change Pure_05 to just Pure. From-SVN: r211457
2014-06-11[multiple changes]Arnaud Charlet10-40/+220
2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt analysis if error has been posted on subprogram body. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality rule given in RM 13.1 (8/1) for operational attributes to stream attributes: the attribute must apply to a first subtype. Fixes missing errors in ACATS test bdd2004. 2014-06-11 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant record type if restriction No_Implicit_Conditionals is active. (Expand_N_Object_Declaration): Don't allow default initialization for variant record type if restriction No_Implicit_Condition is active. (Build_Variant_Record_Equality): Don't build for variant record type if restriction No_Implicit_Conditionals is active. * exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with No_Implicit_Conditionals. * sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function. 2014-06-11 Ramon Fernandez <fernandez@adacore.com> * i-cstrin.ads: Update comments. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Selected_Component): Handle properly a selected component whose prefix is overloaded, when none of the interpretations matches the expected type. 2014-06-11 Bob Duff <duff@adacore.com> * make.adb (Wait_For_Available_Slot): Give a more informative error message; if the ALI file is not found, print the full path of what it's looking for. From-SVN: r211456
2014-06-112014-06-11 Sergey Rybin <rybin@adacore.com frybin>Arnaud Charlet9-94/+161
* gnat_ugn.texi, vms_data.ads: add description of gnatstub -W<par> option to specify the result file encoding. 2014-06-11 Robert Dewar <dewar@adacore.com> * errout.ads, sem_ch12.adb: Minor reformatting. * debug.adb, erroutc.adb: Remove -gnatd.q debug switch. * lib-xref.adb: Minor reformatting. * restrict.adb: Minor code reorganization (put routines in alpha order). From-SVN: r211455
2014-06-11[multiple changes]Arnaud Charlet15-110/+268
2014-06-11 Yannick Moy <moy@adacore.com> * einfo.ads: Minor typo in comment 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for formal private types and private type extensions, to indicate variable in a generic unit whose uninitialized use suggest that actual type should be fully initialized. Needs_Initialized_Actual: removed, functionaity replaced by the above. * lib-xref.adb (Generate_Reference): Generate a reference for variables of a formal type when the unit is not the main unit, to enable appropriate warnings in an instance. * sem_ch12.adb (Check_Ininialized_Type): Improve warning on use of variable in a generic unit that suggests that actual type should be full initialized. * sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure and do not emot warning, which now only appears in an instance. 2014-06-11 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi: Fix minor typo. 2014-06-11 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb Add with and use clause for Sem_Ch10. (Analyze_Declarations): Code reformatting. Analyze the contract of a subprogram body stub at the end of the declarative region. * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is now a variable. Do not process the body if its contract is not available. Account for subprogram body stubs when extracting the corresponding spec. * sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment on usage. * sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract): New routine. * sem_prag.adb (Analyze_Depends_In_Decl_Part): Account for subprogram body stubs when extracting the corresponding spec. (Analyze_Global_In_Decl_List): Account for subprogram body stubs when extracting the corresponding spec. (Analyze_Refined_Depends_In_Decl_Part): Use Find_Related_Subprogram_Or_Body to retrieve the declaration of the related body. Spec_Is now a variable. Account for subprogram body stubs when extracting the corresponding spec. (Analyze_Refined_Global_In_Decl_Part): Use Find_Related_Subprogram_Or_Body to retrieve the declaration of the related body. Spec_Is now a variable. Account for subprogram body stubs when extracting the corresponding spec. (Collect_Subprogram_Inputs_Output): Account for subprogram body stubs when extracting the corresponding spec. 2014-06-11 Vincent Celier <celier@adacore.com> * gnatcmd.adb (Process_Link): Do not invoke gnatlink with -lgnarl or -lgnat. From-SVN: r211454
2014-06-11re PR tree-optimization/61452 (hang at -O1 and -Os on x86_64-linux-gnu)Richard Biener3-61/+69
2014-06-11 Richard Biener <rguenther@suse.de> PR tree-optimization/61452 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of expr and has_constants in case we found a leader. (simplify_binary_expression): Always valueize operands first. (simplify_unary_expression): Likewise. * gcc.dg/torture/pr61452.c: New testcase. From-SVN: r211450
2014-06-11[multiple changes]Arnaud Charlet21-201/+395
2014-06-11 Robert Dewar <dewar@adacore.com> * debug.adb: Add debug flag -gnatd.q. * erroutc.adb (Prescan_Message): Bomb if untagged warning with -gnatd.q set. * styleg.adb (Check_Xtra_Parens): Message should be a style message. * sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb, par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb, sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb, sem_ch13.adb, lib-xref.adb: Add remaining warning tags. 2014-06-11 Ben Brosgol <brosgol@adacore.com> * gnat_rm.texi: Revised chapter on Implementation Defined Characteristics. From-SVN: r211448
2014-06-11[multiple changes]Arnaud Charlet13-300/+590
2014-06-11 Geert Bosch <bosch@adacore.com> * s-exctab.adb: avoid race conditions in exception registration. 2014-06-11 Robert Dewar <dewar@adacore.com> * errout.adb (Warn_Insertion): New function. (Error_Msg): Use Warn_Insertion and Prescan_Message. (Error_Msg_Internal): Set Info field of error object. (Error_Msg_NEL): Use Prescan_Message. (Set_Msg_Text): Don't store info: at start of message. (Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning. (Skip_Msg_Insertion_Warning): Now just skips warning insertion. * errout.ads: Document new ?$? and >$> insertion sequences Document use of "(style)" and "info: " * erroutc.adb (dmsg): Print several missing fields (Get_Warning_Tag): Handle -gnatel case (?$?) (Output_Msg_Text): Deal with new tagging of info messages * erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object): Add field Info (Prescan_Message): New procedure, this procedure replaces the old Test_Style_Warning_Serious_Unconditional_Msg * errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb, sem_elab.adb: Follow new rules for info message (info belongs only at the start of a message, and only in the first message, not in any of the continuations). * gnat_ugn.texi: Document full set of warning tags. From-SVN: r211447
2014-06-11[multiple changes]Arnaud Charlet3-187/+160
2014-06-11 Gary Dismukes <dismukes@adacore.com> * sem_util.adb: Minor typo fix. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_warn.adb (Check_References): Do not emit spurious warnings on uninitialzed variable of a formal private type if variable is not read. From-SVN: r211446
2014-06-11re PR c++/34049 (Parentheses-enclosed expression.)Paolo Carlini2-0/+17
2014-06-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/34049 * g++.dg/parse/pr34049.C: New. From-SVN: r211445
2014-06-11re PR tree-optimization/61306 (wrong code at -Os and above on x86_64-linux-gnu)Thomas Preud'homme6-24/+153
2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR tree-optimization/61306 * tree-ssa-math-opts.c (struct symbolic_number): Store type of expression instead of its size. (do_shift_rotate): Adapt to change in struct symbolic_number. Return false to prevent optimization when the result is unpredictable due to arithmetic right shift of signed type with highest byte is set. (verify_symbolic_number_p): Adapt to change in struct symbolic_number. (init_symbolic_number): Likewise. (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization when the result is unpredictable due to sign extension. gcc/testsuite/ * gcc.c-torture/execute/pr61306-1.c: New test. * gcc.c-torture/execute/pr61306-2.c: Likewise. * gcc.c-torture/execute/pr61306-3.c: Likewise. From-SVN: r211444
2014-06-11arm.md (*thumb1_adddi3): Move into new file thumb1.md.Terry Guo3-1766/+1869
2014-06-11 Terry Guo <terry.guo@arm.com> * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md. (*thumb1_addsi3): Ditto. (*thumb_subdi3): Ditto. (thumb1_subsi3_insn): Ditto. (*thumb_mulsi3): Ditto. (*thumb_mulsi3_v6): Ditto. (*thumb1_andsi3_insn): Ditto. (thumb1_bicsi3): Ditto. (*thumb1_iorsi3_insn): Ditto. (*thumb1_xorsi3_insn): Ditto. (*thumb1_ashlsi3): Ditto. (*thumb1_ashrsi3): Ditto. (*thumb1_lshrsi3): Ditto. (*thumb1_rotrsi3): Ditto. (*thumb1_negdi2): Ditto. (*thumb1_negsi2): Ditto. (*thumb1_abssi2): Ditto. (*thumb1_neg_abssi2): Ditto. (*thumb1_one_cmplsi2): Ditto. (*thumb1_zero_extendhisi2): Ditto. (*thumb1_zero_extendqisi2): Ditto. (*thumb1_zero_extendqisi2_v6): Ditto. (thumb1_extendhisi2): Ditto. (thumb1_extendqisi2): Ditto. (*thumb1_movdi_insn): Ditto. (*thumb1_movsi_insn): Ditto. (*thumb1_movhi_insn): Ditto. (thumb_movhi_clobber): Ditto. (*thumb1_movqi_insn): Ditto. (*thumb1_movhf): Ditto. (*thumb1_movsf_insn): Ditto. (*thumb_movdf_insn): Ditto. (movmem12b): Ditto. (movmem8b): Ditto. (cbranchqi4): Ditto. (cbranchsi4_insn): Ditto. (cbranchsi4_scratch): Ditto. (*negated_cbranchsi4): Ditto. (*tbit_cbranch): Ditto. (*tlobits_cbranch): Ditto. (*tstsi3_cbranch): Ditto. (*cbranchne_decr1): Ditto. (*addsi3_cbranch): Ditto. (*addsi3_cbranch_scratch): Ditto. (*thumb_cmpdi_zero): Ditto. (cstoresi_eq0_thumb1): Ditto. (cstoresi_ne0_thumb1): Ditto. (*cstoresi_eq0_thumb1_insn): Ditto. (*cstoresi_ne0_thumb1_insn): Ditto. (cstoresi_nltu_thumb1): Ditto. (cstoresi_ltu_thumb1): Ditto. (thumb1_addsi3_addgeu): Ditto. (*thumb_jump): Ditto. (*call_reg_thumb1_v5): Ditto. (*call_reg_thumb1): Ditto. (*call_value_reg_thumb1_v5): Ditto. (*call_value_reg_thumb1): Ditto. (*call_insn): Ditto. (*call_value_insn): Ditto. (thumb1_casesi_internal_pic): Ditto. (thumb1_casesi_dispatch): Ditto. (*thumb1_indirect_jump): Ditto. (prologue_thumb1_interwork): Ditto. (*epilogue_insns): Ditto. (consttable_1): Ditto. (consttable_2): Ditto. (tablejump): Ditto. (*thumb1_tablejump): Ditto. (thumb_eh_return): Ditto. (define_peephole2): Two of them are thumb1 only and got moved into new file thumb1.md. (define_split): Six of them are thumb1 only and got moved into new file thumb1.md. * config/arm/thumb1.md: New file comprised of above thumb1 only patterns. From-SVN: r211443
2014-06-11[AArch64] Add CRC32 ACLE intrinsics testsuite.Kyrylo Tkachov10-0/+167
* gcc.target/aarch64/acle/acle.exp: New. * gcc.target/aarch64/acle/crc32b.c: New test. * gcc.target/aarch64/acle/crc32cb.c: Likewise. * gcc.target/aarch64/acle/crc32cd.c: Likewise. * gcc.target/aarch64/acle/crc32ch.c: Likewise. * gcc.target/aarch64/acle/crc32cw.c: Likewise. * gcc.target/aarch64/acle/crc32d.c: Likewise. * gcc.target/aarch64/acle/crc32h.c: Likewise. * gcc.target/aarch64/acle/crc32w.c: Likewise. --This line,gand those below, will be ignored-- A gcc/testsuite/gcc.target/aarch64/acle A gcc/testsuite/gcc.target/aarch64/acle/acle.exp A gcc/testsuite/gcc.target/aarch64/acle/crc32b.c A gcc/testsuite/gcc.target/aarch64/acle/crc32d.c A gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c A gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c A gcc/testsuite/gcc.target/aarch64/acle/crc32w.c A gcc/testsuite/gcc.target/aarch64/acle/crc32h.c A gcc/testsuite/gcc.target/aarch64/acle/crc32cw.c A gcc/testsuite/gcc.target/aarch64/acle/crc32ch.c M gcc/testsuite/ChangeLog From-SVN: r211441
2014-06-11[AArch64] Implement CRC32 ACLE intrinsics.Kyrylo Tkachov10-3/+317
* config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers. * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to dependencies. * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define. (aarch64_crc_builtin_datum): New struct. (aarch64_crc_builtin_data): New. (aarch64_init_crc32_builtins): New function. (aarch64_init_builtins): Initialise CRC32 builtins when appropriate. (aarch64_crc32_expand_builtin): New. (aarch64_expand_builtin): Add CRC32 builtin expansion case. * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FEATURE_CRC32 when appropriate. (TARGET_CRC32): Define. * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H, UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values. (aarch64_<crc_variant>): New pattern. * config/aarch64/arm_acle.h: New file. * config/aarch64/iterators.md (CRC): New int iterator. (crc_variant, crc_mode): New int attributes. * doc/aarch64-acle-intrinsics.texi: New file. * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics. Include aarch64-acle-intrinsics.texi. From-SVN: r211440
2014-06-11re PR tree-optimization/52252 (An opportunity for x86 gcc vectorizer (gain ↵Evgeny Stupachenko5-51/+211
up to 3 times)) gcc/ * tree-vect-data-refs.c (vect_grouped_store_supported): New check for stores group of length 3. (vect_permute_store_chain): New permutations for stores group of length 3. * tree-vect-stmts.c (vect_model_store_cost): Change cost of vec_perm_shuffle for the new permutations. gcc/testsuite/ PR tree-optimization/52252 * gcc.dg/vect/pr52252-st.c: Test on stores group of size 3. From-SVN: r211439
2014-06-11ipa-visibility.c (function_and_variable_visibility): Disable virtual table ↵Jan Hubicka2-2/+11
rewriting temporarily on targets not supporting ONE_ONLY. * ipa-visibility.c (function_and_variable_visibility): Disable virtual table rewriting temporarily on targets not supporting ONE_ONLY. From-SVN: r211437
2014-06-11re PR tree-optimization/61437 (wrong code on x86_64-linux-gnu when compile ↵Richard Biener5-2/+47
separately) 2014-06-11 Richard Biener <rguenther@suse.de> PR middle-end/61437 Revert 2014-06-04 Richard Biener <rguenther@suse.de> * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from TREE_PUBLIC and DECL_EXTERNAL decls. * gcc.dg/torture/20140610-1.c: New testcase. * gcc.dg/torture/20140610-2.c: Likewise. From-SVN: r211436
2014-06-11varasm.c (set_implicit_section): New function.Jan Hubicka22-48/+240
* varasm.c (set_implicit_section): New function. (resolve_unique_section): Use it to set implicit section for aliases, too. (get_named_text_section): Use symtab_get_node (decl)->implicit_section (default_function_section): Likewise. (decl_binds_to_current_def_p): Constify argument. * varasm.h (decl_binds_to_current_def_p): Update prototype. * asan.c (asan_protect_global): Use symtab_get_node (decl)->implicit_section. * symtab.c (dump_symtab_base): Dump implicit sections. (verify_symtab_base): Verify sanity of sectoins and comdats. (symtab_resolve_alias): Alias share the section of its target. (set_section_1): New function. (symtab_node::set_section): Move here, recurse to aliases. (verify_symtab): Check for duplicated symtab lists. * tree-core.h (implicit_section_name_p): Remove. * tree-vect-data-refs.c: Include varasm.h. (vect_can_force_dr_alignment_p): Fix conditional on when decl bints to current definition; use symtab_get_node (decl)->implicit_section. * cgraph.c (cgraph_make_node_local_1): Fix section set. * cgraph.h (struct symtab_node): Add implicit_section. (set_section): Rename to ... (set_section_for_node): ... this one. (set_section): Declare. * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove. * lto-cgraph.c (lto_output_node, lto_output_varpool_node, input_overwrite_node, input_varpool_node): Stream implicit_section. * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before removal; it will fail in LTO. * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)->implicit_section. * optimize.c (cdtor_comdat_group): Fix handling of aliases. (maybe_clone_body): Move symbol across comdat groups. * method.c (use_thunk): Copy implicit section flag. * go/go-gcc.cc (Gcc_backend::global_variable_set_init): Use symtab_get_node(var_decl)->implicit_section. * lto.c (read_cgraph_and_symbols): Remove unreachable symbols. (do_whole_program_analysis): Use verify_symtab. From-SVN: r211434
2014-06-11Daily bump.GCC Administrator1-1/+1
From-SVN: r211432
2014-06-10[AArch64] Fix some reg-to-reg move scheduler types.Kyrylo Tkachov3-5/+15
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Change second alternative type to f_mcr. * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th and 12th alternatives' types to f_mcr and f_mrc. (*movdi_aarch64): Same for 12th and 13th alternatives. (*movsf_aarch64): Change 9th alternatives' type to mov_reg. (aarch64_movtilow_tilow): Change type to fmov. From-SVN: r211418
2014-06-10[AArch64] Fix layout of frame layout code.Jiong Wang2-14/+18
From-SVN: r211416
2014-06-10[AArch64] Add a big-endian lane flip at expand-time in saturating math patterns.Kyrylo Tkachov2-5/+145
* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>): New expander. (aarch64_sqrdmulh_lane<mode>): Likewise. (aarch64_sq<r>dmulh_lane<mode>): Rename to... (aarch64_sq<r>dmulh_lane<mode>_internal): ...this. (aarch64_sqdmulh_laneq<mode>): New expander. (aarch64_sqrdmulh_laneq<mode>): Likewise. (aarch64_sq<r>dmulh_laneq<mode>): Rename to... (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this. (aarch64_sqdmulh_lane<mode>): New expander. (aarch64_sqrdmulh_lane<mode>): Likewise. (aarch64_sq<r>dmulh_lane<mode>): Rename to... (aarch64_sq<r>dmulh_lane<mode>_internal): ...this. (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian. (aarch64_sqdmlal_laneq<mode>): Likewise. (aarch64_sqdmlsl_lane<mode>): Likewise. (aarch64_sqdmlsl_laneq<mode>): Likewise. (aarch64_sqdmlal2_lane<mode>): Likewise. (aarch64_sqdmlal2_laneq<mode>): Likewise. (aarch64_sqdmlsl2_lane<mode>): Likewise. (aarch64_sqdmlsl2_laneq<mode>): Likewise. (aarch64_sqdmull_lane<mode>): Likewise. (aarch64_sqdmull_laneq<mode>): Likewise. (aarch64_sqdmull2_lane<mode>): Likewise. (aarch64_sqdmull2_laneq<mode>): Likewise. From-SVN: r211414
2014-06-10re PR tree-optimization/61438 (ICE on valid code at -O3 on x86_64-linux-gnu ↵Richard Biener4-6/+74
in in loop_preheader_edge, at cfgloop.c:1668) 2014-06-10 Richard Biener <rguenther@suse.de> PR tree-optimization/61438 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member. (eliminate_dom_walker::before_dom_children): Only try to inhibit insertion of IVs if running PRE. (eliminate): Adjust. (pass_pre::execute): Likewise. (pass_fre::execute): Likewise. * gcc.dg/torture/pr61438.c: New testcase. From-SVN: r211413
2014-06-10re PR middle-end/61456 (Bogus "may be used uninitialized" warning)Richard Biener4-12/+49
2014-06-10 Richard Biener <rguenther@suse.de> PR middle-end/61456 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Do not use the main variant for the type comparison. (ncr_compar): Likewise. (nonoverlapping_component_refs_p): Likewise. * g++.dg/opt/pr61456.C: New testcase. From-SVN: r211411
2014-06-10Reverting previous commit.Marcus Shawcroft2-19/+15
From-SVN: r211410
2014-06-10[AArch64] Fix layout of frame layout code.Jiong Wang2-15/+19
From-SVN: r211409
2014-06-10[AArch64] Fix REG_CFA_RESTORE mode.Marcus Shawcroft2-1/+6
From-SVN: r211408
2014-06-10i386.c (expand_vec_perm_pblendv): New.Evgeny Stupachenko2-0/+83
gcc/ * config/i386/i386.c (expand_vec_perm_pblendv): New. * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use expand_vec_perm_pblendv. From-SVN: r211407
2014-06-10re PR fortran/41936 (Memory leakage with allocatables and user-defined ↵Dominique d'Humieres4-0/+30
operators) 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr> Mikael Morin <mikael@gcc.gnu.org> PR fortran/41936 gcc/fortran/ * trans-expr.c (gfc_conv_expr_reference): Deallocate array components. gcc/testsuite/ * gfortran.dg/class_array_15.f03: Check memory leaks. Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org> From-SVN: r211405
2014-06-10re PR tree-optimization/57186 (implement load sinking in loops)Richard Biener3-0/+42
2014-06-10 Richard Biener <rguenther@suse.de> PR tree-optimization/57186 PR tree-optimization/59299 * gcc.dg/tree-ssa/ssa-sink-11.c: New testcase. * gcc.dg/tree-ssa/ssa-sink-12.c: Likewise. From-SVN: r211404
2014-06-10[ARM][doc] Improve description of AArch32 CRC32 intrinsics.Kyrylo Tkachov3-7/+14
* doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are available. Simplify description of __crc32d and __crc32cd intrinsics. * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32 availability. From-SVN: r211402
2014-06-10[PR lto/61334] Declare prototype for strnlen, if needed.Thomas Schwinge4-2/+17
include/ * libiberty.h [defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN] (strnlen): New prototype. gcc/ * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype. * config.in: Regenerate. * configure: Likewise. From-SVN: r211401
2014-06-10ipa-reference.c (is_proper_for_analysis): Exclude addressable and public vars.Jan Hubicka2-40/+18
* ipa-reference.c (is_proper_for_analysis): Exclude addressable and public vars. (intersect_static_var_sets): Remove. (propagate): Do not prune local statics. From-SVN: r211398