- Jul 26, 2013
-
-
Rui Ueyama authored
Based on Ron Ofir's patch. llvm-svn: 187221
-
Rui Ueyama authored
Patch by Ron Ofir. llvm-svn: 187220
-
Rui Ueyama authored
Patch by Ron Ofir. llvm-svn: 187219
-
Hans Wennborg authored
This should have been part of r186720. llvm-svn: 187218
-
Eric Christopher authored
llvm-svn: 187217
-
Rui Ueyama authored
llvm-svn: 187216
-
Rui Ueyama authored
llvm-svn: 187215
-
Rui Ueyama authored
llvm-svn: 187214
-
Eric Christopher authored
type units. Initially this support is used in the computation of an ODR checker for C++. For now we're attaching it to the DIE, but in the future it will be attached to the type unit. This also starts breaking out types into the separation for type units, but without actually splitting the DIEs. In preparation for hashing the DIEs this adds a DIEString type that contains a StringRef with the string contained at the label. llvm-svn: 187213
-
Eric Christopher authored
llvm-svn: 187212
-
Rui Ueyama authored
llvm-svn: 187211
-
Daniel Jasper authored
New options: * Break before the commas of constructor initializers and align the commas with the colon. * Break before binary operators Additionally, for styles without column limit, don't just accept linebreaks done by the user, but instead remove 'invalid' (according to the current style) linebreaks and add 'required' ones. llvm-svn: 187210
-
Reid Kleckner authored
On Windows, this improves clean cmake configuration time on my workstation from 1m58s to 1m32s, which is pretty significant. There's probably more that can be done here, but this is the low hanging fruit. Eric volunteered to regenerate ./configure for me. llvm-svn: 187209
-
Rafael Espindola authored
Thanks to Hal Finkel for finding the bug and for the initial patch. llvm-svn: 187208
-
Argyrios Kyrtzidis authored
rdar://14556182 llvm-svn: 187207
-
Rafael Espindola authored
* Remove LLVM_ENABLE_CRT_REPORT. LLVM_DISABLE_CRASH_REPORT made it redundant. * set Return to 1, so that we get a stack trace on failure. * don't call _exit, so that we get a negative exit value and "not --crash" correctly differentiates crashes and regular errors. This is a bit experimental since the documentation on this interface is sparse. It doesn't bring up a dialog on my windows setup, but feel free to revert if it causes problem for your setup (and let me know what it is so that I can try to fix this patch). llvm-svn: 187206
-
Rafael Espindola authored
These tests fail without it if pipefail is enabled. llvm-svn: 187205
-
Tareq A. Siraj authored
Header replacements are now written to disk in YAML format for an external tool to merge. A unique file will be created in the same directory as the header with all replacements that came from a source file that included the header file. The YAML file will have: - Name of the file - Transform ID that generated the replacement - Offset - Length - Replacement text Any tool reading these replacements should read them using the TransformDocument struct. Differential Revision: http://llvm-reviews.chandlerc.com/D1142 llvm-svn: 187204
-
Rafael Espindola authored
llvm-svn: 187203
-
Justin Holewinski authored
CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 Attempt to fix the buildbots by making the X86 test I just added platform independent llvm-svn: 187202
-
Rafael Espindola authored
This reverts commit 187198. It broke the bots. The soft float test probably needs a -triple because of name differences. On the hard float test I am getting a "roundss $1, %xmm0, %xmm0", instead of "vroundss $1, %xmm0, %xmm0, %xmm0". llvm-svn: 187201
-
Aaron Watry authored
Found in CL 1.1 spec section 6.11.3 Signed-off-by:
Aaron Watry <awatry@gmail.com> Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 187200
-
Pavel Labath authored
This also reverts r187197. llvm-svn: 187199
-
Justin Holewinski authored
CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 llvm-svn: 187198
-
Rafael Espindola authored
llvm-svn: 187197
-
Pavel Labath authored
Summary: When binding a temporary object to a static local variable, the analyzer would complain about a dangling reference even though the temporary's lifetime should be extended past the end of the function. This commit tries to detect these cases and construct them in a global memory region instead of a local one. Reviewers: jordan_rose CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1133 llvm-svn: 187196
-
Richard Osborne authored
llvm-svn: 187195
-
NAKAMURA Takumi authored
llvm-svn: 187194
-
Richard Osborne authored
llvm-svn: 187193
-
NAKAMURA Takumi authored
llvm-svn: 187192
-
Chandler Carruth authored
robust. It now uses an InstVisitor and worklist to actually walk the uses of the Alloca transitively and detect the pattern which we can directly promote: loads & stores of the whole alloca and instructions we can completely ignore. Also, with this new implementation teach both the predicate for testing whether we can promote and the promotion engine itself to use the same code so we no longer have strange divergence between the two code paths. I've added some silly test cases to demonstrate that we can handle slightly more degenerate code patterns now. See the below for why this is even interesting. Performance impact: roughly 1% regression in the performance of SROA or ScalarRepl on a large C++-ish test case where most of the allocas are basically ready for promotion. The reason is because of silly redundant work that I've left FIXMEs for and which I'll address in the next commit. I wanted to separate this commit as it changes the behavior. Once the redundant work in removing the dead uses of the alloca is fixed, this code appears to be faster than the old version. =] So why is this useful? Because the previous requirement for promotion required a *specific* visit pattern of the uses of the alloca to verify: we *had* to look for no more than 1 intervening use. The end goal is to have SROA automatically detect when an alloca is already promotable and directly hand it to the mem2reg machinery rather than trying to partition and rewrite it. This is a 25% or more performance improvement for SROA, and a significant chunk of the delta between it and ScalarRepl. To get there, we need to make mem2reg actually capable of promoting allocas which *look* promotable to SROA without have SROA do tons of work to massage the code into just the right form. This is actually the tip of the iceberg. There are tremendous potential savings we can realize here by de-duplicating work between mem2reg and SROA. llvm-svn: 187191
-
Craig Topper authored
llvm-svn: 187190
-
Craig Topper authored
llvm-svn: 187189
-
Craig Topper authored
llvm-svn: 187188
-
Craig Topper authored
llvm-svn: 187187
-
Tobias Grosser authored
The bitcode representation attribute kinds are encoded into / decoded from should be independent of the current set of LLVM attributes and their position in the AttrKind enum. This patch explicitly encodes attributes to fixed bitcode values. With this patch applied, LLVM does not silently misread attributes written by LLVM 3.3. We also enhance the decoding slightly such that an error message is printed if an unknown AttrKind encoding was dected. Bonus: Dropping bitcode attributes from AttrKind is now easy, as old AttrKinds do not need to be kept to support the Bitcode reader. llvm-svn: 187186
-
Jason Molenda authored
easier to retrieve a register value. llvm-svn: 187184
-
Eli Friedman authored
Attempt 2. Sorry about the noise. llvm-svn: 187183
-
Craig Topper authored
llvm-svn: 187182
-
Bill Schmidt authored
This patch provides basic support for powerpc64le as an LLVM target. However, use of this target will not actually generate little-endian code. Instead, use of the target will cause the correct little-endian built-in defines to be generated, so that code that tests for __LITTLE_ENDIAN__, for example, will be correctly parsed for syntax-only testing. Code generation will otherwise be the same as powerpc64 (big-endian), for now. The patch leaves open the possibility of creating a little-endian PowerPC64 back end, but there is no immediate intent to create such a thing. The new test case variant ensures that correct built-in defines for little-endian code are generated. llvm-svn: 187180
-