| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Previously, arguments for options that take pathnames were not rewritten.
llvm-svn: 268172
|
|
|
|
|
|
| |
Previuosly, only files appeared on the command line were copied.
llvm-svn: 268171
|
|
|
|
| |
llvm-svn: 268170
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The aim of this patch is to make it easy to re-run the command without
updating paths in the command line. Here is a use case.
Assume that Alice is having an issue with lld and is reporting the issue
to developer Bob. Alice's current directly is /home/alice/work and her
command line is "ld.lld -o foo foo.o ../bar.o". She adds "--reproduce repro"
to the command line and re-run. Then the following text will be produced as
response.txt (notice that the paths are rewritten so that they are
relative to /home/alice/work/repro.)
-o home/alice/work/foo home/alice/work/foo.o home/alice/bar.o
The command also produces the following files by copying inputs.
/home/alice/repro/home/alice/work/foo.o
/home/alice/repro/home/alice/bar.o
Alice zips the directory and send it to Bob. Bob get an archive from Alice
and extract it to his home directory as /home/bob/repro. Now his directory
have the following files.
/home/bob/repro/response.txt
/home/bob/repro/home/alice/work/foo.o
/home/bob/repro/home/alice/bar.o
Bob then re-run the command with these files by the following commands.
cd /home/bob/repro
ld.lld @response.txt
This command will run the linker with the same command line options and
the same input files as Alice's, so it is very likely that Bob will see
the same issue as Alice saw.
Differential Revision: http://reviews.llvm.org/D19737
llvm-svn: 268169
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This exposes the Clang API bindings clang_getChildDiagnostics (which returns a
CXDiagnosticSet) and clang_getNumDiagnosticsInSet / clang_getDiagnosticInSet (to
traverse the CXDiagnosticSet), and adds a helper children property in the Python
Diagnostic wrapper.
Also, this adds the missing OVERLOAD_CANDIDATE (700) cursor type.
Patch by Hanson Wang!
llvm-svn: 268167
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This is the compiler-rt counterpart to D19650.
Differential Revision: http://reviews.llvm.org/D19652
llvm-svn: 268162
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
buildbot.
llvm-svn: 268160
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
In http://reviews.llvm.org/D19100, I introduced a bug: On OS X, existing programs rely on malloc_size() to detect whether a pointer comes from heap memory (malloc_size returns non-zero) or not. We have to distinguish between a zero-sized allocation (where we need to return 1 from malloc_size, due to other binary compatibility reasons, see http://reviews.llvm.org/D19100), and pointers that are not returned from malloc at all.
Differential Revision: http://reviews.llvm.org/D19653
llvm-svn: 268157
|
|
|
|
|
|
| |
r268127 is causing the PS4 bots to fail. Not sure what is causing it, but hopefully this will fix it.
llvm-svn: 268156
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
STL@microsoft.com
llvm-svn: 268153
|
|
|
|
|
|
|
|
|
|
|
| |
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: 268151
|
|
|
|
| |
llvm-svn: 268150
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These would just crash at runtime.
If we ever decide to support rw text segments this should make it easier
to implement as there is now a single point where we notice the problem.
I have tested this with a freebsd buildworld. It found a non pic
assembly file being linked into a .so,. With that fixed, buildworld
finished.
llvm-svn: 268149
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently don't do a good job of diagnosing inputs that would require
dynamic relocations to be applied to read only segments.
I am about to improve lld in that area, but unfortunately we developed
tests that depend on the current behavior.
To make clear what is actually changing, this first patch just updates
tests to not depend on the current behavior. In most cases this just
means using a rw section instead of a ro one, but that unfortunately
changes many addresses.
llvm-svn: 268145
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fix order and style of Boost related notes.
llvm-svn: 268140
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 268138
|
|
|
|
|
|
|
|
| |
set in module flags.
Differential Revision: http://reviews.llvm.org/D19749
llvm-svn: 268137
|
|
|
|
| |
llvm-svn: 268136
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D19751
llvm-svn: 268135
|
|
|
|
| |
llvm-svn: 268134
|
|
|
|
| |
llvm-svn: 268133
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Host and device types must match, otherwise when we pass values back and
forth between the host and device, we will get the wrong result.
This patch makes NVPTXTargetInfo inherit most of its type information
from the host's target info.
Reviewers: rsmith
Subscribers: cfe-commits, jhen, tra
Differential Revision: http://reviews.llvm.org/D19346
llvm-svn: 268131
|
|
|
|
|
|
| |
Makes the new method to set data needed by debug dump.
llvm-svn: 268130
|
|
|
|
|
|
|
|
|
| |
In r268085 "[MS] Make #pragma pack use PragmaStack<> class." there was an
uninitialized variable 'Alignment', which caused the following failure:
http://lab.llvm.org:8011/builders/sanitizer-ppc64be-linux/builds/1758
Zero-initialize the variable to fix this failure.
llvm-svn: 268129
|
|
|
|
|
|
| |
r268127 broke some bots because it needs to specify a darwin target.
llvm-svn: 268128
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch adds a new driver warning -Wincompatible-sdk which notifies the user when they are mismatching the version min options and the sysroot.
The patch works by checking the sysroot (if present) for an SDK name, then matching that against the target platform. In the case of a mismatch it logs a warning.
Reviewers: bob.wilson, rsmith
Subscribers: rsmith, edward-san, cfe-commits
Differential Revision: http://reviews.llvm.org/D18088
llvm-svn: 268127
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This change doesn't impact the behavior of the install-libcxx target which installs whichever libcxx components you build, it just adds a separate target to just install the headers.
llvm-svn: 268124
|
|
|
|
| |
llvm-svn: 268122
|