| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
done for 128-bit.
llvm-svn: 156375
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The getPointerRegClass() hook can return register classes that depend on
the calling convention of the current function (ptr_rc_tailcall).
So far, we have been able to infer the calling convention from the
subtarget alone, but as we add support for multiple calling conventions
per target, that no longer works.
Patch by Yiannis Tsiouris!
llvm-svn: 156328
|
|
|
|
|
|
| |
Test cases for this code are coming. It is not used for anything yet.
llvm-svn: 156327
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function is a generalization of getMatchingSuperRegClass() to the
symmetric case where both sides are using a sub-register index. It will
find a super-register class and sub-register indexes that make this
diagram commute:
PreA
SuperRC ----------> RCA
| |
| |
PreB | | SubA
| |
| |
V V
RCB ----------> SubRC
SubB
This can be used to coalesce copies like:
%vreg1:sub16 = COPY %vreg2:sub16; GR64:%vreg1, GR32: %vreg2
llvm-svn: 156317
|
|
|
|
|
|
|
| |
single use.
rdar://11360370
llvm-svn: 156316
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will optimize -(x != 0) on X86
FROM
cmpl $0x01,%edi
sbbl %eax,%eax
notl %eax
TO
negl %edi
sbbl %eax %eax
In order to generate negl, I added patterns in Target/X86/X86InstrCompiler.td:
def : Pat<(X86sub_flag 0, GR32:$src), (NEG32r GR32:$src)>;
rdar: 10961709
llvm-svn: 156312
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156295
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156294
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156293
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156292
|
|
|
|
| |
llvm-svn: 156287
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156285
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156284
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156283
|
|
|
|
| |
llvm-svn: 156282
|
|
|
|
| |
llvm-svn: 156281
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156280
|
|
|
|
|
|
|
|
| |
from the previous 2 patches.
Patch by Jack Carter.
llvm-svn: 156279
|
|
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156278
|
|
|
|
|
|
|
|
|
| |
non-floating point general registers allow 8 and 16-bit
elements.
Patch by Jack Carter.
llvm-svn: 156277
|
|
|
|
|
|
| |
Simplify some of the decode functions.
llvm-svn: 156268
|
|
|
|
|
|
| |
looked through for DAG combine purposes.
llvm-svn: 156266
|
|
|
|
| |
llvm-svn: 156265
|
|
|
|
| |
llvm-svn: 156241
|
|
|
|
|
|
|
|
|
|
|
| |
This will be used to determine whether it's profitable to turn a select into a
branch when the branch is likely to be predicted.
Currently enabled for everything but Atom on X86 and Cortex-A9 devices on ARM.
I'm not entirely happy with the name of this flag, suggestions welcome ;)
llvm-svn: 156233
|
|
|
|
| |
llvm-svn: 156232
|
|
|
|
| |
llvm-svn: 156226
|
|
|
|
|
|
|
|
|
| |
This fixes a couple of Clang warnings in release builds of LLVM:
* Missing return in ISelLowering
* Unused variable in NVPTXutil.cpp
llvm-svn: 156216
|
|
|
|
|
|
| |
SignExtend32<22>(Val<<1) also needs to change to SignExtend32<21>(Val) .
llvm-svn: 156213
|
|
|
|
|
|
|
| |
where the symbolic operand's displacement was incorrectly shifted left by 1.
rdar://11387046
llvm-svn: 156212
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In file included from ../lib/Target/NVPTX/VectorElementize.cpp:53:
../lib/Target/NVPTX/NVPTX.h:44:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
default: assert(0 && "Unknown condition code");
^
1 warning generated.
The prevailing pattern in LLVM is to not use a default label, and instead to
use llvm_unreachable to denote that the switch in fact covers all return paths
from the function.
llvm-svn: 156209
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.
The new target machines are:
nvptx (old ptx32) => 32-bit PTX
nvptx64 (old ptx64) => 64-bit PTX
The sources are based on the internal NVIDIA NVPTX back-end, and
contain more functionality than the current PTX back-end currently
provides.
NV_CONTRIB
llvm-svn: 156196
|
|
|
|
|
|
| |
16-bits encoding of CMN instructions.
llvm-svn: 156195
|
|
|
|
| |
llvm-svn: 156194
|
|
|
|
| |
llvm-svn: 156189
|
|
|
|
|
|
|
|
| |
This moves the logic for selecting a TLS model to a single place,
instead of the previous three (ARM, Mips, and X86 which already
uses this function).
llvm-svn: 156162
|
|
|
|
| |
llvm-svn: 156159
|
|
|
|
| |
llvm-svn: 156158
|
|
|
|
| |
llvm-svn: 156157
|
|
|
|
| |
llvm-svn: 156156
|
|
|
|
| |
llvm-svn: 156154
|
|
|
|
|
|
| |
This information in now computed by TableGen.
llvm-svn: 156152
|
|
|
|
|
|
|
| |
The TargetLowering construction needs to use a valid TargetRegisterInfo
instance.
llvm-svn: 156146
|
|
|
|
|
|
|
|
| |
This iterator class provides a more abstract interface to the (Idx,
Mask) lists of super-registers for a register class. The layout of the
tables shouldn't be exposed to clients.
llvm-svn: 156144
|
|
|
|
|
|
| |
TargetRegisterClass now gives access to the necessary tables.
llvm-svn: 156122
|
|
|
|
|
|
|
|
|
| |
for the assembler and disassembler. Which were not being set/read correctly
for offsets greater than 22 bits in some cases.
Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!
llvm-svn: 156118
|
|
|
|
|
|
| |
This patch creates and optimizes packets as per Hexagon ISA rules.
llvm-svn: 156109
|
|
|
|
| |
llvm-svn: 156077
|
|
|
|
|
|
| |
This adds new instructions for Hexagon V4 architecture.
llvm-svn: 156071
|
|
|
|
|
|
| |
vector elements.
llvm-svn: 156060
|