diff options
| author | Craig Topper <craig.topper@gmail.com> | 2017-04-29 05:08:52 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2017-04-29 05:08:52 +0000 |
| commit | ee4f22dc2df40fbc42672a0677ac4d11f245bc48 (patch) | |
| tree | 5f5f4b749e997f8bdb8f7d206f0d0281b02d6a1b /clang/test/CXX/modules-ts/basic/basic.link/module-declaration.cpp | |
| parent | 1f961df10c7f523266a5f66a228aade82110ab11 (diff) | |
| download | bcm5719-llvm-ee4f22dc2df40fbc42672a0677ac4d11f245bc48.tar.gz bcm5719-llvm-ee4f22dc2df40fbc42672a0677ac4d11f245bc48.zip | |
[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.
llvm-svn: 301736
Diffstat (limited to 'clang/test/CXX/modules-ts/basic/basic.link/module-declaration.cpp')
0 files changed, 0 insertions, 0 deletions

