| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 210041
|
| |
|
|
|
|
| |
Patch by Rahul Jain.
llvm-svn: 210040
|
| |
|
|
| |
llvm-svn: 210039
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instrumentation passes now use attributes
address_safety/thread_safety/memory_safety which are added by Clang frontend.
Clang parses the blacklist file and adds the attributes accordingly.
Currently blacklist is still used in ASan module pass to disable instrumentation
for certain global variables. We should fix this as well by collecting the
set of globals we're going to instrument in Clang and passing it to ASan
in metadata (as we already do for dynamically-initialized globals and init-order
checking).
This change also removes -tsan-blacklist and -msan-blacklist LLVM commandline
flags in favor of -fsanitize-blacklist= Clang flag.
llvm-svn: 210038
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instrumentation passes now use attributes
address_safety/thread_safety/memory_safety which are added by Clang frontend.
Clang parses the blacklist file and adds the attributes accordingly.
Currently blacklist is still used in ASan module pass to disable instrumentation
for certain global variables. We should fix this as well by collecting the
set of globals we're going to instrument in Clang and passing it to ASan
in metadata (as we already do for dynamically-initialized globals and init-order
checking).
This change also removes -tsan-blacklist and -msan-blacklist LLVM commandline
flags in favor of -fsanitize-blacklist= Clang flag.
llvm-svn: 210037
|
| |
|
|
|
|
|
|
| |
See http://reviews.llvm.org/D3904 for details.
Change by Scott Graham.
llvm-svn: 210036
|
| |
|
|
|
|
|
|
| |
See http://reviews.llvm.org/D3944 for more details.
Change by Zachary Turner.
llvm-svn: 210035
|
| |
|
|
| |
llvm-svn: 210034
|
| |
|
|
| |
llvm-svn: 210033
|
| |
|
|
|
|
|
|
|
|
|
| |
When lowering a ISD::BRCOND into a test+branch, make sure that we
always use the correct condition code to emit the test operation.
This fixes PR19858: "i8 checked mul is wrong on x86".
Patch by Keno Fisher!
llvm-svn: 210032
|
| |
|
|
| |
llvm-svn: 210031
|
| |
|
|
|
|
| |
to avoid a null function call in cout/cerr constructors
llvm-svn: 210030
|
| |
|
|
|
|
|
| |
We already had a function for checking this, we were just using it only in
specialized cases.
llvm-svn: 210029
|
| |
|
|
| |
llvm-svn: 210028
|
| |
|
|
| |
llvm-svn: 210027
|
| |
|
|
|
|
|
| |
function parameter. One of our existing test cases was XFAILed because
of this. This fixes the issue and un-XFAILs the test.
llvm-svn: 210026
|
| |
|
|
|
|
| |
Patch by Jack Howarth!
llvm-svn: 210025
|
| |
|
|
|
|
| |
The alternative (writing coverage at process exit) is nearly useless there.
llvm-svn: 210024
|
| |
|
|
|
|
| |
MSan is no longer an "early prototype".
llvm-svn: 210023
|
| |
|
|
|
|
| |
Looks like it was only used by dejagnu and is now dead.
llvm-svn: 210022
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the load/store optimizer.
Add tests for the following transform:
add x8, x8, #16
...
str X, [x8]
->
str X, [x8, #16]!
with X being either w0, x0, s0, d0 or q0.
llvm-svn: 210021
|
| |
|
|
| |
llvm-svn: 210020
|
| |
|
|
|
|
|
|
|
|
|
| |
Other tests in this directory use this type, so it's probably copypasta from
there.
(test_buf only forwards to the superclass in all tests where it's used though,
so I wonder if it can be replaced with just using filebuf / wfilebuf
everywhere?)
llvm-svn: 210019
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the load/store optimizer.
Add tests for the following transform:
add x8, x8, #16
...
ldr X, [x8]
->
ldr X, [x8, #16]!
with X being either w0, x0, s0, d0 or q0.
llvm-svn: 210018
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a pattern where evaluation order is used as control flow.
This patch special-cases a commonly occuring version of this pattern.
Before:
Aaaaa *aaa = nullptr;
// ...
aaa &&aaa->f();
After:
Aaaaa *aaa = nullptr;
// ...
aaa && aaa->f();
llvm-svn: 210017
|
| |
|
|
| |
llvm-svn: 210016
|
| |
|
|
| |
llvm-svn: 210015
|
| |
|
|
| |
llvm-svn: 210014
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto j = decltype(i) {};
After:
auto j = decltype(i){};
This fixes llvm.org/PR19892.
llvm-svn: 210013
|
| |
|
|
| |
llvm-svn: 210012
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
enum Side
{ LEFT,
RIGHT };
After:
enum Side
{
LEFT,
RIGHT
};
This fixes llvm.org/PR19911.
llvm-svn: 210011
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
void someLongFunction(int someLongParameter)
const
{
}
After:
void someLongFunction(
int someLongParameter) const
{
}
This fixes llvm.org/PR19912.
llvm-svn: 210010
|
| |
|
|
| |
llvm-svn: 210009
|
| |
|
|
|
|
|
|
| |
Reference::target() never returns a nullptr, so NULL check
is not needed and is more harmful than doing nothing.
No functionality change.
llvm-svn: 210008
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PowerOf2 - 1)
This patch can handles following cases from http://nondot.org/sabre/LLVMNotes/InstCombine.txt
"((1 << X) & 7) == 0" ==> "X > 2"
"((1 << X) & 7) != 0" ==> "X < 3".
Differential Revision: http://reviews.llvm.org/D3678
llvm-svn: 210007
|
| |
|
|
|
|
|
|
|
|
|
|
| |
if ((x & C) == 0) x |= C becomes x |= C
if ((x & C) != 0) x ^= C becomes x &= ~C
if ((x & C) == 0) x ^= C becomes x |= C
if ((x & C) != 0) x &= ~C becomes x &= ~C
if ((x & C) == 0) x &= ~C becomes nothing
Differential Revision: http://reviews.llvm.org/D3777
llvm-svn: 210006
|
| |
|
|
| |
llvm-svn: 210005
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 210004
|
| |
|
|
|
|
|
| |
Amend r210001 to use the classic fallback order behaviour if the requested
graphing program isn't found.
llvm-svn: 210003
|
| |
|
|
|
|
| |
between <string> and <string_view>. No functionality change
llvm-svn: 210002
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the crufty build-time configure checks for program paths with
equivalent runtime logic.
This lets users install graphing tools as needed without having to reconfigure
and rebuild LLVM, while eliminating a long chain of inappropriate compile
dependencies that included GUI programs and the windowing system.
Additional features:
* Support the OS X 'open' command to view graphs generated by any of the
Graphviz utilities. This is an alternative to the Graphviz OS X UI which is
no longer available on Mountain Lion.
* Produce informative log output upon failure to indicate which programs can
be installed to view graphs.
Ping me if this doesn't work for your particular environment.
llvm-svn: 210001
|
| |
|
|
|
|
|
|
| |
of std::equal(op) to appease MSVC Debug build.
MSVC Debug build is confused with (possibly invalid) op_begin(), if op_begin() == op_end().
llvm-svn: 210000
|
| |
|
|
|
|
|
|
| |
Since we cannot yet use variadic templates, add a specialisation for
6-parameters to format. This is motivated by a need for the additional
parameter for formatting information for an unwind decoder for Windows on ARM.
llvm-svn: 209999
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce the support structures necessary to deal with the Windows ARM EH data.
These definitions are extremely aggressive about assertions to aid future use
for generation of the entries and subsequent decoding.
The names for the various fields are meant to reflect the names used by the
Visual Studio toolchain to aid communication.
Due to the complexity in reading a few of the values, there are a couple of
additional utility functions to decode the information.
In general, there are two ways to encode the unwinding information:
- packed, which places the data inline into the
_IMAGE_ARM_RUNTIME_FUNCTION_ENTRY structure.
- unpacked, which places the data into auxiliary structures placed into the
.xdata section.
The set of structures allow reading of data in either encoding, with the minor
caveat that epilogue scopes need to be decoded manually by constructing the
structure from the data returned by the RuntimeFunction structure.
These definitions are meant for read-only access at the current point as the
first use of them will be to decode the exception information.
llvm-svn: 209998
|
| |
|
|
|
|
|
|
| |
Wrong patch got committed (this one isn't ready for prime time).
This reverts commit r209996.
llvm-svn: 209997
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We should treat tentative definitions as undefined for the purpose of
ODR-use linkage checking.
This broke somewhere around r149731 when tests were disabled.
Note that test coverage for these diagnostics is generally lacking due to a
separate issue (PR19910: Don't suppress unused/undefined warnings when there
are errors).
llvm-svn: 209996
|
| |
|
|
| |
llvm-svn: 209995
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is not yet supported for production builds but can already produce working
binaries on OS X and Linux with clang and gcc.
The intention is to improve support to the point where it can integrate with
the LLVM runtime platform, cover all platforms, runtime/release build
configurations and run the tests.
Patch by Jack Howarth!
llvm-svn: 209994
|
| |
|
|
| |
llvm-svn: 209993
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=18498
This code was resulting in a crash:
auto L = [](auto ... v) { };
L.operator()<int>(3);
The reason is that the partially-substituted-pack is incorrectly retained within the current-instantiation-scope during template-argument-finalization, and because lambda's are local, there parent instantiation scopes are merged, which leads to the expansion-pattern being retained in the finalized specialization.
This patch ensures that once we have finalized deduction of a parameter-pack, we remove the partially-substituted-pack so that it doesn't cause CheckParameterPacksForExpansion to incorrectly inform the caller that it needs to retain the expansion pattern.
Thanks to Richard Smith for the review!
http://reviews.llvm.org/D2135
llvm-svn: 209992
|