Rafael Espindola [Thu, 20 Jun 2013 11:59:19 +0000 (11:59 +0000)]
Convert a use of sys::Path.
llvm-svn: 184412
Vladimir Medic [Thu, 20 Jun 2013 11:21:49 +0000 (11:21 +0000)]
Optimize register parsing for MipsAsmParser. Allow symbolic aliases for FPU registers.
llvm-svn: 184411
Evgeniy Stepanov [Thu, 20 Jun 2013 10:49:46 +0000 (10:49 +0000)]
Add -fno-assume-sane-operator-new when building with MSan.
A workaroudn for PR16386. MSan's operator new aften has side-effects that are
miscompiled without this flag.
llvm-svn: 184410
Evgeniy Stepanov [Thu, 20 Jun 2013 09:45:36 +0000 (09:45 +0000)]
Fix unused function warning w/o changing compiler flags.
We have way too many different build systems.
llvm-svn: 184409
Chandler Carruth [Thu, 20 Jun 2013 09:42:40 +0000 (09:42 +0000)]
Update two options to my proposed syntax for user-facing driver options:
-gcc-toolchain foo -> --gcc-toolchain=foo
-target foo -> --target=foo
I've added legacy aliases for the original spellings. I've updated the
canonical tests to check both spellings, and switched all of the
-gcc-toolchain usages elsewhere in the test suite to use the new one.
I've updated some of the usages of -target to the new syntax, but will
finish that in a separate entirely mechanical change once I'm sure this
won't get rolled back for some reason (It touches a *huge* number of RUN
lines in the test suite unsurprisingly).
A nice result is that the three most common flags I end up using when
doing cross compiles are all now consistent: --target=, --sysroot=, and
--gcc-toolchain=.
llvm-svn: 184408
Evgeniy Stepanov [Thu, 20 Jun 2013 09:39:34 +0000 (09:39 +0000)]
[sanitizer] Fix Mac build.
llvm-svn: 184407
Evgeniy Stepanov [Thu, 20 Jun 2013 09:21:25 +0000 (09:21 +0000)]
Remove an outdated comment.
llvm-svn: 184406
Evgeniy Stepanov [Thu, 20 Jun 2013 09:19:28 +0000 (09:19 +0000)]
[sanitizer] Handle EVIOxxxx ioctls.
llvm-svn: 184405
Alexey Samsonov [Thu, 20 Jun 2013 08:13:06 +0000 (08:13 +0000)]
[ASan] Clear allocation magic value before recycling the chunk. This led to spurious crashes in LSan when it walked through reused chunks. Don't know how to create not-brittle test case for this.
llvm-svn: 184404
Pavel Labath [Thu, 20 Jun 2013 07:45:01 +0000 (07:45 +0000)]
Fix static analyzer crash when casting from an incomplete type
Summary:
When doing a reinterpret+dynamic cast from an incomplete type, the analyzer
would crash (bug #16308). This fix makes the dynamic cast evaluator ignore
incomplete types, as they can never be used in a dynamic_cast. Also adding a
regression test.
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1006
llvm-svn: 184403
Chandler Carruth [Thu, 20 Jun 2013 07:06:39 +0000 (07:06 +0000)]
Add a regression test for PR16370 next to the dr7 test case since they
seem closely related. (I'm happy to move this if others have a better
idea of where to put it.)
llvm-svn: 184402
Chandler Carruth [Thu, 20 Jun 2013 07:06:34 +0000 (07:06 +0000)]
Temporarily revert r183462: "Implement DR7"
This fixes PR16370, I'll add the test case in a follow-up commit.
llvm-svn: 184401
Bill Wendling [Thu, 20 Jun 2013 06:51:06 +0000 (06:51 +0000)]
Remove static, because it was messing everything up.
llvm-svn: 184400
Andy Gibbs [Thu, 20 Jun 2013 06:47:36 +0000 (06:47 +0000)]
Revise r184335 so that warning suppression flag is only for clang 3.4 and higher
llvm-svn: 184399
Shankar Easwaran [Thu, 20 Jun 2013 04:27:21 +0000 (04:27 +0000)]
[TargetInfo] Undefined symbols move from ELFTargetInfo to TargetInfo
This change moves the functionality of undefinedSymbols that were created in
ELFTargetInfo into TargetInfo. Looks like MachO/Windows use similiar options
like in ELF for creating undefined symbols when the linker is invoked.
Address comment from Ruiu.
(No change in functionality, except moving the functionality from ELF to
TargetInfo, so that multiple architectures can use the same)
llvm-svn: 184398
Eli Friedman [Thu, 20 Jun 2013 04:11:21 +0000 (04:11 +0000)]
Fix one place I missed that was memcpy'ing TypeLocs in a way that messes
up alignment.
Fixes utilities/tuple/tuple.tuple/tuple.creation/tuple_cat.pass.cpp from the
libc++ testsuite.
llvm-svn: 184397
Richard Smith [Thu, 20 Jun 2013 03:00:05 +0000 (03:00 +0000)]
PR16377: Allow evaluation of statement expressions in constant evaluation,
why not. Apparently GCC supports this.
llvm-svn: 184396
Richard Smith [Thu, 20 Jun 2013 02:18:31 +0000 (02:18 +0000)]
Add a workaround for a libstdc++-4.2 <tr1/hashtable> bug. This header uses
return false;
in a function returning a pointer. 'false' was a null pointer constant in C++98
but is not in C++11. Punch a very small hole in the initialization rules in
C++11 mode to allow this specific case in system headers.
llvm-svn: 184395
Howard Hinnant [Thu, 20 Jun 2013 01:55:07 +0000 (01:55 +0000)]
Protect against invalid mangled names. Add test suite for invalid mangled names.
llvm-svn: 184394
Eli Friedman [Thu, 20 Jun 2013 01:47:05 +0000 (01:47 +0000)]
One more cast test.
llvm-svn: 184393
Eli Friedman [Thu, 20 Jun 2013 01:35:13 +0000 (01:35 +0000)]
Add a few more tests for casts.
llvm-svn: 184392
Richard Smith [Thu, 20 Jun 2013 01:33:59 +0000 (01:33 +0000)]
Fix typo in r184308.
llvm-svn: 184391
Greg Clayton [Thu, 20 Jun 2013 01:24:52 +0000 (01:24 +0000)]
Fixed a crasher that I encountered when looking up a virtual base class offset.
llvm-svn: 184390
Greg Clayton [Thu, 20 Jun 2013 01:23:56 +0000 (01:23 +0000)]
Cleanup the output a bit by removing old print statements and also printing the number of types found.
llvm-svn: 184389
Greg Clayton [Thu, 20 Jun 2013 01:23:18 +0000 (01:23 +0000)]
Unique types a bit more using the clang type to make sure we don't get multiple copies of the same type due to the debug info having multiple types that get uniqued.
llvm-svn: 184388
David Blaikie [Thu, 20 Jun 2013 00:25:24 +0000 (00:25 +0000)]
DebugInfo: don't use location lists when the location covers the whole function anyway
Fix up three tests - one that was relying on abbreviation number,
another relying on a location list in this case (& testing raw asm,
changed that to use dwarfdump on the debug_info now that that's where
the location is), and another which was added in r184368 - exposing a
bug in that fix that is exposed when we emit the location inline rather
than through a location list. Fix that bug while I'm here.
llvm-svn: 184387
Eli Friedman [Thu, 20 Jun 2013 00:04:23 +0000 (00:04 +0000)]
Add a testcase which uses an UnresolvedUsingTypenameDecl as the base of an NNS.
llvm-svn: 184386
Michael Gottesman [Wed, 19 Jun 2013 23:23:49 +0000 (23:23 +0000)]
[clang-lit] Added the run_long_tests param option/long_tests feature to toggle execution of long running FileCheck tests.
This will allow for longer running FileCheck based tests to be committed to
clang for use on buildbots, preventing the normal make-check cycle from
increasing in time significantly.
This is a necessary change in order to commit the end-to-end arm neon intrinsic
tests since FileCheck takes ~20 seconds to run said test due to the large amount
of neon intrinsics.
To force a test to run only when --param run_long_tests=true is passed in use
the following requires statement:
// REQUIRES: long_tests
llvm-svn: 184385
Stephen Lin [Wed, 19 Jun 2013 23:23:19 +0000 (23:23 +0000)]
Revert r184205 and associated patches while investigating issue with broken buildbot (possible interaction with LTO)
<rdar://problem/
14209661>
llvm-svn: 184384
Argyrios Kyrtzidis [Wed, 19 Jun 2013 23:15:35 +0000 (23:15 +0000)]
[libclang] Make sure crash-recovery for module-building does not interfere with libclang crash-recovery.
This tests llvm commit r184380.
rdar://
14204560
llvm-svn: 184383
Eli Friedman [Wed, 19 Jun 2013 23:00:37 +0000 (23:00 +0000)]
Fix r184381 so the test doesn't fail. Sorry for the inconvenience, I thought I had checked it.
llvm-svn: 184382
Eli Friedman [Wed, 19 Jun 2013 22:58:30 +0000 (22:58 +0000)]
Extra test for diagnostic in Sema::BuildCXXNestedNameSpecifier.
llvm-svn: 184381
Argyrios Kyrtzidis [Wed, 19 Jun 2013 22:53:45 +0000 (22:53 +0000)]
[Support/CrashRecoveryContext] Make sure CrashRecoveryContext does not clear the thread-local "CurrentContext"
in the "parent" thread, when we are using CrashRecoveryContext::RunSafelyOnThread.
When using CrashRecoveryContext::RunSafelyOnThread, we would set a CrashRecoveryContextImpl* to a thread-local variable
for the "child" thread, but CrashRecoveryContext would erroneously clear it in the "parent" thread.
The result was that if CrashRecoveryContext::RunSafelyOnThread was called again in the "child" thread it would mess up
crash-recovery for its parent.
A test for this will be added in the clang repository.
rdar://
14204560
llvm-svn: 184380
Eli Friedman [Wed, 19 Jun 2013 22:49:39 +0000 (22:49 +0000)]
Remove dead code.
llvm-svn: 184379
Eli Friedman [Wed, 19 Jun 2013 22:43:55 +0000 (22:43 +0000)]
Improve diagnostic for redeclaring static member function. Fixes PR16382.
llvm-svn: 184378
Richard Trieu [Wed, 19 Jun 2013 22:25:01 +0000 (22:25 +0000)]
Fix for PR 16367, display the name of a function in a diagnostic instead of
showing "(null)".
llvm-svn: 184377
Bill Wendling [Wed, 19 Jun 2013 22:16:33 +0000 (22:16 +0000)]
This is now a duplicate.
llvm-svn: 184376
Bill Wendling [Wed, 19 Jun 2013 22:16:11 +0000 (22:16 +0000)]
Make the '==' operator inline.
llvm-svn: 184375
Bill Wendling [Wed, 19 Jun 2013 22:12:11 +0000 (22:12 +0000)]
Make this static inline to avoid duplicates.
llvm-svn: 184374
Bill Wendling [Wed, 19 Jun 2013 22:09:25 +0000 (22:09 +0000)]
Make the comparison operators non-member functions.
llvm-svn: 184373
David Blaikie [Wed, 19 Jun 2013 22:07:11 +0000 (22:07 +0000)]
Now that we get non-trivial value parameters locations correct, un-XFAIL these tests.
llvm-svn: 184372
Eli Friedman [Wed, 19 Jun 2013 22:01:25 +0000 (22:01 +0000)]
Add missing test for -Wunneeded-member-functions.
llvm-svn: 184371
David Blaikie [Wed, 19 Jun 2013 22:00:13 +0000 (22:00 +0000)]
Spelling correction
llvm-svn: 184370
Bill Wendling [Wed, 19 Jun 2013 21:59:00 +0000 (21:59 +0000)]
Don't pass in the TargetInstrInfo into the register info object. It doesn't use it.
llvm-svn: 184369
David Blaikie [Wed, 19 Jun 2013 21:55:13 +0000 (21:55 +0000)]
DebugInfo: PR14763/r183329 correct the location of indirect parameters
We had been papering over a problem with location info for non-trivial
types passed by value by emitting their type as references (this caused
the debugger to interpret the location information correctly, but broke
the type of the function). r183329 corrected the type information but
lead to the debugger interpreting the pointer parameter as the value -
the debug info describing the location needed an extra dereference.
Use a new flag in DIVariable to add the extra indirection (either by
promoting an existing DW_OP_reg (parameter passed in a register) to
DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n
(parameter passed on the stack).
llvm-svn: 184368
David Blaikie [Wed, 19 Jun 2013 21:53:53 +0000 (21:53 +0000)]
Debug Info: PR14763/r183329 - specify that non-trivial pass-by-value parameters are stored indirectly
This is to fix the location information for such parameters to refer to
the object accessible through the pointer rather than to the pointer
parameter itself.
llvm-svn: 184367
Michael Gottesman [Wed, 19 Jun 2013 21:53:45 +0000 (21:53 +0000)]
[APFloat] Changed APFloat::isNormal => APFloat::isFiniteNonZero for all tests in unittests.
I forgot to to do this in r184356. The only references were in APFloatTest.cpp.
llvm-svn: 184366
David Blaikie [Wed, 19 Jun 2013 21:52:48 +0000 (21:52 +0000)]
DebugInfo: Specify that a value is stored indirectly
This is a precursor to fix a regression caused by PR14763/r183329 where
the location of a non-trivial pass-by-value parameter ends up
incorrectly referring directly to the parameter (a pointer) rather than
the object pointed to by the pointer.
llvm-svn: 184365
Greg Clayton [Wed, 19 Jun 2013 21:50:28 +0000 (21:50 +0000)]
Implemented a types.py module that allows types to be inspected for padding.
The script was able to point out and save 40 bytes in each lldb_private::Section by being very careful where we need to have virtual destructors and also by re-ordering members.
llvm-svn: 184364
Enrico Granata [Wed, 19 Jun 2013 21:48:09 +0000 (21:48 +0000)]
Huge speedup for testsuite categories
This ensures that we won't try to do cleanups of test cases that we are skipping
e.g. this brings down the time required to run the cmdline category on my machine from ~70s to ~30s
llvm-svn: 184363
David Blaikie [Wed, 19 Jun 2013 21:42:05 +0000 (21:42 +0000)]
Spell correct (s/begining/beginning/)
llvm-svn: 184362
David Blaikie [Wed, 19 Jun 2013 21:37:13 +0000 (21:37 +0000)]
llvm-dwarfdump: Add support for dumping the .debug_loc section
This is a basic implementation - we still don't have any support (that I
know of) for dumping DWARF expressions in a meaningful way, so the
location information itself is just printed as a sequence of bytes as we
do elsewhere.
llvm-svn: 184361
Bill Wendling [Wed, 19 Jun 2013 21:36:55 +0000 (21:36 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
llvm-svn: 184360
Rafael Espindola [Wed, 19 Jun 2013 21:33:52 +0000 (21:33 +0000)]
Remove unused function.
llvm-svn: 184359
Howard Hinnant [Wed, 19 Jun 2013 21:29:40 +0000 (21:29 +0000)]
Implement full support for non-pointer types in custom allocators. This is for the associative containers only. This work still needs to be done on the unordered and sequence containers. Fixes llvm.org/bugs/show_bug.cgi?id=15978
llvm-svn: 184358
Ulrich Weigand [Wed, 19 Jun 2013 21:27:27 +0000 (21:27 +0000)]
[MC/DWARF] Generate multiple .debug_line entries for adjacent .loc directives
The compiler occasionally generates multiple .loc directives in a row
(at the same instruction address). These need to be transformed into
multple actual .debug_line table entries, since they are used to signal
certain information to the debugger (e.g. if the opening brace of a
function body is on the same line as the declaration).
The MCAsmStreamer version of EmitDwarfLocDirective handles this
correctly by emitting a .loc directive every time it is called.
However, the MCObjectStream version simply defaults to recording
the information and emitting only a single table entry later,
e.g. when EmitInstruction is called.
This patch introduces a MCAsmStreamer::EmitDwarfLocDirective
version that emits a line table entry for a .loc directive
that may already be pending before recording the new directive.
(This is similar to how this is handled in GNU as.)
With this patch (and the code alignment factor patch) applied,
I'm now getting identical DWARF .debug sections for all test-suite
object files on PowerPC for the internal and the external assembler.
llvm-svn: 184357
Michael Gottesman [Wed, 19 Jun 2013 21:23:18 +0000 (21:23 +0000)]
[APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero.
Turns out all the references were in llvm and not in clang.
llvm-svn: 184356
Rafael Espindola [Wed, 19 Jun 2013 21:21:43 +0000 (21:21 +0000)]
Really fix the missing header :-(
llvm-svn: 184355
Rafael Espindola [Wed, 19 Jun 2013 21:20:41 +0000 (21:20 +0000)]
Add missing include found by the bots.
llvm-svn: 184354
Rafael Espindola [Wed, 19 Jun 2013 21:13:59 +0000 (21:13 +0000)]
Remove last use of PathV1.h from Archive.h
Store the individual fields we need instead of a sys::FileStatus.
llvm-svn: 184353
Bill Wendling [Wed, 19 Jun 2013 21:07:11 +0000 (21:07 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
llvm-svn: 184352
Aaron Ballman [Wed, 19 Jun 2013 21:03:50 +0000 (21:03 +0000)]
Modified the implementation of fs::GetUniqueID on Windows such that it actually finds a unique identifier for a file. Also adds unit tests for GetUniqueID.
llvm-svn: 184351
Michael Gottesman [Wed, 19 Jun 2013 21:00:17 +0000 (21:00 +0000)]
[APFloat] Added isFiniteNonZero predicate.
This is the first patch in a series of patches to rename isNormal =>
isFiniteNonZero and isIEEENormal => isNormal. In order to prevent careless
errors on my part the overall plan is:
1. Add the isFiniteNonZero predicate with tests. I can do this in a method
independent of isNormal. (This step is this patch).
2. Convert all references to isNormal with isFiniteNonZero. My plan is to
comment out isNormal locally and continually convert isNormal references =>
isFiniteNonZero until llvm/clang compiles.
3. Remove old isNormal and rename isIEEENormal to isNormal.
4. Look through all of said references from patch 2 and see if we can simplify
them by using the new isNormal.
llvm-svn: 184350
Bill Wendling [Wed, 19 Jun 2013 20:51:24 +0000 (20:51 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
llvm-svn: 184349
Bill Wendling [Wed, 19 Jun 2013 20:50:12 +0000 (20:50 +0000)]
Add operator!= as the compliment to operator==. This is for a future change.
llvm-svn: 184348
John Thompson [Wed, 19 Jun 2013 20:35:50 +0000 (20:35 +0000)]
Fixed typo.
llvm-svn: 184347
Bill Wendling [Wed, 19 Jun 2013 20:32:16 +0000 (20:32 +0000)]
Don't cache the TLI object since we have access to it through TargetMachine already.
llvm-svn: 184346
Michael Gottesman [Wed, 19 Jun 2013 20:31:54 +0000 (20:31 +0000)]
[APFloat] Expose isSmallest/isLargest as public methods.
I have had several requests to expose these two methods as public for various
potential optimizations.
llvm-svn: 184345
Ahmed Bougacha [Wed, 19 Jun 2013 20:18:59 +0000 (20:18 +0000)]
Allow creation of single-byte MCAtoms.
llvm-svn: 184344
Matt Arsenault [Wed, 19 Jun 2013 20:18:24 +0000 (20:18 +0000)]
Move StructurizeCFG out of R600 to generic Transforms.
Register it with PassManager
llvm-svn: 184343
Andy Gibbs [Wed, 19 Jun 2013 20:04:56 +0000 (20:04 +0000)]
Use LLDB_INVALID_REGNUM at Mike Sartain's suggestion
llvm-svn: 184342
Quentin Colombet [Wed, 19 Jun 2013 19:59:41 +0000 (19:59 +0000)]
LSR: Fix the parameters used to compute the scaling factor cost.
Prior to this change, the considered addressing modes may be invalid since the
maximum and minimum offsets were not taking into account.
This was causing an assertion failure.
The added test case exercices that behavior.
<rdar://problem/
14199725> Assertion failed: (CurScaleCost >= 0 && "Legal
addressing mode has an illegal cost!")
llvm-svn: 184341
Alexander Kornienko [Wed, 19 Jun 2013 19:50:11 +0000 (19:50 +0000)]
Fixed long-standing issue with incorrect length calculation of multi-line comments.
Summary:
A trailing block comment having multiple lines would cause extremely
high penalties if the summary length of its lines is more than the column limit.
Fixed by always considering only the last line of a multi-line block comment.
Removed a long-standing FIXME from relevant tests and added a motivating test
modelled after problem cases from real code.
Reviewers: klimek
Reviewed By: klimek
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1010
llvm-svn: 184340
Ashok Thirumurthi [Wed, 19 Jun 2013 19:32:56 +0000 (19:32 +0000)]
Updated the LLDB download page to reflect Debian package locations for 3.3 as well as the incremental 3.4 releases.
llvm-svn: 184339
Bill Wendling [Wed, 19 Jun 2013 19:26:44 +0000 (19:26 +0000)]
Add unit test to test a trivial verifier check.
llvm-svn: 184338
Rafael Espindola [Wed, 19 Jun 2013 19:17:15 +0000 (19:17 +0000)]
Always set the mode.
This matches GNU ar behavior. Also remove the now unused getFileStatus method.
Not sure how to add a test, it would have to run ls -l or something like that.
llvm-svn: 184337
Enrico Granata [Wed, 19 Jun 2013 19:15:29 +0000 (19:15 +0000)]
<rdar://problem/
14005652>
Fixing a bug with the NSString data formatter where some strings would be truncated
llvm-svn: 184336
Andy Gibbs [Wed, 19 Jun 2013 19:06:44 +0000 (19:06 +0000)]
The 'register' keyword is now deprecated in C++11, so ignore the warning when compiling lldb with clang since python headers commonly use the keyword.
llvm-svn: 184335
Andy Gibbs [Wed, 19 Jun 2013 19:05:52 +0000 (19:05 +0000)]
Fix two 'variable is used uninitialised' warnings. Change assert to llvm_unreachable.
llvm-svn: 184334
Andy Gibbs [Wed, 19 Jun 2013 19:04:53 +0000 (19:04 +0000)]
Sort out a number of mismatched integer types in order to cut down the number of compiler warnings.
llvm-svn: 184333
Eli Friedman [Wed, 19 Jun 2013 19:03:14 +0000 (19:03 +0000)]
Delete dead code. (Array element types are always complete in C.)
llvm-svn: 184332
Samuel Benzaquen [Wed, 19 Jun 2013 18:45:24 +0000 (18:45 +0000)]
Enhancements for the DynTypedNode
Added ASTNodeKind as a standalone way to represent node kinds and their hierarchy.
This change is to support ongoing work on D815.
Reviewers: klimek
CC: cfe-commits
llvm-svn: 184331
Stephen Lin [Wed, 19 Jun 2013 18:10:35 +0000 (18:10 +0000)]
Corrections to r184205 ('this'-return optimization) due to the wrong version of the patch being committed originally.
1) Removed useless return value of CGCXXABI::EmitConstructorCall and CGCXXABI::EmitVirtualDestructorCall and implementations
2) Corrected last portion of CodeGenCXX/constructor-destructor-return-this to correctly test for non-'this'-return of virtual destructor calls
llvm-svn: 184330
Fariborz Jahanian [Wed, 19 Jun 2013 18:08:03 +0000 (18:08 +0000)]
documentation parsing: patch to make @class work for
class templates; and similarly, @function works for
function templates. // rdar://
14124702
llvm-svn: 184329
Rafael Espindola [Wed, 19 Jun 2013 17:49:07 +0000 (17:49 +0000)]
Remove more uses of sys::Path.
llvm-svn: 184328
Rui Ueyama [Wed, 19 Jun 2013 17:46:57 +0000 (17:46 +0000)]
[PECOFF] Add a pass to ensure the correct ordering of grouped sections.
Reviewers: shankarke
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D998
llvm-svn: 184327
Edwin Vane [Wed, 19 Jun 2013 17:38:56 +0000 (17:38 +0000)]
cpp11-migrate: Fixing doxygen warning
llvm-svn: 184326
Nadav Rotem [Wed, 19 Jun 2013 17:33:16 +0000 (17:33 +0000)]
SLPVectorizer: handle scalars that are extracted from vectors (using ExtractElementInst).
llvm-svn: 184325
Renato Golin [Wed, 19 Jun 2013 17:28:50 +0000 (17:28 +0000)]
Revert "Adds support for openSUSE ARM v5/v7 triples."
This reverts commit
312e51ca484976c2b1254952ff23d5162ca8edc2.
llvm-svn: 184324
Renato Golin [Wed, 19 Jun 2013 17:28:42 +0000 (17:28 +0000)]
Adds support for openSUSE ARM v5/v7 triples.
Now, with a comma.
Patch by İsmail Dönmez
llvm-svn: 184323
Edwin Vane [Wed, 19 Jun 2013 17:17:31 +0000 (17:17 +0000)]
cpp11-migrate: Fix parsing of '.' for header include/excludes
sys::fs::make_absolute was turning '.' into '<path>/.' which broke prefix
comparison logic. Stripping these extra chars fixes the problem.
llvm-svn: 184322
Reid Kleckner [Wed, 19 Jun 2013 17:07:50 +0000 (17:07 +0000)]
[CodeGen] Move EHScopeStack into its own header
CGCleanup.h isn't meant to be included by all of CodeGen according to
John.
llvm-svn: 184321
Rafael Espindola [Wed, 19 Jun 2013 16:47:34 +0000 (16:47 +0000)]
Remove unused function.
llvm-svn: 184320
Reid Kleckner [Wed, 19 Jun 2013 16:37:23 +0000 (16:37 +0000)]
[Windows] Fix __declspec(property) when the getter returns a ref
This fixes an issue when parsing atlbase.h.
Patch by Will Wilson!
llvm-svn: 184319
Rafael Espindola [Wed, 19 Jun 2013 16:16:13 +0000 (16:16 +0000)]
Another attempt at fixing the bots.
llvm-svn: 184318
Nadav Rotem [Wed, 19 Jun 2013 15:57:29 +0000 (15:57 +0000)]
SLPVectorizer: start constructing chains at stores that are not power of two.
The type <3 x i8> is a common in graphics and we want to be able to vectorize it.
This changes accelerates bullet by 12% and 471_omnetpp by 5%.
llvm-svn: 184317
Rafael Espindola [Wed, 19 Jun 2013 15:56:53 +0000 (15:56 +0000)]
Attempt at fixing some bots.
llvm-svn: 184316
Rafael Espindola [Wed, 19 Jun 2013 15:45:37 +0000 (15:45 +0000)]
Reduce sys::Path usage in llvm-ar.
llvm-svn: 184315
Manuel Klimek [Wed, 19 Jun 2013 15:43:40 +0000 (15:43 +0000)]
Fix a remove-cstr-calls test that fails checking of the produced code.
llvm-svn: 184314
Manuel Klimek [Wed, 19 Jun 2013 15:42:45 +0000 (15:42 +0000)]
Completely revamp node binding for AST matchers.
This is in preparation for the backwards references to bound
nodes, which will expose a lot more about how matches occur. Main
changes:
- instead of building the tree of bound nodes, we build a "set" of bound
nodes and explode all possible match combinations while running
through the matchers; this will allow us to also implement matchers
that filter down the current set of matches, like "equalsBoundNode"
- take the set of bound nodes at the start of the match into
consideration when doing memoization; as part of that, reevaluated
that memoization gives us benefits that are large enough (it still
does - the effect on common match patterns is up to an order of
magnitude)
- reset the bound nodes when a node does not match, thus never leaking
information from partial sub-matcher matches for failing matchers
Effects:
- we can now correctly "explode" combinatorial matches, for example:
allOf(forEachDescendant(...bind("a")),
forEachDescendant(...bind("b"))) will now trigger matches for all
combinations of matching "a" and "b"s.
- we now never expose bound nodes from partial matches in matchers that
did not match in the end - this fixes a long-standing issue
FIXMEs:
- rename BoundNodesTreeBuilder to BoundNodesBuilder or
BoundNodesSetBuilder, as we don't build a tree any more; this is out
of scope for this change, though
- we're seeing some performance regressions (around 10%), but I expect
some performance tuning will get that back, and it's easily worth
the increase in expressiveness for now
llvm-svn: 184313