| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 323250
|
|
|
|
|
|
|
|
| |
If the instruction is a bundle, check the instructions inside of it.
Patch by Suyog Sarda.
llvm-svn: 323240
|
|
|
|
| |
llvm-svn: 323233
|
|
|
|
|
|
|
|
|
|
|
| |
In addition to that, make sure that there are no boolean vector types that
are associated with multiple register classes. Specifically, remove v32i1
and v64i1 from integer register classes. These types will correspond to
results of vector comparisons, and as such should belong to the vector
predicate class. Having them in scalar registers as well makes legalization
ambiguous.
llvm-svn: 323229
|
|
|
|
|
|
| |
"the the" -> "the"
llvm-svn: 323074
|
|
|
|
| |
llvm-svn: 322499
|
|
|
|
|
|
|
| |
The old implementation was not always correct. The new one recognizes
more shuffles that match specific instructions.
llvm-svn: 322498
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This silences the following GCC7 warning:
lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp:142:30: warning:
enumeral and non-enumeral type in conditional expression [-Wextra]
return F != Colors.end() ? F->second : None;
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
Reviewers: amharc, RKSimon, davide
Reviewed By: RKSimon, davide
Differential Revision: https://reviews.llvm.org/D41003
llvm-svn: 322398
|
|
|
|
|
|
|
|
|
|
|
| |
We can probably take this a step further since the only
user of the isUsed flag is AsmParser it should probably
be doing this explicitly. For now this is a step in the
right direction though.
Differential Revision: https://reviews.llvm.org/D41971
llvm-svn: 322386
|
|
|
|
|
|
| |
The constants were aggregated in a reverse order.
llvm-svn: 322303
|
|
|
|
| |
llvm-svn: 322301
|
|
|
|
|
|
|
| |
With over 300k virtual registers, the size of the data exceeded 12GB.
Impose limits on how much information is collected.
llvm-svn: 322299
|
|
|
|
| |
llvm-svn: 322298
|
|
|
|
| |
llvm-svn: 322053
|
|
|
|
|
|
| |
Recommit r321897 with updated testcases.
llvm-svn: 321908
|
|
|
|
|
|
|
| |
Commit message:
[Hexagon] Add patterns for sext_inreg of HVX vector types
llvm-svn: 321904
|
|
|
|
|
|
|
| |
Commit message:
[Hexagon] Even simpler patterns for sign- and zero-extending HVX vectors
llvm-svn: 321902
|
|
|
|
| |
llvm-svn: 321897
|
|
|
|
|
|
| |
Only non-bool vectors.
llvm-svn: 321895
|
|
|
|
| |
llvm-svn: 321894
|
|
|
|
| |
llvm-svn: 321893
|
|
|
|
| |
llvm-svn: 321892
|
|
|
|
| |
llvm-svn: 321891
|
|
|
|
| |
llvm-svn: 321798
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently it's not possible to access MCSubtargetInfo from a TgtMCAsmBackend.
D20830 threaded an MCSubtargetInfo reference through
MCAsmBackend::relaxInstruction, but this isn't the only function that would
benefit from access. This patch removes the Triple and CPUString arguments
from createMCAsmBackend and replaces them with MCSubtargetInfo.
This patch just changes the interface without making any intentional
functional changes. Once in, several cleanups are possible:
* Get rid of the awkward MCSubtargetInfo handling in ARMAsmBackend
* Support 16-bit instructions when valid in MipsAsmBackend::writeNopData
* Get rid of the CPU string parsing in X86AsmBackend and just use a SubtargetFeature for HasNopl
* Emit 16-bit nops in RISCVAsmBackend::writeNopData if the compressed instruction set extension is enabled (see D41221)
This change initially exposed PR35686, which has since been resolved in r321026.
Differential Revision: https://reviews.llvm.org/D41349
llvm-svn: 321692
|
|
|
|
| |
llvm-svn: 321650
|
|
|
|
| |
llvm-svn: 321585
|
|
|
|
| |
llvm-svn: 321425
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-land r321234. It had to be reverted because it broke the shared
library build. The shared library build broke because there was a
missing LLVMBuild dependency from lib/Passes (which calls
TargetMachine::getTargetIRAnalysis) to lib/Target. As far as I can
tell, this problem was always there but was somehow masked
before (perhaps because TargetMachine::getTargetIRAnalysis was a
virtual function).
Original commit message:
This makes the TargetMachine interface a bit simpler. We still need
the std::function in TargetIRAnalysis to avoid having to add a
dependency from Analysis to Target.
See discussion:
http://lists.llvm.org/pipermail/llvm-dev/2017-December/119749.html
I avoided adding all of the backend owners to this review since the
change is simple, but let me know if you feel differently about this.
Reviewers: echristo, MatzeB, hfinkel
Reviewed By: hfinkel
Subscribers: jholewinski, jfb, arsenm, dschuff, mcrosier, sdardis, nemanjai, nhaehnle, javed.absar, sbc100, jgravelle-google, aheejin, kbarton, llvm-commits
Differential Revision: https://reviews.llvm.org/D41464
llvm-svn: 321375
|
|
|
|
|
|
| |
This reverts commit r321234. It breaks the -DBUILD_SHARED_LIBS=ON build.
llvm-svn: 321243
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes the TargetMachine interface a bit simpler. We still need
the std::function in TargetIRAnalysis to avoid having to add a
dependency from Analysis to Target.
See discussion:
http://lists.llvm.org/pipermail/llvm-dev/2017-December/119749.html
I avoided adding all of the backend owners to this review since the
change is simple, but let me know if you feel differently about this.
Reviewers: echristo, MatzeB, hfinkel
Reviewed By: hfinkel
Subscribers: jholewinski, jfb, arsenm, dschuff, mcrosier, sdardis, nemanjai, nhaehnle, javed.absar, sbc100, jgravelle-google, aheejin, kbarton, llvm-commits
Differential Revision: https://reviews.llvm.org/D41464
llvm-svn: 321234
|
|
|
|
| |
llvm-svn: 321233
|
|
|
|
| |
llvm-svn: 321221
|
|
|
|
|
|
| |
Handle BUILD_VECTOR of boolean values.
llvm-svn: 321220
|
|
|
|
| |
llvm-svn: 321218
|
|
|
|
| |
llvm-svn: 321177
|
|
|
|
| |
llvm-svn: 321034
|
|
|
|
| |
llvm-svn: 321009
|
|
|
|
|
|
|
| |
The code in Hexagon_MC::completeHVXFeatures wasn't setting all HVX-
related features correctly.
llvm-svn: 321008
|
|
|
|
| |
llvm-svn: 321005
|
|
|
|
|
|
| |
Implement any-extend as zero-extend.
llvm-svn: 321004
|
|
|
|
| |
llvm-svn: 321002
|
|
|
|
|
|
| |
The Function can never be nullptr so we can return a reference.
llvm-svn: 320884
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is primarily to reduce stack usage, but ordering the use queue
according to the position in the code (earlier instructions visited
before later ones) reduces the number of unnecessary bottoms due to
visiting instructions out of order, e.g.
%reg1 = copy %reg0
%reg2 = copy %reg0
%reg3 = and %reg1, %reg2
Here, reg3 should be known to be same as reg0-2, but if reg3 is
evaluated after reg1 is updated, but before reg2 is updated, the two
inputs to the and will appear different, causing reg3 to become
bottom.
llvm-svn: 320866
|
|
|
|
| |
llvm-svn: 320865
|
|
|
|
|
|
|
| |
PatFrag now has the atomicity information stored as bit fields. They
need to be copied to the new PatFrag.
llvm-svn: 320855
|
|
|
|
| |
llvm-svn: 320768
|
|
|
|
| |
llvm-svn: 320756
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than adding more bits to express every
MMO flag you could want, just directly use the
MMO flags. Also fixes using a bunch of bool arguments to
getMemIntrinsicNode.
On AMDGPU, buffer and image intrinsics should always
have MODereferencable set, but currently there is no
way to do that directly during the initial intrinsic
lowering.
llvm-svn: 320746
|
|
|
|
| |
llvm-svn: 320744
|