| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 263291
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change removes synthesized stats and instead has all timers print out a
total which is the aggregate statistics across threads. This is displayed as
"Total_foo" at the end of program. The stats_flags_e::synthesized flag is
removed and the printStats() function is split into two separate functions:
printTimerStats() which can display the aggregate total and printCounterStats().
Differential Revision: http://reviews.llvm.org/D17869
llvm-svn: 263290
|
|
|
|
|
|
| |
other minor fixes.
llvm-svn: 263289
|
|
|
|
| |
llvm-svn: 263288
|
|
|
|
| |
llvm-svn: 263287
|
|
|
|
| |
llvm-svn: 263286
|
|
|
|
| |
llvm-svn: 263285
|
|
|
|
| |
llvm-svn: 263283
|
|
|
|
|
|
|
| |
The CHECK line was matching stack-buffer-overflow from puts calling
strlen, which is not the bug the test is trying to catch.
llvm-svn: 263282
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This intrinsic, together with deoptimization operand bundles, allow
frontends to express transfer of control and frame-local state from
one (typically more specialized, hence faster) version of a function
into another (typically more generic, hence slower) version.
In languages with a fully integrated managed runtime this intrinsic can
be used to implement "uncommon trap" like functionality. In unmanaged
languages like C and C++, this intrinsic can be used to represent the
slow paths of specialized functions.
Note: this change does not address how `@llvm.experimental_deoptimize`
is lowered. That will be done in a later change.
Reviewers: chandlerc, rnk, atrick, reames
Subscribers: llvm-commits, kmod, mjacob, maksfb, mcrosier, JosephTremoulet
Differential Revision: http://reviews.llvm.org/D17732
llvm-svn: 263281
|
|
|
|
| |
llvm-svn: 263280
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This feature works outside of templates by forming a DeclRefExpr to a
FieldDecl instead of a MemberExpr, which requires a base object in
addition to the FieldDecl.
Previously, while building up the template AST before instantiation, we
formed a CXXDependentScopeMemberExpr, which always instantiates to a
MemberExpr. Now, in unevaluated contexts we form a
DependentScopeDeclRefExpr, which is a more flexible node that can
instantiate to either a MemberExpr or a DeclRefExpr depending on lookup
results.
Fixes PR26893.
llvm-svn: 263279
|
|
|
|
|
|
|
|
|
| |
Value profile instrumentation treats inline asm calls like they are
indirect calls. This causes problems when the 'Callee' is passed to a
ptrtoint cast -- the verifier rightly claims that this is bogus and
crashes opt.
llvm-svn: 263278
|
|
|
|
| |
llvm-svn: 263277
|
|
|
|
| |
llvm-svn: 263276
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch adds support for including a full reference graph including
call graph edges and other GV references in the summary.
The reference graph edges can be used to make importing decisions
without materializing any source modules, can be used in the plugin
to make file staging decisions for distributed build systems, and is
expected to have other uses.
The call graph edges are recorded in each function summary in the
bitcode via a list of <CalleeValueIds, StaticCount> tuples when no PGO
data exists, or <CalleeValueId, StaticCount, ProfileCount> pairs when
there is PGO, where the ValueId can be mapped to the function GUID via
the ValueSymbolTable. In the function index in memory, the call graph
edges reference the target via the CalleeGUID instead of the
CalleeValueId.
The reference graph edges are recorded in each summary record with a
list of referenced value IDs, which can be mapped to value GUID via the
ValueSymbolTable.
Addtionally, a new summary record type is added to record references
from global variable initializers. A number of bitcode records and data
structures have been renamed to reflect the newly expanded scope of the
summary beyond functions. More cleanup will follow.
Reviewers: joker.eph, davidxl
Subscribers: joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D17212
llvm-svn: 263275
|
|
|
|
|
|
| |
<rdar://problem/25105824>
llvm-svn: 263274
|
|
|
|
|
|
|
| |
the member and not the parameter
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263273
|
|
|
|
|
|
| |
This reverts commit r263252 because the change contained unrelated changes.
llvm-svn: 263272
|
|
|
|
| |
llvm-svn: 263271
|
|
|
|
|
|
| |
Visualize pointer unions by their actual type rather than as void *.
llvm-svn: 263270
|
|
|
|
|
|
| |
With the new EH representation this is no longer necessary.
llvm-svn: 263269
|
|
|
|
|
|
| |
I'll follow up with Matt to confirm this is the correct fix.
llvm-svn: 263268
|
|
|
|
|
|
|
| |
Silly typo.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263267
|
|
|
|
| |
llvm-svn: 263266
|
|
|
|
| |
llvm-svn: 263265
|
|
|
|
| |
llvm-svn: 263264
|
|
|
|
|
|
|
| |
A value that we want to keep in a virtual register cannot be null.
Reflect that in the API.
llvm-svn: 263263
|
|
|
|
| |
llvm-svn: 263262
|
|
|
|
| |
llvm-svn: 263261
|
|
|
|
|
|
| |
A null basic block is invalid, so just pass a reference.
llvm-svn: 263260
|
|
|
|
| |
llvm-svn: 263259
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18023
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263258
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18024
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263257
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are replacing this by a runtime check.
More cleanup will follow on the IRBuilder itself, but I submitted
this patch separately as SROA has a fancy "prefixInserter" class
that needs extra-love.
Reviewers: chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18022
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263256
|
|
|
|
|
|
|
|
|
| |
The truncation was causing the sorting algorithm to behave oddly when comparing
positive and negative offsets. Fortunately, this doesn't currently happen in
practice and was exposed by a WIP. Thus, I can't test this change now, but the
follow on patch will.
llvm-svn: 263255
|
|
|
|
| |
llvm-svn: 263253
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That is directly opposite to http://reviews.llvm.org/D18045,
which was reverted.
This patch changes all messages to start from lowercase letter if
they were not before.
That is done to be consistent with clang.
Differential revision: http://reviews.llvm.org/D18085
llvm-svn: 263252
|
|
|
|
| |
llvm-svn: 263251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
member type.
Because of how this type is used by the ValueTable, it cannot actually
have hidden visibility. GCC actually nicely warns about this but Clang
just silently ... I don't even know. =/ We should do a better job either
way though.
This should resolve a bunch of the GCC warnings about visibility that
the port of GVN triggered and make the visibility story a bit more
correct.
llvm-svn: 263250
|
|
|
|
| |
llvm-svn: 263249
|
|
|
|
|
|
|
| |
In lld we usually avoid hash lookups. In addition to that, IR names are
not fully mangled, so it is best to avoid using them whenever possible.
llvm-svn: 263248
|
|
|
|
|
|
|
|
|
|
|
| |
Added new string conversion wrappers that convert between `std::string` (of UTF-8 bytes) and `std::wstring`, which is particularly useful for Win32 interop. Also fixed a missing string conversion for `getenv` on Win32, using these new wrappers.
The motivation behind this is to provide the support functions required for LLDB to work properly on Windows with non-ASCII data; however, the functions are not LLDB specific.
Patch by cameron314
Differential Revision: http://reviews.llvm.org/D17549
llvm-svn: 263247
|
|
|
|
| |
llvm-svn: 263246
|
|
|
|
|
|
|
|
|
|
|
| |
Add command-line tests for ARM Cortex-R8 checking that the driver calls
clang -cc1 with the correct little-endian/big-endian, and ARM/Thumb triple.
Patch by Pablo Barrio <pablo.barrio@arm.com>
Differential Revision: http://reviews.llvm.org/D18052
llvm-svn: 263245
|
|
|
|
|
|
| |
We should just copy the symbol names with -r.
llvm-svn: 263244
|
|
|
|
|
|
| |
We only need one run of llmv-readobj.
llvm-svn: 263243
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17966
llvm-svn: 263242
|
|
|
|
| |
llvm-svn: 263241
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was discussed to make all messages be
lowercase to be consistent with clang.
(also reverts the r263128 which fixed
build bot fail after r263125)
Original commit message:
[ELF] - Consistent spelling for error/warning messages
Previously error and warnings were not consistent in lld.
Some of them started from lowercase letter, others from
uppercase. Also there was one or two which had a dot at the end.
This patch changes all messages to start from uppercase letter if
they were not before.
Differential revision: http://reviews.llvm.org/D18045
llvm-svn: 263240
|