| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 281844
|
| |
|
|
| |
llvm-svn: 281843
|
| |
|
|
| |
llvm-svn: 281842
|
| |
|
|
|
|
| |
Also demonstrating the poor lowering of fcopysign...
llvm-svn: 281841
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This fixes an issue when files are compiled with -flto=thin
at default -O0. We need to rename anonymous globals before attempting
to write the module summary because all values need names for
the summary. This was happening at -O1 and above, but not before
the early exit when constructing the pipeline for -O0.
Also add an internal -prepare-for-thinlto option to enable this
to be tested via opt.
Fixes PR30419.
Reviewers: mehdi_amini
Subscribers: probinson, llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D24701
llvm-svn: 281840
|
| |
|
|
| |
llvm-svn: 281839
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We may generate GPU kernels that store into scalars in case we run some
sequential code on the GPU because the remaining data is expected to already be
on the GPU. For these kernels it is important to not keep the scalar values
in thread-local registers, but to store them back to the corresponding device
memory objects that backs them up.
We currently only store scalars back at the end of a kernel. This is only
correct if precisely one thread is executed. In case more than one thread may
be run, we currently invalidate the scop. To support such cases correctly,
we would need to always load and store back from a corresponding global
memory slot instead of a thread-local alloca slot.
llvm-svn: 281838
|
| |
|
|
|
|
| |
and pass these by value rather than by reference.
llvm-svn: 281837
|
| |
|
|
| |
llvm-svn: 281836
|
| |
|
|
| |
llvm-svn: 281835
|
| |
|
|
|
|
| |
Add ability to extract vXi64 'vzext_movl' masks on 32-bit targets
llvm-svn: 281834
|
| |
|
|
| |
llvm-svn: 281833
|
| |
|
|
|
|
|
| |
Previously it used llvm-readobj -s, now changed to llvm-objdump -section-headers,
that reduced the output significantly and helps to read/support it.
llvm-svn: 281832
|
| |
|
|
|
|
|
|
|
|
|
| |
Our implementation supported integer value previously.
ld can use expression,
for example, it is OK to write
. = SEGMENT_START("foobar", .);
Patch implements that.
llvm-svn: 281831
|
| |
|
|
| |
llvm-svn: 281830
|
| |
|
|
| |
llvm-svn: 281829
|
| |
|
|
| |
llvm-svn: 281828
|
| |
|
|
| |
llvm-svn: 281827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the output of clang-rename for the files without modifications.
Update the code in clang-reorder-fields/tool/ClangReorderFields.cpp
to avoid inconsistency.
Example:
a.h:
struct A {};
a.cpp:
#include "a.h"
int main() { return 0; }
Before the changes the output looks like this:
clang-rename -qualified-name=A -new-name=B a.cpp
<<<<<INVALID SOURCE LOCATION>>>>>
Test plan: make -j8 check-clang-tools
Differential revision: https://reviews.llvm.org/D24634
llvm-svn: 281826
|
| |
|
|
|
|
| |
Added BoundaryNode check to isBestZeroLatency function.
llvm-svn: 281825
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were trying to avoid using a FrameIndex operand in non-pointer
operands in a convoluted way, and would break because of
using TargetFrameIndex. The TargetFrameIndex should only be used
in the case where it makes sense to fold it as part of the addressing
mode, otherwise it requires materialization like a normal constant.
This wasn't working reliably and failed in the added testcase, hitting
the assert when processing the frame index.
The TargetFrameIndex was coming from trying to produce an AssertZext
limiting the maximum stack size. I'm not sure this was correct to begin
with, because it is apparently possible to have a single workitem
dispatch that requires all 4G of private memory.
llvm-svn: 281824
|
| |
|
|
| |
llvm-svn: 281823
|
| |
|
|
|
|
|
|
| |
This reduces the number of copies and reg_sequences
when using fp constant vectors. This significantly
reduces the code size in local-stack-alloc-bug.ll
llvm-svn: 281822
|
| |
|
|
| |
llvm-svn: 281821
|
| |
|
|
| |
llvm-svn: 281820
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
length order first in the set.
Summary:
No behavioral change intended. The change makes iterating the replacements set more intuitive in Replacements class implementation. Previously, insertion is ordered before an deletion/replacement with the same offset, which is counter-intuitive for implementation, especially for a followup patch to support adding insertions around replacements.
With the current ordering, we only need to make `applyAllReplacements` iterate the replacements set reversely when applying them so that deletion/replacement is still applied before insertion with the same offset.
Reviewers: klimek, djasper
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D24663
llvm-svn: 281819
|
| |
|
|
|
|
|
|
|
| |
It was possible situation about some commands just were not processed
(were skipped) because of a bug appeared when constraint checking used.
Testcase is attached.
llvm-svn: 281818
|
| |
|
|
| |
llvm-svn: 281817
|
| |
|
|
| |
llvm-svn: 281816
|
| |
|
|
|
|
|
|
|
|
| |
is set
Currently, when doing a ASanified build of LLVM (with Clang, compiler-rt and libcxx) via -DLLVM_USE_SANITIZER=Address and not using any other options, we already disable building of sanitizer runtimes (because they themselves can’t be sanitized) and also exclude the sanitizer tests. However, the same is not done for the profiling runtime, which will build fine, but then all the tests fail due to linking errors. Let’s disable the profiling runtime as well (when LLVM_USE_SANITIZER is set).
Differential Revision: https://reviews.llvm.org/D24657
llvm-svn: 281815
|
| |
|
|
|
|
| |
to fix check-fuzzer on the bot
llvm-svn: 281814
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
names (NFC)
The ValueSymbolTable is used to detect name conflict and rename
instructions automatically. This is not needed when the value
names are automatically discarded by the LLVMContext.
No functional change intended, just saving a little bit of memory.
This is a recommit of r281806 after fixing the accessor to return
a pointer instead of a reference and updating all the call-sites.
llvm-svn: 281813
|
| |
|
|
|
|
| |
Last-second refactoring before push was bad idea...
llvm-svn: 281812
|
| |
|
|
|
|
| |
This is in line with the LLParser behavior
llvm-svn: 281811
|
| |
|
|
| |
llvm-svn: 281810
|
| |
|
|
| |
llvm-svn: 281809
|
| |
|
|
|
|
|
|
|
| |
value names (NFC)"
This reverts commit r281806. It introduces undefined behavior as an
API is returning a reference to the Symtab
llvm-svn: 281808
|
| |
|
|
|
|
|
|
|
|
|
| |
names (NFC)
The ValueSymbolTable is used to detect name conflict and rename
instructions automatically. This is not needed when the value
names are automatically discarded by the LLVMContext.
No functional change intended, just saving a little bit of memory.
llvm-svn: 281806
|
| |
|
|
| |
llvm-svn: 281805
|
| |
|
|
| |
llvm-svn: 281804
|
| |
|
|
|
|
| |
It is important to give members names for readability.
llvm-svn: 281803
|
| |
|
|
| |
llvm-svn: 281802
|
| |
|
|
| |
llvm-svn: 281801
|
| |
|
|
|
|
| |
VI added eq/ne for i64, so use them.
llvm-svn: 281800
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Where possible, remove the const char* version. To keep the
risk and impact here minimal, I've only done the simplest
functions.
In the process, I found a few opportunities for adding some
unit tests, so I added those as well.
Tested on Windows, Linux, and OSX.
llvm-svn: 281799
|
| |
|
|
|
|
|
|
|
| |
This refactors the cstring literal creation as mentioned in the couple of FIXMEs
littered in the various invocations to CreateMetadataVar. This centralises the
definition of the literals, and will enable changing the literal creation to a
single site. NFC.
llvm-svn: 281798
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* recurse through intermediate LabelStmts and AttributedStmts when checking
whether a statement inside a switch declares a variable
* if the end of a compound statement is reachable from the chosen case label,
and the compound statement contains a variable declaration, it's not valid
to just emit the contents of the compound statement -- we must emit the
statement itself or we lose the scope (and thus end lifetimes at the wrong
point)
llvm-svn: 281797
|
| |
|
|
| |
llvm-svn: 281796
|
| |
|
|
| |
llvm-svn: 281795
|
| |
|
|
| |
llvm-svn: 281794
|