| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Implements "readelf -sW and readelf -DsW"
Differential Revision: http://reviews.llvm.org/D18224
llvm-svn: 263952
|
| |
|
|
|
|
| |
No functional change, just a little more readable.
llvm-svn: 263951
|
| |
|
|
| |
llvm-svn: 263950
|
| |
|
|
| |
llvm-svn: 263948
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The Microsoft compiler emits
warning C4229: anachronism used : modifiers on data are ignored
for
struct {} __cdecl s;
but ICU's gendict can generate such (and does when building
LibreOffice), so accepting this in clang-cl too would be useful.
Reviewers: rnk
Patch by Stephan Bergmann
Differential Revision: http://reviews.llvm.org/D16628
llvm-svn: 263947
|
| |
|
|
|
|
| |
the debugging API")
llvm-svn: 263946
|
| |
|
|
| |
llvm-svn: 263945
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r263664.
The reason we were getting broken files was lld -r, and that has been
fixed.
llvm-svn: 263944
|
| |
|
|
|
|
|
|
|
|
| |
This patch adds a regular expression to configure suffixes of an
included file to check whether it is the "main" include of the current
file. Previously, clang-format has allowed arbitrary suffixes on the
formatted file, which is still the case when no IncludeMainRegex is
specified.
llvm-svn: 263943
|
| |
|
|
| |
llvm-svn: 263942
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
replaceCongruentIVs can break LCSSA when trying to replace IV increments
since it tries to replace all uses of a phi node with another phi node
while both of the phi nodes are not necessarily in the processed loop.
This will cause an assert in IndVars.
To fix this, we add a check to make sure that the replacement maintains
LCSSA.
Reviewers: sanjoy
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18266
llvm-svn: 263941
|
| |
|
|
|
|
|
|
|
|
| |
Without this patch a simple '#pragma omp parallel num_threads(1)' leads to
ompt_event_parallel_begin: parent_task_id=3, [...], parallel_id=2, [...]
ompt_event_parallel_end: parallel_id=2, task_id=4, [...]
Differential Revision: http://reviews.llvm.org/D16714
llvm-svn: 263940
|
| |
|
|
|
|
|
|
| |
`__tsan_get_report_thread` and others can crash if a stack trace is missing, let's add the missing checks.
Differential Revision: http://reviews.llvm.org/D18306
llvm-svn: 263939
|
| |
|
|
| |
llvm-svn: 263936
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
while processing AND SDNodes
Summary:
extract_vector_elt can cause an implicit any_ext if the types don't
match. When processing the following pattern:
(and (extract_vector_elt (load ([non_ext|any_ext|zero_ext] V))), c)
DAGCombine was ignoring the possible extend, and sometimes removing
the AND even though it was required to maintain some of the bits
in the result to 0, resulting in a miscompile.
This change fixes the issue by limiting the transformation only to
cases where the extract_vector_elt doesn't perform the implicit
extend.
Reviewers: t.p.northover, jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18247
llvm-svn: 263935
|
| |
|
|
| |
llvm-svn: 263934
|
| |
|
|
| |
llvm-svn: 263933
|
| |
|
|
|
|
| |
"core-avx" does not exist; I changed to "nehalem"
llvm-svn: 263932
|
| |
|
|
|
|
| |
examples/AnnotateFunctions.
llvm-svn: 263931
|
| |
|
|
|
|
| |
warnings.
llvm-svn: 263922
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement lambda capture of *this by copy.
For e.g.:
struct A {
int d = 10;
auto foo() { return [*this] (auto a) mutable { d+=a; return d; }; }
};
auto L = A{}.foo(); // A{}'s lifetime is gone.
// Below is still ok, because *this was captured by value.
assert(L(10) == 20);
assert(L(100) == 120);
If the capture was implicit, or [this] (i.e. *this was captured by reference), this code would be otherwise undefined.
Implementation Strategy:
- amend the parser to accept *this in the lambda introducer
- add a new king of capture LCK_StarThis
- teach Sema::CheckCXXThisCapture to handle by copy captures of the
enclosing object (i.e. *this)
- when CheckCXXThisCapture does capture by copy, the corresponding
initializer expression for the closure's data member
direct-initializes it thus making a copy of '*this'.
- in codegen, when assigning to CXXThisValue, if *this was captured by
copy, make sure it points to the corresponding field member, and
not, unlike when captured by reference, what the field member points
to.
- mark feature as implemented in svn
Much gratitude to Richard Smith for his carefully illuminating reviews!
llvm-svn: 263921
|
| |
|
|
| |
llvm-svn: 263920
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Some declarations of memcpy (like glibc's for example) are attributed
with notnull which makes it UB for NULL to get passed in, even if the
memcpy count is zero.
To account for this, guard the memcpy with an appropriate precondition.
This should fix the last UBSan bug, exposed by the test suite, in the
COFF linker.
llvm-svn: 263919
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LLD type-punned an integral type and a pointer type using a pointer
field. This is problematic because the pointer type has alignment
greater than some of the integral values.
This would be less problematic if a union was used but it turns out the
integral values are only present for a short, transient, amount of time.
Let's remove this undefined behavior by skipping the punning altogether
by storing the state in a separate memory location: a vector which
informs us which symbols to process for weak externs.
llvm-svn: 263918
|
| |
|
|
|
|
| |
Expanded tests and split into sdiv/srem and udiv/urem cases for 128 and 256 bit vectors.
llvm-svn: 263917
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The old address space inference pass (NVPTXFavorNonGenericAddrSpaces) is unable
to convert the address space of a pointer induction variable. This patch adds a
new pass called NVPTXInferAddressSpaces that overcomes that limitation using a
fixed-point data-flow analysis (see the file header comments for details).
The new pass is experimental and not enabled by default. Users can turn
it on by setting the -nvptx-use-infer-addrspace flag of llc.
Reviewers: jholewinski, tra, jlebar
Subscribers: jholewinski, llvm-commits
Differential Revision: http://reviews.llvm.org/D17965
llvm-svn: 263916
|
| |
|
|
|
|
|
| |
Readably displays a FunctionDecl in the Visual Studio Locals Window something like:
void g(int, double d, struct A && arr)
llvm-svn: 263915
|
| |
|
|
| |
llvm-svn: 263914
|
| |
|
|
|
|
|
|
|
| |
Update the clang driver to allow -fsanitize=thread when targeting x86_64 iOS and tvOS
simulators. Also restrict TSan targeting OS X to only be supported on x86_64 and not i386.
Differential Revision: http://reviews.llvm.org/D18280
llvm-svn: 263913
|
| |
|
|
| |
llvm-svn: 263912
|
| |
|
|
|
|
|
|
| |
computeZeroableShuffleElements
Based on feedback for D14261
llvm-svn: 263911
|
| |
|
|
|
|
|
|
|
|
|
| |
Update the compiler-rt cmake to build TSan dylibs for iOS-style simulators when the
corresponding COMPILER_RT_ENABLE_FOO_OS setting is enabled.
Differential Revision: http://reviews.llvm.org/D18277
Part of rdar://problem/24048382
llvm-svn: 263910
|
| |
|
|
|
|
| |
Noticed by Liu Xin. Thanks!
llvm-svn: 263909
|
| |
|
|
| |
llvm-svn: 263908
|
| |
|
|
|
|
|
|
| |
Improve computeZeroableShuffleElements to be able to peek through bitcasts to extract zero/undef values from BUILD_VECTOR nodes of different element sizes to the shuffle mask.
Differential Revision: http://reviews.llvm.org/D14261
llvm-svn: 263906
|
| |
|
|
|
|
|
| |
for range stmts now have split begin and ends, just apply OR to the
condition. Should unbreak the build.
llvm-svn: 263900
|
| |
|
|
| |
llvm-svn: 263899
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D18211
llvm-svn: 263898
|
| |
|
|
|
|
| |
non-local symbols. NFC.
llvm-svn: 263897
|
| |
|
|
| |
llvm-svn: 263896
|
| |
|
|
|
|
| |
loops to differ.
llvm-svn: 263895
|
| |
|
|
|
| |
Added: R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX
llvm-svn: 263894
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reapplies r261552 and r263748. Fixed testcase to reapply.
The VFS overlay mapping between virtual paths and real paths is done through
the 'external-contents' entries in YAML files, which contains hardcoded paths
to the real files.
When a module compilation crashes, headers are dumped into <name>.cache/vfs
directory and are mapped via the <name>.cache/vfs/vfs.yaml. The script
generated for reproduction uses -ivfsoverlay pointing to file to gather the
mapping between virtual paths and files inside <name>.cache/vfs. Currently, we
are only capable of reproducing such crashes in the same machine as they
happen, because of the hardcoded paths in 'external-contents'.
To be able to reproduce a crash in another machine, this patch introduces a new
option in the VFS yaml file called 'overlay-relative'. When it's equal to
'true' it means that the provided path to the YAML file through the
-ivfsoverlay option should also be used to prefix the final path for every
'external-contents'.
Example, given the invocation snippet "... -ivfsoverlay
<name>.cache/vfs/vfs.yaml" and the following entry in the yaml file:
"overlay-relative": "true",
"roots": [
...
"type": "directory",
"name": "/usr/include",
"contents": [
{
"type": "file",
"name": "stdio.h",
"external-contents": "/usr/include/stdio.h"
},
...
Here, a file manager request for virtual "/usr/include/stdio.h", that will map
into real path "/<absolute_path_to>/<name>.cache/vfs/usr/include/stdio.h.
This is a useful feature for debugging module crashes in machines other than
the one where the error happened.
Differential Revision: http://reviews.llvm.org/D17457
rdar://problem/24499339
llvm-svn: 263893
|
| |
|
|
| |
llvm-svn: 263892
|
| |
|
|
|
|
| |
Whenever possible, use C++ names for visualizing builtin types. E.g., "long double" instead of "LongDouble"
llvm-svn: 263891
|
| |
|
|
|
|
| |
Displays return type and parameters for the Function Protoype object in the Locals window.
llvm-svn: 263890
|
| |
|
|
| |
llvm-svn: 263889
|
| |
|
|
|
|
|
|
|
|
|
| |
Some functions can't have their address taken. If we encounter an
overload set where only one of the candidates can have its address
taken, we should automatically select that candidate's type in type
deduction.
Differential Revision: http://reviews.llvm.org/D15591
llvm-svn: 263888
|
| |
|
|
|
|
|
|
|
|
|
| |
Some functions can't have their address taken. If we encounter an
overload set where only one of the candidates can have its address
taken, we should automatically select that candidate in cast
expressions.
Differential Revision: http://reviews.llvm.org/D17701
llvm-svn: 263887
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Also expose getters and setters in the C API, so that the change can be tested.
Reviewers: nhaehnle, axw, joker.eph
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18260
From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
llvm-svn: 263886
|