| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 268180
|
|
|
|
|
|
| |
the same thing but vector_extract is deprecated. NFC
llvm-svn: 268179
|
|
|
|
|
|
|
|
|
|
|
| |
There are currently some bugs in tree around SCEV caching an incorrect
loop disposition. Printing out loop dispositions will let us write
whitebox tests as those are fixed.
The dispositions are printed as a list in "inside out" order,
i.e. innermost loop first.
llvm-svn: 268177
|
|
|
|
| |
llvm-svn: 268176
|
|
|
|
| |
llvm-svn: 268175
|
|
|
|
| |
llvm-svn: 268174
|
|
|
|
|
|
|
| |
The earlier version of the resolver code did not save NEON state, so it would
have broken any callees that used floating point.
llvm-svn: 268173
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We need these variables to concatenate two absolute paths to construct
a valid path. Currently, %t\%t is, for example, expanded to C:\foo\C:\foo,
which is not a valid path because ":" is not a valid path character
on Windows. With this patch, %t will be expanded to C\foo.
Differential Revision: http://reviews.llvm.org/D19757
llvm-svn: 268168
|
|
|
|
|
|
| |
For future support for VPERMD/VPERMPS to generic shuffles combines
llvm-svn: 268166
|
|
|
|
|
|
|
| |
Convert to using some range based loops, avoid unnecessary variables for
unchecked casts. NFC.
llvm-svn: 268165
|
|
|
|
| |
llvm-svn: 268164
|
|
|
|
| |
llvm-svn: 268163
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SystemZ on Linux currently has 53-bit address space. In theory, the hardware
could support a full 64-bit address space, but that's not supported due to
kernel limitations (it'd require 5-level page tables), and there are no plans
for that. The default process layout stays within first 4TB of address space
(to avoid creating 4-level page tables), so any offset >= (1 << 42) is fine.
Let's use 1 << 52 here, ie. exactly half the address space.
I've originally used 7 << 50 (uses top 1/8th of the address space), but ASan
runtime assumes there's some space after the shadow area. While this is
fixable, it's simpler to avoid the issue entirely.
Also, I've originally wanted to have the shadow aligned to 1/8th the address
space, so that we can use OR like X86 to assemble the offset. I no longer
think it's a good idea, since using ADD enables us to load the constant just
once and use it with register + register indexed addressing.
Differential Revision: http://reviews.llvm.org/D19650
llvm-svn: 268161
|
|
|
|
|
|
| |
UNDEF mask elements
llvm-svn: 268159
|
|
|
|
|
|
|
|
| |
elements. NFCI.
Make use of Constant::getAggregateElement instead of checking constant types - first step towards adding support for UNDEF mask elements.
llvm-svn: 268158
|
|
|
|
|
|
| |
Delete Target Option PositionIndependentExecutable as PIE is now part of module flags.
llvm-svn: 268155
|
|
|
|
|
|
| |
This was supposed to be part of r268143.
llvm-svn: 268154
|
|
|
|
|
|
|
|
|
|
|
| |
If, in between the splat and the load (which does an implicit splat), there is
a read of the splat register, then that register must have another earlier
definition. In that case, we can't replace the load's destination register with
the splat's destination register.
Unfortunately, I don't have a small or non-fragile test case.
llvm-svn: 268152
|
|
|
|
| |
llvm-svn: 268150
|
|
|
|
|
|
|
|
|
|
| |
If a guard call being lowered by LowerGuardIntrinsics has the
`!make.implicit` metadata attached, then reattach the metadata to the
branch in the resulting expanded form of the intrinsic. This allows us
to implement null checks as guards and still get the benefit of implicit
null checks.
llvm-svn: 268148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
support multiple induction variables
This patch enable loop reroll for the following case:
for(int i=0; i<N; i += 2) {
S += *a++;
S += *a++;
};
Differential Revision: http://reviews.llvm.org/D16550
llvm-svn: 268147
|
|
|
|
| |
llvm-svn: 268146
|
|
|
|
| |
llvm-svn: 268144
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This includes a hazard recognizer implementation to replace some of
the hazard handling we had during frame index elimination.
Reviewers: arsenm
Subscribers: qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18602
llvm-svn: 268143
|
|
|
|
| |
llvm-svn: 268142
|
|
|
|
| |
llvm-svn: 268141
|
|
|
|
|
|
|
| |
We can demonstrate the 'select' bug and fix with a simpler test case.
The merged weight values are already tested in another test.
llvm-svn: 268139
|
|
|
|
|
|
| |
Makes the new method to set data needed by debug dump.
llvm-svn: 268130
|
|
|
|
|
|
|
|
|
| |
This moves some logic added to EarlyCSE in rL268120 into
`llvm::isInstructionTriviallyDead`. Adds a test case for DCE to
demonstrate that passes other than EarlyCSE can now pick up on the new
information.
llvm-svn: 268126
|
|
|
|
|
|
|
|
| |
targets
This adds a new target `install-distribution-toolchain` which will install an Xcode toolchain featuring just the LLVM components specified in LLVM_DISTRIBUTION_COMPONENTS.
llvm-svn: 268125
|
|
|
|
| |
llvm-svn: 268122
|
|
|
|
|
|
| |
Fix a FIXME. Disable loop alignment if compiled with -Oz now.
llvm-svn: 268121
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change teaches EarlyCSE some basic properties of guard intrinsics:
- Guard intrinsics read all memory, but don't write to any memory
- After a guard has executed, the condition it was guarding on can be
assumed to be true
- Guard intrinsics on a constant `true` are no-ops
Reviewers: reames, hfinkel
Subscribers: mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D19578
llvm-svn: 268120
|
|
|
|
|
|
|
|
|
|
| |
If a block has no successors because it ends in unreachable,
this was accessing an invalid iterator.
Also stop counting instructions that don't emit any
real instructions.
llvm-svn: 268119
|
|
|
|
| |
llvm-svn: 268116
|
|
|
|
|
|
|
|
| |
elements. NFCI.
Make use of Constant::getAggregateElement instead of checking constant types - first step towards adding support for UNDEF mask elements.
llvm-svn: 268115
|
|
|
|
|
|
|
| |
The ORC compile callbacks and indirect stubs APIs will now work for AArc64,
allowing functions to be lazily compiled and/or updated.
llvm-svn: 268112
|
|
|
|
|
|
| |
the constructor fails, as this would lead to an 'unchecked error' crash.
llvm-svn: 268111
|
|
|
|
|
|
| |
The "Building LLVM with CMake" document should have a reference to the CMakePrimer.
llvm-svn: 268109
|
|
|
|
|
|
| |
No functionality change is intended.
llvm-svn: 268108
|
|
|
|
|
|
|
|
| |
The implemented heuristic has a large body of code which better sits
in its own function for better readability. It also allows adding more
heuristics easier in the future.
llvm-svn: 268107
|
|
|
|
| |
llvm-svn: 268106
|
|
|
|
| |
llvm-svn: 268105
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19550
llvm-svn: 268104
|
|
|
|
| |
llvm-svn: 268102
|
|
|
|
| |
llvm-svn: 268099
|
|
|
|
|
|
|
|
| |
This document is intended to provide a basic overview of the CMake scripting language for LLVM developers. It was unorthodoxly reviewed for accuracy and content on the CMake developer list:
http://public.kitware.com/pipermail/cmake-developers/2016-April/028300.html
llvm-svn: 268096
|
|
|
|
|
|
|
|
| |
Move to addPreEmitPass. This is so it runs after post-RA
scheduling so we can merge s_nops emitted by the scheduler
and hazard recognizer.
llvm-svn: 268095
|
|
|
|
| |
llvm-svn: 268094
|
|
|
|
| |
llvm-svn: 268092
|