Nemanja Ivanovic [Tue, 4 Oct 2016 06:59:23 +0000 (06:59 +0000)]
[Power9] Part-word VSX integer scalar loads/stores and sign extend instructions
This patch corresponds to review:
https://reviews.llvm.org/D23155
This patch removes the VSHRC register class (based on D20310) and adds
exploitation of the Power9 sub-word integer loads into VSX registers as well
as vector sign extensions.
The new instructions are useful for a few purposes:
Int to Fp conversions of 1 or 2-byte values loaded from memory
Building vectors of 1 or 2-byte integers with values loaded from memory
Storing individual 1 or 2-byte elements from integer vectors
This patch implements all of those uses.
llvm-svn: 283190
Michal Gorny [Tue, 4 Oct 2016 06:09:18 +0000 (06:09 +0000)]
[cmake] Reintroduce (ldconfig-compatible) SOVERSIONs on shared libraries
Reintroduce versioning of shared libraries via SOVERSION, addressing
the issues with the previous design, since Gentoo is relying
on shared-split install of LLVM. The SOVERSIONs were originally
introduced in r229720 for all libraries, and removed in r252093 in favor
of custom SONAME. As far as I understand, the major concern with the old
versioning was that the used versions were incompatible with ldconfig.
Having considered that, this commit introduce SOVERSIONS with the
following considerations:
1. SOVERSIONs are formed of major & minor version concatenated -- i.e.
for 4.0 its .so.40. This matches the common practice where the first
version number indicates ABI breakage, and therefore fixes the issues
with ldconfig. Additionally, VERSION with the remaining verion
components appended is used, however this is not strictly necessary.
2. The versioning is only applied to libraries with no explicit SONAME
specified -- i.e. it won't apply to libLLVM but only to the split
libraries. It will also apply to libraries installed by the subprojects.
3. The versioning is only done on *nix systems, Darwin excluded. This
matches the current use of SONAME.
Differential Revision: https://reviews.llvm.org/D24757
llvm-svn: 283189
Michal Gorny [Tue, 4 Oct 2016 06:09:14 +0000 (06:09 +0000)]
[cmake] Use separate doctrees to prevent races between Sphinx instances
Use separate doctrees between different Sphinx builders in order to
prevent race condition issues due to multiple Sphinx instances accessing
the same doctree cache in parallel.
Bug: https://llvm.org/bugs/show_bug.cgi?id=23781
Differential Revision: https://reviews.llvm.org/D23755
llvm-svn: 283188
Kostya Serebryany [Tue, 4 Oct 2016 06:08:46 +0000 (06:08 +0000)]
[libFuzzer] remove dfsan support and some related stale code. This is not being used and as is is pretty weak anyway
llvm-svn: 283187
Jason Molenda [Tue, 4 Oct 2016 05:10:06 +0000 (05:10 +0000)]
Finish adding the individual instruction tests to the x86 unwinder
unittests. If I have time, I'd like to see if I can write some
tests of the eh_frame augmentation which is a wholly separate code
path (it seems like maybe it should be rolled into the main instruction
scanning codepath, to be honest, and operate on the generated
UnwindPlan instead of bothering with raw instructions at all).
Outside the eh_frame augmentation, I'm comfortable that this unwind
generator is being tested well now.
llvm-svn: 283186
Kostya Serebryany [Tue, 4 Oct 2016 04:18:30 +0000 (04:18 +0000)]
[sanitizer-coverage] remove stale code, second attempt after failed r282994
llvm-svn: 283185
Craig Topper [Tue, 4 Oct 2016 03:11:44 +0000 (03:11 +0000)]
[X86] Add MOV8rm_NOREX to switch in isReallyTriviallyReMaterializable to match MOV8rm.
llvm-svn: 283184
Vitaly Buka [Tue, 4 Oct 2016 02:59:03 +0000 (02:59 +0000)]
Revert "[sanitizer-coverage] remove stale code" at it breaks Windows bot.
This reverts commit r282994.
llvm-svn: 283183
Vitaly Buka [Tue, 4 Oct 2016 02:40:35 +0000 (02:40 +0000)]
Revert "[analyzer] Improve CloneChecker diagnostics" as its depends on reverted r283092
This reverts commit r283094.
llvm-svn: 283182
Vitaly Buka [Tue, 4 Oct 2016 02:36:58 +0000 (02:36 +0000)]
Revert "[analyzer] Add extra notes to ObjCDeallocChecker" as its depends on reverted r283092
This reverts commit r283093.
llvm-svn: 283181
Vitaly Buka [Tue, 4 Oct 2016 02:19:17 +0000 (02:19 +0000)]
Revert "[analyzer] Extend bug reports with extra notes" to fix Windows bot.
This reverts commit r283092.
llvm-svn: 283180
Vitaly Buka [Tue, 4 Oct 2016 02:19:12 +0000 (02:19 +0000)]
Revert "[analyzer] A blind attempt to fix a buildbot" as it does not help.
This reverts commit r283141.
llvm-svn: 283179
Kostya Serebryany [Tue, 4 Oct 2016 01:51:44 +0000 (01:51 +0000)]
[libFuzzer] change the probabilities so that we choose only the inputs that are known to be minimal inputs for at least one coverage feature (works only with -shrink=1 for now)
llvm-svn: 283178
Matt Arsenault [Tue, 4 Oct 2016 01:41:05 +0000 (01:41 +0000)]
AMDGPU: Refactor indirect vector lowering
Allow inserting multiple instructions in the
expanded loop.
llvm-svn: 283177
Zachary Turner [Tue, 4 Oct 2016 01:34:39 +0000 (01:34 +0000)]
Fix TestNestedAliases.py
I missed an if/else branch when doing the conversion.
llvm-svn: 283176
Matt Arsenault [Tue, 4 Oct 2016 01:14:56 +0000 (01:14 +0000)]
AMDGPU: Factor SGPR spilling into separate functions
llvm-svn: 283175
Rui Ueyama [Tue, 4 Oct 2016 01:03:03 +0000 (01:03 +0000)]
Remove unused parameter.
I do not fully understand how to use these classes yet, but
seems like these arguments are not used, since without them
all tests still pass. In order to simplify the situation,
I'll remove them now.
llvm-svn: 283174
Rui Ueyama [Tue, 4 Oct 2016 00:46:36 +0000 (00:46 +0000)]
Early return. NFC.
llvm-svn: 283173
Kyle Butt [Tue, 4 Oct 2016 00:38:23 +0000 (00:38 +0000)]
Revert "Codegen: Tail-duplicate during placement."
This reverts commit
ff234efbe23528e4f4c80c78057b920a51f434b2.
Causing crashes on aarch64 build.
llvm-svn: 283172
Pavel Labath [Tue, 4 Oct 2016 00:32:20 +0000 (00:32 +0000)]
Fix test when using remote debugging.
Summary:
Use os.getcwd() instead of get_process_working_directory() as prefix for
souce file.
Reviewers: labath
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D25217
llvm-svn: 283171
Gor Nishanov [Tue, 4 Oct 2016 00:31:16 +0000 (00:31 +0000)]
[coroutines] Switch to using std::experimental namespace per P0057R5
Summary:
Look for coroutine_traits and friends in std::experimental namespace.
Patch (mostly) by EricWF.
Reviewers: cfe-commits, EricWF, rsmith
Subscribers: majnemer, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25068
llvm-svn: 283170
Brian Gesiak [Tue, 4 Oct 2016 00:15:37 +0000 (00:15 +0000)]
[lit] Remove workaround for Python 2.5
Summary:
The minimum version of Python necessary to run the LLVM test suite is
2.7. Code to work around Python 2.5 and lower isn't necessary.
Reviewers: ddunbar, echristo, delcypher, beanz
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25209
llvm-svn: 283169
Zachary Turner [Tue, 4 Oct 2016 00:09:44 +0000 (00:09 +0000)]
Try to fix failing tests when running remote test suite.
llvm-svn: 283168
Enrico Granata [Tue, 4 Oct 2016 00:07:42 +0000 (00:07 +0000)]
Fix the data formatter for std::multiset in libc++ - this is a trivial amount of extra change on top of multimap
Also, proper formatting..
llvm-svn: 283167
Vitaly Buka [Tue, 4 Oct 2016 00:06:23 +0000 (00:06 +0000)]
Support configurable path to LLVM src
llvm-svn: 283166
Eli Friedman [Tue, 4 Oct 2016 00:03:55 +0000 (00:03 +0000)]
Make GlobalsAA ignore dead constant expressions.
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
Kyle Butt [Tue, 4 Oct 2016 00:00:09 +0000 (00:00 +0000)]
Codegen: Tail-duplicate during placement.
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
Marshall Clow [Mon, 3 Oct 2016 23:42:31 +0000 (23:42 +0000)]
Mark a couple more Issaquah issues as done: 2578 and 2738
llvm-svn: 283163
Marshall Clow [Mon, 3 Oct 2016 23:40:48 +0000 (23:40 +0000)]
Change a couple of 'template <typename's to 'template <class' which is what we use in the rest of the library.
llvm-svn: 283162
Marshall Clow [Mon, 3 Oct 2016 23:39:52 +0000 (23:39 +0000)]
Add tests to make sure that is_constructible<cv-void> is false. We already checked 'unqualified void'. This was brought up by LWG#2738
llvm-svn: 283161
Enrico Granata [Mon, 3 Oct 2016 23:33:00 +0000 (23:33 +0000)]
Changes to the std::multimap formatter to make it work against trunk libc++
Fixes rdar://
28237486
llvm-svn: 283160
Zachary Turner [Mon, 3 Oct 2016 23:20:36 +0000 (23:20 +0000)]
Modernize some code related to Args usage / implementation.
Mostly this involves simplifying some logical constructs and using
some ranges instead of index-based iteration. NFC
llvm-svn: 283159
George Burgess IV [Mon, 3 Oct 2016 23:12:35 +0000 (23:12 +0000)]
[MSSA] Allow unittests to use BasicAA when building.
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
Zachary Turner [Mon, 3 Oct 2016 22:51:09 +0000 (22:51 +0000)]
Refactor the Args class.
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
Todd Fiala [Mon, 3 Oct 2016 22:49:13 +0000 (22:49 +0000)]
add a simple test case to validate test id()
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
Gor Nishanov [Mon, 3 Oct 2016 22:44:48 +0000 (22:44 +0000)]
[coroutines] Adding builtins for coroutine intrinsics and backendutil support.
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
Dan Gohman [Mon, 3 Oct 2016 22:43:53 +0000 (22:43 +0000)]
[WebAssembly] Update to more stack-machine-oriented terminology.
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
Dan Gohman [Mon, 3 Oct 2016 22:32:21 +0000 (22:32 +0000)]
[WebAssemby] Clean up an obsolete comment.
The comment is present inside the body of GetVRegDef.
llvm-svn: 283153
Chris Bieneman [Mon, 3 Oct 2016 22:12:42 +0000 (22:12 +0000)]
[lit] Use argparse instead of optparse
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
Matthias Braun [Mon, 3 Oct 2016 22:12:37 +0000 (22:12 +0000)]
TargetMachine: Make the win32-macho workaround more specific.
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
Dan Gohman [Mon, 3 Oct 2016 22:06:28 +0000 (22:06 +0000)]
[WebAssembly] Delete an unused function. NFC.
llvm-svn: 283150
Matthias Braun [Mon, 3 Oct 2016 21:58:20 +0000 (21:58 +0000)]
Set some tests to an unknown vendor and OS
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
Mehdi Amini [Mon, 3 Oct 2016 21:40:50 +0000 (21:40 +0000)]
[LTO] Fix test to not depend on the exact address of symbols, just their linkage
llvm-svn: 283148
Dan Gohman [Mon, 3 Oct 2016 21:33:09 +0000 (21:33 +0000)]
[WebAssembly] Fix indentation. NFC.
llvm-svn: 283147
Dan Gohman [Mon, 3 Oct 2016 21:31:31 +0000 (21:31 +0000)]
[WebAssembly] Rename OPERAND_FP32IMM to OPERAND_F32IMM.
WebAssembly documentation consistently says "f32" rather than "fp32" to
describe 32-bit floating-point.
llvm-svn: 283146
Manman Ren [Mon, 3 Oct 2016 21:26:46 +0000 (21:26 +0000)]
ObjectiveC: fix a seg fault when deserialing redeclaration of ObjCMethodDecl.
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
Quentin Colombet [Mon, 3 Oct 2016 20:20:13 +0000 (20:20 +0000)]
[AArch64][RegisterBankInfo] Add getSameKindofOperandsMapping.
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
Krzysztof Parzyszek [Mon, 3 Oct 2016 20:17:20 +0000 (20:17 +0000)]
[RDF] Fix liveness propagation through shadows
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
Matthias Braun [Mon, 3 Oct 2016 20:17:02 +0000 (20:17 +0000)]
AArch64Subtarget: Remove unused CPUString field
llvm-svn: 283142
Artem Dergachev [Mon, 3 Oct 2016 20:12:12 +0000 (20:12 +0000)]
[analyzer] A blind attempt to fix a buildbot after r283092.
The msvc compiler seems to crash compiling the BugReport class.
llvm-svn: 283141
Matthias Braun [Mon, 3 Oct 2016 20:11:24 +0000 (20:11 +0000)]
X86: Do not produce GOT relocations on windows
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
Qin Zhao [Mon, 3 Oct 2016 20:03:10 +0000 (20:03 +0000)]
[esan] Fix ESan test failure on Debian Sid bot
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
Zachary Turner [Mon, 3 Oct 2016 19:56:50 +0000 (19:56 +0000)]
Add unit tests for StringSwitch.
Differential revision: https://reviews.llvm.org/D25205
llvm-svn: 283138
Sanjoy Das [Mon, 3 Oct 2016 19:35:30 +0000 (19:35 +0000)]
[PruneEH] Be correct in the face IPO
This fixes one spot I had missed in r265762. Credit goes to Philip
Reames for spotting this one!
llvm-svn: 283137
Mike Aizatsky [Mon, 3 Oct 2016 19:22:05 +0000 (19:22 +0000)]
[sancov] using env for better portability
llvm-svn: 283136
Eric Liu [Mon, 3 Oct 2016 19:14:30 +0000 (19:14 +0000)]
Added more comments to tooling::Replacements.
Summary: Also test phabricator commit processing.
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D25207
llvm-svn: 283135
Dehao Chen [Mon, 3 Oct 2016 18:52:08 +0000 (18:52 +0000)]
Refactor LICM pass in preparation for LoopSink pass.
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
Konstantin Zhuravlyov [Mon, 3 Oct 2016 18:47:26 +0000 (18:47 +0000)]
[AMDGPU] Pass optimization level to SelectionDAGISel
llvm-svn: 283133
Reid Kleckner [Mon, 3 Oct 2016 18:34:23 +0000 (18:34 +0000)]
Factor out a diagnostic kind enum for use in two %select expressions
NFC
llvm-svn: 283131
Konstantin Zhuravlyov [Mon, 3 Oct 2016 18:29:01 +0000 (18:29 +0000)]
[AMDGPU] Sign extend AShr when promoting (instead of zero extending)
llvm-svn: 283130
Hans Wennborg [Mon, 3 Oct 2016 18:18:04 +0000 (18:18 +0000)]
Jump threading: avoid trying to split edge into landingpad block (PR27840)
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
Zachary Turner [Mon, 3 Oct 2016 18:17:18 +0000 (18:17 +0000)]
Rename Error -> ReportError.
Error conflicts with the llvm::Error datatype, creating
ambiguities.
llvm-svn: 283128
Rafael Espindola [Mon, 3 Oct 2016 18:01:10 +0000 (18:01 +0000)]
Revert "Use getSize instead of data().size(). NFC."
This reverts commit r283125.
lld needs to be updated.
llvm-svn: 283127
Krzysztof Parzyszek [Mon, 3 Oct 2016 17:54:33 +0000 (17:54 +0000)]
[RDF] Further improve readability of the graph
Print target basic block for a branch.
llvm-svn: 283126
Rafael Espindola [Mon, 3 Oct 2016 17:49:19 +0000 (17:49 +0000)]
Use getSize instead of data().size(). NFC.
Also assert isFinalized in getSize(). This just reduces the noise from
another patch.
llvm-svn: 283125
Marshall Clow [Mon, 3 Oct 2016 17:35:08 +0000 (17:35 +0000)]
Mark a couple issues as done (2742 and 2760)
llvm-svn: 283124
Lang Hames [Mon, 3 Oct 2016 17:34:56 +0000 (17:34 +0000)]
[RTDyld] Fix a bug in RTDyldMemoryManager::deregisterEHFrames.
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
Krzysztof Parzyszek [Mon, 3 Oct 2016 17:14:48 +0000 (17:14 +0000)]
[RDF] Replace RegisterAliasInfo with target-independent code using lane masks
llvm-svn: 283122
Justin Lebar [Mon, 3 Oct 2016 16:48:27 +0000 (16:48 +0000)]
[CUDA] Clean up some comments in Sema::IsOverload. NFC
llvm-svn: 283121
Justin Lebar [Mon, 3 Oct 2016 16:48:23 +0000 (16:48 +0000)]
[CUDA] Disallow overloading destructors.
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
Sanjay Patel [Mon, 3 Oct 2016 16:38:27 +0000 (16:38 +0000)]
[x86, SSE/AVX] allow 128/256-bit lowering for copysign vector intrinsics (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
Logan Chien [Mon, 3 Oct 2016 16:00:22 +0000 (16:00 +0000)]
[lit] Allow more file extensions for test cases.
This commit splits the file extensions before determining the test
format. This allows libc++abi to add assembly-based test cases.
llvm-svn: 283118
Rafael Espindola [Mon, 3 Oct 2016 15:51:42 +0000 (15:51 +0000)]
Don't drop the llvm. prefix when renaming.
If the llvm. prefix is dropped other parts of llvm don't see this as
an intrinsic. This means that the number of regular symbols depends
on the context the module is loaded into, which causes LTO to abort.
Fixes PR30509.
llvm-svn: 283117
Vedant Kumar [Mon, 3 Oct 2016 15:29:22 +0000 (15:29 +0000)]
[ARC] Ignore qualifiers in copy-restore expressions
When ARC is enabled, an ObjCIndirectCopyRestoreExpr models the passing
of a function argument s.t:
* The argument is copied into a temporary,
* The temporary is passed into the function, and
* After the function call completes, the temporary is move-assigned
back to the original location of the argument.
The argument type and the parameter type must agree "except possibly in
qualification". This commit weakens an assertion in EmitCallArg() to
actually reflect that.
llvm-svn: 283116
Sanjay Patel [Mon, 3 Oct 2016 15:18:36 +0000 (15:18 +0000)]
fix formatting; NFC
llvm-svn: 283115
Yaxun Liu [Mon, 3 Oct 2016 14:41:50 +0000 (14:41 +0000)]
[OpenCL] Fix bug in __builtin_astype causing invalid LLVM cast instructions
__builtin_astype is used to cast OpenCL opaque types to other types, as such, it needs to be able to handle casting from and to pointer types correctly.
Current it cannot handle 1) casting between pointers of different addr spaces 2) casting between pointer type and non-pointer types.
This patch fixes that.
Differential Revision: https://reviews.llvm.org/D25123
llvm-svn: 283114
Marshall Clow [Mon, 3 Oct 2016 14:24:21 +0000 (14:24 +0000)]
Change titie of page from Oulu to Issaquah
llvm-svn: 283113
Marshall Clow [Mon, 3 Oct 2016 14:23:04 +0000 (14:23 +0000)]
List tentatively ready issues for Issaquah
llvm-svn: 283112
Nirav Dave [Mon, 3 Oct 2016 13:48:27 +0000 (13:48 +0000)]
Prevent out of order HashDirective lexing in AsmLexer.
Retrying after buildbot reset.
To lex hash directives we peek ahead to find component tokens, create a
unified token, and unlex the peeked tokens so the parser does not need
to parse the tokens then. Make sure we do not to lex another hash
directive during peek operation.
This fixes PR28921.
Reviewers: rnk, loladiro
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D24839
llvm-svn: 283111
Sjoerd Meijer [Mon, 3 Oct 2016 13:13:50 +0000 (13:13 +0000)]
This adds a separate file for the fp denormal regression tests. NFC.
I forgot to svn add the new file in my previous commit.
llvm-svn: 283110
Sjoerd Meijer [Mon, 3 Oct 2016 13:12:20 +0000 (13:12 +0000)]
This adds a separate file for the fp denormal regression tests. NFC.
Differential Revision: https://reviews.llvm.org/D24907
llvm-svn: 283109
Matt Arsenault [Mon, 3 Oct 2016 13:06:58 +0000 (13:06 +0000)]
AMDGPU: Fix typo
llvm-svn: 283108
Matt Arsenault [Mon, 3 Oct 2016 12:58:59 +0000 (12:58 +0000)]
AMDGPU: Fix missing -verify-machineinstrs in test
llvm-svn: 283107
Simon Pilgrim [Mon, 3 Oct 2016 12:37:08 +0000 (12:37 +0000)]
Wdocumentation fix
llvm-svn: 283106
Alex Lorenz [Mon, 3 Oct 2016 12:22:17 +0000 (12:22 +0000)]
Fix PR 28885: Fix AST Printer output for the inherited constructor using
declarations.
This commit ensures that the correct record type is printed out for the
using declarations that represent C++ inherited constructors.
It fixes a regression introduced in r274049 which changed the name that's
stored in the using declarations that correspond to inherited constructors.
Differential Revision: https://reviews.llvm.org/D25131
llvm-svn: 283105
Alex Lorenz [Mon, 3 Oct 2016 12:17:56 +0000 (12:17 +0000)]
Revert r283102 (Typo in the phabricator link)
llvm-svn: 283104
Simon Pilgrim [Mon, 3 Oct 2016 12:16:39 +0000 (12:16 +0000)]
[X86][SSE] Add PR30371 (shuffle constant folding) test case
llvm-svn: 283103
Alex Lorenz [Mon, 3 Oct 2016 12:12:03 +0000 (12:12 +0000)]
Fix PR 28885: Fix AST Printer output for the inherited constructor using
declarations.
This commit ensures that the correct record type is printed out for the
using declarations that represent C++ inherited constructors.
It fixes a regression introduced in r274049 which changed the name that's
stored in the using declarations that correspond to inherited constructors.
Differential Revision: https://reviews.llvm.org/D25131
llvm-svn: 283102
George Rimar [Mon, 3 Oct 2016 11:13:55 +0000 (11:13 +0000)]
[ELF] - Apply clang-format. NFC.
llvm-svn: 283101
Logan Chien [Mon, 3 Oct 2016 11:08:17 +0000 (11:08 +0000)]
[CMake] Fix libc++abi standalone cmake build.
The cmake files install directory has been changed to
${prefix}/lib/cmake/llvm since r259821. Searching cmake modules in
${prefix}/share/llvm/cmake will result in fatal errors.
This commit fixes the out-of-tree build by changing the CMake module
search path to: "$(llvm-config --obj-root)/lib/cmake/llvm"
llvm-svn: 283100
Volkan Keles [Mon, 3 Oct 2016 10:31:34 +0000 (10:31 +0000)]
Add new target hooks for LoadStoreVectorizer
Summary: Added 6 new target hooks for the vectorizer in order to filter types, handle size constraints and decide how to split chains.
Reviewers: tstellarAMD, arsenm
Subscribers: arsenm, mzolotukhin, wdng, llvm-commits, nhaehnle
Differential Revision: https://reviews.llvm.org/D24727
llvm-svn: 283099
Sjoerd Meijer [Mon, 3 Oct 2016 10:12:32 +0000 (10:12 +0000)]
[ARM] Code size optimisation to lower udiv+urem to udiv+mls instead of a
library call to __aeabi_uidivmod. This is an improved implementation of
r280808, see also D24133, that got reverted because isel was stuck in a loop.
That was caused by the optimisation incorrectly triggering on i64 ints, which
shouldn't happen because there is no 64bit hwdiv support; that put isel's type
legalization and this optimisation in a loop. A native ARM compiler and testing
now shows that this is fixed.
Patch mostly by Pablo Barrio.
Differential Revision: https://reviews.llvm.org/D25077
llvm-svn: 283098
George Rimar [Mon, 3 Oct 2016 10:04:38 +0000 (10:04 +0000)]
[ELF] - Do not crash on invalid section alignment.
Case was revealed by id_000010,sig_08,src_000000,op_havoc,rep_4 from PR30540.
Out implementation uses uint32 for storing section alignment value,
what seems reasonable, though if value exceeds 32 bits bounds we have
truncation and final value of 0.
Patch fixes the issue.
Differential revision: https://reviews.llvm.org/D25082
llvm-svn: 283097
Daniel Marjamaki [Mon, 3 Oct 2016 09:45:35 +0000 (09:45 +0000)]
[StaticAnalyser] Add test case to ensure that unreachable code is found.
https://reviews.llvm.org/D24905
llvm-svn: 283096
Daniel Marjamaki [Mon, 3 Oct 2016 08:28:51 +0000 (08:28 +0000)]
[StaticAnalyzer] Fix UnreachableCode false positives.
When there is 'do { } while (0);' in the code the ExplodedGraph and UnoptimizedCFG did not match.
Differential Revision: https://reviews.llvm.org/D24759
llvm-svn: 283095
Artem Dergachev [Mon, 3 Oct 2016 08:11:50 +0000 (08:11 +0000)]
[analyzer] Improve CloneChecker diagnostics
Highlight code clones referenced by the warning message with the help of
the extra notes feature recently introduced in r283092.
Change warning text to more clang-ish. Remove suggestions from the copy-paste
error checker diagnostics, because currently our suggestions are strictly 50%
wrong (we do not know which of the two code clones contains the error), and
for that reason we should not sound as if we're actually suggesting this.
Hopefully a better solution would bring them back.
Make sure the suspicious clone pair structure always mentions
the correct variable for the second clone.
Differential Revision: https://reviews.llvm.org/D24916
llvm-svn: 283094
Artem Dergachev [Mon, 3 Oct 2016 08:03:51 +0000 (08:03 +0000)]
[analyzer] Add extra notes to ObjCDeallocChecker
The report is now highlighting instance variables and properties
referenced by the warning message with the help of the
extra notes feature recently introduced in r283092.
Differential Revision: https://reviews.llvm.org/D24915
llvm-svn: 283093
Artem Dergachev [Mon, 3 Oct 2016 07:58:26 +0000 (07:58 +0000)]
[analyzer] Extend bug reports with extra notes
These diagnostics are separate from the path-sensitive engine's path notes,
and can be added manually on top of path-sensitive or path-insensitive reports.
The new note diagnostics would appear as note:-diagnostic on console and
as blue bubbles in scan-build. In plist files they currently do not appear,
because format needs to be discussed with plist file users.
The analyzer option "-analyzer-config notes-as-events=true" would convert
notes to normal path notes, and put them at the beginning of the path.
This is a temporary hack to show the new notes in plist files.
A few checkers would be updated in subsequent commits,
including tests for this new feature.
Differential Revision: https://reviews.llvm.org/D24278
llvm-svn: 283092
Alexey Bataev [Mon, 3 Oct 2016 07:47:01 +0000 (07:47 +0000)]
[CodeGen] Adding a test showing the current state of poor code gen of
search loop, by Andrey Tischenko
PR27136 shows failure to hoist constant out of loop. This test is used
as start point to fix the failure: it shows the current state of codegen
and discovers what should be fixed
Differential Revision: https://reviews.llvm.org/D25097
llvm-svn: 283091
Chris Bieneman [Mon, 3 Oct 2016 04:48:22 +0000 (04:48 +0000)]
[lit] Throw in unimplemented method (NFC)
Summary:
lit's `OneCommandFileTest` class implements an abstract method that
raises if called. However, it raises by referencing an undefined
symbol. Instead, raise explicitly by throwing a `NotImplementedError`.
This is clearer, and appeases Python linters.
Patch By Brian Gesiak!
Reviewers: ddunbar, echristo, beanz
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25170
llvm-svn: 283090