| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a series of patches to enable adding of machine sched
models for ARM processors easier and compact. They define new
sched-readwrites for groups of ARM instructions. This has been
missing so far, and as a consequence, machine scheduler models
for individual sub-targets have tended to be larger than they
needed to be.
The current patch focuses on floating-point instructions.
Reviewers: Diana Picus (rovka), Renato Golin (rengolin)
Differential Revision: https://reviews.llvm.org/D28194
llvm-svn: 292825
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add a new load command LC_BUILD_VERSION. It is a generic version of
LC_*_VERSION_MIN load_command used on Apple platforms. Instead of having
a seperate load command for each platform, LC_BUILD_VERSION is recording
platform info as an enum. It also records SDK version, min_os, and tools
that used to build the binary.
rdar://problem/29781291
Reviewers: enderby
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29044
llvm-svn: 292824
|
| |
|
|
| |
llvm-svn: 292821
|
| |
|
|
|
|
| |
Can't for fma/mad since it seems they can't have flags currently.
llvm-svn: 292818
|
| |
|
|
|
|
| |
Addendum to r292575
llvm-svn: 292817
|
| |
|
|
|
|
| |
There are no scalar FP types that can be extended.
llvm-svn: 292816
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D28967
llvm-svn: 292815
|
| |
|
|
| |
llvm-svn: 292814
|
| |
|
|
| |
llvm-svn: 292813
|
| |
|
|
| |
llvm-svn: 292812
|
| |
|
|
| |
llvm-svn: 292803
|
| |
|
|
|
|
| |
Use ASSERT_* instead of EXPECT_* for error condition.
llvm-svn: 292798
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Next round of extra tests for MSSA.
I have a prototype invariant.group handling implementation
that fixes all the FIXMEs, and I think it will be
easier to see what is the difference if I firstly
post this, and then only fix fixits.
Reviewers: george.burgess.iv, dberlin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D29022
llvm-svn: 292797
|
| |
|
|
| |
llvm-svn: 292793
|
| |
|
|
| |
llvm-svn: 292792
|
| |
|
|
|
|
|
|
|
| |
Vector immediate load instructions should have the isAsCheapAsAMove, isMoveImm
and isReMaterializable flags set. With them, these instruction will get
hoisted out of loops.
Review: Ulrich Weigand
llvm-svn: 292790
|
| |
|
|
| |
llvm-svn: 292788
|
| |
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D28863
llvm-svn: 292785
|
| |
|
|
|
|
| |
Match generic mul behaviour so that <X x i64> multiply and muldq/muludq pattern act the same
llvm-svn: 292784
|
| |
|
|
| |
llvm-svn: 292783
|
| |
|
|
|
|
| |
PMULDQ/PMULUDQ
llvm-svn: 292782
|
| |
|
|
|
|
|
|
|
|
|
| |
bots ever since d0k fixed the CHECK lines so that it did something at
all.
It isn't actually testing SCEV directly but LSR, so move it into LSR and
the x86-specific tree of tests that already exists there. Target
dependence is common and unavoidable with the current design of LSR.
llvm-svn: 292774
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
invalidation of deleted functions in GlobalDCE.
This was always testing a bug really triggered in GlobalDCE. Right now
we have analyses with asserting value handles into IR. As long as those
remain, when *deleting* an IR unit, we cannot wait for the normal
invalidation scheme to kick in even though it was designed to work
correctly in the face of these kinds of deletions. Instead, the pass
needs to directly handle invalidating the analysis results pointing at
that IR unit.
I've tought the Inliner about this and this patch teaches GlobalDCE.
This will handle the asserting VH case in the existing test as well as
other issues of the same fundamental variety. I've moved the test into
the GlobalDCE directory and added a comment explaining what is going on.
Note that we cannot simply require LVI here because LVI is too lazy.
llvm-svn: 292773
|
| |
|
|
|
|
|
|
| |
While this is covered by a clang test case, we should have something
locally to LLVM that immediately checks the inliner doesn't leave
analyses to dangling IR bodies.
llvm-svn: 292772
|
| |
|
|
|
|
|
|
|
| |
It seems it appeared during a rebase (diff 6) of D27338
and went unnoticed.
Thanks to David Majnemer for noticing.
llvm-svn: 292771
|
| |
|
|
|
|
|
|
|
|
| |
clearing its body. This is essential to avoid triggering asserting value
handles in analyses on the function's body.
I'm working on a test case for this behavior in LLVM, but Clang has
a great one that managed to trigger this on all of the bots already.
llvm-svn: 292770
|
| |
|
|
|
|
|
|
|
|
|
|
| |
become unavailable.
The AssumptionCache is now immutable but it still needs to respond to
DomTree invalidation if it ended up caching one.
This lets us remove one of the explicit invalidates of LVI but the
other one continues to avoid hitting a latent bug.
llvm-svn: 292769
|
| |
|
|
| |
llvm-svn: 292767
|
| |
|
|
|
|
| |
Add support for handling shuffles with scalar_to_vector(0)
llvm-svn: 292766
|
| |
|
|
|
|
| |
Dependency on TestBinaries was erroneously removed on r292735.
llvm-svn: 292765
|
| |
|
|
| |
llvm-svn: 292764
|
| |
|
|
| |
llvm-svn: 292763
|
| |
|
|
| |
llvm-svn: 292762
|
| |
|
|
|
|
| |
The colon is important.
llvm-svn: 292761
|
| |
|
|
|
|
|
|
| |
Add the `--strip-underscore` option to llvm-cxxfilt to strip the leading
underscore. This is useful for when dealing with targets which add a
leading underscore.
llvm-svn: 292759
|
| |
|
|
|
|
| |
https://llvm.org/bugs/show_bug.cgi?id=31672
llvm-svn: 292758
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new PM's inliner.
The bug happens when we refine an SCC after having computed a proxy for
the FunctionAnalysisManager, and then proceed to compute fresh analyses
for functions in the *new* SCC using the manager provided by the old
SCC's proxy. *And* when we manage to mutate a function in this new SCC
in a way that invalidates those analyses. This can be... challenging to
reproduce.
I've managed to contrive a set of functions that trigger this and added
a test case, but it is a bit brittle. I've directly checked that the
passes run in the expected ways to help avoid the test just becoming
silently irrelevant.
This gets the new PM back to passing the LLVM test suite after the PGO
improvements landed.
llvm-svn: 292757
|
| |
|
|
|
|
| |
trace its behavior.
llvm-svn: 292756
|
| |
|
|
|
|
|
|
|
|
| |
logging pass and analyses information.
This is particularly useful when filtering the debug log for
a particular function or loop where something got inappropriately
cached.
llvm-svn: 292755
|
| |
|
|
|
|
|
|
| |
I noticed that this function got called twice in compiled code to create succ_begin and succ_end iterators. Adding this directive helps the compiler share the call.
Ideally we'd just make this method available for inlining since its quite simple, but the current header file arrangements don't allow that.
llvm-svn: 292754
|
| |
|
|
|
|
|
|
| |
that are duplicated for both const and non-const. NFC
Similar is already done for other methods in BasicBlock.
llvm-svn: 292753
|
| |
|
|
| |
llvm-svn: 292752
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28439
llvm-svn: 292749
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to set BINARY_DIR to: ${CMAKE_BINARY_DIR}/lib/Fuzzer/test , so the dll
is placed in the same directory than the test LLVMFuzzer-DSOTest, and is found
when executing that test.
As we are using CMAKE_CXX_CREATE_SHARED_LIBRARY to link the dll, we can't modify
the output directory for the import library. It will be created in the same
directory than the dll (in BINARY_DIR), no matter which value we set to
LIBRARY_DIR. So, if we set LIBRARY_DIR to a different directory than BINARY_DIR,
when linking LLVMFuzzer-DSOTest, cmake will look for the import library
LLVMFuzzer-DSO1.lib in LIBRARY_DIR, and won't find it, since it was created in
BINARY_DIR. So, for Windows, we need that LIBRARY_DIR and BINARY_DIR are the
same directory.
Differential Revision: https://reviews.llvm.org/D27870
llvm-svn: 292748
|
| |
|
|
|
|
|
|
|
|
|
| |
Don't check for InFuzzingThread() on Windows, since the AlarmHandler() is
always executed by a different thread from a thread pool.
If we don't add these changes, the alarm handler will never execute.
Note that we decided to ignore possible problem in the synchronization.
Differential Revision: https://reviews.llvm.org/D28723
llvm-svn: 292746
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28709
llvm-svn: 292745
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I add 2 changes to make the tests work on 32 bits and on 64 bits.
I change the size allocated to 0x20000000 and add the flag: -rss_limit_mb=300.
Otherwise the output for 32 bits and 64 bits is different.
For 64 bits the value 0xff000000 doesn't exceed kMaxAllowedMallocSize.
For 32 bits, kMaxAllowedMallocSize is set to 0xc0000000, so the call to
Allocate() will fail earlier printing "WARNING: AddressSanitizer failed to
allocate ..." , and wont't call malloc hooks.
So, we need to consider a size smaller than 2GB (so malloc doesn't fail on
32bits) and greater that the value provided by -rss_limit_mb.
Because of that I use: 0x20000000.
Differential Revision: https://reviews.llvm.org/D28706
llvm-svn: 292744
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix libFuzzer when setting -close_fd_mask to a non-zero value.
In previous implementation, libFuzzer closes the file descriptors for
stdout/stderr. This has some disavantages:
For `fuzzer-fdmask.test`, we write directly to stdout and stderr using the
file streams stdout and stderr, after the file descriptors are closed, which is
undefined behavior. In Windows, in particular, this was making the test fail.
Also, if we close stdout and we open a new file in libFuzzer, we get the file
descriptor 1, which could generate problem if some code assumes file descriptors
refers to stdout and works directly writing to the file descriptor 1, but it
will be writing to the opened file (for example using std::cout).
Instead of closing the file descriptors, I redirect the output to /dev/null on
linux and nul on Windows.
Differential Revision: https://reviews.llvm.org/D28718
llvm-svn: 292743
|
| |
|
|
|
|
|
|
|
| |
This changes is necessary on Windows, where libraries doesn't include the prefix
"lib".
Differential Revision: https://reviews.llvm.org/D28710
llvm-svn: 292742
|
| |
|
|
|
|
|
|
|
| |
Update `ListFilesInDirRecursive` implementation on Windows to have the same
behavior than for Posix, when the directory doesn't exists and when it is empty.
Differential Revision: https://reviews.llvm.org/D28711
llvm-svn: 292741
|