| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
explicitly set this in every target that needs to change it from the default.
llvm-svn: 173270
|
| |
|
|
|
|
|
|
|
| |
Argument.
This is still an egregious hack since we don't have a nice interface for this
kind of thing but should help the valgrind leak check buildbot to become green.
llvm-svn: 173267
|
| |
|
|
|
|
|
|
| |
renamed stuff).
Otherwise this might hide the problems.
llvm-svn: 173265
|
| |
|
|
|
|
| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55975 for details
llvm-svn: 173258
|
| |
|
|
|
|
|
|
| |
used uninitialized, since it fails to understand that Array is only used when
SingleValue is not, and outputs a warning. It also seems generally safer given
that the constructor is non-trivial and has plenty of early exits.
llvm-svn: 173242
|
| |
|
|
| |
llvm-svn: 173240
|
| |
|
|
| |
llvm-svn: 173239
|
| |
|
|
|
|
| |
linked.
llvm-svn: 173238
|
| |
|
|
|
|
| |
It fixes --vg-leak.
llvm-svn: 173237
|
| |
|
|
|
|
| |
immediately if it is not linked.
llvm-svn: 173236
|
| |
|
|
| |
llvm-svn: 173235
|
| |
|
|
| |
llvm-svn: 173234
|
| |
|
|
| |
llvm-svn: 173233
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The requirements of the strong heuristic are:
* 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.)
llvm-svn: 173231
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
attributes.
Collections of attributes are handled via the AttributeSet class now. This
finally frees us up to make significant changes to how attributes are structured.
llvm-svn: 173228
|
| |
|
|
| |
llvm-svn: 173224
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
contain pointers that count backwards.
For example, this is the hot loop in BZIP:
do {
m = *--p;
*p = ( ... );
} while (--n);
llvm-svn: 173219
|
| |
|
|
|
|
| |
when removing one attribute. This further encapsulates the use of the attributes.
llvm-svn: 173214
|
| |
|
|
| |
llvm-svn: 173212
|
| |
|
|
|
|
| |
when adding a single attribute to the function.
llvm-svn: 173210
|
| |
|
|
|
|
|
|
| |
ErrorOr<void> represents an operation that returns nothing, but can still fail.
It should be used in cases where you need the aditional user data that ErrorOr
provides over error_code.
llvm-svn: 173209
|
| |
|
|
| |
llvm-svn: 173204
|
| |
|
|
|
|
| |
Apparently this is how C++98 worked pre-DR. (Thanks Richard).
llvm-svn: 173203
|
| |
|
|
| |
llvm-svn: 173202
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into the method ConnectTDBUTraversals.
The method PerformCodePlacement was doing too much (i.e. 3x loops, lots of
different checking). This refactoring separates the analysis section of the
method into a separate function while leaving the actual code placement and
analysis preparation in PerformCodePlacement.
*NOTE* Really this part of ObjCARC should be refactored out of the main pass
class into its own seperate class/struct. But, it is not time to make that
change yet though (don't want to make such an invasive change without fixing all
of the bugs first).
llvm-svn: 173201
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the body does not use them and it appears the body has positional parameters.
This can cause unexpected results as in the added test case. As the darwin
version of gas(1) which only supported positional parameters, happened to
ignore the named parameters. Now that we want to support both styles of
macros we issue a warning in this specific case.
rdar://12861644
llvm-svn: 173199
|
| |
|
|
| |
llvm-svn: 173197
|
| |
|
|
|
|
|
| |
Use the AttributeSet when we're talking about more than one attribute. Add a
function that adds a single attribute. No functionality change intended.
llvm-svn: 173196
|
| |
|
|
|
|
|
|
|
| |
an expression. Currently this bug causes the line to be ignored in a
release build and an assert in a debug build.
rdar://13062484
llvm-svn: 173195
|
| |
|
|
|
|
| |
intended
llvm-svn: 173189
|
| |
|
|
| |
llvm-svn: 173181
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
ModuleID
This is done to avoid odd test failures, like the one fixed in r171243.
llvm-svn: 173163
|
| |
|
|
|
|
| |
LLVMSymbolize.{h,cpp} files. No functionality change.
llvm-svn: 173159
|
| |
|
|
| |
llvm-svn: 173156
|
| |
|
|
|
|
| |
Volatile bitfields can cause valid stores of uninitialized bits.
llvm-svn: 173153
|
| |
|
|
|
|
|
| |
This is a follow-up to r171845, which fixes the same issue in the Support code.
Only targets with >256 relocations (principally AArch64) should be affected.
llvm-svn: 173151
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generic function calls and intrinsics. This is somewhat overlapping with
an existing intrinsic cost method, but that one seems targetted at
vector intrinsics. I'll merge them or separate their names and use cases
in a separate commit.
This sinks the test of 'callIsSmall' down into TTI where targets can
control it. The whole thing feels very hack-ish to me though. I've left
a FIXME comment about the fundamental design problem this presents. It
isn't yet clear to me what the users of this function *really* care
about. I'll have to do more analysis to figure that out. Putting this
here at least provides it access to proper analysis pass tools and other
such. It also allows us to more cleanly implement the baseline cost
interfaces in TTI.
With this commit, it is now theoretically possible to simplify much of
the inline cost analysis's handling of calls by calling through to this
interface. That conversion will have to happen in subsequent commits as
it requires more extensive restructuring of the inline cost analysis.
The CodeMetrics class is now really only in the business of running over
a block of code and aggregating the metrics on that block of code, with
the actual cost evaluation done entirely in terms of TTI.
llvm-svn: 173148
|
| |
|
|
|
|
| |
[-Wsign-compare]
llvm-svn: 173144
|
| |
|
|
| |
llvm-svn: 173141
|
| |
|
|
|
|
|
|
|
| |
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: 173128
|
| |
|
|
|
|
| |
stage2. [-Wsign-compare]
llvm-svn: 173127
|
| |
|
|
|
|
|
| |
allows for gvn to perform certain optimizations. Thus the runline should
only contain -objc-arc-aa, not the full -objc-arc.
llvm-svn: 173126
|