| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
bitcasts between the logic ops and the select. We don't currently select masked operations for these cases.
Test cases taken from optimized clang output after trying to convert the masked floating point logical op intrinsics to native IR.
llvm-svn: 280194
|
|
|
|
| |
llvm-svn: 280193
|
|
|
|
|
|
|
| |
Add a .mir test to catch this case, and fix the xray-instrumentation
pass to handle it appropriately.
llvm-svn: 280192
|
|
|
|
|
|
|
|
|
| |
There were paths where we wouldn't populate the visited set, causing us
to recurse forever if an SSA variable was defined in terms of itself.
This fixes PR30210.
llvm-svn: 280191
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
within the instantiation of that same specialization. This could previously
happen for eagerly-instantiated function templates, variable templates,
exception specifications, default arguments, and a handful of other cases.
We still have an issue here for default template arguments that recursively
make use of themselves and likewise for substitution into the type of a
non-type template parameter, but in those cases we're producing a different
entity each time, so they should instead be caught by the instantiation depth
limit. However, currently we will typically run out of stack before we reach
it. :(
llvm-svn: 280190
|
|
|
|
|
|
|
|
|
| |
'cc1' is a valid sequence of hexadecimal and sometimes can occur in the path
when testing. This can lead to FileCheck matching the incorrect occurance
of the 'cc1' string and causing a test failure. Join two adjacent flags
together into one check to prevent this.
llvm-svn: 280189
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a function contains something, such as inline asm, which explicitly
clobbers the register used as the frame pointer, don't spill it twice. If we
need a frame pointer, it will be saved/restored in the prologue/epilogue code.
Explicitly spilling it again will reuse the same spill slot used by the
prologue/epilogue code, thus clobbering the saved value. The same applies
to the base-pointer or PIC-base register.
Partially fixes PR26856. Thanks to Ulrich for his analysis and the small
inline-asm reproducer.
llvm-svn: 280188
|
|
|
|
| |
llvm-svn: 280187
|
|
|
|
| |
llvm-svn: 280186
|
|
|
|
| |
llvm-svn: 280185
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
1) CoroEarly now lowers llvm.coro.promise intrinsic that allows to obtain
a coroutine promise pointer from a coroutine frame and vice versa.
2) CoroFrame now interprets Promise argument of llvm.coro.begin to
place CoroutinPromise alloca at a deterministic offset from the coroutine frame.
Now, the coroutine promise example from docs\Coroutines.rst compiles and produces expected result (see test/Transform/Coroutines/ex4.ll).
Reviewers: majnemer
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D23993
llvm-svn: 280184
|
|
|
|
|
|
|
|
|
|
| |
It's much less code and easier to read if we don't duplicate
everything between the 'Inside' and not 'Inside' cases.
As noted with the FIXME, the goal is to make this vector-friendly
in a follow-up patch.
llvm-svn: 280183
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Add the type-safe wrapper to the platform-specific implementation.
Reviewers: jlebar
Subscribers: jprice, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24063
llvm-svn: 280182
|
|
|
|
| |
llvm-svn: 280181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Bugfix for 27321. When the constructor of stored pointer
type is private then it is invalid to change it to
make_shared or make_unique.
Reviewers: alexfh, aaron.ballman, hokein
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D23343
llvm-svn: 280180
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
positions. Resolves PR29148.
Summary:
LSV was using two vector sets (heads and tails) to track pairs of adjiacent position to vectorize.
A recent optimization is trying to obtain the longest chain to vectorize and assumes the positions
in heads(H) and tails(T) match, which is not the case is there are multiple tails for the same head.
e.g.:
i1: store a[0]
i2: store a[1]
i3: store a[1]
Leads to:
H: i1
T: i2 i3
Instead of:
H: i1 i1
T: i2 i3
So the positions for instructions that follow i3 will have different indexes in H/T.
This patch resolves PR29148.
This issue also surfaced the fact that if the chain is too long, and TLI
returns a "not-fast" answer, the whole chain will be abandoned for
vectorization, even though a smaller one would be beneficial.
Added a testcase and FIXME for this.
Reviewers: tstellarAMD, arsenm, jlebar
Subscribers: mzolotukhin, wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D24057
llvm-svn: 280179
|
|
|
|
|
|
| |
target.
llvm-svn: 280178
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Make the Kernel class follow the pattern of the other classes. It now
has a type-safe user wrapper and a typeless, platform-specific handle.
Reviewers: jlebar
Subscribers: jprice, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24043
llvm-svn: 280176
|
|
|
|
| |
llvm-svn: 280175
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a crash when relexing the underlying memory buffer to find incorrect
arguments to NSLocalizedString(). With precompiled headers, the raw
buffer may be NULL. Instead, use the source manager to get the buffer,
which will lazily create the buffer for precompiled headers.
rdar://problem/27429091
llvm-svn: 280174
|
|
|
|
| |
llvm-svn: 280173
|
|
|
|
|
|
|
|
| |
This class enables one to easily write a synthetic child provider by writing a class that returns pairs of names and primitive Python values - the base class then converts those into LLDB SBValues
Comes with a test case
llvm-svn: 280172
|
|
|
|
|
|
|
|
|
|
| |
On Windows, static libraries are named lib<name>.lib while import libraries are
named <name>.lib. Use the appropriate naming on itanium and msvc environments.
This is setup properly so that if a dynamic builtins is used on Windows, it
would do the right thing, although this is not currently wired through the
driver (i.e. there is no equivalent to -{shared,static}-gcc).
llvm-svn: 280169
|
|
|
|
|
|
|
|
| |
As written, the code should assert if this lookup would have ever
succeeded. Without looking through composite types, the type graph
should be acyclic.
llvm-svn: 280168
|
|
|
|
|
|
| |
I forgot to do an svn add on.
llvm-svn: 280167
|
|
|
|
| |
llvm-svn: 280166
|
|
|
|
|
|
| |
affectedRanges takes a start and an end offset, not offset and length.
llvm-svn: 280165
|
|
|
|
| |
llvm-svn: 280164
|
|
|
|
|
|
|
| |
Still no unit test due to synchronization bugs on s390. These issues were
discovered in an out-of-tree utility.
llvm-svn: 280163
|
|
|
|
|
|
| |
This will enable other runtime projects to detect the presence of sanitizer runtimes by referring to the sanitizer targets directly.
llvm-svn: 280162
|
|
|
|
|
|
|
|
| |
LC_DYSYMTAB’s.
This contains the missing checks for LC_DYSYMTAB load command fields.
llvm-svn: 280161
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for modules that require (no-)gnu-inline-asm
environment, such as the compiler builtin cpuid submodule.
This is the gnu-inline-asm variant of https://reviews.llvm.org/D23871
Differential Revision: https://reviews.llvm.org/D23905
rdar://problem/26931199
llvm-svn: 280159
|
|
|
|
|
|
| |
Use the typedef rather than using to type alias the typename.
llvm-svn: 280158
|
|
|
|
| |
llvm-svn: 280157
|
|
|
|
|
|
| |
We were computing the binding on both the caller and callee.
llvm-svn: 280156
|
|
|
|
|
|
|
|
| |
Legalization ends up creating many G_SEQUENCE/G_EXTRACT pairs which leads to
inefficient codegen (even for -O0), so add a quick pass over the function to
remove them again.
llvm-svn: 280155
|
|
|
|
|
|
|
| |
s should be SReg_32 to be as general as possible. This can avoid a copy
from m0.
llvm-svn: 280154
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D24049
llvm-svn: 280153
|
|
|
|
|
|
|
|
| |
This reverts commit 8df7a877949e8782a3a28e3ecdb0770c1e444056.
Fixing other repositories and adding changes together.
llvm-svn: 280152
|
|
|
|
|
|
|
|
| |
(of a given size) of that type
This is currently only implemented for the clang-based TypeSystem, but other languages are welcome to jump in!
llvm-svn: 280151
|
|
|
|
|
|
|
| |
This makes it possible to run 'check-clang' on Darwin without building
libLTO.dylib. See r280142 for more context.
llvm-svn: 280150
|
|
|
|
|
|
|
|
| |
This reverts commit r280142. Mehdi suggested a better way to fix up the
test: just create a fake libLTO.dylib and tell the driver where to find
it. Patch incoming...
llvm-svn: 280149
|
|
|
|
|
|
|
|
|
|
| |
We don't need to limit predication to blocks that have a single incoming
edge, we just need to use the right mask.
This fixes PR30172.
Differential Revision: https://reviews.llvm.org/D24009
llvm-svn: 280148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When binaries are compressed by UPX, information about symbol table
offset and symbol count remain unchanged (but became invalid due to
compression).
This causes failure in the constructor and the rest of the binary cannot
be processed.
Instead, reset symbol related information (symbol/string table pointers,
sizes) - this should disable the related iterators and functions while
the rest of the binary can still be processed.
Patch by Bandzi Michal!
llvm-svn: 280147
|
|
|
|
|
|
|
| |
Reduce the amount of the header that we end up including in the build. The
additional definitions are not necessary.
llvm-svn: 280146
|
|
|
|
|
|
|
| |
Add a missing Windows.h which is needed for the windows type usage in the TU
(e.g. HANDLE).
llvm-svn: 280145
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D24037
llvm-svn: 280144
|
|
|
|
|
|
| |
supports) pointer arguments, and these intrinsics have vector of pointer arguments. Remove ArgMemOnly until we either have the machinery, define a new attribute, or something similar
llvm-svn: 280143
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running 'check-clang' on a stock checkout of llvm+clang doesn't work on
Darwin, because test/Driver/darwin-ld-lto.c can't find libLTO.dylib. Add
libLTO as a clang test dependency on Darwin to fix the problem.
Note: We don't have this issue with check-all because libLTO is in the
test-depends target.
Differential Revision: https://reviews.llvm.org/D24042
llvm-svn: 280142
|
|
|
|
|
|
| |
workaround for the limitations of MSVC 2013's std::future class.
llvm-svn: 280141
|