mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-27 13:40:43 +00:00
[ConstantRange] Improve the efficiency of one of the ConstantRange constructors.
We were default constructing the Lower/Upper APInts. Then creating min or max value, then doing a move assignment to Lower and copy assignment to upper. The copy assignment operator in particular has an out of line function call that has to examine whether or not a previous allocation exists that can be reused which of course it can't in this case. The new code creates the min/max value first, move constructs Lower from it then copy constructs Upper from Lower. This also seems to have convinced a self host build that this constructor can be inlined more readily into other methods in ConstantRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301736 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
23450e5997
commit
8c828d31ce
@ -29,12 +29,9 @@
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
using namespace llvm;
|
||||
|
||||
ConstantRange::ConstantRange(uint32_t BitWidth, bool Full) {
|
||||
if (Full)
|
||||
Lower = Upper = APInt::getMaxValue(BitWidth);
|
||||
else
|
||||
Lower = Upper = APInt::getMinValue(BitWidth);
|
||||
}
|
||||
ConstantRange::ConstantRange(uint32_t BitWidth, bool Full)
|
||||
: Lower(Full ? APInt::getMaxValue(BitWidth) : APInt::getMinValue(BitWidth)),
|
||||
Upper(Lower) {}
|
||||
|
||||
ConstantRange::ConstantRange(APInt V)
|
||||
: Lower(std::move(V)), Upper(Lower + 1) {}
|
||||
|
Loading…
Reference in New Issue
Block a user