Adds ARM backend options: -mrestrict-it and -mno-restrict-it
To support the generation of IT block in Thumbv7 way or Thumbv8 way llvm-svn: 194593
This commit is contained in:
parent
0da5cc0765
commit
580dcfbd27
|
@ -1029,6 +1029,10 @@ def mno_unaligned_access : Flag<["-"], "mno-unaligned-access">, Group<m_arm_Feat
|
|||
def mstrict_align : Flag<["-"], "mstrict-align">, Alias<mno_unaligned_access>, Flags<[CC1Option,HelpHidden]>,
|
||||
HelpText<"Force all memory accesses to be aligned (ARM only, same as mno-unaligned-access)">;
|
||||
def mno_thumb : Flag<["-"], "mno-thumb">, Group<m_arm_Features_Group>;
|
||||
def mrestrict_it: Flag<["-"], "mrestrict-it">, Group<m_arm_Features_Group>,
|
||||
HelpText<"Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.">;
|
||||
def mno_restrict_it: Flag<["-"], "mno-restrict-it">, Group<m_arm_Features_Group>,
|
||||
HelpText<"Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode">;
|
||||
def marm : Flag<["-"], "marm">, Alias<mno_thumb>;
|
||||
def ffixed_r9 : Flag<["-"], "ffixed-r9">, Group<m_arm_Features_Group>,
|
||||
HelpText<"Reserve the r9 register (ARM only)">;
|
||||
|
|
|
@ -3072,6 +3072,17 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
}
|
||||
}
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mrestrict_it,
|
||||
options::OPT_mno_restrict_it)) {
|
||||
if (A->getOption().matches(options::OPT_mrestrict_it)) {
|
||||
CmdArgs.push_back("-backend-option");
|
||||
CmdArgs.push_back("-arm-restrict-it");
|
||||
} else {
|
||||
CmdArgs.push_back("-backend-option");
|
||||
CmdArgs.push_back("-arm-no-restrict-it");
|
||||
}
|
||||
}
|
||||
|
||||
// Forward -f options with positive and negative forms; we translate
|
||||
// these by hand.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fprofile_sample_use_EQ)) {
|
||||
|
|
Loading…
Reference in New Issue