- Jan 23, 2013
-
-
NAKAMURA Takumi authored
llvm-svn: 173240
-
NAKAMURA Takumi authored
llvm-svn: 173239
-
NAKAMURA Takumi authored
llvm-svn: 173238
-
NAKAMURA Takumi authored
It fixes --vg-leak. llvm-svn: 173237
-
NAKAMURA Takumi authored
IRTests/ConstantsTest.cpp: AsInstructionsTest: Delete each instruction immediately if it is not linked. llvm-svn: 173236
-
NAKAMURA Takumi authored
llvm-svn: 173235
-
NAKAMURA Takumi authored
llvm-svn: 173234
-
NAKAMURA Takumi authored
llvm-svn: 173233
-
Bill Wendling authored
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
-
Bill Wendling authored
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
-
Bill Wendling authored
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
-
Sean Silva authored
llvm-svn: 173224
-
Tom Stellard authored
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
-
Tom Stellard authored
Patch by: Vincent Lejeune Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 173221
-
Tom Stellard authored
Patch by: Vincent Lejeune Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 173220
-
Nadav Rotem authored
Add support for reverse pointer induction variables. These are loops that contain pointers that count backwards. For example, this is the hot loop in BZIP: do { m = *--p; *p = ( ... ); } while (--n); llvm-svn: 173219
-
Bill Wendling authored
when removing one attribute. This further encapsulates the use of the attributes. llvm-svn: 173214
-
Michael J. Spencer authored
llvm-svn: 173212
-
Bill Wendling authored
when adding a single attribute to the function. llvm-svn: 173210
-
Michael J. Spencer authored
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
-
- Jan 22, 2013
-
-
Richard Osborne authored
llvm-svn: 173204
-
Michael J. Spencer authored
Apparently this is how C++98 worked pre-DR. (Thanks Richard). llvm-svn: 173203
-
Michael Gottesman authored
llvm-svn: 173202
-
Michael Gottesman authored
[ObjCARC] Refactored out the inner most 2-loops from PerformCodePlacement 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
-
Michael Liao authored
- 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
-
Kevin Enderby authored
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
-
Akira Hatanaka authored
llvm-svn: 173197
-
Bill Wendling authored
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
-
Kevin Enderby authored
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
-
Akira Hatanaka authored
intended llvm-svn: 173189
-
Eli Bendersky authored
llvm-svn: 173181
-
Benjamin Kramer authored
X86: Make sure we account for the FMA4 register immediate value, otherwise rip-rel relocations will be off by one byte. PR15040. llvm-svn: 173176
-
Eli Bendersky authored
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
-
Dmitri Gribenko authored
This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 173163
-
Alexey Samsonov authored
llvm-symbolizer: factor out bits of the tool into separate LLVMSymbolize.{h,cpp} files. No functionality change. llvm-svn: 173159
-
Evgeniy Stepanov authored
llvm-svn: 173156
-
Evgeniy Stepanov authored
Volatile bitfields can cause valid stores of uninitialized bits. llvm-svn: 173153
-
Tim Northover authored
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
-
Chandler Carruth authored
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
-
NAKAMURA Takumi authored
llvm-svn: 173144
-