| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
broken symlinks.
This commit adds a unit test to the file system tests to verify the behavior of
the directory iterator and recursive directory iterator with broken symlinks.
This test is Unix only.
llvm-svn: 297669
|
|
|
|
|
|
| |
I was writing against an earlier branch and Volkan had already fixed this.
llvm-svn: 297668
|
|
|
|
|
|
|
|
|
|
|
|
| |
rL230225 made the assumption that only the lower 32-bits of an MMX register load is used as a shift value, when in fact the whole 64-bits are reloaded and treated as a i64 to determine the shift value.
This patch reverts rL230225 to ensure that the whole 64-bits of memory are folded and ensures that the upper 32-bit are zero'd for cases where the shift value has come from a scalar source.
Found during fuzz testing.
Differential Revision: https://reviews.llvm.org/D30833
llvm-svn: 297667
|
|
|
|
|
|
|
| |
Otherwise they won't be legalized or selected, causing instruction selection to
fail horribly.
llvm-svn: 297666
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not the other.
Summary: This is useful in some platforms where one of these signals is special.
Reviewers: kubamracek, kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D30783
llvm-svn: 297665
|
|
|
|
|
|
| |
I am leaving the code in clang which filters mxcsr from the clobber list because that is still technically correct and will be useful again when the MXCSR register is reintroduced.
llvm-svn: 297664
|
|
|
|
| |
llvm-svn: 297663
|
|
|
|
| |
llvm-svn: 297662
|
|
|
|
|
|
| |
The issues was just a missing REQUIRES in the test.
llvm-svn: 297661
|
|
|
|
|
|
| |
Hopefully, this will make sense with a forthcoming patch. If not, we can move these back.
llvm-svn: 297660
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't actually pretend that 0 is valid for address space 0.
r295877 added a workaround to stop allocating user objects
there, so we can use 0 as the invalid pointer.
Some of the tests seemed to be using private as the non-0 null
test address space, so add copies using local to make sure
this is still stressed.
llvm-svn: 297659
|
|
|
|
| |
llvm-svn: 297658
|
|
|
|
|
|
|
| |
This reverts commit r297624.
It was failing on the bots.
llvm-svn: 297657
|
|
|
|
|
|
| |
Make description of debugCounters a little clearer
llvm-svn: 297656
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change ASTFileSignature from a random 32-bit number to the hash of the
PCM content.
- Move definition ASTFileSignature to Basic/Module.h so Module and
ASTSourceDescriptor can use it.
- Change the signature from uint64_t to std::array<uint32_t,5>.
- Stop using (saving/reading) the size and modification time of PCM
files when there is a valid SIGNATURE.
- Add UNHASHED_CONTROL_BLOCK, and use it to store the SIGNATURE record
and other records that shouldn't affect the hash. Because implicit
modules reuses the same file for multiple levels of -Werror, this
includes DIAGNOSTIC_OPTIONS and DIAG_PRAGMA_MAPPINGS.
This helps to solve a PCH + implicit Modules dependency issue: PCH files
are handled by the external build system, whereas implicit modules are
handled by internal compiler build system. This prevents invalidating a
PCH when the compiler overwrites a PCM file with the same content
(modulo the diagnostic differences).
Design and original patch by Manman Ren!
llvm-svn: 297655
|
|
|
|
|
|
| |
Added a static_assert to catch this issue at compile time.
llvm-svn: 297654
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds tail call support to the MachineOutliner pass. This allows
the outliner to insert jumps rather than calls in areas where tail calling is
possible. Outlined tail calls include the return or terminator of the basic
block being outlined from.
Tail call support allows the outliner to take returns and terminators into
consideration while finding candidates to outline. It also allows the outliner
to save more instructions. For example, in the X86-64 outliner, a tail called
outlined function saves one instruction since no return has to be inserted.
llvm-svn: 297653
|
|
|
|
|
|
|
|
| |
source optimizations to break execution dependencies.
For AVX-512 we force the input to zero if the input is undef or the mask is all ones to break an execution dependency. This patch brings the same behavior to AVX2.
llvm-svn: 297652
|
|
|
|
|
|
|
|
| |
We were already forcing undef inputs to become a zero vector, this now catches an all ones mask too.
Ideally we'd use undef and let execution dep fix handle picking the best register/clearance for the undef, but I don't think it can handle the early clobber today.
llvm-svn: 297651
|
|
|
|
|
|
|
| |
The typical use is a library vote function which
compares to 0. Fold the user condition into the intrinsic.
llvm-svn: 297650
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D30738
llvm-svn: 297649
|
|
|
|
|
|
|
|
|
|
|
|
| |
it on extend/trunc/round operations.
Currently we don't enforce that ISD::ANY_EXTEND, ZERO_EXTEND, SIGN_EXTEND, TRUNC, FP_ROUND, FP_EXTEND have the same number of elements(including scalar) between their input and output. Though we have them documented as such. Up until a few months ago x86 created nodes that violated this rule. That's all been fixed now, and we should enforce the rule going forward.
In order to do this we need to allow SDTCisSameNumEltsAs to support scalar types and not enforce being a vector. If one type is scalar we will force the other type to also be scalar.
Differential Revision: https://reviews.llvm.org/D30878
llvm-svn: 297648
|
|
|
|
| |
llvm-svn: 297646
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch from James Henderson.
If a user has a long link, e.g. due to a large LTO link, they do not
wish to run it and find that it failed because there was a mistake in
their command-line, after they waited for some significant amount of
time. This change adds some basic checking of the linker output file
path, which is run shortly after parsing the command-line and linker
script. An error is emitted if LLD cannot write to the specified path.
Differential Revision: https://reviews.llvm.org/D30449
llvm-svn: 297645
|
|
|
|
|
|
|
|
| |
and use have it use SmallVectorImpl.
There is nothing specific about allocas in this function.
llvm-svn: 297643
|
|
|
|
|
|
|
|
| |
The only valid values for scale immediate of scatter/gather builtins are 1, 2, 4, or 8. This patch enforces this in the frontend otherwise we generate invalid instruction encodings in the backend.
Differential Revision: https://reviews.llvm.org/D30875
llvm-svn: 297642
|
|
|
|
| |
llvm-svn: 297641
|
|
|
|
| |
llvm-svn: 297640
|
|
|
|
| |
llvm-svn: 297639
|
|
|
|
|
|
|
|
|
| |
Fix a bug introduced in r297313 which caused them to resolve to the end
of the ELF header in PIEs and DSOs.
Differential Revision: https://reviews.llvm.org/D30843
llvm-svn: 297638
|
|
|
|
| |
llvm-svn: 297637
|
|
|
|
|
|
|
| |
The value_type is no longer a struct, it's a class whose
members you have to access via a method.
llvm-svn: 297635
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were some issues in the implementation of enumerate()
preventing it from being used in various contexts. These were
all related to the fact that it did not supporter llvm's
iterator_facade_base class. So this patch adds support for that
and additionally exposes a new helper method to_vector() that
will evaluate an entire range and store the results in a
vector.
Differential Revision: https://reviews.llvm.org/D30853
llvm-svn: 297633
|
|
|
|
| |
llvm-svn: 297632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add fuzzy SymbolIndex, where identifier needn't match exactly.
The purpose for this is global autocomplete in clangd. The query will be a
partial identifier up to the cursor, and the results will be suggestions.
It's in include-fixer because:
- it handles SymbolInfos, actually SymbolIndex is exactly the right interface
- it's a good harness for lit testing the fuzzy YAML index
- (Laziness: we can't unit test clangd until reorganizing with a tool/ dir)
Other questionable choices:
- FuzzySymbolIndex, which just refines the contract of SymbolIndex. This is
an interface to allow extension to large monorepos (*cough*)
- an always-true safety check that Identifier == Name is removed from
SymbolIndexManager, as it's not true for fuzzy matching
- exposing -db=fuzzyYaml from include-fixer is not a very useful feature, and
a non-orthogonal ui (fuzziness vs data source). -db=fixed is similar though.
Reviewers: bkramer
Subscribers: cfe-commits, mgorny
Differential Revision: https://reviews.llvm.org/D30720
llvm-svn: 297630
|
|
|
|
| |
llvm-svn: 297629
|
|
|
|
|
|
|
|
| |
setters using the block type information that's obtained from the property
rdar://12604235
llvm-svn: 297628
|
|
|
|
|
|
|
|
| |
Patch by Zoltan Gera!
Differential Revision: https://reviews.llvm.org/D30831
llvm-svn: 297627
|
|
|
|
|
|
|
|
| |
Also has the side-effect of fixing the build on systems with glibc < 2.12
https://reviews.llvm.org/D30844
llvm-svn: 297626
|
|
|
|
|
|
|
|
| |
Previously we could round-trip type records from PDB -> Yaml ->
PDB, but for symbols we could only go from PDB -> Yaml. This
completes the round-tripping for symbols as well.
llvm-svn: 297625
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If raw_fd_ostream is constructed with the path of "-", it claims
ownership of the stdout file descriptor. This means that it closes
stdout when it is destroyed. If there are multiple users of
raw_fd_ostream wrapped around stdout, then a crash can occur because
of operations on a closed stream.
An example of this would be running something like "clang -S -o - -MD
-MF - test.cpp". Alternatively, using outs() (which creates a local
version of raw_fd_stream to stdout) anywhere combined with such a
stream usage would cause the crash.
The fix duplicates the stdout file descriptor when used within
raw_fd_ostream, so that only that particular descriptor is closed when
the stream is destroyed.
Patch by James Henderson!
llvm-svn: 297624
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D30860
llvm-svn: 297623
|
|
|
|
| |
llvm-svn: 297622
|
|
|
|
|
|
|
| |
We used to hit an unreachable in getRegBankFromRegClass when dealing with the
stack pointer. This commit adds support for the GPRsp reg class.
llvm-svn: 297621
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions
Given that we have already explicitly stated in the qualifier that the
expression is __unaligned, it makes little sense to diagnose that the address
of the packed member may not be aligned.
Differential Revision: https://reviews.llvm.org/D30884
llvm-svn: 297620
|
|
|
|
|
|
|
|
|
| |
It looks like on some host-triples the result of a valist related expr can be
a LazyCompoundVal. Handle that case in the check.
Patch by Abramo Bagnara!
llvm-svn: 297619
|
|
|
|
|
|
| |
http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/49970
llvm-svn: 297618
|
|
|
|
|
|
|
|
| |
sys::fs::permissions to set them.
Patch by James Henderson.
llvm-svn: 297617
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This adds support for building libc++ tests when targetting android. The
tests are still not passing due to several other problems, but this way
we can at least build them.
Reviewers: eugene, EricWF, danalbert
Subscribers: srhines, lldb-commits
Differential Revision: https://reviews.llvm.org/D30737
llvm-svn: 297616
|
|
|
|
|
|
| |
I have got my boolean logic incorrect. Sorry about the spam.
llvm-svn: 297615
|