| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Accidentally made the test too strict.
llvm-svn: 251603
|
| |
|
|
|
|
|
| |
Add the required libraries to the linker invocation when building with
sanitizers.
llvm-svn: 251600
|
| |
|
|
|
|
| |
Use an initializer list to remove a couple of small static arrays. NFC.
llvm-svn: 251599
|
| |
|
|
|
|
|
| |
Indicate support for ASAN on the CrossWindows toolchain. Although this is
insufficient, this at least permits the handling of the driver flag.
llvm-svn: 251598
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow on to http://reviews.llvm.org/D13074, implementing something pointed out by Sanjoy. His truth table from his comment on that bug summarizes things well:
LHS | RHS | LHS >=s RHS | LHS implies RHS
0 | 0 | 1 (0 >= 0) | 1
0 | 1 | 1 (0 >= -1) | 1
1 | 0 | 0 (-1 >= 0) | 0
1 | 1 | 1 (-1 >= -1) | 1
The key point is that an "i1 1" is the value "-1", not "1".
Differential Revision: http://reviews.llvm.org/D13756
llvm-svn: 251597
|
| |
|
|
|
|
|
|
|
|
|
| |
The most common use case is when eliminating redundant range checks in an example like the following:
c = a[i+1] + a[i];
Note that all the smarts of the transform (the implication engine) is already in ValueTracking and is tested directly through InstructionSimplify.
Differential Revision: http://reviews.llvm.org/D13040
llvm-svn: 251596
|
| |
|
|
| |
llvm-svn: 251595
|
| |
|
|
| |
llvm-svn: 251594
|
| |
|
|
| |
llvm-svn: 251593
|
| |
|
|
|
|
|
|
| |
larger vectorization factor.
To be able to maximize the bandwidth during vectorization, this patch provides a new flag vectorizer-maximize-bandwidth. When it is turned on, the vectorizer will determine the vectorization factor (VF) using the smallest instead of widest type in the loop. To avoid increasing register pressure too much, estimates of the register usage for different VFs are calculated so that we only choose a VF when its register usage doesn't exceed the number of available registers.
llvm-svn: 251592
|
| |
|
|
| |
llvm-svn: 251591
|
| |
|
|
|
|
| |
there must be (at least) one more race hidden there...
llvm-svn: 251590
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: sas, ovyalov
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D14166
llvm-svn: 251589
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC has a warning called -Wdouble-promotion, which warns you when
an implicit conversion increases the width of a floating point type.
This is useful when writing code for architectures that can perform
hardware FP ops on floats, but must fall back to software emulation for
larger types (i.e. double, long double).
This fixes PR15109 <https://llvm.org/bugs/show_bug.cgi?id=15109>.
Thanks to Carl Norum for the patch!
llvm-svn: 251588
|
| |
|
|
|
|
| |
Host; other minor fixes.
llvm-svn: 251587
|
| |
|
|
|
|
|
| |
(whatever that is) and wanted to clean up some duplicated
entries in the project files.
llvm-svn: 251586
|
| |
|
|
| |
llvm-svn: 251585
|
| |
|
|
|
|
| |
be used. Guard against that.
llvm-svn: 251584
|
| |
|
|
|
|
|
| |
has tested that sc.function is null, it would try to deref sc.function.
It should be calling sc.symbol here.
llvm-svn: 251583
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We cannot form ctr-based loops around function calls, including calls to
__tls_get_addr used for PIC TLS variables. References to such TLS variables,
however, might be buried within constant expressions, and so we need to search
the entire constant expression to be sure that no references to such TLS
variables exist.
Fixes PR25256, reported by Eric Schweitz. This is a slightly-modified version
of the patch suggested by Eric in the bug report, and a test case I created.
llvm-svn: 251582
|
| |
|
|
| |
llvm-svn: 251581
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
and decided to not commit the change, but accidentally committed
it anyway.
This was based on a static analysis complaint; it thought there
was a code path where AdbClient::PushFile would call AdbClient::ReadSyncHeader
and AdbClient::ReadSyncHeader wouldn't set data_len. But in that
case, the Error object returned will be Fail and we won't use
the data_len or response_id contents.
llvm-svn: 251580
|
| |
|
|
|
|
|
|
| |
use the CPU type and subtype to fill out an architecture. We do this by letting the vendor be an unspecified unknown, or any. We also grab the target architecture, get the KDP host arch, and then merge the two before putting it back into the target.
Also change MH_PRELOAD to be use "unspecified unknown" (any) for the OS and vendor since these mach files can really be anything.
llvm-svn: 251579
|
| |
|
|
| |
llvm-svn: 251578
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When ASan currently detects a bug, by default it will only print out the text
of the report to stderr. This patch changes this behavior and writes the full
text of the report to syslog before we terminate the process. It also calls
os_trace (Activity Tracing available on OS X and iOS) with a message saying
that the report is available in syslog. This is useful, because this message
will be shown in the crash log.
For this to work, the patch makes sure we store the full report into
error_message_buffer unconditionally, and it also strips out ANSI escape
sequences from the report (they are used when producing colored reports).
I've initially tried to log to syslog during printing, which is done on Android
right now. The advantage is that if we crash during error reporting or the
produced error does not go through ScopedInErrorReport, we would still get a
(partial) message in the syslog. However, that solution is very problematic on
OS X. One issue is that the logging routine uses GCD, which may spawn a new
thread on its behalf. In many cases, the reporting logic locks threadRegistry,
which leads to deadlocks.
Reviewed at http://reviews.llvm.org/D13452
(In addition, add sanitizer_common_libcdep.cc to buildgo.sh to avoid
build failures on Linux.)
llvm-svn: 251577
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This works around PR25162. The MSVC tables make it very difficult to
correctly inline a C++ destructor that contains try / catch. We've
attempted to address PR25162 in LLVM's backend, but it feels pretty
infeasible. MSVC and ICC both appear to avoid inlining such complex
destructors.
Long term, we want to fix this by making the inliner smart enough to
know when it is inlining into a cleanup, so it can inline simple
destructors (~unique_ptr and ~vector) while avoiding destructors
containing try / catch.
llvm-svn: 251576
|
| |
|
|
|
|
|
|
|
| |
As a follow-up to r251566, do the same for the other optionally-supported
register classes (mostly for vector registers). Don't return an unavailable
register class (which would cause an assert later), but fail cleanly when
provided an unsupported inline asm constraint.
llvm-svn: 251575
|
| |
|
|
|
|
| |
It's useful for Clang's Driver faff.
llvm-svn: 251574
|
| |
|
|
| |
llvm-svn: 251573
|
| |
|
|
|
|
|
|
|
| |
app_process32, when started via a shell script wrapper, needs a
different security context to satisty SELinux.
Patch by Abhishek Arya.
llvm-svn: 251572
|
| |
|
|
|
|
|
| |
The most substantial changes are again for watchOS: libcalls are hard-float if
needed and sincos has a different calling convention.
llvm-svn: 251571
|
| |
|
|
|
|
|
| |
At the LLVM level this ABI is essentially a minimal modification of AAPCS to
support 16-byte alignment for vector types and the stack.
llvm-svn: 251570
|
| |
|
|
|
|
|
|
| |
These MachO file directives are used by linkers and other tools to provide
compatibility information, much like the existing .ios_version_min and
.macosx_version_min.
llvm-svn: 251569
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the flag -mllvm -sample-profile-check-coverage=N to the
SampleProfile pass. N is the percent of input sample records that the
user expects to apply. If the pass does not use N% (or more) of the
sample records in the input, it emits a warning.
This is useful to detect some forms of stale profiles. If the code has
drifted enough from the original profile, there will be records that do
not match the IR anymore.
This will not detect cases where a sample profile record for line L is
referring to some other instructions that also used to be at line L.
llvm-svn: 251568
|
| |
|
|
|
|
|
|
|
|
| |
GCC uses the x87DoubleExtended model for long doubles, and passes them
indirectly by address through function calls.
Also replace the existing mingw-long-double assembly emitting test with
an IR-level test.
llvm-svn: 251567
|
| |
|
|
|
|
|
| |
When crbits are disabled, cleanly reject the constraint (return the register
class only to cause an assert later).
llvm-svn: 251566
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the *current* state of "is-moduleness" rather than the state at
serialization time so that if we read a builtin identifier from a module
that wasn't "interesting" to that module, we will still write it out to
a PCH that imports that module.
Otherwise, we would get mysterious "unknown builtin" errors when using
PCH+modules.
rdar://problem/23287656
llvm-svn: 251565
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than a
StackFrame * (StackFrame is an ExecutionContextScope.) That allows you to call an
expression on a particular Thread, but not using the context of any particular frame.
That in turn is useful for injecting utility functions that don't actually depend on
locals/self/etc of the current frame.
I also had to include StackFrame.h in a couple of places so the compiler knew
how to downcast StackFrame to ExecutionContextScope.
<rdar://problem/22852953>
llvm-svn: 251564
|
| |
|
|
| |
llvm-svn: 251563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It looks like this broke the stage 2 builder:
http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto/6989/
Original commit message:
AliasSetTracker does not need to convert the access mode to ModRefAccess if the
new visited UnknownInst has only 'REF' modrefinfo to existing pointers in the
sets.
Patch by Andrew Zhogin!
llvm-svn: 251562
|
| |
|
|
|
|
| |
include/lldb/Core; other minor fixes.
llvm-svn: 251561
|
| |
|
|
|
|
| |
Keno Fischer fixed the underlying issue that necessitated this in r236341.
llvm-svn: 251560
|
| |
|
|
|
|
| |
WindowServer access
llvm-svn: 251559
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This teaches SCEV to compute //max// backedge taken counts for loops
like
for (int i = k; i != 0; i >>>= 1)
whatever();
SCEV yet cannot represent the exact backedge count for these loops, and
this patch does not change that. This is really geared towards teaching
SCEV that loops like the above are *not* infinite.
llvm-svn: 251558
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
If P branches to Q conditional on C and Q branches to R conditional on
C' and C => C' then the branch conditional on C' can be folded to an
unconditional branch.
Reviewers: reames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D13972
llvm-svn: 251557
|
| |
|
|
|
|
| |
include/lldb/Core; other minor fixes.
llvm-svn: 251556
|
| |
|
|
|
|
| |
<rdar://problem/21991784>
llvm-svn: 251555
|
| |
|
|
|
| |
Bug: https://github.com/google/sanitizers/issues/618
llvm-svn: 251554
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
I have othen been stuck when I got an ASAN report, but no symbols
are resolved. The reasons might be different, and it always
requires a bit of detective work to track down.
These more verbose error messages will help the users like me.
Reviewers: samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14135
llvm-svn: 251553
|
| |
|
|
|
|
|
| |
In addition to r251524: preserve the order the checkers were enabled/disabled to be deterministic.
Additionally return the number of arguments read by 'ProcessArgs' - for debug purpose.
llvm-svn: 251552
|