| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D16947
llvm-svn: 260270
|
|
|
|
| |
llvm-svn: 260161
|
|
|
|
| |
llvm-svn: 260126
|
|
|
|
| |
llvm-svn: 260022
|
|
|
|
| |
llvm-svn: 260021
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes cc1 option -fprofile-instr-generate to an enum option
-fprofile-instrument={clang|none}. It also changes cc1 options
-fprofile-instr-generate= to -fprofile-instrument-path=.
The driver level option -fprofile-instr-generate and -fprofile-instr-generate=
remain intact. This change will pave the way to integrate new PGO
instrumentation in IR level.
Review: http://reviews.llvm.org/D16730
llvm-svn: 259811
|
|
|
|
|
|
|
| |
1. Make test case more focused and robust by focusing on what to be tested (linkage, icall) -- make it easier to validate
2. Testing linkages of data and counter variables instead of names. Counters and data are more relavant to be tested.
llvm-svn: 259067
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8940
llvm-svn: 258650
|
|
|
|
|
|
|
|
|
|
|
| |
NFC. These hints are only used for inlining and the inliner now uses
the same criteria to identify hot and cold callees and set appropriate
thresholds without relying on these hints. Hence this removed code is
superfluous.
Differential Revision: http://reviews.llvm.org/D15726
llvm-svn: 256793
|
|
|
|
|
|
|
|
| |
This sets the maximum entry count among all functions in the program to the module using module flags. This allows the optimizer to use this information.
Differential Revision: http://reviews.llvm.org/D15163
llvm-svn: 255918
|
|
|
|
| |
llvm-svn: 255587
|
|
|
|
|
|
|
|
|
|
| |
(test case update)
Profile symbols have long prefixes which waste space and creating pressure for linker.
This patch shortens the prefixes to minimal length without losing verbosity.
Differential Revision: http://reviews.llvm.org/D15503
llvm-svn: 255576
|
|
|
|
| |
llvm-svn: 255447
|
|
|
|
| |
llvm-svn: 255445
|
|
|
|
| |
llvm-svn: 255437
|
|
|
|
| |
llvm-svn: 255436
|
|
|
|
|
|
|
| |
(This is part-2 of the patch of r255434 --
fixing test cases, second try)
llvm-svn: 255435
|
|
|
|
| |
llvm-svn: 255368
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(This is part-2 of the patch -- fixing test cases)
Before the patch, -fprofile-instr-generate compile will fail
if no integrated-as is specified when the file contains
any static functions (the -S output is also invalid).
This patch fixed the issue. With the change, the index format
version will be bumped up by 1. Backward compatibility is
preserved with this change.
Differential Revision: http://reviews.llvm.org/D15243
llvm-svn: 255366
|
|
|
|
| |
llvm-svn: 255326
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Constructors and destructors may be represented by several functions
in IR. Only base structors correspond to source code, others are
small pieces of code and eventually call the base variant. In this
case instrumentation of non-base structors has little sense, this
fix remove it. Now profile data of a declaration corresponds to
exactly one function in IR, it agrees with the current logic of the
profile data loading.
This change fixes PR24996.
Differential Revision: http://reviews.llvm.org/D15158
llvm-svn: 254876
|
|
|
|
| |
llvm-svn: 253485
|
|
|
|
|
|
|
| |
Remove a check that won't be valid when LLVM stops
emitting runtime hook user function.
llvm-svn: 251611
|
|
|
|
| |
llvm-svn: 241903
|
|
|
|
|
|
|
|
|
| |
cannot assume that the current working directory is writable in all test
environments. I don't know a better way to write this test of hand, lets
discuss. Possibly, a better option would be to put these together with
other test testing the driver directly.
llvm-svn: 241885
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds support for specifying where the profile is emitted in a
way similar to GCC. These flags are used to specify directories instead
of filenames. When -fprofile-generate=DIR is used, the compiler will
generate code to write to <DIR>/default.profraw.
The patch also adds a couple of extensions: LLVM_PROFILE_FILE can still be
used to override the directory and file name to use and -fprofile-use
accepts both directories and filenames.
To simplify the set of flags used in the backend, all the flags get
canonicalized to -fprofile-instr-{generate,use} when passed to the
backend. The decision to use a default name for the profile is done
in the driver.
llvm-svn: 241825
|
|
|
|
|
|
| |
r240971.
llvm-svn: 241047
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cases
Several tests wouldn't pass when executed on an armv7a_pc_linux triple
due to the non-default arm_aapcs calling convention produced on the
function definitions in the IR output. Account for this with the
application of a little regex.
Patch by Ying Yi.
llvm-svn: 240971
|
|
|
|
|
|
|
|
|
| |
When a profile file cannot be opened, we used to display just the error
message but not the name of the profile the compiler was trying to open.
This will become useful in the next set of patches that introduce
GCC-compatible flags to specify profiles.
llvm-svn: 240715
|
|
|
|
| |
llvm-svn: 238413
|
|
|
|
|
|
| |
This generates function entry counts from instrumentation profiles.
llvm-svn: 238360
|
|
|
|
|
|
|
| |
In my rush to fix the linux bots in r237805, I accidentally committed
a change to the triple. Revert that part.
llvm-svn: 237806
|
|
|
|
| |
llvm-svn: 237805
|
|
|
|
|
|
|
|
|
|
|
|
| |
-fprofile-instr-generate does not emit counter increment intrinsics
for Dtor_Deleting and Dtor_Complete destructors with assigned
counters. This causes unnecessary [-Wprofile-instr-out-of-date]
warnings during profile-use runs even if the source has never been
modified since profile collection.
Patch by Betul Buyukkurt. Thanks!
llvm-svn: 237804
|
|
|
|
|
|
| |
Patch by Teresa Johnson.
llvm-svn: 237187
|
|
|
|
|
|
|
| |
details in http://reviews.llvm.org/D9483
goes with llvm checkin r237150
llvm-svn: 237151
|
|
|
|
|
|
|
| |
"Don't crash" tests are silly, we might as well check that the
counters are consistent here.
llvm-svn: 236361
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change is the third of 3 patches to add support for specifying
the profile output from the command line via -fprofile-instr-generate=<path>,
where the specified output path/file will be overridden by the
LLVM_PROFILE_FILE environment variable.
This patch adds the necessary support to the clang frontend, and adds a
new test.
The compiler-rt and llvm parts are r236055 and r236288, respectively.
Patch by Teresa Johnson. Thanks!
llvm-svn: 236289
|
|
|
|
|
|
|
|
|
| |
We were assigning the counter for the body of the loop to the loop
variable initialization for some reason here, but our tests completely
lacked coverage for range-for loops. This fixes that and makes the
logic generally more similar to the logic for a regular for.
llvm-svn: 236277
|
|
|
|
|
|
|
|
| |
Notably, this bot didn't like it:
http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/5117
llvm-svn: 235968
|
|
|
|
|
|
|
| |
We weren't setting regions as being unreachable after C++ throw
expressions, leading to incorrect count propagations.
llvm-svn: 235967
|
|
|
|
| |
llvm-svn: 234173
|
|
|
|
|
|
| |
in the message catalog.
llvm-svn: 234146
|
|
|
|
|
|
| |
Fixes a regression from r229434.
llvm-svn: 234141
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
thiscall"
Update the test cases to pass when lambda call operators use thiscall.
Update the lambda-to-block conversion operator to use the default free
function calling convention instead of the call operator's convention.
This reverts commit r233082 and re-instates r233023.
llvm-svn: 233835
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we instrument a program for profiling, we copy the linkage of an
instrumented function so that our datastructures merge in the same way
as the function. This avoids redundant copies for things like
linkonce, but ends up emitting names we never need to reference for
normal and internal symbols. Promoting internal and external linkage
to private for these variables reduces the size overhead of profiling
drastically.
llvm-svn: 232799
|
|
|
|
| |
llvm-svn: 232187
|
|
|
|
| |
llvm-svn: 230656
|
|
|
|
|
|
|
|
|
| |
Most of the checks in these two tests were actually testing the
behaviour of the instrprof LLVM pass. Now that we're testing that
specifically in LLVM's test suite, it's better if we only test the
frontend's behaviour here.
llvm-svn: 230387
|
|
|
|
|
|
|
|
|
| |
We were previously emitting counter increments even if we didn't have
an insertion point, which would result in a CallInst with no
parent. This leads to a crash, as in pr22166, if we try to do
GlobalDCE.
llvm-svn: 225495
|