2013-10-17 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Record_Possible_Body_Reference): Fix test for
being in body.
(Add_Constituent): Merged into Check_Refined_Global_Item.
(Check_Matching_Constituent): A constituent that has the proper Part_Of
option and comes from a private child or a sibling is now collected.
(Check_Matching_Modes): Merged into Check_Refined_Global_Item.
(Check_Refined_Global_Item): Code cleanup.
(Collect_Constituent): New routine.
(Inconsistent_Mode_Error): Moved out from Check_Matching_Modes.
2013-10-17 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Check_Current_Instance, Process): Add RM reference
and mention immutably limited types, when the current instance
is illegal in Ada 2012.
2013-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Check_Unused_Withs): If the main unit is a
subunit, apply the check to the units mentioned in its context
only. This provides additional warnings on with_clauses that
are superfluous.
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Emit an
error message concerning state refinement when the spec defines at
least one non-null abstract state and the body's SPARK mode is On.
(Requires_State_Refinement): New routine.
2013-10-17 Robert Dewar <dewar@adacore.com>
* sem_ch7.ads: Comment fixes.
2013-10-17 Robert Dewar <dewar@adacore.com>
* sem_ch7.adb (Analyze_Package_Specification): Remove circuit
for ensuring that a package spec requires a body for some other
reason than that it contains the declaration of an abstract state.
2013-10-17 Tristan Gingold <gingold@adacore.com>
* exp_ch11.adb (Expand_N_Raise_Expression): Fix call of
Possible_Local_Raise.
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Unchecked
conversion of Or_Rhs to Etype of New_Rhs is required only when
the latter is the result of a byte swap operation.
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_To_Any_Function): For a type with opaque
representation that is not transmitted as an unconstrained value,
use 'Write, not 'Output, to generate the opaque representation.
2013-10-17 Yannick Moy <moy@adacore.com>
* sem_res.adb (Resolve_Short_Circuit): Only
generate expression-with-action when full expansion is set.
2013-10-17 Yannick Moy <moy@adacore.com>
* debug.adb Remove obsolete comment.
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_ch4.adb (Process_Transient_Object.Find_Enclosing_Contexts):
Avoid late insertion when expanding an expression with action
nested within a transient block; Do not inconditionally generate
a finalization call if the generated object is from a specific
branch of a conditional expression.
2013-10-17 Pascal Obry <obry@adacore.com>
* g-arrspl.adb: Ensure Finalize call is idempotent.
* g-arrspl.adb (Finalize): Makes the call idempotent.
From-SVN: r203767
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Is_Matching_Input): Account
for the case where a state with a null refinement appears as
the last input of a refinement clause.
2013-10-17 Robert Dewar <dewar@adacore.com>
* sem_aux.ads, sem_aux.adb: Minor reformatting.
From-SVN: r203766
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb, aspects.ads, sem_prag.ads: Remove all entries
for Refined_Pre from the various tables.
* par-prag.adb: Remove the entry for Refined_Pre from the list
of pragmas not needing special processing by the parser.
* sem_ch13.adb (Analyze_Aspect_Specifications):
Remove the processing for aspect Refined_Pre.
(Check_Aspect_At_Freeze_Point): Remove the entry for aspect
Refined_Pre.
* sem_prag.adb (Analyze_Pragma): Refined_Pre is no longer a
valid assertion kind. Remove the analysis of pragma Refined_Pre.
(Analyze_Refined_Pragma): Update the comment on usage.
(Find_Related_Subprogram_Or_Body): Update the comment on
usage. Pragma Refined_Pre is no longer processed by this routine.
(Is_Valid_Assertion_Kind): Refined_Pre is no longer a valid
assertion kind.
* snames.ads-tmpl: Remove predefined name Refined_Pre. Remove
the pragma id for Refined_Pre.
From-SVN: r203765
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util.
* sem_prag.adb (Analyze_Global_In_Decl_List): Mark a null
item list as being analyzed.
(Analyze_Global_List): Mark a
null global list and multiple global items as being analyzed.
(Analyze_Input_Item): Check the unit that defines the input
variable or state, not the reference to it.
* sem_util.ads, sem_util.adb (Entity_Of): Moved from Exp_Util. Ensure
that the input has an entity.
From-SVN: r203764
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_util.adb (Get_Current_Value_Condition,
Set_Current_Value_Condition): Handle the case of expressions
with actions * exp_util.adb (Insert_Actions): Handle the case
of an expression with actions whose Actions list is empty.
* exp_util.adb (Remove_Side_Effects.Side_Effect_Free): An
expression with actions that has no Actions and whose Expression
is side effect free is itself side effect free.
* exp_util.adb (Remove_Side_Effects): Do not set an incorrect etype on
temporary 'R' (Def_Id), which is in general an access to Exp_Type, not
an Exp_Type.
* sem_res.adb (Resolve): For an expression with
actions, resolve the expression early. * sem_res.adb
(Resolve_Expression_With_Actions): Rewrite an expression with
actions whose value is compile time known and which has no
actions into just its expression, so that its constant value is
available downstream.
* sem_res.adb (Resolve_Short_Circuit):
Wrap the left operand in an expression with actions to contain
any required finalization actions.
* exp_ch4.adb (Expand_Expression_With_Actions): For an
expression with actions returning a Boolean expression, ensure
any finalization action is kept within the Actions list.
* sem_warn.adb (Check_References, Check_Unset_Reference): add
missing circuitry to handle expressions with actions.
* checks.adb (Ensure_Valid): For an expression with actions,
insert the validity check on the Expression.
* sem_ch13.adb (Build_Static_Predicate.Get_RList): An expression
with actions that has a non-empty Actions list is not static. An
expression with actions that has an empty Actions list has the
static ranges of its Expression.
* sem_util.adb (Has_No_Obvious_Side_Effects): An expression with
actions with an empty Actions list has no obvious side effects
if its Expression itsekf has no obvious side effects.
From-SVN: r203763
2013-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_aux.ads, sem_aux.adb (Is_Immutably_Limited_Type): Make
predicate compatible with Ada 2012 definition
(Is_Limited_View): New name for previous version of
Is_Immutably_Limited_Type. Predicate is true for an untagged
record type with a limited component.
* exp_ch7.adb, exp_ch6.adb, exp_ch4.adb, exp_ch3.adb, exp_aggr.adb,
sem_util.adb, sem_res.adb, sem_prag.adb, sem_attr.adb, sem_ch8.adb,
sem_ch6.adb, sem_ch3.adb, exp_util.adb: Use Is_Limited_View
* freeze.adb Use Is_Immutably_Limited_Type to check the legality
of references to the current instance, Is_Limited_View otherwise.
From-SVN: r203762
2013-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Validated_Access_Subprogram_Instance): According
to AI05-288, actuals for access_to_subprograms must be subtype
conformant with the generic formal. Previous to AI05-288
only mode conformance was required, but the AI is a binding
interpretation that applies to previous versions of the language,
2013-10-17 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Minor text correction.
* ug_words: Add entry for -gnateu /IGNORE_UNRECOGNIZED.
* vms_data.ads: Add /IGNORE_UNRECOGNIZED for -gnateu.
2013-10-17 Tristan Gingold <gingold@adacore.com>
* impunit.adb (Non_Imp_File_Names_95): Add g-cppexc.
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Constituent): Move the check
concerning option Part_Of to routine Check_Matching_Constituent.
(Check_Matching_Constituent): Verify that an abstract state
that acts as a constituent has the prope Part_Op option in
its aspect/pragma Abstract_State. Account for the case when a
constituent comes from a private child or private sibling.
* sem_util.ads, sem_util.adb (Is_Child_Or_Sibling): New routine.
From-SVN: r203760
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_ch7.adb: Minor reformatting.
2013-10-17 Ed Schonberg <schonberg@adacore.com>
* sem_dim.adb (Process_Minus, Process_Divide): Label dimension
expression with standard operator and type, for pretty-printing
use.
2013-10-17 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Document --pp-new and --pp-old switches.
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb: Flag 159 is now known as From_Limited_With. Replace
all references to attribute From_With_Type with From_Limited_With.
(From_With_Type): Renamed to From_Limited_With.
(Set_From_With_Type): Renamd to Set_From_Limited_With.
* einfo.ads: Remove attribute From_With_Type and occurrences in
nodes. Add attribute From_Limited_With along with occurrences
in nodes.
(From_With_Type): Renamed to From_Limited_With along with pragma Inline.
(Set_From_With_Type): Renamed to
Set_From_Limited_With along with pragma Inline.
* sem_ch7.adb, sem_ch8.adb, sem_ch12.adb, sem_ch13.adb, sem_disp.adb,
sem_res.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
exp_attr.adb, exp_disp.adb, freeze.adb, itypes.adb, layout.adb,
lib-writ.adb, rtsfind.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb,
sem_ch4.adb: Replace all references to attribute From_With_Type
with From_Limited_With.
* sem_ch6.adb: Replace all references to attribute From_With_Type
with From_Limited_With.
(Designates_From_With_Type): Renamed to Designates_From_Limited_With.
(Process_Formals): Update the call to Designates_From_With_Type.
* sem_ch10.adb: Replace all references to attribute From_With_Type
with From_Limited_With.
(Build_Limited_Views): Reimplemented.
* gcc-interface/decl.c Replace all references to attribute
From_With_Type with From_Limited_With.
(finalize_from_with_types): Renamed to finalize_from_limited_with.
* gcc-interface/gigi.h (finalize_from_with_types): Renamed to
finalize_from_limited_with.
* gcc-interface/trans.c: Replace all references to attribute
From_With_Type with From_Limited_With.
(Compilation_Unit_to_gnu): Update the call to finalize_from_with_types.
2013-10-17 Pascal Obry <obry@adacore.com>
* projects.texi: Update VCS_Kind documentation.
2013-10-17 Matthew Heaney <heaney@adacore.com>
* a-convec.adb, a-coinve.adb, a-cobove.adb (Insert, Insert_Space):
Inspect value range before converting type.
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Flag the use of pragma Refined_Pre as
illegal.
From-SVN: r203755
2013-10-17 Vincent Celier <celier@adacore.com>
* gnat_ugn.texi: Remove VMS conversion of -gnatet and -gnateT,
now that they are both in ug_words.
* ug_words: Update qualifier for -gnatet Add qualifier for -gnateT
* vms_data.ads: Update qualifier for -gnatet Add qualifier
for -gnateT
* projects.texi: Continue to update the project documentation
for VMS.
2013-10-17 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (Has_Body_References): New flag.
(Body_References): New field.
* sem_prag.adb (Record_Possible_Body_Reference): New procedure
(Analyze_Input_Output): Call Record_Possible_Body_Reference
(Analyze_Global_Item): Call Record_Possible_Body_Reference
(Analyze_Refinement_Clause): Output messages if illegal global refs.
2013-10-17 Thomas Quinot <quinot@adacore.com>
* freeze.adb (Check_Component_Storage_Order): Reject a record or
array type that does not have an explicit Scalar_Storage_Order
attribute definition if a component of the record, or the
elements of the array, have one.
* gnat_rm.texi (attribute Scalar_Storage_Order): Document the above
rule.
From-SVN: r203750
2013-10-17 Vincent Celier <celier@adacore.com>
* gnat_ugn.texi: Add examples of switches -gnateD, including
one where the value is a string.
* projects.texi: Do not convert switches in project files to
VMS qualifiers.
2013-10-17 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Report_Extra_Clauses): Don't complain about
refinements with null input since null should be considered to
always match.
From-SVN: r203749
2013-10-17 Yannick Moy <moy@adacore.com>
* sem_ch8.adb (Find_Direct_Name): Keep track of assignments for
renamings in SPARK mode.
2013-10-17 Yannick Moy <moy@adacore.com>
* exp_spark.adb (Expand_SPARK): Remove special case for NOT IN
operation.
* sinfo.ads: Add special comment section to describe SPARK mode
effect on tree.
* exp_spark.ads: Remove comments, moved to sinfo.ads.
2013-10-17 Yannick Moy <moy@adacore.com>
* exp_ch3.adb (Expand_Freeze_Class_Wide_Type,
Expand_Freeze_Class_Wide_Type, Expand_Freeze_Class_Wide_Type):
Remove useless special cases.
* exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Allocator,
Expand_N_Op_Expon): Remove useless special cases.
* exp_ch6.adb (Is_Build_In_Place_Function_Call): Disable build-in-place
in SPARK mode by testing Full_Expander_Active instead of
Expander_Active.
(Make_Build_In_Place_Call_In_Allocator): Remove useless special case.
* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove
useless special case.
* sem_eval.adb (Compile_Time_Known_Value): Remove special handling of
deferred constant.
2013-10-17 Yannick Moy <moy@adacore.com>
* gnat_ugn.texi: Document -gnateT and target file format.
2013-10-17 Vincent Celier <celier@adacore.com>
* prep.adb (Check_Command_Line_Symbol_Definition): Is_A_String is
always False, even when the value starts and ends with double quotes.
From-SVN: r203747
2013-10-17 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb: Synchronize declarations of other/all others.
2013-10-17 Thomas Quinot <quinot@adacore.com>
* exp_pakd.adb: Add missing guard protecting Reverse_Storage_Order
call.
* sem_res.adb: Minor code cleanup: use named parameter association
(not positional) for Boolean parameter Sec_Stack in calls to
Establish_Transient_Scope.
From-SVN: r203746
2013-10-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/58143
* tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
New function.
(rewrite_to_defined_overflow): Likewise.
(move_computations_dom_walker::before_dom): Rewrite stmts
with undefined signed overflow that are not always executed
into unsigned arithmetic.
* gcc.dg/torture/pr58143-1.c: New testcase.
* gcc.dg/torture/pr58143-2.c: Likewise.
* gcc.dg/torture/pr58143-3.c: Likewise.
From-SVN: r203745
2013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/57756
* config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
explicit isa flag to be an options variable, instead of using
global_options_set. Remove define from rs6000.h.
* config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Initialize rs6000_isa_flags_explicit.
(rs6000_function_specific_save): Add gcc_options* parameter, so
that the powerpc builds after the 2013-10-15 changes.
(rs6000_function_specific_restore): Likewise.
From-SVN: r203734
* config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
op is a REG before checking REGNO.
(rl78_alloc_physical_registers): Verify pattern is a SET before
checking SET_SRC.
From-SVN: r203733
2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
(vsx_concat_v2sf): Likewise.
From-SVN: r203713
* config.host (cpu_type) <Setting default>: Add entry for
crisv32-*-*.
(tmake_file) <crisv32-*-elf, cris-*-elf, cris-*-linux*>
<crisv32-*-linux*>: Adjust.
* longlong.h: Wrap the whole CRIS section in a single
defined(__CRIS__) conditional. Add comment about add_ssaaaa
and sub_ddmmss.
(COUNT_LEADING_ZEROS_0): Define when count_leading_zeros is
defined.
[__CRIS__] (__umulsidi3): Define.
[__CRIS__] (umul_ppmm): Define in terms of __umulsidi3.
* config/cris/sfp-machine.h: New file.
* config/cris/umulsidi3.S: New file.
* config/cris/t-elfmulti (LIB2ADD_ST): Add umulsidi3.S.
* config/cris/arit.c (SIGNMULT): New macro.
(__Div, __Mod): Use SIGNMULT instead of naked multiplication.
* config/cris/mulsi3.S: Tweak to avoid redundant register-copying;
saving 3 out of originally 33 cycles from the fastest
path, 3 out of 54 from the medium path and one from the longest
path. Improve comments.
From-SVN: r203640
PR target/57756
The root-cause of this PR is that global_options is not restored to
default before calling ix86_valid_target_attribute_tree and hence
target attributes are incorrectly processed sometimes.
This patch refactors code in i386.c in functions in the call-chain of
ix86_valid_target_attribute_tree to use any gcc_options struct passed
as a parameter. It replaces existing code which always uses the
global_options struct.
2013-10-15 Sriraman Tallam <tmsriram@google.com>
PR target/57756
* optc-save-gen.awk: Add extra parameter to the save and restore
target calls.
* opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
* tree.c (build_optimization_node): New parameter. Add extra parameter
to call to cl_optimization_save.
(build_target_option_node): New parameter. Add extra parameter
to call to cl_target_option_save.
* tree.h (build_optimization_node): New parameter.
(build_target_option_node): New parameter.
* c-family/c-common.c (handle_optimize_attribute): Fix calls to
build_optimization_node and build_target_option_node.
* c-family/c-pragma.c (handle_pragma_optimize): Ditto.
(handle_pragma_push_options): Ditto.
* toplev.c (process_options): Ditto.
* opts.c (init_options_struct): Check for opts_set non-null.
* target.def (target_option.save): New parameter.
(target_option.restore): New parameter.
* tm.texi: Generate.
* config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
(ix86_pragma_target_parse): Ditto.
* config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
parameters.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
to build_optimization_node and build_target_option_node.
(rs6000_valid_attribute_p): Ditto.
(rs6000_pragma_target_parse): Ditto.
* config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
data.
* config/i386/i386.h:
TARGET_64BIT_P: New Macro
TARGET_MMX_P: New Macro.
TARGET_3DNOW_P: New Macro.
TARGET_3DNOW_A_P: New Macro.
TARGET_SSE_P: New Macro.
TARGET_SSE2_P: New Macro.
TARGET_SSE3_P: New Macro.
TARGET_SSSE3_P: New Macro.
TARGET_SSE4_1_P: New Macro.
TARGET_SSE4_2_P: New Macro.
TARGET_AVX_P: New Macro.
TARGET_AVX2_P: New Macro.
TARGET_AVX512F_P: New Macro.
TARGET_AVX512PF_P: New Macro.
TARGET_AVX512ER_P: New Macro.
TARGET_AVX512CD_P: New Macro.
TARGET_FMA_P: New Macro.
TARGET_SSE4A_P: New Macro.
TARGET_FMA4_P: New Macro.
TARGET_XOP_P: New Macro.
TARGET_LWP_P: New Macro.
TARGET_ABM_P: New Macro.
TARGET_BMI_P: New Macro.
TARGET_BMI2_P: New Macro.
TARGET_LZCNT_P: New Macro.
TARGET_TBM_P: New Macro.
TARGET_POPCNT_P: New Macro.
TARGET_SAHF_P: New Macro.
TARGET_MOVBE_P: New Macro.
TARGET_CRC32_P: New Macro.
TARGET_AES_P: New Macro.
TARGET_PCLMUL_P: New Macro.
TARGET_CMPXCHG16B_P: New Macro.
TARGET_FSGSBASE_P: New Macro.
TARGET_RDRND_P: New Macro.
TARGET_F16C_P: New Macro.
TARGET_RTM_P: New Macro.
TARGET_HLE_P: New Macro.
TARGET_RDSEED_P: New Macro.
TARGET_PRFCHW_P: New Macro.
TARGET_ADX_P: New Macro.
TARGET_FXSR_P: New Macro.
TARGET_XSAVE_P: New Macro.
TARGET_XSAVEOPT_P: New Macro.
TARGET_LP64_P: New Macro.
TARGET_X32_P: New Macro.
TARGET_FPMATH_DEFAULT_P: New Macro.
TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
* config/i386/i386.c (ix86_option_override_internal): New parameters.
opts and opts_set.
Change ix86_tune_string to access opts->x_ix86_tune_string.
Change ix86_isa_flags to access opts->x_ix86_isa_flags.
Change ix86_arch_string to access opts->x_ix86_arch_string.
Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
Change ix86_pmode to access opts->x_ix86_pmode.
Change ix86_abi to access opts->x_ix86_abi.
Change ix86_cmodel to access opts->x_ix86_cmodel.
Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
Change ix86_isa_flags_explicit to access
opts->x_ix86_isa_flags_explicit.
Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
Change ix86_regparm to access opts->x_ix86_regparm.
Change ix86_branch_cost to access opts->x_ix86_branch_cost.
Change ix86_preferred_stack_boundary_arg to access
opts->x_ix86_preferred_stack_boundary_arg.
Change ix86_force_align_arg_pointer to access
opts->x_ix86_force_align_arg_pointer.
Change ix86_incoming_stack_boundar_arg to access
opts->x_ix86_incoming_stack_boundar_arg.
Change ix86_fpmath to access opts->x_ix86_fpmath.
Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
Change ix86_recip_name to access opts->x_ix86_recip_name.
Change ix86_stack_protector_guard to access
opts->x_ix86_stack_protector_guard.
Change ix86_tune_memcpy_strategy to access
opts->x_ix86_tune_memcpy_strategy.
Change ix86_tune_memset_strategy to access
opts->x_ix86_tune_memset_strategy.
Change global_options to access opts.
Change global_options_set to access opts_set.
Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
Change TARGET_MMX to TARGET_MMX_P (opts->...)
Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...)
Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...)
Change TARGET_SSE to TARGET_SSE_P (opts->...)
Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
Change TARGET_SSE3 to TARGET_SSE3_P (opts->...)
Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...)
Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...)
Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...)
Change TARGET_AVX to TARGET_AVX_P (opts->...)
Change TARGET_AVX2 to TARGET_AVX2_P (opts->...)
Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...)
Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...)
Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...)
Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...)
Change TARGET_FMA to TARGET_FMA_P (opts->...)
Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...)
Change TARGET_FMA4 to TARGET_FMA4_P (opts->...)
Change TARGET_XOP to TARGET_XOP_P (opts->...)
Change TARGET_LWP to TARGET_LWP_P (opts->...)
Change TARGET_ABM to TARGET_ABM_P (opts->...)
Change TARGET_BMI to TARGET_BMI_P (opts->...)
Change TARGET_BMI2 to TARGET_BMI2_P (opts->...)
Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...)
Change TARGET_TBM to TARGET_TBM_P (opts->...)
Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...)
Change TARGET_SAHF to TARGET_SAHF_P (opts->...)
Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...)
Change TARGET_CRC32 to TARGET_CRC32_P (opts->...)
Change TARGET_AES to TARGET_AES_P (opts->...)
Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...)
Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...)
Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...)
Change TARGET_RDRND to TARGET_RDRND_P (opts->...)
Change TARGET_F16C to TARGET_F16C_P (opts->...)
Change TARGET_RTM to TARGET_RTM_P (opts->...)
Change TARGET_HLE to TARGET_HLE_P (opts->...)
Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...)
Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...)
Change TARGET_ADX to TARGET_ADX_P (opts->...)
Change TARGET_FXSR to TARGET_FXSR_P (opts->...)
Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...)
Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...)
Change TARGET_LP64 to TARGET_LP64_P (opts->...)
Change TARGET_X32 to TARGET_X32_P (opts->...)
Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...)
Change TARGET_FLOAT_RETURNS_IN_80387 to
TARGET_FLOAT_RETURNS_IN_80387_P (opts->...)
(ix86_function_specific_save): New parameter. Use opts-> fields
to replace global fields.
(ix86_function_specific_restore): Ditto.
(ix86_valid_target_attribute_inner_p): New parameters.
Fix recursive call.
Fix call to ix86_handle_option and set_option.
(ix86_valid_target_attribute_tree): New parameters.
Change global_options to access opts.
Change global_options_set to access opts_set.
Fix call to ix86_valid_target_attribute_inner_p.
Change ix86_tune_string to access opts->x_ix86_tune_string.
Change ix86_arch_string to access opts->x_ix86_arch_string.
Change ix86_fpmath to access opts->x_ix86_fpmath
Fix call to ix86_option_override_internal.
Fix call to ix86_add_new_builtins.
Fix calls to build_optimization_node and build_target_option_node.
(ix86_valid_target_attribute_p): Remove access to global_options.
Use new gcc_options structure func_options.
Fix call to ix86_valid_target_attribute_tree.
Fix call to build_optimization_node.
(get_builtin_code_for_version): Fix call to
ix86_valid_target_attribute_tree.
PR target/57756
* gcc.target/i386/pr57756.c: New test.
* gcc.target/i386/pr57756_2.c: New test.
From-SVN: r203634