| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 283168
|
|
|
|
|
|
|
|
| |
amount of extra change on top of multimap
Also, proper formatting..
llvm-svn: 283167
|
|
|
|
| |
llvm-svn: 283166
|
|
|
|
|
|
|
|
|
| |
Slightly improves the precision of GlobalsAA in certain situations, and
makes the behavior of optimization passes more predictable.
Differential Revision: https://reviews.llvm.org/D24104
llvm-svn: 283165
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tail duplication pass uses an assumed layout when making duplication
decisions. This is fine, but passes up duplication opportunities that
may arise when blocks are outlined. Because we want the updated CFG to
affect subsequent placement decisions, this change must occur during
placement.
In order to achieve this goal, TailDuplicationPass is split into a
utility class, TailDuplicator, and the pass itself. The pass delegates
nearly everything to the TailDuplicator object, except for looping over
the blocks in a function. This allows the same code to be used for tail
duplication in both places.
This change, in concert with outlining optional branches, allows
triangle shaped code to perform much better, esepecially when the
taken/untaken branches are correlated, as it creates a second spine when
the tests are small enough.
llvm-svn: 283164
|
|
|
|
| |
llvm-svn: 283163
|
|
|
|
|
|
| |
we use in the rest of the library.
llvm-svn: 283162
|
|
|
|
|
|
| |
checked 'unqualified void'. This was brought up by LWG#2738
llvm-svn: 283161
|
|
|
|
|
|
| |
Fixes rdar://28237486
llvm-svn: 283160
|
|
|
|
|
|
|
| |
Mostly this involves simplifying some logical constructs and using
some ranges instead of index-based iteration. NFC
llvm-svn: 283159
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now build MemorySSA in its ctor, instead of waiting until the user
calls MemorySSA::getWalker. This silently changed our unittests, since
we add BasicAA to AAResults *after* constructing MemorySSA (...but
before calling MemorySSA::getWalker).
None of them broke because we do most of our "did this get optimized
correctly?" tests in .ll files.
llvm-svn: 283158
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were a number of issues with the Args class preventing
efficient use of strings and incoporating LLVM's StringRef class.
The two biggest were:
1. Backing memory stored in a std::string, so we would frequently
have to use const_cast to get a mutable buffer for passing to
various low level APIs.
2. backing std::strings stored in a std::list, which doesn't
provide random access.
I wanted to solve these two issues so that we could provide
StringRef access to the underlying arguments, and also a way
to provide range-based access to the underlying argument array
while still providing convenient c-style access via an argv style
const char**.
The solution here is to store arguments in a single "entry" class
which contains the backing memory, a StringRef with precomputed
length, and the quote char. The backing memory is a manually
allocated const char* so that it is not invalidated when the
container is resized, and there is a separate argv array provided
for c-style access.
Differential revision: https://reviews.llvm.org/D25099
llvm-svn: 283157
|
|
|
|
|
|
|
| |
Since we count on it in a few places, the test verifies that the
test instance has an id() method that returns something non-None.
llvm-svn: 283156
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
With this commit simple coroutines can be created in plain C using coroutine builtins.
Reviewers: rnk, EricWF, rsmith
Subscribers: modocache, mgorny, mehdi_amini, beanz, cfe-commits
Differential Revision: https://reviews.llvm.org/D24373
llvm-svn: 283155
|
|
|
|
|
|
|
|
| |
WebAssembly has officially switched from being an AST to being a stack
machine. Update various bits of terminology and README.md entries
accordingly.
llvm-svn: 283154
|
|
|
|
|
|
| |
The comment is present inside the body of GetVRegDef.
llvm-svn: 283153
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
optparse is deprecated in Python 2.7, which is the minimum version of
Python required to run the LLVM test suite. Replace its usage in lit
with argparse, optparse's 2.7 replacement module.
argparse has several benefits over optparse, but this commit does not
make use of those benefits yet. Instead, it simply uses the new API,
and attempts to keep the number of changes to a minimum.
Confirmed that lit's test suite, as well as LLVM's regression test suite,
still pass with these changes.
Patch By Brian Gesiak!
Reviewers: ddunbar, echristo, beanz, delcypher
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25173
llvm-svn: 283152
|
|
|
|
|
|
|
|
|
| |
This is to avoid problems with win32 + ELF which surprisingly happens a
lot in practice: If a user just specifies -march on the commandline the
object format changes along with the architecture to ELF in many
instances while the OS stays with the default/host OS.
llvm-svn: 283151
|
|
|
|
| |
llvm-svn: 283150
|
|
|
|
|
|
|
|
| |
This avoids llc using the hosts OS/vendor as defaults and triggering
unwanted behaviour in the tests. This should deal with the buildbot
breakages on windows after r283140.
llvm-svn: 283149
|
|
|
|
| |
llvm-svn: 283148
|
|
|
|
| |
llvm-svn: 283147
|
|
|
|
|
|
|
| |
WebAssembly documentation consistently says "f32" rather than "fp32" to
describe 32-bit floating-point.
llvm-svn: 283146
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The deserialization of redeclartion can cause seg fault since getCanonicalDecl
of the redeclaration returns the lookup result on the ObjCContainerDecl,
which can be null if FindExternalVisibleDeclsByName is not done updating
the lookup results.
The fix is to return the redeclaration itself as the canonical decl. Note that
the handling for redeclaration of ObjCMethodDecl is not in line with other
redeclarables.
rdar://28488466
llvm-svn: 283145
|
|
|
|
|
|
|
|
|
|
| |
Refactor the code so that the same function can be used for all
instructions with all the same operands for up to 3 operands.
This is going to be useful for cast instructions.
NFC.
llvm-svn: 283144
|
|
|
|
|
|
|
|
| |
Each shadow only represents data flow that is restricted to its reaching
def. Propagating more than that could lead to spurious register liveness,
resulting in extra (incorrectly) block live-ins.
llvm-svn: 283143
|
|
|
|
| |
llvm-svn: 283142
|
|
|
|
|
|
| |
The msvc compiler seems to crash compiling the BugReport class.
llvm-svn: 283141
|
|
|
|
|
|
|
|
|
|
| |
Windows has no GOT relocations the way elf/darwin has. Some people use
x86_64-pc-win32-macho to build EFI firmware; Do not produce GOT
relocations for this target.
Differential Revision: https://reviews.llvm.org/D24627
llvm-svn: 283140
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Handles early allocation from dlsym by allocating memory from a local
static buffer.
Reviewers: bruening
Subscribers: kubabrecka
Differential Revision: https://reviews.llvm.org/D25193
llvm-svn: 283139
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D25205
llvm-svn: 283138
|
|
|
|
|
|
|
| |
This fixes one spot I had missed in r265762. Credit goes to Philip
Reames for spotting this one!
llvm-svn: 283137
|
|
|
|
| |
llvm-svn: 283136
|
|
|
|
|
|
|
|
|
|
| |
Summary: Also test phabricator commit processing.
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D25207
llvm-svn: 283135
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: LoopSink pass uses some common function in LICM. This patch refactor the LICM code to make it usable by LoopSink pass (https://reviews.llvm.org/D22778).
Reviewers: davidxl, danielcdh, hfinkel, chandlerc
Subscribers: hfinkel, llvm-commits
Differential Revision: https://reviews.llvm.org/D24168
llvm-svn: 283134
|
|
|
|
| |
llvm-svn: 283133
|
|
|
|
|
|
| |
NFC
llvm-svn: 283131
|
|
|
|
| |
llvm-svn: 283130
|
|
|
|
|
|
|
|
|
| |
Splitting the edge is nontrivial because of the landing pad, and we would
currently assert trying to do it.
Differential Revision: https://reviews.llvm.org/D24680
llvm-svn: 283129
|
|
|
|
|
|
|
| |
Error conflicts with the llvm::Error datatype, creating
ambiguities.
llvm-svn: 283128
|
|
|
|
|
|
|
|
| |
This reverts commit r283125.
lld needs to be updated.
llvm-svn: 283127
|
|
|
|
|
|
| |
Print target basic block for a branch.
llvm-svn: 283126
|
|
|
|
|
|
|
| |
Also assert isFinalized in getSize(). This just reduces the noise from
another patch.
llvm-svn: 283125
|
|
|
|
| |
llvm-svn: 283124
|
|
|
|
|
|
|
|
|
|
| |
It should forward to deregisterEHFramesInProcess by default, not
registerEHFramesInProcess.
No test case: I haven't come up with a good way to unit test EH frame
registration yet.
llvm-svn: 283123
|
|
|
|
| |
llvm-svn: 283122
|
|
|
|
| |
llvm-svn: 283121
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We'd attempted to allow this, but turns out we were doing a very bad
job. :)
Making this work properly would be a giant change in clang. For
example, we'd need to make CXXRecordDecl::getDestructor()
context-sensitive, because the destructor you end up with depends on
where you're calling it from.
For now (and hopefully for ever), just disallow overloading of
destructors in CUDA.
Reviewers: rsmith
Subscribers: cfe-commits, tra
Differential Revision: https://reviews.llvm.org/D24571
llvm-svn: 283120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(PR30433)
This should fix:
https://llvm.org/bugs/show_bug.cgi?id=30433
There are a couple of open questions about the codegen:
1. Should we let scalar ops be scalars and avoid vector constant loads/splats?
2. Should we have a pass to combine constants such as the inverted pair that we have here?
Differential Revision: https://reviews.llvm.org/D25165
llvm-svn: 283119
|
|
|
|
|
|
|
| |
This commit splits the file extensions before determining the test
format. This allows libc++abi to add assembly-based test cases.
llvm-svn: 283118
|