Comments (4)
IMHO in this particular case the
Compiler Explorer that works: https://godbolt.org/z/c3d5sc8s3
... is the case that actually does not work.
There is zero reason for the compiler to produce that load-and-spill there.
from benchmark.
From my user point of view, DoNotOptimize()
means: do something with this lvalue such that it is a noop but the compiler will still think we are using it. So if you are using the value, the DoNotOptimize()
is doing its job.
from benchmark.
That all said, this is your library so the semantics of using it is what you say. I was surprised by it. If that's known and expected then it is what it is.
from benchmark.
Right, but still, i don't quite see it.
A reference is a pointer, while an auto
is a result of dereferencing that pointer.
If you drop DoNotOptimize
from either snippet, there's a lot more changes,
so DoNotOptimize
did prevent the argument from being optimized away.
from benchmark.
Related Issues (20)
- [FR] Add support for adding custom profilers
- [BUG] Compilation failed for using operator [] for unordered_map HOT 1
- [BUG]
- [FR] Add possibility to start iteration in timing-off state. HOT 1
- [BUG] Core Affinity doesn't seem to work (Or Reporter wrong?) HOT 5
- [BUG] Perf counters not multiplexed
- Trusted publishing should be set up for PyPI HOT 3
- [BUG] FittingCurve() could just use log2() now?
- [FR] Add the ability to dry-run benchmarks HOT 10
- Multithreaded benchmarks question on iteration count. HOT 2
- [BUG] HOT 4
- [BUG] Threads time taken report. HOT 12
- [BUG] Question about Benchmark Results on BigLittle Architecture HOT 2
- [BUG] Warnings HOT 5
- Latest wheel delivery problems HOT 1
- [FR] Make benchmark tests available from Test Explorer of Visual Studio
- [BUG](Initial problem) cannot build library HOT 10
- [FR] `PredictNumItersNeeded()` 1.4 correction factor HOT 23
- [BUG] CPU hang on multithreaded benchmarks overriding the memory manager HOT 2
- CMake: Difference between benchmark::benchmark and benchmark::benchmark_main HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from benchmark.