| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
clang-cmake-mips failures.
Sorry for the noise.
llvm-svn: 253662
|
|
|
|
|
|
|
|
|
|
| |
It caused link errors of the form:
InstrProfiling.c:(.text.__llvm_profile_instrument_target+0x1c0): undefined reference to `__sync_fetch_and_add_8'
We had a network outage at the time of the commit so the first build to show a
problem is http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/10827
llvm-svn: 253656
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change adds MathExtras helper functions for handling unsigned, saturating addition and multiplication. It also updates the instrumentation and sample profile merge implementations to use them.
Reviewers: dnovillo, bogner, davidxl
Subscribers: davidxl, llvm-commits
Differential Revision: http://reviews.llvm.org/D14720
llvm-svn: 253497
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make indexed value profile data more compact by peeling out
the per-site value count field into its own smaller sized array.
- Introduced formal data structure definitions to specify value
profile data layout in indexed format. Previously the layout
of the data is only assumed in the client code (scattered in
three different places : size computation, EmitData, and ReadData
- The new data structure serves as a central place for layout documentation.
- Add interfaces to force BE output for value profile data (testing purpose)
- Add byte swap unit tests
Differential Revision: http://reviews.llvm.org/D14401
llvm-svn: 252563
|
|
|
|
|
|
|
|
| |
Fixed warnings are: modernize-use-override, modernize-use-nullptr and modernize-redundant-void-arg.
Differential revision: http://reviews.llvm.org/D14312
llvm-svn: 252087
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Added a set of public interfaces in InstrProfRecord
class to access (read/write) value profile data.
2. Changed IndexedProfile reader and writer code to
use the newly defined interfaces and hide implementation
details.
3. Added a couple of unittests for value profiling:
- Test new interfaces to get and set value profile data
- Test value profile data merging with various scenarios.
No functional change is expected. The new interfaces will also
make it possible to change on-disk format of value prof data
to be more compact (to be submitted).
llvm-svn: 251771
|
|
|
|
|
|
|
|
|
| |
Add support to the indexed instrprof reader and writer for the format
that will be used for value profiling.
Patch by Betul Buyukkurt, with minor modifications.
llvm-svn: 248833
|
|
|
|
|
|
|
|
| |
This functionality wasn't being tested.
Patch by Betul Buyukkurt.
llvm-svn: 240359
|
|
|
|
|
|
|
|
|
|
| |
If we have a coverage mapping but no profile data for a function,
calling it mismatched is misleading. This can just as easily be
unreachable code that was stripped from the binary. Instead, treat
these the same as functions where we have an explicit "zero" coverage
map by setting the count to zero for each mapped region.
llvm-svn: 237298
|
|
|
|
|
|
|
| |
For consumers of coverage data, any filename prefixes we store in the
profile data are just noise. Strip this prefix if it exists.
llvm-svn: 236558
|
|
|
|
|
|
|
|
| |
This was leading to duplicate counts when a code region happened to
overlap exactly with an expansion. The combining behaviour only makes
sense for code regions.
llvm-svn: 229723
|
|
|
|
|
|
|
|
|
|
| |
This comes up when we generate coverage for a function but don't end
up emitting the function at all - dead static functions or inline
functions that aren't referenced in a particular TU, for example. In
these cases we'd like to show that the function was never called,
which is trivially true.
llvm-svn: 229717
|
|
|
|
|
|
|
|
| |
Make CoverageMapping easier to create, so that we can write targeted
unit tests for its internals, and add a some infrastructure to write
these tests. Finally, add a simple unit test for basic functionality.
llvm-svn: 229709
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Have the InstrProfWriter return a MemoryBuffer instead of a
std::string. This fixes the alignment issues the reader would hit, and
it's a more appropriate type for this anyway.
I've also removed an ugly helper function that's not needed since
we're allowing initializer lists now, and updated some error code
checks based on MSVC's issues with r229473.
This reverts r229483, reapplying r229478.
llvm-svn: 229602
|
|
|
|
|
|
|
|
|
|
| |
This time we use a helper to format the assertion so we can just use
ASSERT_TRUE instead of relying on ASSERT_EQ being able to deal with
conversions between enum types.
This reverts r229496, re-applying r229473.
llvm-svn: 229547
|
|
|
|
|
|
| |
meant to be reverted in r229483.
llvm-svn: 229496
|
|
|
|
|
|
|
|
|
|
| |
This added API to the InstrProfWriter to write to a string so I could
write unittests without using temp files. This doesn't really work,
since the format has tighter alignment requirements than a char.
This reverts r229478 and its follow-up, r229481.
llvm-svn: 229483
|
|
|
|
| |
llvm-svn: 229481
|
|
|
|
|
|
|
|
| |
Add these tests again, but use va_list instead of initializer lists.
This reverts r229456, reapplying r229455.
llvm-svn: 229478
|
|
|
|
| |
llvm-svn: 229473
|
|
|
|
|
|
|
|
| |
Looks like the bots don't like my initializer lists.
This reverts r229455
llvm-svn: 229456
|
|
|
|
|
|
|
|
|
|
| |
This required some minor API to be added to these types to avoid
needing temp files.
Also, I've used initializer lists in the tests, as MSVC 2013 claims to
support them. I'll redo this without them if the bots complain.
llvm-svn: 229455
|
|
|
|
|
|
|
|
|
| |
Apparently std::to_string doesn't exist in mingw32:
http://lab.llvm.org:8011/builders/clang-native-mingw32-win7/builds/7990
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015
llvm-svn: 228340
|
|
|
|
| |
llvm-svn: 228136
|
|
The llvm-level tests for coverage mapping need a binary input file,
which means they're hard to understand, hard to update, and it's
difficult to add new ones. By adding some unit tests that build up the
coverage data structures in C++, we can write more meaningful and
targeted tests.
llvm-svn: 228084
|