bitcode support change for fast flags compatibility
Summary: The discussion and as per need, each vendor needs a way to keep the old fast flags and the new fast flags in the auto upgrade path of the IR upgrader. This revision addresses that issue. Patched by Michael Berg Reviewers: qcolombet, hans, steven_wu Reviewed By: qcolombet, steven_wu Subscribers: dexonsmith, vsk, mehdi_amini, andrewrk, MatzeB, wristow, spatel Differential Revision: https://reviews.llvm.org/D43253 llvm-svn: 325525
This commit is contained in:
@@ -1334,19 +1334,19 @@ static uint64_t getOptimizationFlags(const Value *V) {
|
||||
Flags |= 1 << bitc::PEO_EXACT;
|
||||
} else if (const auto *FPMO = dyn_cast<FPMathOperator>(V)) {
|
||||
if (FPMO->hasAllowReassoc())
|
||||
Flags |= FastMathFlags::AllowReassoc;
|
||||
Flags |= bitc::AllowReassoc;
|
||||
if (FPMO->hasNoNaNs())
|
||||
Flags |= FastMathFlags::NoNaNs;
|
||||
Flags |= bitc::NoNaNs;
|
||||
if (FPMO->hasNoInfs())
|
||||
Flags |= FastMathFlags::NoInfs;
|
||||
Flags |= bitc::NoInfs;
|
||||
if (FPMO->hasNoSignedZeros())
|
||||
Flags |= FastMathFlags::NoSignedZeros;
|
||||
Flags |= bitc::NoSignedZeros;
|
||||
if (FPMO->hasAllowReciprocal())
|
||||
Flags |= FastMathFlags::AllowReciprocal;
|
||||
Flags |= bitc::AllowReciprocal;
|
||||
if (FPMO->hasAllowContract())
|
||||
Flags |= FastMathFlags::AllowContract;
|
||||
Flags |= bitc::AllowContract;
|
||||
if (FPMO->hasApproxFunc())
|
||||
Flags |= FastMathFlags::ApproxFunc;
|
||||
Flags |= bitc::ApproxFunc;
|
||||
}
|
||||
|
||||
return Flags;
|
||||
@@ -3196,7 +3196,7 @@ void ModuleBitcodeWriter::writeBlockInfo() {
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // LHS
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // RHS
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // opc
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 7)); // flags
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 8)); // flags
|
||||
if (Stream.EmitBlockInfoAbbrev(bitc::FUNCTION_BLOCK_ID, Abbv) !=
|
||||
FUNCTION_INST_BINOP_FLAGS_ABBREV)
|
||||
llvm_unreachable("Unexpected abbrev ordering!");
|
||||
|
||||
Reference in New Issue
Block a user