Reorganize FastMathFlags to be a wrapper around unsigned, and streamline some interfaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169712 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael Ilseman
2012-12-09 21:12:04 +00:00
parent 880166684e
commit 1638b83909
8 changed files with 82 additions and 81 deletions

View File

@ -2047,16 +2047,16 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
cast<BinaryOperator>(I)->setIsExact(true);
} else if (isa<FPMathOperator>(I)) {
FastMathFlags FMF;
FMF.UnsafeAlgebra =
0 != (Record[OpNum] & FPMathOperator::UnsafeAlgebra);
FMF.NoNaNs =
0 != (Record[OpNum] & FPMathOperator::NoNaNs);
FMF.NoInfs =
0 != (Record[OpNum] & FPMathOperator::NoInfs);
FMF.NoSignedZeros =
0 != (Record[OpNum] & FPMathOperator::NoSignedZeros);
FMF.AllowReciprocal =
0 != (Record[OpNum] & FPMathOperator::AllowReciprocal);
if (0 != (Record[OpNum] & FastMathFlags::UnsafeAlgebra))
FMF.setUnsafeAlgebra();
if (0 != (Record[OpNum] & FastMathFlags::NoNaNs))
FMF.setNoNaNs();
if (0 != (Record[OpNum] & FastMathFlags::NoInfs))
FMF.setNoInfs();
if (0 != (Record[OpNum] & FastMathFlags::NoSignedZeros))
FMF.setNoSignedZeros();
if (0 != (Record[OpNum] & FastMathFlags::AllowReciprocal))
FMF.setAllowReciprocal();
if (FMF.any())
I->setFastMathFlags(FMF);
}