| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Allow the same types that we allow for loads.
llvm-svn: 296108
|
|
|
|
|
|
|
| |
In LLVM r296049, IPDBSession::getGlobalScope lost its constness. Adjust
the unittest to account for that.
llvm-svn: 296107
|
|
|
|
|
|
| |
Corresponding test.
llvm-svn: 296106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the MIPS disassembler consistent with the other targets in returning
a Size of zero when the input buffer cannot contain an instruction due
to it's size. Previously it reported the minimum instruction size when
it failed due to the buffer not being big enough for an instruction
causing llvm-objdump to crash when disassembling all sections.
Reviewers: slthakur
Differential Revision: https://reviews.llvm.org/D29984
llvm-svn: 296105
|
|
|
|
|
|
| |
This reverts commit r296103 because the test broke on one of the bots. Sorry!
llvm-svn: 296104
|
|
|
|
|
|
| |
Allow the same types that we allow for loads.
llvm-svn: 296103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current pattern for setting bits in range is typically:
Mask |= APInt::getBitsSet(MaskSizeInBits, LoPos, HiPos);
Which can be particularly slow for large APInts (MaskSizeInBits > 64) as they require the allocation memory for the temporary variable.
This is one of the key compile time issues identified in PR32037.
This patch adds the APInt::setBits() helper method which avoids the temporary memory allocation completely, this first implementation uses setBit() internally instead but already significantly reduces the regression in PR32037 (~10% drop). Additional optimization may be possible.
I investigated whether there is need for APInt::clearBits() and APInt::flipBits() equivalents but haven't seen these patterns to be particularly common, but reusing the code would be trivial.
Differential Revision: https://reviews.llvm.org/D30265
llvm-svn: 296102
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: QPassSignals package allows lldb client to tell lldb-server to ignore certain types of signals and re-inject them back to inferior without stopping execution.
Reviewers: jmajors, labath
Subscribers: danalbert, srhines, emaste, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D30286
Author: Eugene Zemtsov <ezemtsov@google.com>
llvm-svn: 296101
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D27048
llvm-svn: 296100
|
|
|
|
|
|
|
|
|
|
|
| |
type-qualifier
Fix an assertion that is hit when a redeclaration with differing types only
differs in the unaligned type-qualifier.
Differential Revision: https://reviews.llvm.org/D29986
llvm-svn: 296099
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: silvas, rizsotto.mailinglist, sergio.martins
Reviewed By: rizsotto.mailinglist
Differential Revision: https://reviews.llvm.org/D30252
llvm-svn: 296098
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Feature is used for producing static-linked PIE executables
(https://gcc.gnu.org/ml/gcc/2015-06/msg00008.html)
And was implemented in GNU ld https://gcc.gnu.org/ml/gcc/2015-08/msg00099.html
I also found it in linux kernel build system,
though I think that x86/x64 bootloader does not really rely on it.
Seems it used for PPC though.
Differential revision: https://reviews.llvm.org/D30258
llvm-svn: 296097
|
|
|
|
|
|
| |
This was missed in r293110.
llvm-svn: 296096
|
|
|
|
| |
llvm-svn: 296095
|
|
|
|
|
|
| |
opcodes into separate packed and scalar opcodes. This is more consistent with the rest of the ISD opcodes. NFC
llvm-svn: 296094
|
|
|
|
| |
llvm-svn: 296093
|
|
|
|
|
|
| |
next release is 5.0 not 4.1
llvm-svn: 296092
|
|
|
|
|
|
|
|
| |
intrinsics with select.
Clang has been emitting cltz intrinsics for a while now.
llvm-svn: 296091
|
|
|
|
|
|
| |
file since that's their feature.
llvm-svn: 296090
|
|
|
|
| |
llvm-svn: 296089
|
|
|
|
| |
llvm-svn: 296088
|
|
|
|
|
|
|
|
| |
Looks like it is not allowed to have an .rst file in this directory
that does not belong to a document tree. I don't know why. This patch
adds a file back to fix a bot.
llvm-svn: 296087
|
|
|
|
|
|
|
| |
C++11.rst is removed because LLD now follows the usual coding style
of the LLVM project.
llvm-svn: 296086
|
|
|
|
|
|
|
|
|
|
|
| |
__ehdr_start should be pointing to ELF file headers, not program
headers.
This is a reland of D30319.
Differential Revision: https://reviews.llvm.org/D30323
llvm-svn: 296085
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
acquired only after checking if the ivar shared pointer was already
filled in. But when I assign an UnwindPlan object to the shared
pointer, I assign an empty object and then fill it in. That leaves
a window where another thread could get the shared pointer to the
empty (but quickly being-filled-in) object and lead to a crash.
Also two changes from Greg for correctness on the TestMultipleDebuggers
test case.
<rdar://problem/30564102>
llvm-svn: 296084
|
|
|
|
|
|
| |
This reverts commit r296079.
llvm-svn: 296083
|
|
|
|
|
|
|
|
|
|
|
| |
The runtime support is provided directly by the Fuchsia system C
library.
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D30238
llvm-svn: 296082
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Fuchsia ABI defines slots from the thread pointer where the
stack-guard value for stack-protector, and the unsafe stack pointer
for safe-stack, are stored. This parallels the Android ABI support.
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D30237
llvm-svn: 296081
|
|
|
|
|
|
|
|
| |
clang will generate IR like this for input using packed bitfields;
very simple semantically, but it's a bit tricky to actually
generate good code.
llvm-svn: 296080
|
|
|
|
|
|
|
|
|
| |
__ehdr_start should be pointing to ELF file headers, not program
headers.
Differential Revision: https://reviews.llvm.org/D30319
llvm-svn: 296079
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D21675
llvm-svn: 296078
|
|
|
|
|
|
|
| |
The x86 backend has a special case for load+xor+store, which isn't really
what this is trying to test.
llvm-svn: 296077
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this is to fix a bug in modules where we'd merge
FunctionDecls that differed in their pass_object_size attributes. Since
we can overload on the presence of pass_object_size attributes, this
behavior is incorrect.
We don't represent `N` in `pass_object_size(N)` as part of
ExtParameterInfo, since it's an error to overload solely on the value of
N. This means that we have a bug if we have two modules that declare
functions that differ only in their pass_object_size attrs, like so:
// In module A, from a.h
void foo(char *__attribute__((pass_object_size(0))));
// In module B, from b.h
void foo(char *__attribute__((pass_object_size(1))));
// In module C, in main.c
#include "a.h"
#include "b.h"
At the moment, we'll merge the foo decls, when we should instead emit a
diagnostic about an invalid overload. We seem to have similar (silent)
behavior if we overload only on the return type of `foo` instead; I'll
try to find a good place to put a FIXME (or I'll just file a bug) soon.
This patch also fixes a bug where we'd not output the proper extended
parameter info for declarations with pass_object_size attrs.
llvm-svn: 296076
|
|
|
|
|
|
| |
Looks like all documents must be in a doctree.
llvm-svn: 296075
|
|
|
|
| |
llvm-svn: 296074
|
|
|
|
|
|
|
|
| |
SpecialMemberDeletionInfo.
To simplify this, convert SpecialMemberOverloadResult to a value type.
llvm-svn: 296073
|
|
|
|
| |
llvm-svn: 296072
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
NetBSD 7.99.62 introduced Debug Registers interface similar to the FreeBSD one.
This interface will land NetBSD-8.0.
Introduce support for this interface in Register Context NetBSD x86_64 unconditionally as older versions of NetBSD will not be supported.
This change allows to reduce diff with other ports and remove local copy of the RegisterInfos_x86_64.h content.
NetBSD Register Context for 32-bit x86 support will be added later.
Sponsored by <The NetBSD Foundation>
Reviewers: labath, joerg, emaste, clayborg
Reviewed By: labath, clayborg
Subscribers: #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D30287
llvm-svn: 296071
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
NetBSD 8.0 will ship with accept4(2) in libc wrapping paccept(2).
This change reduces needless difference with other platforms.
Older versions of NetBSD will not be supported.
No functional change.
Sponsored by <The NetBSD Foundation>
Reviewers: joerg, emaste, labath, clayborg
Reviewed By: emaste, labath, clayborg
Subscribers: #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D30288
llvm-svn: 296070
|
|
|
|
|
|
|
|
| |
LoopUnswitch/simplify-with-nonvalness.ll is the test case for this.
The LIC has 2 users and deleting the 1st user when it can be simplified
invalidated the iterator for the 2nd user.
llvm-svn: 296069
|
|
|
|
|
|
| |
specification for an implicit special member.
llvm-svn: 296068
|
|
|
|
|
|
| |
some of the repetition.
llvm-svn: 296067
|
|
|
|
|
|
|
|
|
|
|
| |
compiler is run in a mode where the default C++ standard is newer than C++03.
The reason is because one of the warnings checked is only produced when the
compiler is using C++03 or lower.
This change fixes this problem as well as adds explicit run lines to run the
test in C++03 and C++11 modes.
llvm-svn: 296066
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is based on Justin's testcase and checking whether BFI is not populated
in case hotness is off.
This is a patch meant on top of Justin's patch to enable Machine opt-remarks
in the
AsmPrinter (http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170130/426595.html)
Differential Revision: https://reviews.llvm.org/D29837
llvm-svn: 296065
|
|
|
|
| |
llvm-svn: 296064
|
|
|
|
|
|
|
|
|
| |
builtin"
It caused PR31864. There is a patch in progress to fix that, but let's
revert in the meantime.
llvm-svn: 296063
|
|
|
|
|
|
|
|
|
| |
Fix the fact that we don't assign profile counters to constructors in
classes with virtual bases, or constructors with variadic parameters.
Differential Revision: https://reviews.llvm.org/D30131
llvm-svn: 296062
|
|
|
|
|
|
| |
Forgot to commit this with the change.
llvm-svn: 296061
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Splitting critical edges when one of the source edges is an indirectbr
is hard in general (because it requires changing the memory the indirectbr
reads). But if a block only has a single indirectbr predecessor (which is
the common case), we can simulate splitting that edge by splitting
the destination block, and retargeting the *direct* branches.
This is motivated by the use of computed gotos in python 2.7: PyEval_EvalFrame()
ends up using an indirect branch with ~100 successors, and passing a constant to
each of those. Since MachineSink can't break indirect critical edges on demand
(and doing this in MIR doesn't look feasible), this causes us to emit about ~100
defs of registers containing constants, which we in the predecessor block, where
only one of those constants is used in each successor. So, at each computed goto,
we needlessly spill about a 100 constants to stack. The end result is that a
clang-compiled python interpreter can be about ~2.5x slower on a simple python
reduction loop than a gcc-compiled interpreter.
Differential Revision: https://reviews.llvm.org/D29916
llvm-svn: 296060
|
|
|
|
|
|
| |
While there, switch to the explicit ctor.
llvm-svn: 296059
|