| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 249171
|
|
|
|
|
|
|
| |
Make sure we aren't accidentally not setting
these in the instruction definitions.
llvm-svn: 249170
|
|
|
|
|
|
|
| |
The alternative would be to add a bit to the target's
InstrFlags but that seems like a waste of a bit.
llvm-svn: 249169
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change teaches SCEV that to prove `A u< B` it is sufficient to
prove each of these facts individually:
- B >= 0
- A s< B
- A >= 0
In practice, SCEV sometimes finds it easier to prove these facts
individually than to prove `A u< B` as one atomic step.
Reviewers: reames, atrick, nlewycky, hfinkel
Subscribers: sanjoy, llvm-commits
Differential Revision: http://reviews.llvm.org/D13042
llvm-svn: 249168
|
|
|
|
|
|
|
| |
Also made it not store nullptrs in its TypeSystemMap, so it will retry to make
the AST context if it errored out last time.
llvm-svn: 249167
|
|
|
|
| |
llvm-svn: 249166
|
|
|
|
| |
llvm-svn: 249165
|
|
|
|
|
|
|
|
|
| |
We previously stopped producing Thumb2 relaxations when they weren't supported,
but only diagnosed the case where an actual relocation was produced. We should
also tell people if local symbols aren't going to work rather than silently
overflowing.
llvm-svn: 249164
|
|
|
|
|
|
|
| |
Since we're using tLDRpci to access it, the constant pool's address must be 0
(mod 4).
llvm-svn: 249163
|
|
|
|
|
|
|
| |
As Rafael pointed out, we don't need quite so many flags on the llvm-readobj
RUN line here.
llvm-svn: 249162
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is common to have a default soft process limit, at least on some families of
Linux distributions, of 1024. This is normally more than enough, but if you
have many cores, and you're running tests that create many threads, this can
become a problem. My POWER7 development machine has 48 cores, and when running
the lld regression tests, which often want to create up to 48 threads, I run
into problems. lit, by default, will want to run 48 tests in parallel, and
48*48 < 1024, and so many tests fail like this:
terminate called after throwing an instance of 'std::system_error'
what(): Resource temporarily unavailable
or lit fails like this when launching a test:
OSError: [Errno 11] Resource temporarily unavailable
lit can easily detect this situation and attempt to repair it before launching
tests (by raising the soft process limit to something that will allow ncpus^2
threads to be created), and should do so to prevent spurious test failures.
This is the follow-up to this thread:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/090942.html
llvm-svn: 249161
|
|
|
|
| |
llvm-svn: 249160
|
|
|
|
| |
llvm-svn: 249159
|
|
|
|
|
|
| |
This should resolve an issue reported by mclow.
llvm-svn: 249158
|
|
|
|
|
|
| |
A forward declaration inside a module header does not belong to the module.
llvm-svn: 249157
|
|
|
|
| |
llvm-svn: 249156
|
|
|
|
| |
llvm-svn: 249155
|
|
|
|
|
|
|
|
|
| |
All global variables that are not enclosed in a declare target region
must be captured in the target region as local variables do. Currently,
there is no support for declare target, so this patch adds support for
capturing all the global variables used in a the target region.
llvm-svn: 249154
|
|
|
|
| |
llvm-svn: 249153
|
|
|
|
|
|
| |
and VarTemplatePartialSpecializationDecl::getInstantiatedFromMember.
llvm-svn: 249152
|
|
|
|
|
|
| |
Treat the scop as invalid instead of creating dummy domains.
llvm-svn: 249151
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the "raw" Elf64_Dyn or Elf32_Dyn structures in
DynamicSection<ELFT>::writeTo does not correctly handle mixed-Endian
situations. Instead, use the corresponding llvm::object::* structures which
have Endian-converting members (like the rest of the code).
This fixes all currently-failing elf2 tests when running on big-Endian
PPC64/Linux (I've added a big-Endian test case which should fail on
little-Endian machines in the same way that test/elf2/shared.s failed on
big-Endian machines prior to this change).
llvm-svn: 249150
|
|
|
|
| |
llvm-svn: 249149
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements the outlining for offloading functions for code
annotated with the OpenMP target directive. It uses a temporary naming
of the outlined functions that will have to be updated later on once
target side codegen and registration of offloading libraries is
implemented - the naming needs to be made unique in the produced
library.
llvm-svn: 249148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
between 128/256-bit vector types."
This patch teaches FastIsel the following two things:
1) On SSE2, no instructions are needed for bitcasts between 128-bit vector types;
2) On AVX, no instructions are needed for bitcasts between 256-bit vector types.
Example:
%1 = bitcast <4 x i31> %V to <2 x i64>
Before (-fast-isel -fast-isel-abort=1):
FastIsel miss: %1 = bitcast <4 x i31> %V to <2 x i64>
Now we don't fall back to SelectionDAG and we correctly fold that computation
propagating the register associated to %V.
Originally reviewed here: http://reviews.llvm.org/D13347
llvm-svn: 249147
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D13387
llvm-svn: 249146
|
|
|
|
|
|
|
| |
The last invariant load fix was based on a later patch not
polly/master, thus needs to be adjusted.
llvm-svn: 249145
|
|
|
|
|
|
|
| |
Found while testing a FreeBSD base system build with lld. Ignored for
now while we continue to identify missing options and functionality.
llvm-svn: 249144
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reapply r248935.
Usually, when using LTO with a clang installation newer than the
system's one, there's a libLTO.dylib version mismatch and LTO fails. One
solution to this is to make ld point to the right libLTO.dylib by
changing DYLD_LIBRARY_PATH.
However, ld64 supports specifying the complete path to the desired
libLTO.dylib through the -lto_library option. This commit adds support
for the clang driver to use this option whenever it's capable of finding
a libLTO.dylib in clang's installed library directory. This way, we
don't need to rely on DYLD_LIBRARY_PATH nor get caught by version
mismatches.
Differential Revision: http://reviews.llvm.org/D13117
rdar://problem/7363476
llvm-svn: 249143
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently FastISel doesn't know how to select vector bitcasts.
During instruction selection, fast-isel always falls back to SelectionDAG
every time it encounters a vector bitcast.
As a consequence of this, all the 'packed vector shift by immedate count'
test cases in avx2-builtins.c are optimized by the DAGCombiner.
In particular, the DAGCombiner would always fold trivial stack loads of
constant shift counts into the operands of packed shift builtins.
This behavior would start changing as soon as I reapply revision 249121.
That revision would teach x86 fast-isel how to select bitcasts between vector
types of the same size.
As a consequence of that change, fast-isel would less often fall back to
SelectionDAG. More importantly, DAGCombiner would no longer be able to
simplify the code by folding the stack reload of a constant.
No functional change.
llvm-svn: 249142
|
|
|
|
|
|
|
| |
This reverts commit r249137 because it broke the Windows buildbots and
a Linux buildbot for LLD.
llvm-svn: 249141
|
|
|
|
|
|
|
|
| |
targets.
Differential Revision: http://reviews.llvm.org/D12633
llvm-svn: 249140
|
|
|
|
|
|
|
|
| |
We have to skip accesses in non-affine subregions during hoisting as
they might not be executed under the same condition as the entry of
the non-affine subregion.
llvm-svn: 249139
|
|
|
|
| |
llvm-svn: 249138
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This new toolchain uses primarily LLVM-based tools, eg. compiler-rt, lld,
libcxx, etc. Because of this, it doesn't require neither an existing GCC
installation nor a GNU environment. Ideally, in a follow-up patch we
would like to add a new --{llvm|clang}-toolchain option (similar to
--gcc-toolchain) in order to allow the use of this toolchain with
independent Clang builds. For the time being, we use the --sysroot
option just to test the correctness of the paths generated by the
driver.
Reviewers: atanasyan, dsanders, rsmith
Subscribers: jfb, tberghammer, danalbert, srhines, dschuff, cfe-commits
Differential Revision: http://reviews.llvm.org/D13340
llvm-svn: 249137
|
|
|
|
|
|
|
|
| |
build logs do not point to much useful information for tracking this down, such as:
http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/31782/steps/compile/logs/stdio
llvm-svn: 249136
|
|
|
|
| |
llvm-svn: 249135
|
|
|
|
|
|
| |
This matches what both gold and bfd ld accept.
llvm-svn: 249134
|
|
|
|
|
|
|
|
| |
http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux/builds/2833/steps/build_llvmclang/logs/stdio
Also, drive-by comment fix in a makefile.
llvm-svn: 249133
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the construction of ScopStmt to the beginning of the
ScopInfo pass. The late creation was a result of the earlier separation
of ScopInfo and TempScopInfo. This will avoid introducing more
ScopStmt-like maps in future commits. The AccFuncMap will also be
removed in some future commit. DomainMap might also be included into
ScopStmt.
The order in which ScopStmt are created changes and initially creates
empty statements that are removed in a simplification.
Differential Revision: http://reviews.llvm.org/D13341
llvm-svn: 249132
|
|
|
|
|
|
|
|
|
|
|
| |
their associated .cpp file.
Previous refactorings long long ago had split out the above categories
of classes from Stmt.h into their own header files, but failed to also
split the Stmt.cpp implementation file similarly. Do so for
readability's sake.
llvm-svn: 249131
|
|
|
|
|
|
| |
existing checkers to CERT secure coding rules and recommendations for both C (https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard) and C++ (https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637).
llvm-svn: 249130
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: create TraverseSyntacticInitListExpr and TraverseSemanticInitListExpr.
Reviewers: rsmith, klimek
Subscribers: klimek, cfe-commits, alexfh
Differential Revision: http://reviews.llvm.org/D13249
llvm-svn: 249129
|
|
|
|
| |
llvm-svn: 249128
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: https://llvm.org/bugs/show_bug.cgi?id=24961.
Reviewers: klimek
Subscribers: cfe-commits, alexfh
Differential Revision: http://reviews.llvm.org/D13381
llvm-svn: 249127
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a value is globally mapped (IslNodeBuilder::ValueMap) and
referenced in the code that will be put into a subfunction, we hand
down the new value to the subfunction.
This patch also removes code that handed down all invariant loads to
the subfunction. Instead, only needed invariant loads are given to the
subfunction. There are two possible reasons for an invariant load to
be handed down:
1) The invariant load is used in a block that is placed in the
subfunction but which is not the parent of the load. In this
case, the scalar access that will read the loaded value, will
cause its base pointer (the preloaded value) to be handed down to
the subfunction.
2) The invariant load is defined and used in a block that is placed
in the subfunction. With this patch we will hand down the
preloaded value to the subfunction as the invariant load is
globally mapped to that value.
llvm-svn: 249126
|
|
|
|
| |
llvm-svn: 249125
|
|
|
|
|
|
|
|
|
| |
128/256-bit vector types.
r249121 caused a Clang test failure (avx2-buitins.c).
Revert r249121 while I keep investigating on the reason why that test failed.
llvm-svn: 249124
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D13235
llvm-svn: 249123
|
|
|
|
|
|
|
|
| |
The reason for the name is so that we can run
./build/bin/clang -fuse-ld=lld2 test.o -o t
llvm-svn: 249122
|