Commit Graph

64 Commits

Author SHA1 Message Date
Xinliang David Li
9fb35fc1cc Sync up InstrProfData.inc with compiler-rt with fixes to references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276388 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-22 04:46:56 +00:00
Xinliang David Li
ffdd4801d1 Revert 276386
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276387 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-22 04:31:26 +00:00
Xinliang David Li
4e19f6e23a Sync up InstrProfData.inc with compiler-rt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276386 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-22 04:18:17 +00:00
Xinliang David Li
5a06a46a4f [Profile] deprecate __llvm_profile_override_default_filename
This eliminates unncessary calls and init functions.

Differential Revision: http://reviews.llvm.org/D22613


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276354 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-21 23:19:10 +00:00
NAKAMURA Takumi
229220275b Untabify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272523 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-13 00:18:19 +00:00
Vedant Kumar
8a025f711a [ProfileData] Update llvm's copy of InstrProfData.inc
The new version of the header introduces the INSTR_PROF_VISIBILITY
macro. See http://reviews.llvm.org/D21116 for more details.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272166 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-08 16:39:32 +00:00
NAKAMURA Takumi
9b1606d5af Untabify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271860 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-06 00:31:28 +00:00
Xinliang David Li
b5023a0845 bug fix: trim section specifier name length
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270349 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-22 01:21:21 +00:00
Xinliang David Li
ad650ee545 [profile] Static counter allocation for value profiling (part-1)
Differential Revision: http://reviews.llvm.org/D20459



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270336 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-21 22:55:34 +00:00
Vedant Kumar
c77570e062 Retry^3 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"
Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Changes since the initial commit:
- Fix error message printing in llvm-profdata.
- Check errors in loadTestingFormat() + annotateAllFunctions().
- Defer error handling in InstrProfIterator to InstrProfReader.
- Remove the base ProfError class to work around an MSVC ICE.

Differential Revision: http://reviews.llvm.org/D19901

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270020 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-19 03:54:45 +00:00
Vedant Kumar
ce4aff93aa Revert "Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""
This reverts commit r269694. MSVC says:

error C2086: 'char llvm::ProfErrorInfoBase<enum llvm::instrprof_error>::ID' : redefinition

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269700 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 21:03:38 +00:00
Vedant Kumar
515ee3e025 Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"
Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Changes since the initial commit:
- Address undefined-var-template warning.
- Fix error message printing in llvm-profdata.
- Check errors in loadTestingFormat() + annotateAllFunctions().
- Defer error handling in InstrProfIterator to InstrProfReader.

Differential Revision: http://reviews.llvm.org/D19901

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269694 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 20:49:39 +00:00
Xinliang David Li
addf109ca6 sync up common profile header /nfc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269690 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-16 20:34:39 +00:00
Xinliang David Li
e74197bd25 [profile] Header file cleanup /NFC
Remove runtime specific decls from the common header.
This change also syncs up InstrProfData.inc between
llvm and compiler_rt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269608 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-15 20:06:11 +00:00
Chandler Carruth
2e531af53a Revert "Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC""
This reverts commit r269491. It triggers warnings with Clang, breaking
builds for -Werror users including several build bots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269547 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-14 05:26:26 +00:00
Vedant Kumar
db1d476217 Retry "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"
Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Changes since the initial commit:
- Fix error message printing in llvm-profdata.
- Check errors in loadTestingFormat() + annotateAllFunctions().
- Defer error handling in InstrProfIterator to InstrProfReader.

Differential Revision: http://reviews.llvm.org/D19901

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269491 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-13 21:50:56 +00:00
Vedant Kumar
8007bdd41f Revert "(HEAD -> master, origin/master, origin/HEAD) [ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"
This reverts commit r269462. It fails two llvm-profdata tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269466 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-13 20:09:39 +00:00
Vedant Kumar
5b34ed8191 [ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC
Transition InstrProf and Coverage over to the stricter Error/Expected
interface.

Differential Revision: http://reviews.llvm.org/D19901

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269462 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-13 20:01:27 +00:00
Xinliang David Li
a4cc7ae52a Remove runtime specific code from common header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269384 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-13 00:23:49 +00:00
Xinliang David Li
b7f191181c [profile] profile writing cleanup
Do not precompute value counts for all sites. This 
eliminates one more use of dynamic allocation 
in profiler writer.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269253 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 23:21:12 +00:00
Xinliang David Li
b723fcf640 cleanup: do not recompute size for preallocated buffer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269238 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 21:17:10 +00:00
Xinliang David Li
ccd9cbbd34 [profile] Remove another unneeded field in raw profile reader
DataValueSize is now removed. The change is consolidated
with previous raw version bump.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268703 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-06 02:13:00 +00:00
Xinliang David Li
007644ba3f [Profile] Raw profile header clean up
Remove dead ValueDataBegin field in raw header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268602 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-05 04:07:30 +00:00
Adam Nemet
405e53f5ee [PGO] More comments how function pointers for indirect calls are mapped
to function names

Summary:
Hopefully this will make it easier for the next person to figure all
this out...

Reviewers: bogner, davidxl

Subscribers: davidxl, cfe-commits

Differential Revision: http://reviews.llvm.org/D18489

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264678 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-28 22:15:15 +00:00
Adam Nemet
71de6209a6 [PGO] Update r264611 to use C-style comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264614 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-28 18:45:30 +00:00
Adam Nemet
4ba91c0bea [PGO] Comment how function pointers for indirect calls are mapped to function names
Summary:
Hopefully this will make it easier for the next person to figure all
this out...

Reviewers: bogner, davidxl

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D18490

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264611 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-28 18:27:44 +00:00
Xinliang David Li
097f6ea877 Add forward declarations /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261946 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-26 00:54:08 +00:00
Rong Xu
c7d7fb02f4 [PGO] Differentiate Clang instrumentation and IR level instrumentation profiles
This patch uses one bit in profile version to differentiate Clang
instrumentation and IR level instrumentation profiles.

PGOInstrumenation generates a COMDAT variable __llvm_profile_raw_version so
that the compiler runtime can set the right profile kind.
For Maco-O platform, we generate the variable as linkonce_odr linkage as
COMDAT is not supported.

PGOInstrumenation now checks this bit to make sure it's an IR level
instrumentation profile.

The patch was submitted as r260164 but reverted due to a Darwin test breakage.
Original Differential Revision: http://reviews.llvm.org/D15540

Differential Revision: http://reviews.llvm.org/D17020



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260385 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-10 17:18:30 +00:00
Rong Xu
aab8d7f3e3 [PGO] Revert r260146 as it breaks Darwin platforms.
r260146 | xur | 2016-02-08 13:07:46 -0800 (Mon, 08 Feb 2016) | 13 lines
[PGO] Differentiate Clang instrumentation and IR level instrumentation profiles


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260170 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-08 23:11:16 +00:00
Rong Xu
c9a01773b0 [PGO] Differentiate Clang instrumentation and IR level instrumentation profiles
This patch uses one bit in profile version to differentiate Clang
instrumentation and IR level instrumentation profiles.

PGOInstrumenation generates a COMDAT variable __llvm_profile_raw_version so
that the compiler runtime can set the right profile kind.
PGOInstrumenation now checks this bit to make sure it's an IR level
instrumentation profile.

Differential Revision: http://reviews.llvm.org/D15540



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260146 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-08 21:07:46 +00:00
Xinliang David Li
04638a608b [PGO] Enable compression in pgo instrumentation
This reduces sizes of instrumented object files, final binaries,
process images, and raw profile data.

The format of the indexed profile data remain the same.

Differential Revision: http://reviews.llvm.org/D16388 
 





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260117 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-08 18:13:49 +00:00
Xinliang David Li
730d9343ca [PGO] Profile interface cleanup
- Remove unused valuemapper parameter
  - add totalcount optional parameter





git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259756 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04 05:29:51 +00:00
Xinliang David Li
8fd9cfb481 [PGO] Profile summary reader/writer support
With this patch, the profile summary data will be available in indexed
profile data file so that profiler reader/compiler optimizer can start
to make use of.

Differential Revision: http://reviews.llvm.org/D16258



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259626 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-03 04:08:18 +00:00
Xinliang David Li
5b78a6e259 [PGO] Make header portable for C /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258889 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-27 00:13:39 +00:00
Eugene Zelenko
51ecde1f0a Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; other minor fixes.
Differential revision: reviews.llvm.org/D16568


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258831 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-26 18:48:36 +00:00
Xinliang David Li
1c5981f8c7 Fix a typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258716 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-25 20:38:13 +00:00
Xinliang David Li
94d8cb3cbf Cleanup: shorten prefix to consistent with other decls /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257744 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-14 06:21:25 +00:00
Xinliang David Li
1b57757d70 [PGO] Introducing version mask macro/NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257224 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-08 22:55:16 +00:00
Xinliang David Li
b195813e9e Minor fix -- use the right version enum/NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257194 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-08 19:21:32 +00:00
Xinliang David Li
8105d80b25 [PGO] : Removing trailing space/define new macro/NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257123 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-08 00:38:53 +00:00
Xinliang David Li
dcf208db21 [PGO] Minor refactoring /NFC
Move common defs into common header files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257108 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-07 22:46:29 +00:00
NAKAMURA Takumi
8d08283a5a llvm/include/llvm/ProfileData/InstrProfData.inc: Add c++-mode in the header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256721 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-04 00:47:33 +00:00
Xinliang David Li
edf18107db [PGO] Introduce coverage map header structure in PGO data template file /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256710 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-03 18:35:56 +00:00
Xinliang David Li
d032a6a4e0 Add a forward declaration (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255292 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-10 20:13:41 +00:00
Xinliang David Li
ed192380fc [PGO] Allow input value node list to be null
This is to handle the case when vp node linked
list array is laziliy initialized at runtime 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254551 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-02 21:47:43 +00:00
Xinliang David Li
b0e1e32b73 Define member operator delete
For the struct with trailing objects, define
a member operator delete. Without this, the program
will fail when -fsized-deallocation option is used
where the wrong size will be passed to the global
delete operator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254471 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-01 23:05:27 +00:00
Xinliang David Li
672212ce1a Minor code cleanups
- Add const keyword
 - fix code comments
 - move forward decl to the common file


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254244 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-29 04:52:34 +00:00
Xinliang David Li
ea177884e9 [PGO] Move value profile format related structures and APIs to common file
This is the last step to enable profile runtime to share the same value prof
data format and reader/writer code with llvm host tools. The VP related 
data structures are moved to a section in InstrProfData.inc enabled with macro
INSTR_PROF_VALUE_PROF_DATA, and common API implementations are enabled with
INSTR_PROF_COMMON_API_IMPL. There should be no functional change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254235 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-28 19:07:09 +00:00
Xinliang David Li
45df396019 Fix a typo introduced in previous patches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254112 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-26 00:02:23 +00:00
Xinliang David Li
490527320f Remove trailing space in comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253941 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-24 00:31:41 +00:00