- Oct 26, 2016
-
-
Andrea Di Biagio authored
[IndVarSimplify][DebugLoc] When widening the exit loop condition, correctly reuse the debug location of the original comparison. When the loop exit condition is canonicalized as a != compaison, reuse the debug location of the original (non canonical) comparison. Before this patch, the debug location of the new icmp was obtained from the loop latch terminator. This patch fixes the issue by correctly setting the IRBuilder's "current debug location" to the location of the original compare. Differential Revision: https://reviews.llvm.org/D25953 llvm-svn: 285185
-
Vassil Vassilev authored
If two modules contain duplicate class definitions the lookup result can contain more than 2 elements. Sift the lookup results until we find a field decl. It is not necessary to do ODR checks in place as they done elsewhere. This should fix issues when compiling with libstdc++ 5.2 and 6.2. Patch developed in collaboration with Richard Smith! llvm-svn: 285184
-
Vassil Vassilev authored
The commit broke the builds. llvm-svn: 285183
-
Erik Verbruggen authored
All values are returned by a method as size_t, and subsequently passed to functions taking a size_t, or used where a size_t is also valid. Better still, two loops (which had an unsigned), can be replaced by a range-based for loop. Differential Revision: http://reviews.llvm.org/D25939 llvm-svn: 285182
-
Victor Leschuk authored
* Assume that clang passes non-zero alignment value to DIBuilder only in case when it was forced by C++11 'alignas', C11 '_Alignas' or compiler attribute '__attribute__((aligned (N)))'. * Emit DW_AT_alignment if alignment is specified for type/object. Differential Revision: https://reviews.llvm.org/D24425 llvm-svn: 285181
-
Erik Verbruggen authored
NFC Differential Revision: http://reviews.llvm.org/D25938 llvm-svn: 285180
-
Victor Leschuk authored
Bitcode format was changed in D25073, this adds bitcode upgrade test. llvm-svn: 285179
-
Andi-Bogdan Postelnicu authored
llvm-svn: 285178
-
Maxim Ostapenko authored
Differential Revision: https://reviews.llvm.org/D25945 llvm-svn: 285177
-
Vitaly Buka authored
Summary: Current generation of lifetime intrinsics does not handle cases like: ``` { char x; l1: bar(&x, 1); } goto l1; ``` We will get code like this: ``` %x = alloca i8, align 1 call void @llvm.lifetime.start(i64 1, i8* nonnull %x) br label %l1 l1: %call = call i32 @bar(i8* nonnull %x, i32 1) call void @llvm.lifetime.end(i64 1, i8* nonnull %x) br label %l1 ``` So the second time bar was called for x which is marked as dead. Lifetime markers here are misleading so it's better to remove them at all. This type of bypasses are rare, e.g. code detects just 8 functions building clang (2329 targets). PR28267 Reviewers: eugenis Subscribers: beanz, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D24693 llvm-svn: 285176
-
Craig Topper authored
Summary: The preserved input should be the first argument and the vector inputs should be in the same order as the intrinsics it is used to implement. Reviewers: igorb, delena Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25902 llvm-svn: 285175
-
Dean Michael Berris authored
On Windows, "no such file or directory" is the default error translation as opposed to the capitalized form on Linux. llvm-svn: 285174
-
Craig Topper authored
Summary: Clang's intrinsic header currently tries to negate the third operand of a vfmadd mask3 in order to create vfmsub, but this fails isel. This patch adds scalar vfmsub and vfnmsub mask3 that we can use instead to avoid the negate. This is consistent with the packed instructions. Reviewers: igorb, delena Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25933 llvm-svn: 285173
-
Jason Molenda authored
generation macosx/ios/tvos/watchos. llvm-svn: 285172
-
Dean Michael Berris authored
llvm-svn: 285171
-
Dean Michael Berris authored
llvm-svn: 285170
-
Rui Ueyama authored
llvm-svn: 285169
-
Dean Michael Berris authored
llvm-svn: 285168
-
Dean Michael Berris authored
llvm-svn: 285167
-
Dean Michael Berris authored
llvm-svn: 285166
-
Dean Michael Berris authored
Usage: llvm-xray extract <object file> [-o <filename or '-'>] The tool gets the XRay instrumentation map from an object file and turns it into YAML. We first support ELF64 sleds on x86_64 binaries, with provision for supporting other supported platforms and formats later. This is the first of a many-part change to fully implement the `llvm-xray` tool. We also define a subcommand registration and dispatch mechanism to be used by other further subcommand implementations for llvm-xray. Diffusion Revision: https://reviews.llvm.org/D21987 llvm-svn: 285165
-
Rui Ueyama authored
llvm-svn: 285164
-
Rui Ueyama authored
This is in sync with what clang does. llvm-svn: 285163
-
Rui Ueyama authored
Not all echo commands support "-e". llvm-svn: 285162
-
Peter Collingbourne authored
llvm-svn: 285161
-
Richard Smith authored
class template specialization and that specialization has attributes. llvm-svn: 285160
-
Vitaly Buka authored
Summary: rsmith Differential Revision: https://reviews.llvm.org/D25665 llvm-svn: 285159
-
Vitaly Buka authored
Summary: D24693 will need access to it from other places Reviewers: eugenis Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D24695 llvm-svn: 285158
-
Kostya Serebryany authored
llvm-svn: 285157
-
Dean Michael Berris authored
Reverts r285155 -- misconfigured tests. llvm-svn: 285156
-
Dean Michael Berris authored
Usage: llvm-xray extract <object file> [-o <filename or '-'>] The tool gets the XRay instrumentation map from an object file and turns it into YAML. We first support ELF64 sleds on x86_64 binaries, with provision for supporting other supported platforms and formats later. This is the first of a many-part change to fully implement the `llvm-xray` tool. We also define a subcommand registration and dispatch mechanism to be used by other further subcommand implementations for llvm-xray. llvm-svn: 285155
-
Richard Smith authored
llvm-svn: 285154
-
Jim Ingham authored
Next to fix it! llvm-svn: 285153
-
Richard Smith authored
headers. We previously got this check backwards and treated the wrapper header as being textual. This is important because our wrapper headers sometimes inject macros into the system headers that they #include_next, and sometimes replace them entirely. llvm-svn: 285152
-
Rui Ueyama authored
Not all echo commands support "-e". On the other hand, printf command is in POSIX, so it's more portable than "echo -e". llvm-svn: 285151
-
Richard Smith authored
This has the following ABI impact: 1) Functions whose parameter or return types are non-throwing function pointer types have different manglings in c++1z mode from prior modes. This is necessary because c++1z permits overloading on the noexceptness of function pointer parameter types. A warning is issued for cases that will change manglings in c++1z mode. 2) Functions whose parameter or return types contain instantiation-dependent exception specifications change manglings in all modes. This is necessary to support overloading on / SFINAE in these exception specifications, which a careful reading of the standard indicates has essentially always been permitted. Note that, in order to be affected by these changes, the code in question must specify an exception specification on a function pointer/reference type that is written syntactically within the declaration of another function. Such declarations are very rare, and I have so far been unable to find any code that would be affected by this. (Note that such things will probably become more common in C++17, since it's a lot easier to get a noexcept function type as a function parameter / return type there.) This change does not affect the set of symbols produced by a build of clang, libc++, or libc++abi. llvm-svn: 285150
-
Rafael Espindola authored
llvm-svn: 285149
-
Rafael Espindola authored
Instead of storing a pointer, store the members we need. The reason for doing this is that it makes it far easier to create synthetic sections. It also avoids reading data from files multiple times., which might help with cross endian linking and host architectures with slow unaligned access. There are obvious compacting opportunities, but this already has mixed results even on native x86_64 linking. There is also the possibility of better refactoring the code for handling common symbols, but this already shows that a custom class is not necessary. llvm-svn: 285148
-
Kostya Serebryany authored
llvm-svn: 285147
-
Kostya Serebryany authored
llvm-svn: 285145
-