| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SSPStrong applies a heuristic to insert stack protectors in these situations:
* A Protector is required for functions which contain an array, regardless of
type or length.
* A Protector is required for functions which contain a structure/union which
contains an array, regardless of type or length. Note, there is no limit to
the depth of nesting.
* A protector is required when the address of a local variable (i.e., stack
based variable) is exposed. (E.g., such as through a local whose address is
taken as part of the RHS of an assignment or a local whose address is taken as
part of a function argument.)
This patch implements the SSPString attribute to be equivalent to
SSPRequired. This will change in a subsequent patch.
llvm-svn: 173230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove Cxxx registers, add new special register - "ALU_CONST" and new
operand for each alu src - "sel". ALU_CONST is used to designate that the
new operand contains the value to override src.sel, src.kc_bank, src.chan
for constants in the driver.
Patch by: Vadim Girlin
Vincent Lejeune:
- Use pointers for constants
- Fold CONST_ADDRESS when possible
Tom Stellard:
- Give CONSTANT_BUFFER_0 its own address space
- Use integer types for constant loads
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 173222
|
| |
|
|
|
|
|
| |
Patch by: Vincent Lejeune
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 173221
|
| |
|
|
|
|
|
| |
Patch by: Vincent Lejeune
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 173220
|
| |
|
|
| |
llvm-svn: 173204
|
| |
|
|
|
|
|
|
|
|
| |
- Add list of physical registers clobbered in pseudo atomic insts
Physical registers are clobbered when pseudo atomic instructions are
expanded. Add them in clobber list to prevent DAG scheduler to
mis-schedule them after these insns are declared side-effect free.
- Add test case from Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 173200
|
| |
|
|
| |
llvm-svn: 173197
|
| |
|
|
|
|
| |
intended
llvm-svn: 173189
|
| |
|
|
|
|
|
|
| |
rip-rel relocations will be off by one byte.
PR15040.
llvm-svn: 173176
|
| |
|
|
|
|
|
|
| |
Add the x32 environment kind to the triple, and separate the concept of
pointer size and callee save stack slot size, since they're not equal
on x32.
llvm-svn: 173175
|
| |
|
|
|
|
|
|
|
| |
Previously we tried to infer it from the bit width size, with an added
IsIEEE argument for the PPC/IEEE 128-bit case, which had a default
value. This default value allowed bugs to creep in, where it was
inappropriate.
llvm-svn: 173138
|
| |
|
|
| |
llvm-svn: 173090
|
| |
|
|
| |
llvm-svn: 173087
|
| |
|
|
| |
llvm-svn: 173086
|
| |
|
|
| |
llvm-svn: 173085
|
| |
|
|
| |
llvm-svn: 173083
|
| |
|
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 173053
|
| |
|
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 173052
|
| |
|
|
|
|
|
|
|
| |
Patch by: Michel Dänzer
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 173051
|
| |
|
|
| |
llvm-svn: 173040
|
| |
|
|
| |
llvm-svn: 173010
|
| |
|
|
| |
llvm-svn: 173009
|
| |
|
|
| |
llvm-svn: 173008
|
| |
|
|
| |
llvm-svn: 173006
|
| |
|
|
| |
llvm-svn: 173005
|
| |
|
|
| |
llvm-svn: 172995
|
| |
|
|
|
|
| |
this file despite it not matching coding standards.
llvm-svn: 172994
|
| |
|
|
| |
llvm-svn: 172992
|
| |
|
|
| |
llvm-svn: 172987
|
| |
|
|
| |
llvm-svn: 172986
|
| |
|
|
| |
llvm-svn: 172985
|
| |
|
|
|
|
|
|
| |
It is not possible to distinguish 3r instructions from 2r / rus instructions
using only the fixed bits. Therefore if an instruction doesn't match the
2r / rus format try to decode it as a 3r instruction before returning Fail.
llvm-svn: 172984
|
| |
|
|
| |
llvm-svn: 172969
|
| |
|
|
|
|
|
|
|
| |
The optimization handles esoteric cases but adds a lot of complexity both to the X86 backend and to other backends.
This optimization disables an important canonicalization of chains of SEXT nodes and makes SEXT and ZEXT asymmetrical.
Disabling the canonicalization of consecutive SEXT nodes into a single node disables other DAG optimizations that assume
that there is only one SEXT node. The AVX mask optimizations is one example. Additionally this optimization does not update the cost model.
llvm-svn: 172968
|
| |
|
|
| |
llvm-svn: 172936
|
| |
|
|
|
|
| |
from the SVOp passed in.
llvm-svn: 172935
|
| |
|
|
| |
llvm-svn: 172933
|
| |
|
|
| |
llvm-svn: 172930
|
| |
|
|
|
|
| |
functions in this file.
llvm-svn: 172927
|
| |
|
|
| |
llvm-svn: 172894
|
| |
|
|
|
|
| |
be for legal types. Keeps compiler from generating unneeded checks and handling for extended types.
llvm-svn: 172893
|
| |
|
|
|
|
| |
includes.
llvm-svn: 172891
|
| |
|
|
|
|
|
|
|
|
|
| |
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Formatting fixes. Mostly long lines and
blank spaces at end of lines.
Contributer: Jack Carter
llvm-svn: 172882
|
| |
|
|
|
|
| |
vinsertf128) is faster than using a single vmovups instruction.
llvm-svn: 172868
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Support for Mips register information sections.
Mips ELF object files have a section that is dedicated
to register use info. Some of this information such as
the assumed Global Pointer value is used by the linker
in relocation resolution.
The register info file is .reginfo in o32 and .MIPS.options
in 64 and n32 abi files.
This patch contains the changes needed to create the sections,
but leaves the actual register accounting for a future patch.
Contributer: Jack Carter
llvm-svn: 172847
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some instructions like memory reads/writes are executed
asynchronously, so we need to insert S_WAITCNT instructions
to block before accessing their results. Previously we have
just inserted S_WAITCNT instructions after each async
instruction, this patch fixes this and adds a prober
insertion pass.
Patch by: Christian König
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
llvm-svn: 172846
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We shouldn't insert KILL optimization if we don't have a
kill instruction at all.
Patch by: Christian König
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
llvm-svn: 172845
|
| |
|
|
|
|
|
|
|
|
|
| |
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Removal of redundant code and formatting fixes.
Contributers: Jack Carter/Vladimir Medic
llvm-svn: 172842
|
| |
|
|
|
|
| |
immediate handling. Also use MVT since this only called on legal types during pattern matching.
llvm-svn: 172797
|
| |
|
|
| |
llvm-svn: 172795
|