| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
We always clear the unused bits in the most signifant word so there is
no need to mask them out in countLeadingZerosSlowCase().
Differential Revision: http://reviews.llvm.org/D16621
llvm-svn: 260911
|
|
|
|
| |
llvm-svn: 260910
|
|
|
|
|
|
|
|
| |
while we are finalizing its elements. Prevent that.
<rdar://problem/24554920>
llvm-svn: 260909
|
|
|
|
|
|
|
| |
The variable was made dead in NDEBUG by r260901, but the assert
was redundant anyway: get rid of both.
llvm-svn: 260908
|
|
|
|
| |
llvm-svn: 260907
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an updated version which fixes a bug that happened with
uses tied to an earlyclobber operand which end at an unusual slotindex.
If two definitions write to independent subregisters then they can be
put in any order. LiveIntervalAnalysis::handleMove() did not support
this previously because it looks like moving a definition of a vreg past
another one.
This is a modified version of a patch proposed (two years ago) by
Vincent Lejeune! This version does not touch the read-undef flags and is
extended for the case of moving a subregister def behind all uses - this
can happen for subregister defs that are completely unused.
Differential Revision: http://reviews.llvm.org/D9067
llvm-svn: 260906
|
|
|
|
| |
llvm-svn: 260905
|
|
|
|
|
|
|
| |
The abort on error behaviour is unpractical for debugger and unittest
usage.
llvm-svn: 260904
|
|
|
|
| |
llvm-svn: 260903
|
|
|
|
|
|
| |
simplify handling and allow flags on the expression.
llvm-svn: 260902
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17229
llvm-svn: 260901
|
|
|
|
| |
llvm-svn: 260900
|
|
|
|
|
|
|
|
|
|
|
| |
This function was basically useless, since volatile memacesses or MIs with
unmodelled sideffects become global memory objects, and the other little
checks are also done elsewhere.
Reviewed by Andy Trick
http://reviews.llvm.org/D16881
llvm-svn: 260899
|
|
|
|
|
|
|
|
|
| |
I'd accidentally skipped the CMake check in a premature optimisation. I'd also
put the original test in completely the wrong place.
Thanks Jonas Hahnfeld!
llvm-svn: 260898
|
|
|
|
| |
llvm-svn: 260897
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
In order to pass the tests, this required marking R_MIPS_16 relocations
as needing to point to the symbol and not the section.
Reviewers: vkalintiris, dsanders
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D17200
llvm-svn: 260896
|
|
|
|
| |
llvm-svn: 260895
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
While shrinking types according to the required bits, we can
encounter insert/extract element instructions. This will cause us to
reach an llvm_unreachable statement.
This change adds support for truncating insert/extract element
operations, and adds a regression test.
Reviewers: jmolloy
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D17078
llvm-svn: 260893
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LICM starts with an *empty* AST, and then merges in each sub-loop. While the
add code is appropriate for sub-loop 2 and up, it's utterly unnecessary for
sub-loop 1. If the AST starts off empty, we can just clone/move the contents
of the subloop into the containing AST.
Reviewed-by: Philip Reames <listmail@philipreames.com>
Differential Revision: http://reviews.llvm.org/D16753
llvm-svn: 260892
|
|
|
|
|
|
| |
For when grep counts are just not enough...
llvm-svn: 260891
|
|
|
|
| |
llvm-svn: 260890
|
|
|
|
| |
llvm-svn: 260889
|
|
|
|
| |
llvm-svn: 260888
|
|
|
|
| |
llvm-svn: 260887
|
|
|
|
|
|
|
|
|
|
| |
A load can only be invariant if its base pointer is invariant too. To
this end, we check if the base pointer is defined inside the region or
outside. In the former case we recursively check if we can (and
therefore will) hoist the base pointer too. Only if that happends we
can hoist the load.
llvm-svn: 260886
|
|
|
|
| |
llvm-svn: 260885
|
|
|
|
|
|
|
|
|
| |
This reverts commit 98efa006c96ac981c00d2e386ec1102bce9f549a.
The fix was broken since we do not use AA in the ScopDetection anymore to
check for invariant accesses.
llvm-svn: 260884
|
|
|
|
|
|
|
|
|
|
| |
1. Add two explicit -stdlib=libstdc++ in conjunction with -static-libstdc++
2. Pass -nostdinc++ when adding include paths for libc++ built for tsan. This
prevents clang finding the headers twice which would confuse #include_next
Differential Revision: http://reviews.llvm.org/D17189
llvm-svn: 260883
|
|
|
|
|
|
|
|
|
| |
In my previous commit (rL260881) I forget to svn add tests. This commit adds
them.
Differential Revision: http://reviews.llvm.org/D16846
llvm-svn: 260882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes the following bugs in __builtin_classify_type implementation:
1) Support for member functions and fields
2) Same behavior as GCC in C mode (specifically, return integer_type_class for
enums and pointer_type_class for function pointers and arrays). Behavior in
C++ mode didn't changed.
Also, it refactors the whole implementation, by replacing a sequence of
if-else-if with a couple of switches.
Differential Revision: http://reviews.llvm.org/D16846
llvm-svn: 260881
|
|
|
|
| |
llvm-svn: 260880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This section is used for debug information and has no need to be
in memory at runtime. With this patch, LLVM now emits the same flags as
the GNU assembler. This patch also fixes an error when compiling
the Linux kernel, The error is that there are relocations within the
.pdr section in a VDSO.
Reviewers: vkalintiris, dsanders
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D17199
llvm-svn: 260879
|
|
|
|
|
|
|
|
|
|
| |
are changed to 16 bits.
If KMOVB not supported (require AVX512DQ) only KMOVW can be used so store size should be 2 bytes.
Differential Revision: http://reviews.llvm.org/D17138
llvm-svn: 260878
|
|
|
|
|
|
|
| |
Sync barrier will be emitted after generation of firstprivate variables
only if one of the firstprivate vars is used in lastprivate clause.
llvm-svn: 260877
|
|
|
|
|
|
|
|
| |
that caused them to fail sometimes and act flaky.
Differential Revision: http://reviews.llvm.org/D17228
llvm-svn: 260876
|
|
|
|
| |
llvm-svn: 260875
|
|
|
|
| |
llvm-svn: 260874
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch is a continuation of http://reviews.llvm.org/D10553 by Jonathan B Coe.
The main additions are:
1. For C++11 the check suggests in-class field initialization as fix. This
makes the fields future proof towards the addition of new constructors.
2 For older language versions the fields are added in the right position
in the initializer list with more tests.
3. User documentation.
Reviewers: alexfh, jbcoe
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D16517
llvm-svn: 260873
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The isAnyPointer() matcher is useful for http://reviews.llvm.org/D15623.
Reviewers: alexfh, klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D15819
llvm-svn: 260872
|
|
|
|
|
|
| |
Silence 4 -Wcast-qual warnings from GCC 5.1. NFC.
llvm-svn: 260871
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Fix oversight not checking the value of the Optional<bool> returned by
isExpensiveToCopy().
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D17064
llvm-svn: 260870
|
|
|
|
| |
llvm-svn: 260869
|
|
|
|
|
|
|
| |
Silence a -Wreorder warning about order of member initialization and a
-Wqual-cast warning about casting away constness. NFC.
llvm-svn: 260868
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the case that the array indexing itself is within a type dependent context,
bail out of the evaluation. We would previously try to symbolically evaluate
the expression which would then try to evaluate a non-address expression as an
address, triggering an assertion in Asserts builds.
We only need to consider the array subscript expression itself as in the case
that the base itself being type dependent is handled appropriately in EvalAddr.
Resolves PR26599.
llvm-svn: 260867
|
|
|
|
|
|
|
|
|
|
| |
printing policy.
Enable it for USRs and names when indexing.
Forward references can have different template argument names; including them
makes USRs and names unstable, since the name depends on whether we saw a forward reference or not.
llvm-svn: 260866
|
|
|
|
|
|
|
|
| |
These codepaths would generate warnings with GCC on linux even though the switch
was covered. Add llvm_unreachable markers to indicate that the switch should be
covered. NFC.
llvm-svn: 260865
|
|
|
|
|
|
|
| |
Propagate const throughout these methods as they are non-mutating analyzers of
state. NFC.
llvm-svn: 260864
|
|
|
|
|
|
|
|
|
| |
Eliminate the global variable "InsnToMemAcc" to make Scop/ScopInfo become
more protable, such that we can safely use them in a CallGraphSCC pass.
Differential Revision: http://reviews.llvm.org/D17238
llvm-svn: 260863
|
|
|
|
|
|
|
|
|
|
| |
Before this patch it could happen that we did not hoist a load that
was a base pointer of another load even though AA already declared the
first one as invariant (during ScopDetection). If this case arises we
will now skipt the "can be overwriten" check because in this case the
over-approximating nature causes us to generate broken code.
llvm-svn: 260862
|
|
|
|
| |
llvm-svn: 260861
|