| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 237889
|
| |
|
|
| |
llvm-svn: 237888
|
| |
|
|
| |
llvm-svn: 237887
|
| |
|
|
| |
llvm-svn: 237886
|
| |
|
|
|
|
|
|
|
|
| |
This patch improves support for sign extension of the lower lanes of vectors of integers by making use of the SSE41 pmovsx* sign extension instructions where possible, and optimizing the sign extension by shifts on pre-SSE41 targets (avoiding the use of i64 arithmetic shifts which require scalarization).
It converts SIGN_EXTEND nodes to SIGN_EXTEND_VECTOR_INREG where necessary, that more closely matches the pmovsx* instruction than the default approach of using SIGN_EXTEND_INREG which splits the operation (into an ANY_EXTEND lowered to a shuffle followed by shifts) making instruction matching difficult during lowering. Necessary support for SIGN_EXTEND_VECTOR_INREG has been added to the DAGCombiner.
Differential Revision: http://reviews.llvm.org/D9848
llvm-svn: 237885
|
| |
|
|
| |
llvm-svn: 237884
|
| |
|
|
| |
llvm-svn: 237883
|
| |
|
|
|
|
| |
For parameters we shall take a derived type of parameters, not the original one.
llvm-svn: 237882
|
| |
|
|
| |
llvm-svn: 237881
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously, NPL tried to reinject SIGSTOP into the inferior in an attempt to get the process to
start in the group-stop state. This was:
a) wrong (reinjection should be controlled by "process handle" lldb setting)
b) racy (it should use Resume for transparent resuming instead of RequestResume)
c) broken (llgs crashed on inferior SIGSTOP)
With this change, SIGSTOP is handled just like any other signal delivered to the inferior: we
stop all threads and report signal reception to lldb. SIGSTOP reinjection does not behave the
same way as it would outside the debugger, but simulating this is a hard problem and is not
normally necessary.
Test Plan: I have added a test which verifies we get SIGSTOP reports and we do not crash.
Reviewers: ovyalov, chaoren
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D9852
llvm-svn: 237880
|
| |
|
|
|
|
| |
If loop control variable in a worksharing construct is marked as lastprivate, we should copy last calculated value of private counter back to original variable.
llvm-svn: 237879
|
| |
|
|
| |
llvm-svn: 237878
|
| |
|
|
|
|
|
|
|
| |
We had not been trying hard enough to resolve def names inside multiclasses
that had complex concatenations, etc. Now we'll try harder.
Patch by Amaury Sechet!
llvm-svn: 237877
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create a low-overhead path for `EmitLabelDifference()` that emits a
emits an absolute number when (1) the output is an object stream and (2)
the two symbols are in the same data fragment.
This drops memory usage on Mach-O from 975 MB down to 919 MB (5.8%).
The only call is when `!doesDwarfUseRelocationsAcrossSections()` --
i.e., on Mach-O -- since otherwise an absolute offset from the start of
the section needs a relocation. (`EmitLabelDifference()` is cheaper on
ELF anyway, since it creates 1 fewer temp symbol, and it gets called far
less often. It's not clear to me if this is even a bottleneck there.)
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 237876
|
| |
|
|
|
|
|
| |
Try to fix miscompile after r237873. Looks like this union
initialization isn't legal (or at least not supported).
llvm-svn: 237875
|
| |
|
|
|
|
|
|
|
| |
In effect a partial revert of r237858, which was a dumb shortcut.
Looking at the dependencies of the destination should be the proper
fix: if the new memset would depend on anything other than itself,
the transformation isn't correct.
llvm-svn: 237874
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Finally remove the `MCSymbolData::Symbol` pointer. It was still being
used to track whether `MCSymbolData` had been initialized, but this is
better tracked by the bitfield in `MCSymbol`.
The only caller of `MCSymbolData::initialize()` was `MCAssembler`, which
(other than `Symbol`) passed in all-0 values. Replace all that
indirection with a default constructor.
The main point is a cleanup (and there's more cleanup to do), but there
are also some small memory savings. I measured ~989 MB down to ~975 MB,
cutting a little over 1% off the top of `llc`.
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 237873
|
| |
|
|
| |
llvm-svn: 237872
|
| |
|
|
|
|
|
|
|
|
| |
visibility is enabled) or leave and re-enter it, restore the macro and module
visibility state from last time we were in that submodule.
This allows mutually-#including header files to stand a chance at being
modularized with local visibility enabled.
llvm-svn: 237871
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't print unused-argument warning for sanitizer-specific feature flag
if this sanitizer was eanbled, and later disabled in the command line.
For example, now:
clang -fsanitize=address -fsanitize-coverage=bb -fno-sanitize=address a.cc
doesn't print warning, but
clang -fsanitize-coverage=bb
does. Same holds for -fsanitize-address-field-padding= and
-fsanitize-memory-track-origins= flags.
Fixes PR23604.
llvm-svn: 237870
|
| |
|
|
|
|
|
| |
Add notead about the CoreCLR GC Strategy to the
Garbage Collection document.
llvm-svn: 237869
|
| |
|
|
|
|
|
|
|
| |
Make the back-pointer from `MCSymbolData` to `MCSymbol` private,
preparing to remove the back pointer entirely. I've already updated all
the users, although for now it's still used to indicate whether
`MCSymbol::Data` has been initialized.
llvm-svn: 237868
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the last use of `MCSymbolData::getSymbol()`. There's some
*really* hairy stuff going on in `MachObjectWriter::WriteNList()` that I
want to come back to. In particular, it updates `Symbol` to point at
its aliasee (if any), but leaves `Data` behind, and it's not clear
whether everything makes sense there.
For now I've left the logic unchanged by adding `OrigSymbol` and moving
the FIXME from r237750 up a bit higher. I've filed PR23598 to track
looking into this.
llvm-svn: 237867
|
| |
|
|
|
|
|
|
|
|
|
|
| |
old dyld notification
breakpoint only if the process it was for is still alive. We need to always remove this because
it has a pointer to the old loader, and if we ever hit it we will crash. I also put in a sanity
check in the callback function to make sure we don't invoke it if the process is wrong.
<rdar://problem/21006189>
llvm-svn: 237866
|
| |
|
|
|
|
|
|
| |
currently touch the members of the struct in the right order or our ClangASTImporter::DeportType() will copy the resulting type into the target AST incorrectly. This is a work around for <rdar://problem/21049838> which the copy type issue so that it doesn't happen.
<rdar://problem/20902950>
llvm-svn: 237865
|
| |
|
|
| |
llvm-svn: 237864
|
| |
|
|
|
|
|
|
|
| |
MSVC 2015 includes the std::data() template function added to C++17. ADL
causes both cl.exe and clang-cl to prefer std::data over our static
helper here, and we get errors about converting int64_t* to StringRef.
Renaming it to bytes avoids the ambiguity.
llvm-svn: 237863
|
| |
|
|
|
|
|
|
| |
MSVC 2015 appears to be unable to find the correct operator== here. I
haven't yet filed a bug with Microsoft as I've been unable to create a
reduced test case.
llvm-svn: 237862
|
| |
|
|
|
|
| |
We're erasing the instructions anyway.
llvm-svn: 237861
|
| |
|
|
|
|
| |
constant folding
llvm-svn: 237860
|
| |
|
|
| |
llvm-svn: 237859
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR23599, another miscompile introduced by r235232: when there is
another dependency on the destination of the created memset (i.e., the
part of the original destination that the memcpy doesn't depend on)
between the memcpy and the original memset, we would insert the created
memset after the memcpy, and thus after the other dependency.
Instead, insert the created memset right after the old one.
llvm-svn: 237858
|
| |
|
|
|
|
| |
No test case: We don't have a good way to test race conditions.
llvm-svn: 237857
|
| |
|
|
|
|
|
|
|
|
| |
Add a check for bool-like conversions for the condition expression of
conditional operators. This is similiar to the checking of condition
expressions of if statements, for-loops, while-loops, and do-while loops.
Specificially, this is to fix the problem of assert("message") not triggering
-Wstring-conversion when the assert macro uses a conditional operator.
llvm-svn: 237856
|
| |
|
|
| |
llvm-svn: 237855
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D9787
llvm-svn: 237854
|
| |
|
|
|
|
|
| |
We aren't yet emitting the LSDA yet, so this will still fail to
assemble.
llvm-svn: 237852
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The ByteStreamer here wasn't taking account of whether the asm streamer was text based and verbose. Only with that combination should we emit comments.
This change makes sure that we only actually convert a Twine to a string using Twine::str() if we need the comment. This saves about 10000 small allocations on a test case involving the verify-use_list-order bitcode going through llc with debug info.
Note, this is NFC as the comments would ultimately never be emitted unless required.
Reviewed by Duncan Exon Smith and David Blaikie.
llvm-svn: 237851
|
| |
|
|
|
|
|
|
|
| |
configurable in the CMake build. There shouldn't be any change in default
behavior.
Derived from a patch by Daniel Jasper!
llvm-svn: 237850
|
| |
|
|
|
|
|
|
| |
This reverts commit 0037b6bcbc874aa1b93d7ce3ad8dba3753ee2d9d (r237827).
David Blaikie suggested some alternatives to this which are better. Reverting to apply a better solution later.
llvm-svn: 237849
|
| |
|
|
|
|
|
| |
The dylib build of compiler-rt has been broken on darwin since the
directory restructuring to push some things down into /builtins/.
llvm-svn: 237848
|
| |
|
|
|
|
| |
moving a field in MachOLinkingContext.
llvm-svn: 237847
|
| |
|
|
| |
llvm-svn: 237846
|
| |
|
|
|
|
|
|
|
|
|
| |
Cached CMake variables need to have a prefix so they don't collide with other
projects. This change (a lot of simple changes) simply prefixes cached variables
with LIBOMP_ and sets all of these variables to UPPERCASE which is convention.
e.g., os => LIBOMP_OS, ompt_support => LIBOMP_OMPT_SUPPORT.
Differential Revision: http://reviews.llvm.org/D9829
llvm-svn: 237845
|
| |
|
|
|
|
| |
cross-platform.
llvm-svn: 237844
|
| |
|
|
|
|
| |
This caused assertions during DAG combine: PR23601.
llvm-svn: 237843
|
| |
|
|
| |
llvm-svn: 237842
|
| |
|
|
| |
llvm-svn: 237841
|
| |
|
|
| |
llvm-svn: 237840
|
| |
|
|
|
|
| |
Fixes PR23597.
llvm-svn: 237839
|