| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The way prelink used to work was
* The compiler decides if a given section only has relocations that
are know to point to the same DSO. If so, it names it
.data.rel.ro.local<something>.
* The static linker puts all of these together.
* The prelinker program assigns addresses to each library and resolves
the local relocations.
There are many problems with this:
* It is incompatible with address space randomization.
* The information passed by the compiler is redundant. The linker
knows if a given relocation is in the same DSO or not. If could sort
by that if so desired.
* There are newer ways of speeding up DSO (gnu hash for example).
* Even if we want to implement this again in the compiler, the previous
implementation is pretty broken. It talks about relocations that are
"resolved by the static linker". If they are resolved, there are none
left for the prelinker. What one needs to track is if an expression
will require only dynamic relocations that point to the same DSO.
At this point it looks like the prelinker is an historical curiosity.
For example, fedora has retired it because it failed to build for two
releases
(http://pkgs.fedoraproject.org/cgit/prelink.git/commit/?id=eb43100a8331d91c801ee3dcdb0a0bb9babfdc1f)
This patch removes support for it. That is, it stops printing the
".local" sections.
llvm-svn: 253280
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allowing imprecise lane masks in case of more than 32 sub register lanes
lead to some tricky corner cases, and I need another bugfix for another
one. Instead I rather declare lane masks as precise and let tablegen
abort if we do not have enough bits.
This does not affect any in-tree target, even AMDGPU only needs 16 lanes
at the moment. If the 32 lanes turn out to be a problem in the future,
then we can easily change the LaneBitmask typedef to uint64_t.
Differential Revision: http://reviews.llvm.org/D14557
llvm-svn: 253279
|
| |
|
|
| |
llvm-svn: 253278
|
| |
|
|
| |
llvm-svn: 253277
|
| |
|
|
|
|
|
|
|
|
| |
This was regressed in r252656 which wasn't quite NFC. Instead of using a
custom instruction as before, use a pattern to select CONST_I32 for the
global addrs.
Differential Revision: http://reviews.llvm.org/D14587
llvm-svn: 253276
|
| |
|
|
|
|
| |
Spoted via inspection. Test case included.
llvm-svn: 253275
|
| |
|
|
|
|
| |
function template.
llvm-svn: 253274
|
| |
|
|
|
|
|
|
|
|
|
| |
Current versions of SWIG have a bug with Python 3 that causes
Python to assert when iterating over a generator. This patch
skips the test for the right combination of Python version and
SWIG version. I'm attempting to upstream a patch to SWIG to
fix this in a subsequent as-of-yet unreleased version, but
I don't know how long that will take.
llvm-svn: 253273
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to expectedFailureAll ..." with fix
Summary:
- Re-Commit r253106
- Initialize self.debug_info in Base::setUp()
- Fix argument order when calling check_list_or_lambda for compiler
Reviewers: jingham
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D14673
llvm-svn: 253272
|
| |
|
|
| |
llvm-svn: 253271
|
| |
|
|
|
|
| |
This is the second step in making ELF2 the default.
llvm-svn: 253270
|
| |
|
|
|
|
| |
Differential Revision: D14200
llvm-svn: 253269
|
| |
|
|
|
|
| |
Now that we can recognise different vector sizes.
llvm-svn: 253268
|
| |
|
|
| |
llvm-svn: 253267
|
| |
|
|
|
|
| |
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253266
|
| |
|
|
| |
llvm-svn: 253265
|
| |
|
|
| |
llvm-svn: 253264
|
| |
|
|
| |
llvm-svn: 253263
|
| |
|
|
|
|
|
| |
The goal here is to allow us to add skip / xfail decorators
based on SWIG version.
llvm-svn: 253262
|
| |
|
|
|
|
|
|
| |
Python 3 has lots of new debug asserts, and some of these were
firing on PythonFile. Specifically related to handling of invalid
files.
llvm-svn: 253261
|
| |
|
|
|
|
| |
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253260
|
| |
|
|
|
|
|
| |
It could be derived from gnutools::Linker directly but this way makes it
consistent with all the other toolchains around it.
llvm-svn: 253259
|
| |
|
|
|
|
| |
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253258
|
| |
|
|
| |
llvm-svn: 253257
|
| |
|
|
| |
llvm-svn: 253256
|
| |
|
|
|
|
|
|
| |
peephole I added in r250916.
rdar://23559789
llvm-svn: 253255
|
| |
|
|
|
|
|
|
| |
Useful utility function; this wasn't too hard to do before, but also wasn't
obviously discoverable. Make it explicit. Reviewed offline by Michael
Gottesman.
llvm-svn: 253254
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In r253126 we stopped to recompute LCSSA after loop unrolling in all
cases, except the unrolling is full and at least one of the loop exits
is outside the parent loop. In other cases the transformation should not
break LCSSA, but it turned out, that we also call SimplifyLoop on the
parent loop, which might break LCSSA by itself. This fix just triggers
LCSSA recomputation in this case as well.
I'm committing it without a test case for now, but I'll try to invent
one. It's a bit tricky because in an isolated test LoopSimplify would
be scheduled before LoopUnroll, and thus will change the test and hide
the problem.
llvm-svn: 253253
|
| |
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously return type information for a function was derived from
return dag nodes. But this didn't work for dags with != return node. So
instead compute it directly from the LLVM function as is done for imports.
Differential Revision: http://reviews.llvm.org/D14593
llvm-svn: 253251
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: This is to match the new version in the spec
Reviewers: sunfish
Subscribers: jfb, llvm-commits, dschuff
Differential Revision: http://reviews.llvm.org/D14519
llvm-svn: 253249
|
| |
|
|
|
|
| |
Hopefully, this will make the sanitizer build bots happy.
llvm-svn: 253248
|
| |
|
|
|
|
|
| |
part of shrink wrapping.
Phabricator: http://reviews.llvm.org/D13955
llvm-svn: 253247
|
| |
|
|
|
|
|
|
| |
is not nothrow copy constructible. While the compiler is free to elide copy constructor calls in some cases, it is under no obligation to do so, which makes the code a portability concern as well as a security concern.
This checker corresponds to the CERT secure coding rule: https://www.securecoding.cert.org/confluence/display/cplusplus/ERR60-CPP.+Exception+objects+must+be+nothrow+copy+constructible
llvm-svn: 253246
|
| |
|
|
|
|
|
|
|
|
|
| |
On top of that, don't bother allocating and initializing UnwindHelp if
we don't have any funclets. Currently we always use RBP as our frame
pointer when funclets are present, so this change makes it impossible to
come here without any fixed stack objects.
Fixes PR25533.
llvm-svn: 253245
|
| |
|
|
| |
llvm-svn: 253244
|
| |
|
|
|
|
|
|
|
|
| |
target attribute, don't include "negative" subtarget features in the
list of required features. Builtins are positive by default so don't
need this change, but we pull the default list of features from the
command line and so need to make sure that we only include features
that are turned on for code generation in our error.
llvm-svn: 253242
|
| |
|
|
|
|
|
|
|
|
| |
We sometimes create intermediate subtract instructions during
reassociation. Adding these to the worklist to revisit exposes many
additional reassociation opportunities.
Patch by Aditya Nandakumar.
llvm-svn: 253240
|
| |
|
|
|
|
|
|
|
|
|
| |
The content of reserved entries of the .got.plt section is target specific.
In particular, on x86_64 the zero entry holds the address of the .dynamic section,
but on AArch64 the same info is stored in the zero entry of the .got section.
Differential revision: http://reviews.llvm.org/D14703
llvm-svn: 253239
|
| |
|
|
|
|
|
|
|
|
|
| |
We tried to move the insertion point beyond instructions like landingpad
and cleanuppad.
However, we *also* tried to move past catchpad. This is problematic
because catchpad is also a terminator.
This fixes PR25541.
llvm-svn: 253238
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: dsanders
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D14708
llvm-svn: 253225
|
| |
|
|
| |
llvm-svn: 253224
|
| |
|
|
|
|
| |
Add tests to make sure we meet these requirements. Since we met the stricter ones, no code change needed to meet the looser ones.
llvm-svn: 253223
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Function ARMConstantIslands::doInitialJumpTablePlacement() iterates over all
basic blocks in a machine function. It calls `MI = MBB.getLastNonDebugInstr()`
to get the last instruction in each block and then uses MI->getOpcode() to
decide what to do. If getLastNonDebugInstr() returns MBB.end() (for example,
when the block does not contain any instructions) then calling getOpcode() on
this value is incorrect. Avoid this problem by checking the result of
getLastNonDebugInstr().
Differential Revision: http://reviews.llvm.org/D14694
llvm-svn: 253222
|
| |
|
|
|
|
|
|
|
|
| |
Storing the source location of the expression that created a constant pool
entry allows us to emit better error messages if we later discover that the
expression cannot be represented by a relocation.
Differential Revision: http://reviews.llvm.org/D14646
llvm-svn: 253220
|
| |
|
|
|
|
|
|
|
|
|
| |
The MCValue class can store a SMLoc to allow better error messages to be
emitted if an error is detected after parsing. The ARM and AArch64 assembly
parsers were not setting this, so error messages did not have source
information.
Differential Revision: http://reviews.llvm.org/D14645
llvm-svn: 253219
|
| |
|
|
|
|
| |
These passes are not yet enabled by default.
llvm-svn: 253217
|
| |
|
|
|
|
| |
As per comments in 252892 commit.
llvm-svn: 253216
|
| |
|
|
|
|
| |
implementation (__and_, __or_, and __not_) so that we can use them elsewhere in non-C++17 code - for example, in the LFTS
llvm-svn: 253215
|
| |
|
|
|
|
|
| |
Instead, use the constant "mips" since the libraries are already
placed under the multilib's OS suffix.
llvm-svn: 253214
|
| |
|
|
| |
llvm-svn: 253213
|