Ulrich Weigand [Mon, 24 Jun 2013 16:52:04 +0000 (16:52 +0000)]
[PowerPC] Add predicted forms of branches
This adds support for the predicted forms of branches (+/-).
There are three cases to consider:
- Branches using a PPC::Predicate code
For these, I've added new PPC::Predicate codes corresponding
to the BO values for predicted branch forms, and updated insn
printing to print them correctly. I've also added new aliases
for the asm parser matching the new forms.
- bt/bf
I've added new aliases matching to gBC etc.
- bd(n)z variants
I've added new instruction patterns for the predicted forms.
In all cases, the new patterns are used for the asm parser only.
(The new infrastructure ought to be sufficient to allow use by
the compiler too at some point.)
llvm-svn: 184754
Rafael Espindola [Mon, 24 Jun 2013 16:46:15 +0000 (16:46 +0000)]
Convert a use of PathV1.h
llvm-svn: 184753
Dmitry Vyukov [Mon, 24 Jun 2013 16:28:02 +0000 (16:28 +0000)]
tsan: make the test more robust
currently it episodically fails
the hypothesis it is due to racy race detection algorithm
the sleep should make it more robust
llvm-svn: 184752
Matt Beaumont-Gay [Mon, 24 Jun 2013 16:12:35 +0000 (16:12 +0000)]
Add some invalid-decl checks to clang_Type_getOffsetOf.
print-size-type.cpp was checking for specific record layout output for invalid
decls; I've removed the checks but left the records as tests for not crashing.
llvm-svn: 184751
NAKAMURA Takumi [Mon, 24 Jun 2013 16:05:21 +0000 (16:05 +0000)]
Move llvm/test/DebugInfo/arguments.ll to X86, for now. It is still Windows' PECOFF incompatible.
llvm-svn: 184750
Nadav Rotem [Mon, 24 Jun 2013 15:59:47 +0000 (15:59 +0000)]
Rename the variable to fix a warning. Thanks Andy Gibbs.
llvm-svn: 184749
Ed Maste [Mon, 24 Jun 2013 15:40:27 +0000 (15:40 +0000)]
Tests require GNU make, called gmake on FreeBSD
llvm-svn: 184748
Dmitry Vyukov [Mon, 24 Jun 2013 15:17:36 +0000 (15:17 +0000)]
tsan: update dynamic export syms file
now it includes proper functions (including interceptors)
and does not include local functions that lead to build failures
llvm-svn: 184747
Ed Maste [Mon, 24 Jun 2013 15:09:18 +0000 (15:09 +0000)]
Sync FreeBSD files to Linux equivalents, to reduce noise in diff
- Sort functions in the same order
- Match whitespace
- Remove commetned out code
- Make filename in comments match filename
llvm-svn: 184746
Ed Maste [Mon, 24 Jun 2013 15:04:47 +0000 (15:04 +0000)]
Update comment to match class name
llvm-svn: 184745
Ed Maste [Mon, 24 Jun 2013 15:03:16 +0000 (15:03 +0000)]
Use canonical termios.h location
llvm-svn: 184744
Rafael Espindola [Mon, 24 Jun 2013 15:00:11 +0000 (15:00 +0000)]
Convert a use of PathV1.h.
llvm-svn: 184743
Ed Maste [Mon, 24 Jun 2013 14:55:03 +0000 (14:55 +0000)]
Eliminate missing virtual destructor warning on FreeBSD
Akin to r181712 (
88e529b7) of Linux/ProcessMonitor.cpp
llvm-svn: 184742
Ed Maste [Mon, 24 Jun 2013 14:51:39 +0000 (14:51 +0000)]
Update for Linux->POSIX rename
Revision r147613 (
2341d35) renamed this file with s/Linux/POSIX/, but
header guards and comments were not updated to match.
llvm-svn: 184741
Reid Kleckner [Mon, 24 Jun 2013 14:38:26 +0000 (14:38 +0000)]
[Sema] Call CheckParmForFunctionDef on ObjC method parameters
CheckParmForFunctionDef performs standard checks for type completeness
and other things like a destructor check for the MSVC++ ABI.
llvm-svn: 184740
Evgeniy Stepanov [Mon, 24 Jun 2013 14:25:33 +0000 (14:25 +0000)]
[sanitizer] Intercept sysinfo.
llvm-svn: 184739
Andy Gibbs [Mon, 24 Jun 2013 14:05:59 +0000 (14:05 +0000)]
Using offsetof to an item within an array is an extension so mark it as such to avoid compiler warnings.
llvm-svn: 184738
Andy Gibbs [Mon, 24 Jun 2013 14:04:57 +0000 (14:04 +0000)]
Fix some more mismatched integer types causing compiler warnings.
llvm-svn: 184737
Evgeniy Stepanov [Mon, 24 Jun 2013 14:03:13 +0000 (14:03 +0000)]
[sanitizer] Fix TSan build.
llvm-svn: 184736
Evgeniy Stepanov [Mon, 24 Jun 2013 13:56:14 +0000 (13:56 +0000)]
[sanitizer] Intercept inet_aton.
llvm-svn: 184735
Evgeniy Stepanov [Mon, 24 Jun 2013 13:48:42 +0000 (13:48 +0000)]
[msan] Unpoison param-tls in signal handler wrapper.
This an entry point from uninstrumented code.
llvm-svn: 184734
Ed Maste [Mon, 24 Jun 2013 13:29:34 +0000 (13:29 +0000)]
Remove comment that is no longer applicable
Since r181446 the m_private_run_lock has been used for all platforms.
llvm-svn: 184733
Reid Kleckner [Mon, 24 Jun 2013 13:21:16 +0000 (13:21 +0000)]
Look for Python 2 before Python 3 in CMakeLists.txt
All of LLVM's Python scripts only support Python 2 for widely understood
reasons.
Patch by Yonggang Luo.
llvm-svn: 184732
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:59 +0000 (13:19 +0000)]
llvm/test/CodeGen/X86: Add explicit -mtriple=x86_64-unknown-unknown.
llvm-svn: 184731
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:52 +0000 (13:19 +0000)]
llvm/test/CodeGen/X86/legalize-shift-64.ll: Add explicit -mtriple=i686-unknown-unknown.
llvm-svn: 184730
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:47 +0000 (13:19 +0000)]
llvm/test/DebugInfo/arguments.ll: Add explicit -mtriple=x86_64-unknown-unknown.
llvm-svn: 184729
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:41 +0000 (13:19 +0000)]
NVPTXTargetObjectFile.h: Initialize some pointers as NULL in the constructor of NVPTXTargetObjectFile. ~NVPTXTargetObjectFile() tries to delete them.
It caused crash on some hosts since r184595.
llvm-svn: 184728
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:26 +0000 (13:19 +0000)]
clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp: Suppress unexpected failures on MS hosts.
FIXME: A couple of tests have been suppressed.
I know it'd be bad with _MSC_VER here, though.
llvm-svn: 184727
NAKAMURA Takumi [Mon, 24 Jun 2013 13:19:20 +0000 (13:19 +0000)]
clang/test/Driver/coverage-ld.c: Tweak expressions to match dosish pathsep on win32 hosts.
llvm-svn: 184726
Ulrich Weigand [Mon, 24 Jun 2013 12:49:20 +0000 (12:49 +0000)]
[PowerPC] Add t/f branch mnemonics to asm parser
This adds the bt/bf/bd(n)zt/bd(n)zf mnemonics as aliases for the
asm parser, resolving to the generic conditional patterns.
llvm-svn: 184725
Arnold Schwaighofer [Mon, 24 Jun 2013 12:09:15 +0000 (12:09 +0000)]
Reapply 184685 after the SetVector iteration order fix.
This should hopefully have fixed the stage2/stage3 miscompare on the dragonegg
testers.
"LoopVectorize: Use the dependence test utility class
We now no longer need alias analysis - the cases that alias analysis would
handle are now handled as accesses with a large dependence distance.
We can now vectorize loops with simple constant dependence distances.
for (i = 8; i < 256; ++i) {
a[i] = a[i+4] * a[i+8];
}
for (i = 8; i < 256; ++i) {
a[i] = a[i-4] * a[i-8];
}
We would be able to vectorize about 200 more loops (in many cases the cost model
instructs us no to) in the test suite now. Results on x86-64 are a wash.
I have seen one degradation in ammp. Interestingly, the function in which we
now vectorize a loop is never executed so we probably see some instruction
cache effects. There is a 2% improvement in h264ref. There is one or the other
TSCV loop kernel that speeds up.
radar://
13681598"
llvm-svn: 184724
Arnold Schwaighofer [Mon, 24 Jun 2013 12:09:12 +0000 (12:09 +0000)]
LoopVectorize: Use SetVector for the access set
We are creating the runtime checks using this set so we need a deterministic
iteration order.
llvm-svn: 184723
Ulrich Weigand [Mon, 24 Jun 2013 11:55:21 +0000 (11:55 +0000)]
[PowerPC] Support generic conditional branches in asm parser
This adds instruction patterns to cover the generic forms of
the conditional branch instructions. This allows the assembler
to support the generic mnemonics.
The compiler will still generate the various specific forms
of the instruction that were already supported.
llvm-svn: 184722
Ulrich Weigand [Mon, 24 Jun 2013 11:03:33 +0000 (11:03 +0000)]
[PowerPC] Support absolute branches
There is currently only limited support for the "absolute" variants
of branch instructions. This patch adds support for the absolute
variants of all branches that are currently otherwise supported.
This requires adding new fixup types so that the correct variant
of relocation type can be selected by the object writer.
While the compiler will continue to usually choose the relative
branch variants, this will allow the asm parser to fully support
the absolute branches, with either immediate (numerical) or
symbolic target addresses.
No change in code generation intended.
llvm-svn: 184721
Ulrich Weigand [Mon, 24 Jun 2013 11:02:38 +0000 (11:02 +0000)]
[PowerPC] Support bd(n)zl and bd(n)zlrl
This adds support for the bd(n)zl and bd(n)zlrl instructions.
The patterns are currently used for the asm parser only.
llvm-svn: 184720
Ulrich Weigand [Mon, 24 Jun 2013 11:02:19 +0000 (11:02 +0000)]
[PowerPC] Support b(cond)l in the asm parser
This patch adds support for the conditional variants of bl.
The pattern is currently used by the asm parser only.
llvm-svn: 184719
Ulrich Weigand [Mon, 24 Jun 2013 11:01:55 +0000 (11:01 +0000)]
[PowerPC] Support blrl and variants in the asm parser
This patch adds support for blrl and its conditional variants.
The patterns are (currently) used for the asm parser only.
llvm-svn: 184718
Evgeniy Stepanov [Mon, 24 Jun 2013 10:43:23 +0000 (10:43 +0000)]
[sanitizer] Intercept readv, preadv, writev, pwritev.
llvm-svn: 184717
Vladimir Medic [Mon, 24 Jun 2013 10:05:34 +0000 (10:05 +0000)]
This patch introduces RegisterOperand class into Mips FPU instruction definitions and adds dedicated parser methods to MipsAsmParser. It is the first in a series of patches that should fix the problems with parsing Mips FPU instructions and optimize the code in MipsAsmParser.
llvm-svn: 184716
Michael Gottesman [Mon, 24 Jun 2013 09:58:09 +0000 (09:58 +0000)]
[APFloat] Removed trailing whitespace from unittests.
llvm-svn: 184715
Michael Gottesman [Mon, 24 Jun 2013 09:58:07 +0000 (09:58 +0000)]
[APFloat] Added a large unittest for APFloat.add that checks that special values are computed correctly.
llvm-svn: 184714
Michael Gottesman [Mon, 24 Jun 2013 09:58:05 +0000 (09:58 +0000)]
[APFloat] Added support for parsing float strings which contain {inf,-inf,NaN,-NaN}.
llvm-svn: 184713
Michael Gottesman [Mon, 24 Jun 2013 09:58:02 +0000 (09:58 +0000)]
[APFloat] Added make{Zero,Inf} methods and implemented get{Zero,Inf} on top of them.
llvm-svn: 184712
Michael Gottesman [Mon, 24 Jun 2013 09:57:59 +0000 (09:57 +0000)]
[APFloat] Removed a assert from significandParts() which says that one can only access the significand of FiniteNonZero/NaN floats.
The method significandParts() is a helper method meant to ease access to
APFloat's significand by allowing the user to not need to be aware of whether or
not the APFloat is using memory allocated in the instance itself or in an
external array.
This assert says that one can only access the significand of FiniteNonZero/NaN
floats. This makes it cumbersome and more importantly dangerous when one wishes
to zero out the significand of a zero/infinity value since one will have to deal
with the aforementioned quandary related to how the memory in APFloat is
allocated.
llvm-svn: 184711
Michael Gottesman [Mon, 24 Jun 2013 09:57:57 +0000 (09:57 +0000)]
[APFloat] Rename macro convolve => PackCategoriesIntoKey so that it is clear what APFloat is actually using said macro for.
In the context of APFloat, seeing a macro called convolve suggests that APFloat
is using said value in some sort of convolution somewhere in the source code.
This is misleading.
I also added a documentation comment to the macro.
llvm-svn: 184710
Andrew Trick [Mon, 24 Jun 2013 09:51:30 +0000 (09:51 +0000)]
Add -mcpu to some unit tests that only fail on certain hosts.
llvm-svn: 184709
Chandler Carruth [Mon, 24 Jun 2013 09:38:45 +0000 (09:38 +0000)]
The profile library must come before the C library so that it can use
atexit.
llvm-svn: 184708
Amaury de la Vieuville [Mon, 24 Jun 2013 09:15:01 +0000 (09:15 +0000)]
ARM: check predicate bits for thumb instructions
When encoded to thumb, VFP instruction and VMOV/VDUP between scalar and
core registers, must have their predicate bit to 0b1110.
llvm-svn: 184707
Amaury de la Vieuville [Mon, 24 Jun 2013 09:14:54 +0000 (09:14 +0000)]
ARM: rGPR is meant to be unpredictable, not undefined
llvm-svn: 184706
Andrew Trick [Mon, 24 Jun 2013 09:13:20 +0000 (09:13 +0000)]
Temporarily enable MI-Sched on X86.
Sorry for the unit test churn. I'll try to make the change permanently
next time.
llvm-svn: 184705
Sergey Matveev [Mon, 24 Jun 2013 09:12:11 +0000 (09:12 +0000)]
[lsan] Fix android build.
llvm-svn: 184704
Amaury de la Vieuville [Mon, 24 Jun 2013 09:11:53 +0000 (09:11 +0000)]
ARM: fix thumb1 nop decoding
In thumb1, NOP is a pseudo-instruction equivalent to mov r8, r8.
However the disassembler should not use this alias.
llvm-svn: 184703
Amaury de la Vieuville [Mon, 24 Jun 2013 09:11:45 +0000 (09:11 +0000)]
ARM: fix IT decoding
mask == 0 -> UNPRED
llvm-svn: 184702
Amaury de la Vieuville [Mon, 24 Jun 2013 09:11:38 +0000 (09:11 +0000)]
ARM: enable decoding of pc-relative PLD/PLI
llvm-svn: 184701
Sergey Matveev [Mon, 24 Jun 2013 08:34:50 +0000 (08:34 +0000)]
Revert to C-style callbacks for iteration over allocator chunks.
Also clean up LSan code, fix some comments and replace void* with uptr
to bring down the number of reinterpret_casts.
llvm-svn: 184700
Tobias Grosser [Mon, 24 Jun 2013 07:38:29 +0000 (07:38 +0000)]
Update CLooG such that the isl test cases are really up to date
llvm-svn: 184699
Chandler Carruth [Mon, 24 Jun 2013 07:21:47 +0000 (07:21 +0000)]
Add a flag to defer vectorization into a phase after the inliner and its
CGSCC pass manager. This should insulate the inlining decisions from the
vectorization decisions, however it may have both compile time and code
size problems so it is just an experimental option right now.
Adding this based on a discussion with Arnold and it seems at least
worth having this flag for us to both run some experiments to see if
this strategy is workable. It may solve some of the regressions seen
with the loop vectorizer.
llvm-svn: 184698
Chandler Carruth [Mon, 24 Jun 2013 07:21:35 +0000 (07:21 +0000)]
Filter out dragonegg when checked out into a projects subdirectory.
There is some hope of eventually supporting a unified build with it, but
until then this lets me (and others) check it out in this location
without things breaking.
llvm-svn: 184697
Richard Smith [Mon, 24 Jun 2013 07:20:36 +0000 (07:20 +0000)]
Avoid adding entries to the DeclContext lookup table multiple times when lazily
constructing a lookup table.
Previously, buildLookup would add lookup table entries for each item lexically
within the DC, and adding the first entry with a given name would trigger the
external source to add all its entries with that name. Then buildLookup would
carry on and re-add those entries all over again.
Instead, follow a simple rule: a declaration from an external source is only
ever made visible by the external source. One exception to this: since we don't
usually build a lookup table for the TU in C, and we never serialize one, we
don't expect the external source to provide lookups in the TU in C, so we build
those ones ourselves.
llvm-svn: 184696
David Blaikie [Mon, 24 Jun 2013 07:13:13 +0000 (07:13 +0000)]
DebugInfo: ensure negative enumerators are emitted as such
There's still a problem here - since we're not appropriately using the
signedness/range of the enum to chooset the encoding and emission of
enumerators, but GCC has some bugs around this too so I assume that's
not /such/ a high priority though I may get to it soon out of
completeness.
llvm-svn: 184695
David Blaikie [Mon, 24 Jun 2013 07:11:08 +0000 (07:11 +0000)]
DebugInfo: enumerator values returned as int64 as they are stored
llvm-svn: 184694
David Blaikie [Mon, 24 Jun 2013 06:47:30 +0000 (06:47 +0000)]
DebugInfo: Merge a bad debug info enum test into a good one
The assembly generation testing has been moved to an LLVM test case.
llvm-svn: 184693
David Blaikie [Mon, 24 Jun 2013 06:47:22 +0000 (06:47 +0000)]
DebugInfo: add some testing from an overly broad end-to-end test in Clang
llvm-svn: 184692
Dmitri Gribenko [Mon, 24 Jun 2013 06:15:57 +0000 (06:15 +0000)]
Fix typo in assertion message. Reported by Shriramana Sharma.
llvm-svn: 184691
Arnold Schwaighofer [Mon, 24 Jun 2013 06:10:41 +0000 (06:10 +0000)]
Revert "LoopVectorize: Use the dependence test utility class"
This reverts commit
cbfa1ca993363ca5c4dbf6c913abc957c584cbac.
We are seeing a stage2 and stage3 miscompare on some dragonegg bots.
llvm-svn: 184690
Richard Smith [Mon, 24 Jun 2013 04:45:28 +0000 (04:45 +0000)]
Slightly improve cross-module merging for function templates.
llvm-svn: 184689
Dmitri Gribenko [Mon, 24 Jun 2013 04:41:32 +0000 (04:41 +0000)]
Comment parsing: allow "\param ..." to describe variadic arguments
Original patch by Fariborz Jahanian; extended by me.
Fixes rdar://
14124644
llvm-svn: 184688
Michael Gottesman [Mon, 24 Jun 2013 04:19:37 +0000 (04:19 +0000)]
[APFloat] Removed out of date comment from isNormal().
I already finished the isIEEENormal => isNormal transition. So isNormal is now
IEEE-754R compliant.
llvm-svn: 184687
Michael Gottesman [Mon, 24 Jun 2013 04:06:23 +0000 (04:06 +0000)]
[APFloat] Rename llvm::exponent_t => llvm::APFloat::ExponentType.
exponent_t is only used internally in APFloat and no exponent_t values are
exposed via the APFloat API. In light of such conditions it does not make any
sense to gum up the llvm namespace with said type. Plus it makes it clearer that
exponent_t is associated with APFloat.
llvm-svn: 184686
Arnold Schwaighofer [Mon, 24 Jun 2013 03:55:48 +0000 (03:55 +0000)]
LoopVectorize: Use the dependence test utility class
We now no longer need alias analysis - the cases that alias analysis would
handle are now handled as accesses with a large dependence distance.
We can now vectorize loops with simple constant dependence distances.
for (i = 8; i < 256; ++i) {
a[i] = a[i+4] * a[i+8];
}
for (i = 8; i < 256; ++i) {
a[i] = a[i-4] * a[i-8];
}
We would be able to vectorize about 200 more loops (in many cases the cost model
instructs us no to) in the test suite now. Results on x86-64 are a wash.
I have seen one degradation in ammp. Interestingly, the function in which we
now vectorize a loop is never executed so we probably see some instruction
cache effects. There is a 2% improvement in h264ref. There is one or the other
TSCV loop kernel that speeds up.
radar://
13681598
llvm-svn: 184685
Arnold Schwaighofer [Mon, 24 Jun 2013 03:55:45 +0000 (03:55 +0000)]
LoopVectorize: Add utility class for checking dependency among accesses
This class checks dependences by subtracting two Scalar Evolution access
functions allowing us to catch very simple linear dependences.
The checker assumes source order in determining whether vectorization is safe.
We currently don't reorder accesses.
Positive true dependencies need to be a multiple of VF otherwise we impede
store-load forwarding.
llvm-svn: 184684
Arnold Schwaighofer [Mon, 24 Jun 2013 03:55:44 +0000 (03:55 +0000)]
LoopVectorize: Add utility class for building sets of dependent accesses
Sets of dependent accesses are built by unioning sets based on underlying
objects. This class will be used by the upcoming dependence checker.
llvm-svn: 184683
Shankar Easwaran [Mon, 24 Jun 2013 03:22:51 +0000 (03:22 +0000)]
[lld] rename member variable name.
This renames variable name to reflect initial undefined symbols that are
defined by the linker -u option.
This doesnot change any functionality in lld, and updates code to reflect
Nick's comment.
llvm-svn: 184682
Nadav Rotem [Mon, 24 Jun 2013 02:52:43 +0000 (02:52 +0000)]
SLP Vectorizer: Add support for vectorizing parts of the tree.
Untill now we detected the vectorizable tree and evaluated the cost of the
entire tree. With this patch we can decide to trim-out branches of the tree
that are not profitable to vectorizer.
Also, increase the max depth from 6 to 12. In the worse possible case where all
of the code is made of diamond-shaped graph this can bring the cost to 2**10,
but diamonds are not very common.
llvm-svn: 184681
Andrew Trick [Mon, 24 Jun 2013 01:55:01 +0000 (01:55 +0000)]
Fix tail merging to assign the (more) correct BasicBlock when splitting.
This makes it possible to write unit tests that are less susceptible
to minor code motion, particularly copy placement. block-placement.ll
covers this case with -pre-RA-sched=source which will soon be
default. One incorrectly named block is already fixed, but without
this fix, enabling new coalescing and scheduling would cause more
failures.
llvm-svn: 184680
Richard Smith [Mon, 24 Jun 2013 01:46:41 +0000 (01:46 +0000)]
When setting the external visible declarations for a decl context, check
whether they replace any existing lookups in the context, rather than
accumulating a bunch of lookup results referring to the same entity.
llvm-svn: 184679
Richard Smith [Mon, 24 Jun 2013 01:45:33 +0000 (01:45 +0000)]
Add -ast-dump-lookups switch to -cc1 to dump DeclContext lookup maps. Test to
follow.
llvm-svn: 184678
Dmitri Gribenko [Mon, 24 Jun 2013 01:33:34 +0000 (01:33 +0000)]
Move comment on Sema::isFunctionPointerVarDecl() to the header file
llvm-svn: 184677
Dmitri Gribenko [Sun, 23 Jun 2013 23:33:14 +0000 (23:33 +0000)]
Documentation parsing: recognize \relates, \related, \relatesonly, \relatedonly
so that -Wdocumentation-unknown-command does not warn on these commands.
Fixes PR16092.
llvm-svn: 184676
Dmitri Gribenko [Sun, 23 Jun 2013 22:58:02 +0000 (22:58 +0000)]
ArrayRef'ize Sema::CodeCompleteConstructorInitializer
Patch by Robert Wilhelm.
llvm-svn: 184675
Nadav Rotem [Sun, 23 Jun 2013 21:57:27 +0000 (21:57 +0000)]
SLP Vectorizer: Fix a bug in the code that does CSE on the generated gather sequences.
Make sure that we don't replace and RAUW two sequences if one does not dominate the other.
llvm-svn: 184674
Howard Hinnant [Sun, 23 Jun 2013 21:17:24 +0000 (21:17 +0000)]
Implement full support for non-pointer pointers in custom allocators for deque.
llvm-svn: 184673
Howard Hinnant [Sun, 23 Jun 2013 19:52:45 +0000 (19:52 +0000)]
I'd no sooner made the last commit when Matthew Dempsky sent me another test case that led me to yet another closely related test case that the current design could not handle. I've now changed the way forward references are handled completely. It wasn't that much code to change. The demangler, when confronted with a forward reference to a template parameter, now parses things twice. During the second parse, all forward references are remembered from the first parse. Test suite updated with new case.
llvm-svn: 184672
Nadav Rotem [Sun, 23 Jun 2013 19:38:56 +0000 (19:38 +0000)]
SLP Vectorizer: Erase instructions outside the vectorizeTree method.
The RAII builder location guard is saving a reference to instructions, so we can't erase instructions during vectorization.
llvm-svn: 184671
David Blaikie [Sun, 23 Jun 2013 18:31:11 +0000 (18:31 +0000)]
DebugInfo: PR14404: Avoid truncating 64 bit values into 32 bits for ULEB128/SLEB128 generation
llvm-svn: 184669
Howard Hinnant [Sun, 23 Jun 2013 17:14:35 +0000 (17:14 +0000)]
After a private conversation with Arthur O'Dwyer, and a good night's sleep, I believe this fix is a better fix than what I committed in r184656 yesterday. I've basically moved the checking for '`' from the start of the demangling process to the end of it. In the process I discovered that one of the test cases no longer demangled to the expected string. After further investigation I believe this case to not be a valid mangled string, and so I moved the test case to the 'invalid cases'. The reason I believe it is invalid is that it should use T_ instead of T0_ to index the template parameter.
llvm-svn: 184668
Tim Northover [Sun, 23 Jun 2013 15:32:01 +0000 (15:32 +0000)]
AArch64: fix overzealous NEXTing for Windows testing.
llvm-svn: 184667
Chandler Carruth [Sun, 23 Jun 2013 11:28:48 +0000 (11:28 +0000)]
Fix the addition of Clang's profile runtime library to the link step
when specifying --coverage (or related) flags.
The system for doing this was based on the old LLVM-hosted profile_rt
library, and hadn't been updated for Linux to use the new compiler-rt
library. Also, it couldn't possibly work on multiarch or biarch systems
in many cases. The whole thing now works much the same as the sanitizer
libraries that are built and used out of the compiler-rt repo.
Note that other target OSes haven't been updated because I don't know if
they're doing anything special with the installation path of profile_rt.
I suspect however that *all* of these are wrong and would encourage
maintainers of each target to take a hard look at how compiler-rt
runtime libraries are linked on their platforms.
llvm-svn: 184666
Chandler Carruth [Sun, 23 Jun 2013 10:10:25 +0000 (10:10 +0000)]
The makefile build system had two lists of the 32-bit runtime libraries
to build and one had grown out of sync. Put this list in a variable so
this doesn't happen again.
The whole thing here is somewhat suspicious as we don't support 32-bit
environments with a 64-bit bi-arch capable compiler, but none have
complained yet about this so I'm just leaving it alone.
llvm-svn: 184665
Andrew Trick [Sun, 23 Jun 2013 09:00:28 +0000 (09:00 +0000)]
Add MI-Sched support for x86 macro fusion.
This is an awful implementation of the target hook. But we don't have
abstractions yet for common machine ops, and I don't see any quick way
to make it table-driven.
llvm-svn: 184664
Chandler Carruth [Sun, 23 Jun 2013 08:39:08 +0000 (08:39 +0000)]
Slightly loosen the test as there are other linker invocation patterns.
llvm-svn: 184663
Chandler Carruth [Sun, 23 Jun 2013 08:24:15 +0000 (08:24 +0000)]
Add and tighten up tests for cross compiling tool selection. This now
verifies that we run the assembler and linker in the correct mode, and
that we can successfully use a bi-arch variant of a GCC installation in
a generic cross compilation invocation of Clang.
llvm-svn: 184662
Stephen Lin [Sun, 23 Jun 2013 07:37:13 +0000 (07:37 +0000)]
Add null check (resolves PR16423)
llvm-svn: 184661
Nadav Rotem [Sun, 23 Jun 2013 06:15:46 +0000 (06:15 +0000)]
SLP Vectorizer: Implement a simple CSE optimization for the gather sequences.
llvm-svn: 184660
Tobias Grosser [Sun, 23 Jun 2013 06:04:54 +0000 (06:04 +0000)]
Fix my own formatting mistakes
llvm-svn: 184659
Tobias Grosser [Sun, 23 Jun 2013 05:21:18 +0000 (05:21 +0000)]
ScopInfo: Clarify may-write and must-write accesses
llvm-svn: 184658
David Majnemer [Sun, 23 Jun 2013 03:38:10 +0000 (03:38 +0000)]
AST: Clean up FriendObjectKind related decls
Allow the comments in the FriendObjectKind enumerator-list show up in
doxygen. Also, some small readability improvements in related functions.
llvm-svn: 184657
Howard Hinnant [Sun, 23 Jun 2013 03:36:38 +0000 (03:36 +0000)]
Filter out '`' in mangled strings and reject them as invalid if found.
llvm-svn: 184656
Tobias Grosser [Sun, 23 Jun 2013 01:29:29 +0000 (01:29 +0000)]
Integrate latest clang-format changes
llvm-svn: 184655
Rui Ueyama [Sat, 22 Jun 2013 23:14:51 +0000 (23:14 +0000)]
[PECOFF] Moves a utility function to Atoms.cpp to remove duplicate code.
llvm-svn: 184653