| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
MSVC warns with:
warning C4239: nonstandard extension used: 'initializing': conversion from 'llvm::DebugLoc' to 'llvm::DebugLoc &'
note: A non-const reference may only be bound to an lvalue
Change the reference to a const reference.
llvm-svn: 265937
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we see a .arch or .cpu directive, we should try to avoid switching
ARM/Thumb mode if possible.
If we do have to switch modes, we also need to emit the correct mapping
symbol for the new ISA. We did not do this previously, so could emit
ARM code with Thumb mapping symbols (or vice-versa).
The GAS behaviour is to always stay in the same mode, and to emit an
error on any instructions seen when the current mode is not available on
the current target. We can't represent that situation easily (we assume
that Thumb mode is available if ModeThumb is set), so we differ from the
GAS behaviour when switching to a target that can't support the old
mode. I've added a warning for when this implicit mode-switch occurs.
Differential Revision: http://reviews.llvm.org/D18955
llvm-svn: 265936
|
| |
|
|
|
|
|
|
| |
punpck{h|l}{dq|qdq}{128|256|512},rndscale{ss|sd}, {scalef{ss|sd|pd512|ps512} ) builtin to clang
Differential Revision: http://reviews.llvm.org/D18929
llvm-svn: 265935
|
| |
|
|
|
|
|
|
| |
This should've been forwards from rbegin(), reverse iterators are just
too confusing to be used by mere mortals. Fixes out-of-bounds walks over
the list.
llvm-svn: 265934
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a conditional variant of CallBR instruction, CallBCR. Also,
it can be fused with integer comparisons, resulting in one of the new
C*BCall instructions.
In addition to CallBRCL limitations, this has another one: it won't
trigger if the function to call isn't already in %r1 - see f22 in the
test for an example (it's also why the loads in tests are volatile).
Author: koriakin
Differential Revision: http://reviews.llvm.org/D18928
llvm-svn: 265933
|
| |
|
|
|
|
|
|
|
| |
These are fused compare-and-branches, so they obviously don't use CC.
Author: koriakin
Differential Revision: http://reviews.llvm.org/D18927
llvm-svn: 265932
|
| |
|
|
| |
llvm-svn: 265931
|
| |
|
|
|
|
|
|
| |
Add tests for bitcasting an illegal vector to/from a legal scalar
Additional tests requested for D18944
llvm-svn: 265930
|
| |
|
|
|
|
| |
To make sure we're dealing with both cases of legal/illegal number of vector elements and legal/illegal vector element types
llvm-svn: 265929
|
| |
|
|
|
|
|
|
| |
builtin to clang
Differential Revision: http://reviews.llvm.org/D18924
llvm-svn: 265928
|
| |
|
|
| |
llvm-svn: 265927
|
| |
|
|
|
|
| |
-emit-llvm emits a file, -emit-llvm-only doesn't.
llvm-svn: 265926
|
| |
|
|
|
|
| |
Part of additional tests requested for D18944
llvm-svn: 265925
|
| |
|
|
|
|
|
|
|
| |
Restrict the max length of long nops for Lakemont to 7. Experiments on MCU
benchmarks (Dhrystone, Coremark) show that this is the most optimal length.
Differential Revision: http://reviews.llvm.org/D18897
llvm-svn: 265924
|
| |
|
|
|
|
|
|
| |
In `AtosSymbolizer`, we're using `forkpty()` to create a new pseudo-terminal to communicate with the `atos` tool (we need that to avoid output buffering in interactive mode). This however redirects both stdout and stderr into a single stream, so when we read the output, we can't distinguish between errors and standard replies. Let's save&restore stderr to avoid that.
Differential Revision: http://reviews.llvm.org/D15073
llvm-svn: 265923
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Just to ensure no regressions, this already works fine.
Reviewers: djasper
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D18950
llvm-svn: 265922
|
| |
|
|
| |
llvm-svn: 265921
|
| |
|
|
|
|
|
| |
The makefile was explicitly setting LDFLAGS what is breaking some rules
in the global makefile.
llvm-svn: 265920
|
| |
|
|
| |
llvm-svn: 265919
|
| |
|
|
|
|
| |
Found by cppcheck! PR27286 PR27287 PR27288 PR27289
llvm-svn: 265918
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch add support for GCC attribute((ifunc("resolver"))) for
targets that use ELF as object file format. In general ifunc is a
special kind of function alias with type @gnu_indirect_function. LLVM
patch http://reviews.llvm.org/D15525
Differential Revision: http://reviews.llvm.org/D15524
llvm-svn: 265917
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: djasper
Subscribers: klimek
Differential Revision: http://reviews.llvm.org/D18943
llvm-svn: 265916
|
| |
|
|
|
|
|
|
| |
vpermil{var}{ps|pd}{256|512} ) builtin to clang.
Differential Revision: http://reviews.llvm.org/D18933
llvm-svn: 265915
|
| |
|
|
|
|
| |
reported as bug #27259. As a drive-by fix, replace the hand-rolled equivalent to addressof in __wrap_iter with the real thing.
llvm-svn: 265914
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
If we can prove that an op.with.overflow intrinsic does not overflow, we
can get rid of the intrinsic, and replace it with non-wrapping
arithmetic.
Reviewers: atrick, regehr
Subscribers: sanjoy, mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D18685
llvm-svn: 265913
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change teaches SCEV to see reduce `(extractvalue
0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if
possible).
Reviewers: atrick, regehr
Subscribers: mcrosier, mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18684
llvm-svn: 265912
|
| |
|
|
| |
llvm-svn: 265911
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
COPY relocation already
It is possible that the same symbol referenced by two kinds of
relocations at the same time. The first type requires say GOT entry
creation, the second type requires dynamic copy relocation. For MIPS
targets they might be R_MIPS_GOT16 and R_MIPS_HI16 relocations. For X86
target they might be R_386_GOT32 and R_386_32 respectively.
Now LLD never creates GOT entry for a symbol if this symbol already has
related copy relocation. This patch solves this problem.
Differential Revision: http://reviews.llvm.org/D18862
llvm-svn: 265910
|
| |
|
|
|
|
|
| |
writer APIs
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 265907
|
| |
|
|
| |
llvm-svn: 265906
|
| |
|
|
|
|
| |
TSan logic from SBThread to InstrumentationRuntime plugin.
llvm-svn: 265905
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18932
llvm-svn: 265904
|
| |
|
|
|
|
| |
Added sdiv/srem and udiv/urem tests cases for 512 bit vectors.
llvm-svn: 265903
|
| |
|
|
|
|
|
|
|
|
| |
Extend the existing lowering of vXi8 multiplies to support v64i8 on avx512bw targets.
I added the Lower512IntArith helper function to help with this - not sure how often this could be used in the future, but it seemed better than putting all that logic inside LowerMUL.
Differential Revision: http://reviews.llvm.org/D18937
llvm-svn: 265902
|
| |
|
|
|
|
|
|
|
| |
Vectorization cost of uniform load wasn't correctly calculated.
As a result, a simple loop that loads a uniform value wasn't vectorized.
Differential Revision: http://reviews.llvm.org/D18940
llvm-svn: 265901
|
| |
|
|
| |
llvm-svn: 265900
|
| |
|
|
|
|
|
|
|
| |
It seems that there was a miscommunication between Renato and I, and the
original behaviour of AArch64 was to be preserved and not to mirror the new
behaviour. Restore the original behaviour for AArch64. Addresses post-commit
review comments from Renato Golin.
llvm-svn: 265899
|
| |
|
|
| |
llvm-svn: 265898
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18891
llvm-svn: 265897
|
| |
|
|
|
|
|
|
| |
builtin to clang
Differential Revision: http://reviews.llvm.org/D18931
llvm-svn: 265896
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18925
llvm-svn: 265895
|
| |
|
|
|
|
|
|
|
| |
In r247147 we disabled pointer expressions because the IslExprBuilder did not
fully support them. This patch reintroduces them by simply treating them as
integers. The only special handling for pointers that is left detects the
comparison of two address_of operands and uses an unsigned compare.
llvm-svn: 265894
|
| |
|
|
| |
llvm-svn: 265893
|
| |
|
|
|
|
| |
suppored. This is already done for SSE2/AVX2 which VLX implies. NFC
llvm-svn: 265892
|
| |
|
|
| |
llvm-svn: 265891
|
| |
|
|
|
|
|
|
|
|
| |
Raw function pointer collected by value
profile data may be from external functions
that are not instrumented. They won't have
mapping data to be used by the deserializer.
Force the value to be 0 in this case.
llvm-svn: 265890
|
| |
|
|
|
|
| |
Add test cases for AArch64 as well as that was changed as part of that change.
llvm-svn: 265889
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds support to optionally support using `__gnu_mcount_nc` as the mcount
interface rather than `mcount` for Linux and EABI. The other targets do not
provide an implementation for `__gnu_mcount_nc`. This can be activated via the
`-meabi gnu` flag.
Resolves PR23969.
llvm-svn: 265888
|
| |
|
|
| |
llvm-svn: 265887
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stack-realigned function.
Summary:
After we make the adjustment, we can assume that for local allocas, but
not for stack parameters, the return address, or any other fixed stack
object (which has a negative offset and therefore lies prior to the
adjusted SP).
Fixes PR26662.
Reviewers: hfinkel, qcolombet, rnk
Subscribers: rnk, llvm-commits
Differential Revision: http://reviews.llvm.org/D18471
llvm-svn: 265886
|