| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
The crash reproducer was not setting up case sensitivity in the
VFS yaml files, which defaults to true. Make the crash reproducer
explicitly set that flag based on the case sensitivity of the .cache
path where vfs and modules are dumped.
llvm-svn: 265622
|
| |
|
|
| |
llvm-svn: 265621
|
| |
|
|
|
|
|
| |
The previous method to get the size was too simple and could fail for
physical registers.
llvm-svn: 265620
|
| |
|
|
|
|
|
|
| |
Stack is not executable by default in LLD-built executables unless
you pass -z execstack option. So --warn-execstack option does not make
sense to us.
llvm-svn: 265619
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By running TSAN on the ThreadPool unit tests it was discovered that the
threads in the pool can pop tasks off the queue at the same time the
"wait" routine is trying to check if the task queue is empty. This patch
fixes this problem by checking for active threads in the waiter before
checking whether the queue is empty.
Patch by Jason Henline.
Differential Revision: http://reviews.llvm.org/D18811
Reviewers: joker.eph, jlebar
llvm-svn: 265618
|
| |
|
|
|
|
|
|
|
|
| |
Summary: As discussed in D18775.
Reviewers: jyknight
Differential Revision: http://reviews.llvm.org/D18840
llvm-svn: 265617
|
| |
|
|
|
|
|
|
|
| |
This helps us transitioning to -fmodule-name. Once the transitioning is done,
we can remove this alias.
rdar://24800983
llvm-svn: 265616
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18844
llvm-svn: 265615
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18845
llvm-svn: 265614
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
If we don't create the target, don't try to add it as a dependency.
After r265595, we were only creating the SanitizerLintCheck when
`CMAKE_HOST_UNIX` was true.
CMake was emitting a warning:
The dependency target "SanitizerLintCheck" of target "check-ubsan" does not
exist.
llvm-svn: 265613
|
| |
|
|
|
|
| |
Also remove duplicated identifiers from comments.
llvm-svn: 265611
|
| |
|
|
|
|
|
| |
Use MapVector instead of DenseMap for MergeableSpillsMap so it will be
iterated in determined order.
llvm-svn: 265610
|
| |
|
|
| |
llvm-svn: 265609
|
| |
|
|
|
|
|
|
| |
Patch by Nicole Mazzuca <npmazzuca@gmail.com>.
Differential Revision: http://reviews.llvm.org/D18729
llvm-svn: 265608
|
| |
|
|
|
|
|
|
|
| |
Expected<...>
With the llvm change in r265606 this is the matching needed change to the lld
code now that createBinary() is returning Expected<...> .
llvm-svn: 265607
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to produce a real error message
Produce the first specific error message for a malformed Mach-O file describing
the problem instead of the generic message for object_error::parse_failed of
"Invalid data was encountered while parsing the file”. Many more good error
messages will follow after this first one.
This is built on Lang Hames’ great work of adding the ’Error' class for
structured error handling and threading Error through MachOObjectFile
construction. And making createMachOObjectFile return Expected<...> .
So to to get the error to the llvm-obdump tool, I changed the stack of
these methods to also return Expected<...> :
object::ObjectFile::createObjectFile()
object::SymbolicFile::createSymbolicFile()
object::createBinary()
Then finally in ParseInputMachO() in MachODump.cpp the error can
be reported and the specific error message can be printed in llvm-objdump
and can be seen in the existing test case for the existing malformed binary
but with the updated error message.
Converting these interfaces to Expected<> from ErrorOr<> does involve
touching a number of places. To contain the changes for now use of
errorToErrorCode() and errorOrToExpected() are used where the callers
are yet to be converted.
Also there some were bugs in the existing code that did not deal with the
old ErrorOr<> return values. So now with Expected<> since they must be
checked and the error handled, I added a TODO and a comment:
“// TODO: Actually report errors helpfully” and a call something like
consumeError(ObjOrErr.takeError()) so the buggy code will not crash
since needed to deal with the Error.
Note there is one fix also needed to lld/COFF/InputFiles.cpp that goes along
with this that I will commit right after this. So expect lld not to built
after this commit and before the next one.
llvm-svn: 265606
|
| |
|
|
|
|
|
|
| |
Updating dominators for exit-blocks of the unrolled loops is not enough,
as shown in PR27157. The proper way is to update dominators for all
dominance-children of original loop blocks.
llvm-svn: 265605
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on a register bank.
This will be used by the register bank select pass to assign register banks
for generic virtual registers.
This was originally committed as r265573 but broke at least one windows bot.
The problem with the windows bot was that it was using a copy constructor for
the InstructionMappings class and could not synthesize it. Actually, the fact
that this class is not copy constructable is expected and the compiler should
use the move assignment constructor. Marking the problematic assignment
explicitly as using the move constructor has its own problems.
Indeed, with recent clang we get a warning that we may prevent the elision of
the copy by the compiler. A proper fix for both compilers would be to change the
API of getPossibleInstrMapping to take a InstructionMappings as input/output
parameter. This does not feel natural and since GISel is not used on windows
yet, I chose to workaround the problem by not compiling the problematic code on
windows.
llvm-svn: 265604
|
| |
|
|
| |
llvm-svn: 265603
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In the context of http://wg21.link/lwg2445 C++ uses the concept of
'stronger' ordering but doesn't define it properly. This should be fixed
in C++17 barring a small question that's still open.
The code currently plays fast and loose with the AtomicOrdering
enum. Using an enum class is one step towards tightening things. I later
also want to tighten related enums, such as clang's
AtomicOrderingKind (which should be shared with LLVM as a 'C++ ABI'
enum).
This change touches a few lines of code which can be improved later, I'd
like to keep it as NFC for now as it's already quite complex. I have
related changes for clang.
As a follow-up I'll add:
bool operator<(AtomicOrdering, AtomicOrdering) = delete;
bool operator>(AtomicOrdering, AtomicOrdering) = delete;
bool operator<=(AtomicOrdering, AtomicOrdering) = delete;
bool operator>=(AtomicOrdering, AtomicOrdering) = delete;
This is separate so that clang and LLVM changes don't need to be in sync.
Reviewers: jyknight, reames
Subscribers: jyknight, llvm-commits
Differential Revision: http://reviews.llvm.org/D18775
llvm-svn: 265602
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts r265359.
It breaks
- llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast
- llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast
Failing Tests (5):
Clang :: FixIt/fixit-errors.c
Clang :: Preprocessor/init.c
Clang :: Sema/attr-deprecated.c
Clang :: Sema/nullability.c
Clang :: SemaObjC/objcbridge-attribute-arc.m
llvm-svn: 265601
|
| |
|
|
|
|
|
|
| |
This patch add a base script tokenizer class to decouple parsing from
linker script handling. The idea is to use this base class on dynamic
list parsing (--dynamic-list option). No functionality added.
llvm-svn: 265600
|
| |
|
|
| |
llvm-svn: 265599
|
| |
|
|
| |
llvm-svn: 265598
|
| |
|
|
|
|
|
|
| |
Fixes https://llvm.org/bugs/show_bug.cgi?id=27186
Patch reviewed by Richard Smith.
llvm-svn: 265597
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 265596
|
| |
|
|
|
|
| |
`UNIX` is for the target.
llvm-svn: 265595
|
| |
|
|
| |
llvm-svn: 265594
|
| |
|
|
|
|
|
|
|
|
|
| |
conversion to FP
http://reviews.llvm.org/D18405
When the integer value loaded is never used directly as integer we should use VSX
or Floating Point Facility integer loads and avoid extra direct move
llvm-svn: 265593
|
| |
|
|
|
|
|
|
| |
Turns out it was there mostly to prevent Clang asking people to report a bug.
This time we report something to Clang's real diagnostics handler so that it
exits with something approximating a real error and tidies up after itself.
llvm-svn: 265592
|
| |
|
|
| |
llvm-svn: 265591
|
| |
|
|
|
|
|
| |
GCC reports "missing terminating ' character", even when it's being
skipped by preprocessing.
llvm-svn: 265590
|
| |
|
|
|
|
|
|
|
|
|
| |
This makes it possible to distinguish between mesa shaders
and other kernels even in the presence of compute shaders.
Patch By: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Differential Revision: http://reviews.llvm.org/D18559
llvm-svn: 265589
|
| |
|
|
|
|
|
| |
Show that in addition to handling empty .eh_frame, it is merged with any
regular .eh_frame.
llvm-svn: 265588
|
| |
|
|
|
|
|
|
|
|
|
| |
instruction on a register bank. This will be used by the register bank select
pass to assign register banks for generic virtual registers." and the follow-on
commits while I find out a way to fix the win7 bot:
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/19882
This reverts commit r265578, r265581, r265584, and r265585.
llvm-svn: 265587
|
| |
|
|
|
|
|
| |
r265515, this time with the correct fix. file inside DISubprogram is not
mandatory.
llvm-svn: 265586
|
| |
|
|
|
|
|
|
|
| |
InstructionMapping.
The default constructor now uses the regular constructor and the assert
is not valid anymore.
llvm-svn: 265585
|
| |
|
|
|
|
|
|
|
| |
default constructor, instead of relying on the default constructor of
unique_ptr.
Second attempt at fixing the windows bot.
llvm-svn: 265584
|
| |
|
|
| |
llvm-svn: 265583
|
| |
|
|
|
|
|
|
|
| |
helper class.
The default constructor creates invalid (isValid() == false) instances
and may be used to communicate that a mapping was not found.
llvm-svn: 265581
|
| |
|
|
|
|
|
| |
Approved by: ruiu
Differential Revision: http://reviews.llvm.org/D18835
llvm-svn: 265580
|
| |
|
|
|
|
| |
Thanks to Rafael for the suggestion!
llvm-svn: 265579
|
| |
|
|
|
|
|
| |
The previous method to get the size was too simple and could fail for
physical registers.
llvm-svn: 265578
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a DenseSet instead of a DenseMap for constants in LLVMContextImpl.
Last time I looked at this was some time before r223588, when
DenseSet<V> had no advantage over DenseMap<V,char>. After r223588,
there's a 50% memory savings.
This is all mechanical. There were little bits of missing API from
DenseSet so I added the trivial implementations:
- iterator::operator++(int)
- template <class LookupKeyT> insert_as(ValueTy, LookupKeyT)
There should be no functionality change, just reduced memory consumption
(this wasn't on a profile or anything; just a cleanup I stumbled on).
llvm-svn: 265577
|
| |
|
|
|
|
|
| |
The MDStringCache doesn't need to be explicitly cleared before
destruction. The destructor handles it at least as efficiently.
llvm-svn: 265576
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Similar to r265462, TLS related relocations aren't marked as relative,
meaning that we end up generating R_AARCH64_RELATIVE relocations for
them. This change adds TLS relocations that I've seen on my system. With
this patch applied CloudABI's unit testing binary now passes on aarch64.
Approved by: ruiu
Differential Revision: http://reviews.llvm.org/D18816
llvm-svn: 265575
|
| |
|
|
|
|
| |
This should be TableGen'ed at some point.
llvm-svn: 265574
|
| |
|
|
|
|
|
|
|
| |
on a register bank.
This will be used by the register bank select pass to assign register banks
for generic virtual registers.
llvm-svn: 265573
|
| |
|
|
|
|
|
| |
`source_filename` was introduced as a keyword in SVN r264884, but the syntax
file was not updated.
llvm-svn: 265572
|
| |
|
|
|
|
| |
Patch by Erik Pilkington!
llvm-svn: 265571
|