| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 174709
|
| |
|
|
|
|
|
|
|
|
|
| |
Attribute references are of this form:
define void @foo() #0 #1 #2 { ... }
Parse them for function attributes. If there's more than one reference, then
they are merged together.
llvm-svn: 174697
|
| |
|
|
|
|
|
|
| |
allowed size for the instruction. This code uses RegScavenger to fix this.
We sometimes need 2 registers for Mips16 so we must handle things
differently than how register scavenger is normally used.
llvm-svn: 174696
|
| |
|
|
|
|
|
|
|
|
| |
included."
This reverts commit 3854a5d90fee52af1065edbed34521fff6cdc18d.
This causes a clang unit test to hang: vtable-available-externally.cpp.
llvm-svn: 174692
|
| |
|
|
|
|
|
| |
The functionality of ParseOptionalFuncAttrs was there in
ParseFnAttributeValuePairs. So just use that instead.
llvm-svn: 174686
|
| |
|
|
| |
llvm-svn: 174675
|
| |
|
|
| |
llvm-svn: 174671
|
| |
|
|
| |
llvm-svn: 174666
|
| |
|
|
| |
llvm-svn: 174664
|
| |
|
|
|
|
|
| |
syms before constructing the compile units so we're not emitting
section references to sections not there already.
llvm-svn: 174663
|
| |
|
|
|
|
|
|
| |
Add #include <unistd.h> to OProfileWrapper.cpp. This provides the declarations for 'read' and 'close' that are otherwise missing, and result in 'error: <foo> was not declared in this scope'.
This matches the issue as reported in bug 15055 "Can no longer compile LLVM with --with-oprofile"
llvm-svn: 174661
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Certain vector operations don't vectorize well with the current
PowerPC implementation. Element insert/extract performs poorly
without VSX support because Altivec requires going through memory.
SREM, UREM, and VSELECT all produce bad scalar code.
There's a lot of work to do for the cost model before
autovectorization will be tuned well, and this is not an attempt to
address the larger problem.
llvm-svn: 174660
|
| |
|
|
|
|
|
|
| |
Change the
original JALR instruction with one register operand to be a pseudo-instruction.
llvm-svn: 174657
|
| |
|
|
|
|
|
|
|
|
| |
Remove all the unused code.
Patch by: Christian König
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174656
|
| |
|
|
|
|
|
|
|
|
| |
Allows nexuiz to run with radeonsi.
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174655
|
| |
|
|
|
|
|
|
|
|
| |
20 more little piglits with radeonsi.
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174654
|
| |
|
|
|
|
|
|
|
|
| |
The _SGPR variants where wrong.
Patch by: Christian König
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174653
|
| |
|
|
|
|
|
|
|
|
| |
v2: rebased on current upstream
Patch by: Christian König
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174652
|
| |
|
|
|
|
|
|
|
|
|
| |
This is for the case when no processor is passed to the backend. This
prevents the
'' is not a recognized processor for this target (ignoring processor)
warning from being generated by clang.
llvm-svn: 174651
|
| |
|
|
| |
llvm-svn: 174650
|
| |
|
|
|
|
|
|
|
|
| |
We don't want too many classes in a pass and the classes obscure the details. I
was going a little overboard with object modeling here. Replace classes by
generic code that handles both loads and stores.
No functionality change intended.
llvm-svn: 174646
|
| |
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174634
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Handle vectors of 1 to 16 integers.
Change the intrinsic names to prevent the wrong one from being selected at
runtime due to the overloading.
Patch By: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174633
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
v1i32, v2i32, v8i32 and v16i32.
Only add VGPR register classes for integer vector types, to avoid attempts
copying from VGPR to SGPR registers, which is not possible.
Patch By: Michel Dänzer
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174632
|
| |
|
|
|
|
|
|
| |
Vector selects are cheap on NEON. They get lowered to a vbsl instruction.
radar://13158753
llvm-svn: 174631
|
| |
|
|
|
|
|
| |
22 more little piglits with radeonsi.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 174615
|
| |
|
|
|
|
| |
Excuse me, I could not test it locally.
llvm-svn: 174614
|
| |
|
|
|
|
|
|
|
|
| |
Use sub0-15 everywhere.
Patch by: Michel Dänzerr
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 174610
|
| |
|
|
|
|
|
|
|
|
|
| |
These instructions compare two floating point values and return an
integer true (-1) or false (0) value.
When compiling code generated by the Mesa GLSL frontend, the SET*_DX10
instructions save us four instructions for most branch decisions that
use floating-point comparisons.
llvm-svn: 174609
|
| |
|
|
| |
llvm-svn: 174607
|
| |
|
|
|
|
| |
hosts.
llvm-svn: 174602
|
| |
|
|
|
|
| |
For example, when we are doing mips16 hard float or soft float.
llvm-svn: 174583
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A double inclusion will pretty much always be an error in TableGen, so
there's no point going on just to die with "def already defined" or
whatnot.
I'm not too thrilled about the "public: ... private: ..." to expose the
DependenciesMapTy, but I really didn't see a better way to keep that
type centralized. It's a smell that indicates that some refactoring is
needed to make this code more loosely coupled.
This should avoid all bugs of the same nature as PR15189.
llvm-svn: 174582
|
| |
|
|
|
|
|
|
| |
1. Moved a comment from ObjCARCOpts.cpp -> ObjCARCContract.cpp.
2. Removed a comment from ObjCARCOpts.cpp that was already moved to
ObjCARCAliasAnalysis.h/.cpp.
llvm-svn: 174581
|
| |
|
|
| |
llvm-svn: 174580
|
| |
|
|
|
| |
FIXME: Are they really truncated to i32 from i64 unconditionally?
llvm-svn: 174574
|
| |
|
|
| |
llvm-svn: 174571
|
| |
|
|
|
|
| |
implementation on the host. This is a little bit unfortunate, but until someone decides to implement a full libm for APFloat, we don't have a better way to get this functionality.
llvm-svn: 174561
|
| |
|
|
|
|
| |
intrinsics, including ones on half types.
llvm-svn: 174555
|
| |
|
|
| |
llvm-svn: 174550
|
| |
|
|
|
|
| |
units coming in.
llvm-svn: 174548
|
| |
|
|
| |
llvm-svn: 174547
|
| |
|
|
| |
llvm-svn: 174546
|
| |
|
|
|
|
|
|
|
|
|
|
| |
account. Atoms use LEA for updating SP in prologs/epilogs, and the
exact LEA opcode depends on the data model.
Also reapplying the test case which was added and then reverted
(because of Atom failures), this time specifying explicitly the CPU in
addition to the triple. The test case now checks all variations (data
mode, cpu Atom vs. Core).
llvm-svn: 174542
|
| |
|
|
|
|
|
|
| |
Most of PPCCallingConv.td is used only by the 32-bit SVR4 ABI. Rename
things to clarify this. Also delete some code that's been commented out
for a long time.
llvm-svn: 174526
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only implemented for R600 so far. SI is missing implementations of a
few callbacks used by the Indirect Addressing pass and needs code to
handle frame indices.
At the moment R600 only supports array sizes of 16 dwords or less.
Register packing of vector types is currently disabled, which means that a
vec4 is stored in T0_X, T1_X, T2_X, T3_X, rather than T0_XYZW. In order
to correctly pack registers in all cases, we will need to implement an
analysis pass for R600 that determines the correct vector width for each
array.
v2:
- Add support for i8 zext load from stack.
- Coding style fixes
v3:
- Don't reserve registers for indirect addressing when it isn't
being used.
- Fix bug caused by LLVM limiting the number of SubRegIndex
declarations.
v4:
- Fix 64-bit defines
llvm-svn: 174525
|
| |
|
|
|
|
|
|
|
| |
Weakly defined symbols should evaluate to 0 if they're undefined at
link-time. This is impossible to do with the usual address generation
patterns, so we should use a literal pool entry to materlialise the
address.
llvm-svn: 174518
|
| |
|
|
| |
llvm-svn: 174515
|
| |
|
|
|
|
|
|
| |
These instructions are a late addition to the architecture, and may
yet end up behind an optional attribute, but for now they're available
at all times.
llvm-svn: 174496
|
| |
|
|
|
|
|
| |
This adds hints to the various "prfm" instructions so that they can
affect the instruction cache as well as the data cache.
llvm-svn: 174495
|