| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 262084
|
| |
|
|
| |
llvm-svn: 262083
|
| |
|
|
|
|
| |
source/Plugins/ABI; other minor fixes.
llvm-svn: 262082
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: aidan.dodds, mamai
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D17658
llvm-svn: 262081
|
| |
|
|
|
|
|
|
| |
This was split off from http://reviews.llvm.org/D17184.
Reviewed by: Sanjoy
llvm-svn: 262080
|
| |
|
|
|
|
|
|
| |
Currently we always expand ISD::FNEG. For v4f32 and v2f64 vector types VSX has
native support for this opcode
Phabricator: http://reviews.llvm.org/D17647
llvm-svn: 262079
|
| |
|
|
| |
llvm-svn: 262078
|
| |
|
|
|
|
|
|
|
| |
Replicate everything for integers...because x86.
Continuation of:
http://reviews.llvm.org/rL262064
llvm-svn: 262077
|
| |
|
|
| |
llvm-svn: 262076
|
| |
|
|
|
|
| |
-fsanitize-coverage=trace-pc. This does not scale well yet, but already cracks FullCoverageSetTest in seconds
llvm-svn: 262073
|
| |
|
|
|
|
|
|
|
| |
This makes BitcodeFile a bit closer to ObjectFile.
If anyone prefers I can go the other way and delete getSymbols from
ObjectFile.
llvm-svn: 262072
|
| |
|
|
|
|
| |
This patch causes the 3-stage build pipeline to only build a host compiler in the first stage, and to build all targets for subsequent stages. The host target is determined via the Native target specifier added in r262070.
llvm-svn: 262071
|
| |
|
|
|
|
| |
This allows a user to specify "Native" as a target when configuring LLVM. Native will resolve to the LLVM_NATIVE_ARCH, which is the target that supports code generation for the host.
llvm-svn: 262070
|
| |
|
|
| |
llvm-svn: 262069
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change implements the following vsx instructions:
Quad/Double-Precision Compare:
xscmpoqp xscmpuqp
xscmpexpdp xscmpexpqp
xscmpeqdp xscmpgedp xscmpgtdp xscmpnedp
xvcmpnedp(.) xvcmpnesp(.)
Quad-Precision Floating-Point Conversion
xscvqpdp(o) xscvdpqp
xscvqpsdz xscvqpswz xscvqpudz xscvqpuwz xscvsdqp xscvudqp
xscvdphp xscvhpdp xvcvhpsp xvcvsphp
xsrqpi xsrqpix xsrqpxp
28 instructions
Phabricator: http://reviews.llvm.org/D16709
llvm-svn: 262068
|
| |
|
|
|
|
|
|
|
|
| |
This is needed to connect dependencies between the LLVMgold plugin and the clang stage-2 builds due to limitations in ExternalProject_Add.
Patch by Mike Edwards
Differential Revision: http://reviews.llvm.org/D17655
llvm-svn: 262067
|
| |
|
|
|
|
| |
This makes it so lto.h is installed when you run the install-LTO target.
llvm-svn: 262066
|
| |
|
|
|
|
|
|
|
|
|
|
| |
builds
This is needed to build the gold plugin in multi-stage builds.
Patch by Mike Edwards
Differential Revision: http://reviews.llvm.org/D17655
llvm-svn: 262065
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The intended effect of this patch in conjunction with:
http://reviews.llvm.org/rL259392
http://reviews.llvm.org/rL260145
is that customers using the AVX intrinsics in C will benefit from combines when
the store mask is constant:
void mstore_zero_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(0), v);
}
void mstore_fake_ones_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(1), v);
}
void mstore_ones_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set1_epi32(0x80000000), v);
}
void mstore_one_set_elt_mask(float *f, __m128 v) {
_mm_maskstore_ps(f, _mm_set_epi32(0x80000000, 0, 0, 0), v);
}
...so none of the above will actually generate a masked store for optimized code.
Differential Revision: http://reviews.llvm.org/D17485
llvm-svn: 262064
|
| |
|
|
| |
llvm-svn: 262063
|
| |
|
|
| |
llvm-svn: 262062
|
| |
|
|
| |
llvm-svn: 262061
|
| |
|
|
| |
llvm-svn: 262060
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
own method. NFC
Summary: This is extracted from D17555
Reviewers: davidxl, reames, sanjoy, MatzeB, pete
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D17580
llvm-svn: 262058
|
| |
|
|
|
|
| |
Fixes PR26733
llvm-svn: 262057
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Relands r260194 with a fix. If we have a template that transitions from
an extern template to an explicitly instantiated dllexport template, we
would add that class to the delayed exported class list without flushing
it.
For explicit instantiations, we can just flush the list of delayed
classes immediately. We don't have to worry about the bug fixed in
r260194 in this case because explicit instantiations can only occur at
file and namespace scope.
Fixes PR26490.
llvm-svn: 262056
|
| |
|
|
|
|
| |
added.
llvm-svn: 262055
|
| |
|
|
|
|
|
|
| |
FileCheck actually doesn't support combo suffixes.
Differential Revision: http://reviews.llvm.org/D17588
llvm-svn: 262054
|
| |
|
|
|
|
|
|
| |
methods are thread safe.
<rdar://problem/22595283>
llvm-svn: 262053
|
| |
|
|
|
|
|
|
| |
FileCheck actually doesn't support combo suffixes.
Differential Revision: http://reviews.llvm.org/D17589
llvm-svn: 262052
|
| |
|
|
|
|
|
| |
but kept looking through .o files even after it had found as many
matches as were requested.
llvm-svn: 262051
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the availability context is `FunctionTemplateDecl`, we should look
through it to the `FunctionDecl`. This prevents a diagnostic in the
following case:
class C __attribute__((unavailable));
template <class T> void foo(C&) __attribute__((unavailable));
This adds tests for availability in templates in many other cases, but
that was the only case that failed before this patch.
I added a feature `__has_feature(attribute_availability_in_templates)`
so users can test for this.
rdar://problem/24561029
llvm-svn: 262050
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Fix LowerCall to rebundle v2i32 values after lowering and add testcase
Reviewers: jyknight
Subscribers: llvm-commits, jyknight
Differential Revision: http://reviews.llvm.org/D17615
llvm-svn: 262048
|
| |
|
|
|
|
|
| |
This extends the fold introduced with:
http://reviews.llvm.org/rL262036
llvm-svn: 262047
|
| |
|
|
|
|
| |
Broke aarch64 and darwin bots.
llvm-svn: 262046
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should save a pointer of padding from all MSVC Value subclasses.
Recall that MSVC will not pack the following bitfields together:
unsigned Bits : 29;
unsigned Flag1 : 1;
unsigned Flag2 : 1;
unsigned Flag3 : 1;
Add a static_assert because LLVM developers always trip over this
behavior. This regressed in June.
llvm-svn: 262045
|
| |
|
|
| |
llvm-svn: 262044
|
| |
|
|
|
|
|
|
| |
Committed on behalf of: ldrumm <luke.drummond@codeplay.com>
Differential revision: http://reviews.llvm.org/D16412
llvm-svn: 262043
|
| |
|
|
| |
llvm-svn: 262042
|
| |
|
|
|
|
|
|
|
|
| |
The evaluation of expressions containing register values was broken for targets for which endianness differs from host.
Committed on behalf of: mamai <marianne.mailhot.sarrasin@gmail.com>
Differential revision: http://reviews.llvm.org/D17167
llvm-svn: 262041
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
popped from functions that are run due to something that is NOT input from the user. All other IOHandler objects result from input from the user. An issue rose up where if a command caused the process to resume and stop and process state changed, where state changed Event objects were broadcast, it would cause the IOHandlerProcessSTDIO to have its IOHandlerProcessSTDIO::Cancel() function called. This used to always write a byte to the control pipe (IOHandlerProcessSTDIO::m_pipe) even if the IOHandlerProcessSTDIO::Run() was never called. What would happen is:
(lldb) command_that_steps_process_thousands_of_times
As the "command_that_steps_process_thousands_of_times" could be a python command that resumed the process thousands of times and in doing so the IOHandlerProcessSTDIO would get pushed when the process resumed, and popped when it stoppped, causing the call to IOHandlerProcessSTDIO::Cancel(). Since the IOHandler thread is currently in IOHandlerEditline::Run() for the command interpreter handling the "command_that_steps_process_thousands_of_times" command, IOHandlerProcessSTDIO::Run() would never get called, even though the IOHandlerProcessSTDIO is on the top of the stack. This caused the command pipe to keep getting 1 bytes written each time the IOHandlerProcessSTDIO::Cancel() was called and eventually we will deadlock since the write buffer is full.
The fix here is to make sure we are in IOHandlerProcessSTDIO::Run() before we write anything to the command pipe, and just call SetIsDone(true) if we are not.
<rdar://problem/22361364>
llvm-svn: 262040
|
| |
|
|
|
|
|
|
| |
schedules tree with either the id of memory access or memory references.
Differential Revision: http://reviews.llvm.org/D17381
llvm-svn: 262039
|
| |
|
|
|
|
|
|
|
| |
This patch updates cmake build scripts to build on Haiku. It adds Haiku x86_64 to config.guess.
Please consider reviewing.
Pathc by Jérôme Duval.
llvm-svn: 262038
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently ThreadState holds both logical state (required for race-detection algorithm, user-visible)
and physical state (various caches, most notably malloc cache). Move physical state in a new
Process entity. Besides just being the right thing from abstraction point of view, this solves several
problems:
1. Cache everything on P level in Go. Currently we cache on a mix of goroutine and OS thread levels.
This unnecessary increases memory consumption.
2. Properly handle free operations in Go. Frees are issue by GC which don't have goroutine context.
As the result we could not do anything more than just clearing shadow. For example, we leaked
sync objects and heap block descriptors.
3. This will allow to get rid of libc malloc in Go (now we have Processor context for internal allocator cache).
This in turn will allow to get rid of dependency on libc entirely.
4. Potentially we can make Processor per-CPU in C++ mode instead of per-thread, which will
reduce resource consumption.
The distinction between Thread and Processor is currently used only by Go, C++ creates Processor per OS thread,
which is equivalent to the current scheme.
llvm-svn: 262037
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is one of the cases shown in:
https://llvm.org/bugs/show_bug.cgi?id=26701
Shift and negate is what InstCombine appears to prefer, so I've started with that pattern.
Note that the 'pcmpeq' instructions are always generating the negative one for the actual
'pcmpgt' comparison in each case (side note: why isn't there an alias mnemonic for that?).
Differential Revision: http://reviews.llvm.org/D17630
llvm-svn: 262036
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MBB slot index intervals are half open, not closed. getMBBEndIndex()
returns the slot index of the start of the next block in layout order.
Placing a register mask there is incorrect if the successor of the
funclet return is not laid out after the return. Clang generates IR for
catch bodies before generating the following normal code, so we never
noticed this issue until the D frontend authors filed a bug about it.
Instead, we can put the clobber mask on the last instruction of the
funclet return block. We still aren't using a register mask operand on
the CATCHRET instruction because it would cause PEI to spill all CSRs,
including XMM regs, in the prologue.
Fixes PR26679.
llvm-svn: 262035
|
| |
|
|
| |
llvm-svn: 262034
|
| |
|
|
|
|
| |
This is helpful for test case reduction and other experiments.
llvm-svn: 262033
|
| |
|
|
|
|
|
|
|
| |
This was accidentally introduced in r258947.
Thanks to Hongbin Zheng for finding this.
Found-by: etherzhhb
llvm-svn: 262032
|
| |
|
|
|
|
|
|
|
| |
Regarding the comment, it is out of context because it describes
what it does not do there. It got too long because it was originally
two different comments that were simply merged together.
The semantics is described in fixAbsoluteSymbols, so we don't need it.
llvm-svn: 262031
|