| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Actually every 64-bit loads are legal, but right now the API does not
offer a simple way to express that.
llvm-svn: 283829
|
| |
|
|
|
|
| |
This reverts commit r283824 and r283823 to fix buildbots.
llvm-svn: 283828
|
| |
|
|
|
|
| |
This feature will be tested in LLD unit tests.
llvm-svn: 283824
|
| |
|
|
|
|
|
|
|
|
| |
Previously, there is no way to create a stream other than pre-defined
special stream such as DBI or IPI. This patch adds a new method,
addDbgStream, to add a debug stream to a PDB file.
Differential Revision: https://reviews.llvm.org/D25356
llvm-svn: 283823
|
| |
|
|
| |
llvm-svn: 283814
|
| |
|
|
| |
llvm-svn: 283809
|
| |
|
|
| |
llvm-svn: 283808
|
| |
|
|
|
|
| |
They're basically just an alias for G_ADD on AArch64.
llvm-svn: 283807
|
| |
|
|
| |
llvm-svn: 283806
|
| |
|
|
|
|
|
|
| |
isFunctionEntryHot/isFunctionEntryCold. (NFC)
This is in preparation for https://reviews.llvm.org/D25048
llvm-svn: 283805
|
| |
|
|
|
|
|
|
|
|
|
| |
Add integer expansion for FLT_ROUNDS_ for targets where i32 is not a legal
type.
Patch by Edward Jones, thanks!
Differential Revision: https://reviews.llvm.org/D24459
llvm-svn: 283797
|
| |
|
|
|
|
|
|
|
| |
This is a regression introduced by the global variable ownership
reversal performed in r281284.
rdar://problem/28448075
llvm-svn: 283784
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: timshen
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D25419
llvm-svn: 283767
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The instructions VLDM/VSTM can only access word-aligned memory
locations and produce alignment fault if the condition is not met.
The compiler currently generates VLDM/VSTM for v2f64 load/store
regardless the alignment of the memory access. Instead, if a v2f64
load/store is not word-aligned, the compiler should generate
VLD1/VST1. For each non double-word-aligned VLD1/VST1, a VREV
instruction should be generated when targeting Big Endian.
Differential Revision: https://reviews.llvm.org/D25281
llvm-svn: 283763
|
| |
|
|
| |
llvm-svn: 283761
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Rotate by 1 is translated to 1 micro-op, while rotate with imm8 is translated to 2 micro-ops.
Fixes pr30644.
Reviewers: delena, igorb, craig.topper, spatel, RKSimon
Differential Revision: https://reviews.llvm.org/D25399
llvm-svn: 283758
|
| |
|
|
|
|
|
|
| |
instruction is not issued, but replaced by SDIVcc instead, which does not exhibit the error. Unit test included.
Differential Review: https://reviews.llvm.org/D24660
llvm-svn: 283727
|
| |
|
|
| |
llvm-svn: 283723
|
| |
|
|
|
|
| |
128-bit load as input.
llvm-svn: 283720
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit in the name of:Coby Tayree
1.'v' constraint for (x86) non-avx arch imitates the already implemented 'x' constraint, i.e. allows XMM{0-15} & YMM{0-15} depending on the apparent arch & mode (32/64).
2.for the avx512 arch it allows [X,Y,Z]MM{0-31} (mode dependent)
This patch applies the needed changes to clang
clang patch: https://reviews.llvm.org/D25004
Differential Revision: D25005
llvm-svn: 283717
|
| |
|
|
|
|
|
| |
This also changes the order of the statements in CMakeLists.txt to be
alphabetical.
llvm-svn: 283711
|
| |
|
|
|
|
| |
from SSE file. Also add a minimal set for 512-bit.
llvm-svn: 283704
|
| |
|
|
| |
llvm-svn: 283703
|
| |
|
|
|
|
|
|
| |
This avoids "static initialization order fiasco"
Differential Revision: https://reviews.llvm.org/D25412
llvm-svn: 283702
|
| |
|
|
|
|
|
|
|
|
| |
Masked-expand-load node represents load operation that loads a variable amount of elements from memory according to amount of "true" bits in the mask and expands the loaded elements according to their position in the mask vector.
Right now, the node is used in intrinsics for VEXPAND* instructions.
The work is done towards implementation of masked.expandload and masked.compressstore intrinsics.
Differential Revision: https://reviews.llvm.org/D25322
llvm-svn: 283694
|
| |
|
|
| |
llvm-svn: 283692
|
| |
|
|
| |
llvm-svn: 283691
|
| |
|
|
| |
llvm-svn: 283690
|
| |
|
|
| |
llvm-svn: 283689
|
| |
|
|
| |
llvm-svn: 283687
|
| |
|
|
| |
llvm-svn: 283686
|
| |
|
|
|
|
| |
created by the current process
llvm-svn: 283682
|
| |
|
|
| |
llvm-svn: 283676
|
| |
|
|
| |
llvm-svn: 283675
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
template
The core of the change is supposed to be NFC, however it also fixes
what I believe was an undefined behavior when calling:
va_start(ValueArgs, Desc);
with Desc being a StringRef.
Differential Revision: https://reviews.llvm.org/D25342
llvm-svn: 283671
|
| |
|
|
|
|
|
|
| |
VR128X/VR256X even when VLX isn't supported.
This seems to have been responsible for the XMM16-31 spills observed in PR29112. With this fixed the test case has been modified to no longer have a spill of XMM16.
llvm-svn: 283668
|
| |
|
|
|
|
| |
restriction rather than implying it from TypeJR.
llvm-svn: 283665
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When there is a call to an alias in the same module, we were not
adding a call edge. So we could incorrectly think that the alias
was dead if it was inlined in that function, despite having a
reference imported elsewhere. This resulted in unsats at link time.
Add a call edge when the call is to an alias.
Reviewers: davide, mehdi_amini
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25384
llvm-svn: 283664
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid generating indexed vector instructions for Exynos. This is needed for
fmla/fmls/fmul/fmulx. For example, the instruction
fmla v0.4s, v1.4s, v2.s[1]
is less efficient than the instructions
dup v2.4s, v2.s[1]
fmla v0.4s, v1.4s, v2.4s
Patch written by Abderrazek Zaafrani.
Differential Revision: https://reviews.llvm.org/D21571
llvm-svn: 283663
|
| |
|
|
|
|
|
|
|
|
|
| |
Value names may be prefixed with a binary '1' to indicate that the
backend should not modify the symbols due to any platform naming
convention.
This should not show up in the YAML opt record file because it breaks
the YAML parser.
llvm-svn: 283656
|
| |
|
|
|
|
|
|
|
| |
Clang always emit a hash for ThinLTO, but as other frontend are
starting to use ThinLTO, this could be a serious bug.
Differential Revision: https://reviews.llvm.org/D25379
llvm-svn: 283655
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We need to add an entry in the combined-index for modules that have
a hash but otherwise empty summary, this is needed so that we can
get the hash for the module.
Also, if no entry is present in the combined index for a module, we
need to skip it when trying to compute a cache entry.
Differential Revision: https://reviews.llvm.org/D25300
llvm-svn: 283654
|
| |
|
|
|
|
| |
This reverts commit 71c312652c10f1855b28d06697c08d47e7a243e4.
llvm-svn: 283647
|
| |
|
|
| |
llvm-svn: 283642
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first step towards round-tripping symbol information,
and thusly being able to write symbol information to a PDB.
This patch writes the symbol information for each compiland to
the Yaml when running in pdb2yaml mode. There's still some loose
ends, such as what to do about relocations (necessary in order to
print linkage names), how to print enums with friendly names, and
how to give the dumper access to the StringTable, but this is a
good first start.
llvm-svn: 283641
|
| |
|
|
|
|
| |
This wasn't looking at the right instruction, and would always fail.
llvm-svn: 283640
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We previously only used the frame pointer if the frame pointer was too
big. This was to work around a bug (described in this old commit)
https://sourceforge.net/p/avr-llvm/code/204/tree//llvm/trunk/AVR/AVRFrameLowering.cpp?diff=50d64d912718465cb887d17a:203
I mistakenly invered the condition assuming it was a typo. I am now
removing it because it doesn't seem to be a problem anymore (plus it's a
dirty hack).
llvm-svn: 283639
|
| |
|
|
|
|
| |
This works on clang, but fails on GCC 4.6
llvm-svn: 283638
|
| |
|
|
| |
llvm-svn: 283636
|
| |
|
|
|
|
|
|
| |
The rest spills to the stack
Authored by Jake Goulding
llvm-svn: 283635
|