| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
We would fail to validate the type of the tan function which would cause
downstream users of isValidProtoForLibFunc to assert.
This fixes PR28143.
llvm-svn: 272802
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21144
llvm-svn: 272801
|
| |
|
|
|
|
|
|
|
| |
Reverting due to assertion failure in
lib/CodeGen/SelectionDAG/InstrEmitter.cpp
This reverts commit r272792.
llvm-svn: 272799
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21085
llvm-svn: 272797
|
| |
|
|
|
|
| |
This should help moving Strides to LAA later.
llvm-svn: 272796
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: dsanders, sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D21381
llvm-svn: 272794
|
| |
|
|
|
|
| |
warning from MSVC.
llvm-svn: 272793
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DAG] Previously debug values would transfer debuginfo for the selected
start node for a replacement which allows for debug to be dropped.
Push debug value transfer to occur with node/value replacement in
SelectionDAG, remove now extraneous transfers of debug values.
This refixes PR9817 which was being incompletely checked in the
testsuite.
Reviewers: jyknight
Subscribers: dblaikie, llvm-commits
Differential Revision: http://reviews.llvm.org/D21037
llvm-svn: 272792
|
| |
|
|
|
|
| |
failure when running the test CodeGen/ARM/intrinsics-coprocessor.ll
llvm-svn: 272791
|
| |
|
|
|
|
|
|
| |
can emit native IR from clang.
The intrinsics themselves can be removed in a future commit.
llvm-svn: 272786
|
| |
|
|
| |
llvm-svn: 272785
|
| |
|
|
|
|
| |
Add missing testcase from r272666.
llvm-svn: 272784
|
| |
|
|
|
|
| |
LoopVectorizationLegality::strides_begin/end are also unused.
llvm-svn: 272781
|
| |
|
|
|
|
| |
LoopVectorizationLegality::mustCheckStrides is unused.
llvm-svn: 272780
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21178
llvm-svn: 272778
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The error on clang-x86-win2008-selfhost is:
C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(955) : error C2248: 'llvm::slpvectorizer::BoUpSLP::ScheduleData' : cannot access private struct declared in class 'llvm::slpvectorizer::BoUpSLP'
C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(608) : see declaration of 'llvm::slpvectorizer::BoUpSLP::ScheduleData'
C:\buildbot\slave-config\clang-x86-win2008-selfhost\llvm\lib\Transforms\Vectorize\SLPVectorizer.cpp(337) : see declaration of 'llvm::slpvectorizer::BoUpSLP'
I reproduced this locally with both MSVC 2013 and MSVC 2015.
llvm-svn: 272772
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Also fixed one case where HasMips64 was being used instead of IsGP64bit.
Reviewers: sdardis
Subscribers: dsanders, llvm-commits, sdardis
Differential Revision: http://reviews.llvm.org/D21028
llvm-svn: 272771
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, there was a discrepancy between the population of function
passes in FPasses, and their invocation. Function passes specified on
the command line, after an optimizaton level was simply discared. This
fix PR27509.
Patch by Jesper Antonsson.
Differential Review: http://reviews.llvm.org/D20725
llvm-svn: 272770
|
| |
|
|
|
|
| |
MIPS32R1 cannot implement a 64-bit FPU because this was introduced in MIPS32R2.
llvm-svn: 272769
|
| |
|
|
| |
llvm-svn: 272768
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This wasn't failing for me with clang as the compiler. I think GCC may
disagree with clang about whether a friend declaration introduces a
declaration in the enclosing namespace (or something).
Example error:
/home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:950:77: error: ‘llvm::raw_ostream& llvm::slpvectorizer::operator<<(llvm::raw_ostream&, const llvm::slpvectorizer::BoUpSLP::ScheduleData&)’ should have been declared inside ‘llvm::slpvectorizer’
const BoUpSLP::ScheduleData &SD) {
^
llvm-svn: 272767
|
| |
|
|
|
|
|
|
|
|
|
| |
This uses the "runImpl" approach to share code with the old PM.
Porting to the new PM meant abandoning the anonymous namespace enclosing
most of SLPVectorizer.cpp which is a bit of a bummer (but not a big deal
compared to having to pull the pass class into a header which the new PM
requires since it calls the constructor directly).
llvm-svn: 272766
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: sdardis
Subscribers: dsanders, sdardis, llvm-commits
Differential Revision: http://reviews.llvm.org/D21068
llvm-svn: 272765
|
| |
|
|
|
|
|
|
| |
NOR instructions
Differential Revision: http://reviews.llvm.org/D16719
llvm-svn: 272764
|
| |
|
|
|
|
|
|
|
|
| |
SELECT behavior.
Use BLENDM instead of masked move instruction.
Differential Revision: http://reviews.llvm.org/D21001
llvm-svn: 272763
|
| |
|
|
|
|
|
|
|
| |
... instead of explicitly conditioning on NDEBUG. Also use an easier to
read conditional expression.
(Addresses post-commit review from David Blaikie.)
llvm-svn: 272762
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This fixes two related bugs. First, the generic optimization passes
unfortunately generate negative constant offsets but the hardware treats
SOffset as an unsigned value.
Second, there is a hardware bug on SI and CI, where address clamping in MUBUF
instructions does not work correctly when SOffset is larger than the buffer
size. This patch works around this bug by never using SOffset.
An alternative workaround would be to do the clamping manually when SOffset
is too large, but generating the required code sequence during instruction
selection would be rather involved, and in any case the resulting code would
probably be worse.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96360
Reviewers: arsenm, tstellarAMD
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21326
llvm-svn: 272761
|
| |
|
|
|
|
|
| |
TailCallReturnAddrDelta is used only in an assert, so put it under
defined(NDEBUG).
llvm-svn: 272760
|
| |
|
|
|
|
| |
The const is unnecessary.
llvm-svn: 272759
|
| |
|
|
| |
llvm-svn: 272758
|
| |
|
|
|
|
| |
This uses the "runImpl" pattern to share code between the old and new PM.
llvm-svn: 272757
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
... when the offset is not statically known.
Prioritize addresses relative to the stack pointer in the stackmap, but
fallback gracefully to other modes of addressing if the offset to the
stack pointer is not a known constant.
Patch by Oscar Blumberg!
Reviewers: sanjoy
Subscribers: llvm-commits, majnemer, rnk, sanjoy, thanm
Differential Revision: http://reviews.llvm.org/D21259
llvm-svn: 272756
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: The second consumer of attributes.
Reviewers: Wallbraker, whitequark, echristo, rafael, jyknight
Subscribers: mehdi_amini
Differential Revision: http://reviews.llvm.org/D21266
llvm-svn: 272754
|
| |
|
|
| |
llvm-svn: 272753
|
| |
|
|
|
|
|
|
| |
Use Optional<T> to denote the absence of a solution, not
SCEVCouldNotCompute. This makes the usage of SolveQuadraticEquation
somewhat simpler.
llvm-svn: 272752
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We we have an MCConstantExpr, we can encode it directly into the instruction
instead of emitting fixups.
Reviewers: artem.tamazov, vpykhtin, SamWot, nhaustov, arsenm
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21236
Change-Id: I88b3edf288d48e65c5d705fc4850d281f8e36948
llvm-svn: 272750
|
| |
|
|
|
|
|
|
|
|
| |
Document the new parameter and threshod computation
model. Also fix a bug when the threshold parameter
is set to be different from the default.
llvm-svn: 272749
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We can now reference symbols directly in operands, like this:
s_mov_b32 s0, global
Reviewers: artem.tamazov, vpykhtin, SamWot, nhaustov
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21038
llvm-svn: 272748
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ``FuzzerMutate.ShuffleBytes2`` unit test was failing on
OSX due to the implementation of ``std::random_shuffle()``
being different between libcxx and libstdc++.
@kcc has decided (see http://reviews.llvm.org/D21218) it is acceptable
for there to be different mutation behavior on different platforms so
this commit just adjusts the test to perform the minimum number of
iterations (that is a power of 2) to see all the mutations the unit test
is looking for.
Differential Revision: http://reviews.llvm.org/D21359
llvm-svn: 272743
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
r272715 broke libcxx because it did not correctly handle cases where the
last iteration of one IV is the second-to-last iteration of another.
Original commit message:
Vectorizing loops with "escaping" IVs has been disabled since r190790, due to
PR17179. This re-enables it, with support for external use of both
"post-increment" (last iteration) and "pre-increment" (second-to-last iteration)
IVs.
llvm-svn: 272742
|
| |
|
|
| |
llvm-svn: 272740
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We do not support splitting cleanuppad or catchswitches. This is
problematic for passes which assume that a loop is in loop simplify
form (the loop would have a dedicated exit block instead of sharing it).
While it isn't great that we don't support this for cleanups, we still
cannot make loop-simplify form an assertable precondition because
indirectbr will also disable these sorts of CFG cleanups.
This fixes PR28132.
llvm-svn: 272739
|
| |
|
|
|
|
|
|
|
| |
Emitting symbol information requires us to have a definition for the
symbol. A symbol reference is insufficient.
This fixes PR28123.
llvm-svn: 272738
|
| |
|
|
|
|
|
|
|
|
| |
Nearly all the changes to this pass have been done while maintaining and
updating other parts of LLVM. LLVM has had another pass, SROA, which
has superseded ScalarReplAggregates for quite some time.
Differential Revision: http://reviews.llvm.org/D21316
llvm-svn: 272737
|
| |
|
|
| |
llvm-svn: 272736
|
| |
|
|
| |
llvm-svn: 272734
|
| |
|
|
| |
llvm-svn: 272733
|
| |
|
|
| |
llvm-svn: 272731
|
| |
|
|
| |
llvm-svn: 272730
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
profile.
Summary: With runtime profile, we have more confidence in branch probability, thus during basic block layout, we set a lower hot prob threshold so that blocks can be layouted optimally.
Reviewers: djasper, davidxl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20991
llvm-svn: 272729
|