oota-llvm.git
11 years agoMake AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute.
Bill Wendling [Mon, 21 Jan 2013 21:57:28 +0000 (21:57 +0000)]
Make AttributeSet::getFnAttributes() return an AttributeSet instead of an Attribute.

This is more code to isolate the use of the Attribute class to that of just
holding one attribute instead of a collection of attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173094 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTransform (sub 0, (zext bool to A)) to (sext bool to A) and
Paul Redmond [Mon, 21 Jan 2013 21:57:20 +0000 (21:57 +0000)]
Transform (sub 0, (zext bool to A)) to (sext bool to A) and
(sub 0, (sext bool to A)) to (zext bool to A).

Patch by Muhammad Ahmad
Reviewed by Duncan Sands

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173093 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDocs for SparseMultiSet
Michael Ilseman [Mon, 21 Jan 2013 21:46:32 +0000 (21:46 +0000)]
Docs for SparseMultiSet

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173092 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix some incorrectly named u10 / lu10 instructions.
Richard Osborne [Mon, 21 Jan 2013 21:12:30 +0000 (21:12 +0000)]
Fix some incorrectly named u10 / lu10 instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173090 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unneeded #include.
Jakub Staszak [Mon, 21 Jan 2013 21:02:47 +0000 (21:02 +0000)]
Remove unneeded #include.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173088 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove unused multiclass.
Richard Osborne [Mon, 21 Jan 2013 20:50:54 +0000 (20:50 +0000)]
Remove unused multiclass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173087 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encodings / disassembly support for u6 / lu6 instructions.
Richard Osborne [Mon, 21 Jan 2013 20:44:17 +0000 (20:44 +0000)]
Add instruction encodings / disassembly support for u6 / lu6 instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173086 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encoding / disassembly support for ru6 / lru6 instructions.
Richard Osborne [Mon, 21 Jan 2013 20:42:16 +0000 (20:42 +0000)]
Add instruction encoding / disassembly support for ru6 / lru6 instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173085 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse correct format for the LDAWCP instruction (u6).
Richard Osborne [Mon, 21 Jan 2013 20:32:54 +0000 (20:32 +0000)]
Use correct format for the LDAWCP instruction (u6).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173083 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agor173072 is causing some regressions on big endian hosts, I don't have time to debug it
Chris Lattner [Mon, 21 Jan 2013 19:08:15 +0000 (19:08 +0000)]
r173072 is causing some regressions on big endian hosts, I don't have time to debug it
so revert it for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173074 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agorework the Bitstream reader to actually work a machine word at a time, instead of...
Chris Lattner [Mon, 21 Jan 2013 18:48:26 +0000 (18:48 +0000)]
rework the Bitstream reader to actually work a machine word at a time, instead of 32-bits at a time.
This cuts in half the number of virtual methods called to refill that word when compiling on a 64-bit
host, and will make 64-bit read operations faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173072 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a heinous inefficiency introduced in r149918, wherein reading each byte of a
Chris Lattner [Mon, 21 Jan 2013 18:24:49 +0000 (18:24 +0000)]
Fix a heinous inefficiency introduced in r149918, wherein reading each byte of a
BLOB (i.e., large, performance intensive data) in a bitcode file was switched to
invoking one virtual method call per byte read.  Now we do one virtual call per
BLOB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173065 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoIntroduce a new data structure, the SparseMultiSet, and changes to the MI scheduler...
Michael Ilseman [Mon, 21 Jan 2013 18:18:53 +0000 (18:18 +0000)]
Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it.

A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173064 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agowean Blob handling logic off of banging on NextChar directly. Instead, make
Chris Lattner [Mon, 21 Jan 2013 18:18:25 +0000 (18:18 +0000)]
wean Blob handling logic off of banging on NextChar directly.  Instead, make
it reason about the current bit position, which is always independent of the
underlying cursors word size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173063 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agorename "SkipToWord" to "SkipToFourByteBoundary" since a word is not always 4 bytes.
Chris Lattner [Mon, 21 Jan 2013 18:04:19 +0000 (18:04 +0000)]
rename "SkipToWord" to "SkipToFourByteBoundary" since a word is not always 4 bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173062 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a comment. Induction vars dont need to start at zero.
Nadav Rotem [Mon, 21 Jan 2013 17:59:18 +0000 (17:59 +0000)]
Fix a comment. Induction vars dont need to start at zero.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173061 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: Use unnormalized coordinates for sampling with the RECT target.
Tom Stellard [Mon, 21 Jan 2013 15:40:48 +0000 (15:40 +0000)]
R600/SI: Use unnormalized coordinates for sampling with the RECT target.

Patch by: Michel Dänzer

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173053 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: Take target parameter for sample intrinsics.
Tom Stellard [Mon, 21 Jan 2013 15:40:47 +0000 (15:40 +0000)]
R600/SI: Take target parameter for sample intrinsics.

Patch by: Michel Dänzer

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173052 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: Derive all sample intrinsics from a single class.
Tom Stellard [Mon, 21 Jan 2013 15:40:46 +0000 (15:40 +0000)]
R600/SI: Derive all sample intrinsics from a single class.

Patch by: Michel Dänzer

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173051 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SILowerControlFlow.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Mon, 21 Jan 2013 14:06:48 +0000 (14:06 +0000)]
R600/SILowerControlFlow.cpp: Fix a warning. [-Wunused-variable]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173040 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSwitch CodeMetrics itself over to use TTI to determine if an instruction
Chandler Carruth [Mon, 21 Jan 2013 13:04:33 +0000 (13:04 +0000)]
Switch CodeMetrics itself over to use TTI to determine if an instruction
is free. The whole CodeMetrics API should probably be reworked more, but
this is enough to allow deleting the duplicate code there for computing
whether an instruction is free.

All of the passes using this have been updated to pull in TTI and hand
it to the CodeMetrics stuff. Further, a dead CodeMetrics API
(analyzeFunction) is nuked for lack of users.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173036 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix indentation and formatting.
Chandler Carruth [Mon, 21 Jan 2013 12:14:42 +0000 (12:14 +0000)]
Fix indentation and formatting.

This change brought to by clang-format. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173034 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSink InlineCost.cpp into IPA -- it is now officially an interprocedural
Chandler Carruth [Mon, 21 Jan 2013 12:09:41 +0000 (12:09 +0000)]
Sink InlineCost.cpp into IPA -- it is now officially an interprocedural
analysis. How cute that it wasn't previously. ;]

Part of this confusion stems from the flattened header file tree. Thanks
to Benjamin for pointing out the goof on IRC, and we're considering
un-flattening the headers, so speak now if that would bug you.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173033 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMove the inline cost analysis's primary cost query to TTI instead of the
Chandler Carruth [Mon, 21 Jan 2013 12:05:16 +0000 (12:05 +0000)]
Move the inline cost analysis's primary cost query to TTI instead of the
old CodeMetrics system. TTI has the specific advantage of being
extensible and customizable by targets to reflect target-specific cost
metrics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173032 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoNow that the inline cost analysis is a pass, we can easily have it
Chandler Carruth [Mon, 21 Jan 2013 11:55:09 +0000 (11:55 +0000)]
Now that the inline cost analysis is a pass, we can easily have it
depend on and use other analyses (as long as they're either immutable
passes or CGSCC passes of course -- nothing in the pass manager has been
fixed here). Leverage this to thread TargetTransformInfo down through
the inline cost analysis.

No functionality changed here, this just threads things through.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173031 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake the inline cost a proper analysis pass. This remains essentially
Chandler Carruth [Mon, 21 Jan 2013 11:39:18 +0000 (11:39 +0000)]
Make the inline cost a proper analysis pass. This remains essentially
a dynamic analysis done on each call to the routine. However, now it can
use the standard pass infrastructure to reference other analyses,
instead of a silly setter method. This will become more interesting as
I teach it about more analysis passes.

This updates the two inliner passes to use the inline cost analysis.
Doing so highlights how utterly redundant these two passes are. Either
we should find a cheaper way to do always inlining, or we should merge
the two and just fiddle with the thresholds to get the desired behavior.
I'm leaning increasingly toward the latter as it would also remove the
Inliner sub-class split.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173030 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFormatting and comment fixes to the always inliner.
Chandler Carruth [Mon, 21 Jan 2013 11:39:16 +0000 (11:39 +0000)]
Formatting and comment fixes to the always inliner.

Formatting fixes brought to you by clang-format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173029 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoClean up the formatting and doxygen for the simple inliner a bit. No
Chandler Carruth [Mon, 21 Jan 2013 11:39:14 +0000 (11:39 +0000)]
Clean up the formatting and doxygen for the simple inliner a bit. No
functionality changed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173028 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix an old-style doxygen comment.
Chandler Carruth [Mon, 21 Jan 2013 11:39:12 +0000 (11:39 +0000)]
Fix an old-style doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173027 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCleanup the formatting of this header. This removes the namespace indent
Chandler Carruth [Mon, 21 Jan 2013 10:08:42 +0000 (10:08 +0000)]
Cleanup the formatting of this header. This removes the namespace indent
and reformats a few constructors using clang-format. Only whitespace
changes here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173018 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert "[Object] .bss sections have no content. PR15005."
Michael J. Spencer [Mon, 21 Jan 2013 08:13:04 +0000 (08:13 +0000)]
Revert "[Object] .bss sections have no content. PR15005."

This reverts commit r173007.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173012 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse <0 checks in place of ==-1 because it results in simpler code.
Craig Topper [Mon, 21 Jan 2013 07:25:16 +0000 (07:25 +0000)]
Use <0 checks in place of ==-1 because it results in simpler code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173010 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse MVT instead of EVT in LowerVECTOR_SHUFFLEtoBlend.
Craig Topper [Mon, 21 Jan 2013 07:19:54 +0000 (07:19 +0000)]
Use MVT instead of EVT in LowerVECTOR_SHUFFLEtoBlend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173009 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove trailing whitespace.
Craig Topper [Mon, 21 Jan 2013 06:57:59 +0000 (06:57 +0000)]
Remove trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173008 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Object] .bss sections have no content. PR15005.
Michael J. Spencer [Mon, 21 Jan 2013 06:46:11 +0000 (06:46 +0000)]
[Object] .bss sections have no content. PR15005.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173007 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix some 80 column violations.
Craig Topper [Mon, 21 Jan 2013 06:21:54 +0000 (06:21 +0000)]
Fix some 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173006 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake helper method static.
Craig Topper [Mon, 21 Jan 2013 06:13:28 +0000 (06:13 +0000)]
Make helper method static.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173005 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Support] Make test C++03.
Michael J. Spencer [Mon, 21 Jan 2013 05:39:07 +0000 (05:39 +0000)]
[Support] Make test C++03.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173004 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove the comma from the last enumerator to fix -pedantic warnings.
Chandler Carruth [Mon, 21 Jan 2013 02:17:36 +0000 (02:17 +0000)]
Remove the comma from the last enumerator to fix -pedantic warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172999 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoIntroduce a generic interface for querying an operation's expected
Chandler Carruth [Mon, 21 Jan 2013 01:27:39 +0000 (01:27 +0000)]
Introduce a generic interface for querying an operation's expected
lowered cost.

Currently, this is a direct port of the logic implementing
isInstructionFree in CodeMetrics. The hope is that the interface can be
improved (f.ex. supporting un-formed instruction queries) and the
implementation abstracted so that as we have test cases and target
knowledge we can expose increasingly accurate heuristics to clients.

I'll start switching existing consumers over and kill off the routine in
CodeMetrics in subsequent commits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172998 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSupport/Compiler.h: MSC1600, aka VS2010, is not C++11-ready.
NAKAMURA Takumi [Mon, 21 Jan 2013 00:30:31 +0000 (00:30 +0000)]
Support/Compiler.h: MSC1600, aka VS2010, is not C++11-ready.

LLVM_HAS_CXX11_TYPETRAITS -- std::is_constructible
LLVM_HAS_CXX11_STDLIB -- std::unique_ptr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172997 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDisable test that fails due to lack of std::true_type in C++03.
Benjamin Kramer [Sun, 20 Jan 2013 21:52:27 +0000 (21:52 +0000)]
Disable test that fails due to lack of std::true_type in C++03.

Michael, can this test be ported to C++03?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172996 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConvert more EVT's to MVT's in the lowering methods.
Craig Topper [Sun, 20 Jan 2013 21:50:27 +0000 (21:50 +0000)]
Convert more EVT's to MVT's in the lowering methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172995 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCapitalize lowerTRUNCATE so that it matches the other lower functions in this file...
Craig Topper [Sun, 20 Jan 2013 21:34:37 +0000 (21:34 +0000)]
Capitalize lowerTRUNCATE so that it matches the other lower functions in this file despite it not matching coding standards.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172994 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert CostTable algorithm, will re-write
Renato Golin [Sun, 20 Jan 2013 20:57:20 +0000 (20:57 +0000)]
Revert CostTable algorithm, will re-write

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172992 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[Support] Port ErrorOr<T> from lld to C++03.
Michael J. Spencer [Sun, 20 Jan 2013 20:32:30 +0000 (20:32 +0000)]
[Support] Port ErrorOr<T> from lld to C++03.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172991 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLoopVectorize: Fix a C++11 incompatibility.
Benjamin Kramer [Sun, 20 Jan 2013 20:29:52 +0000 (20:29 +0000)]
LoopVectorize: Fix a C++11 incompatibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172990 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encodings / disassembly support for l2rus instructions.
Richard Osborne [Sun, 20 Jan 2013 18:51:15 +0000 (18:51 +0000)]
Add instruction encodings / disassembly support for l2rus instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172987 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encodings / disassembly support for l3r instructions.
Richard Osborne [Sun, 20 Jan 2013 18:37:49 +0000 (18:37 +0000)]
Add instruction encodings / disassembly support for l3r instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172986 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encodings / disassembler support for 2rus instructions.
Richard Osborne [Sun, 20 Jan 2013 17:22:43 +0000 (17:22 +0000)]
Add instruction encodings / disassembler support for 2rus instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172985 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd instruction encodings / disassembly support 3r instructions.
Richard Osborne [Sun, 20 Jan 2013 17:18:47 +0000 (17:18 +0000)]
Add instruction encodings / disassembly support 3r instructions.

It is not possible to distinguish 3r instructions from 2r / rus instructions
using only the fixed bits. Therefore if an instruction doesn't match the
2r / rus format try to decode it as a 3r instruction before returning Fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172984 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm/test/CodeGen/X86/win_ftol2.ll: Add -cpu=generic to appease valgrind.
NAKAMURA Takumi [Sun, 20 Jan 2013 15:40:02 +0000 (15:40 +0000)]
llvm/test/CodeGen/X86/win_ftol2.ll: Add -cpu=generic to appease valgrind.

On valgrind the processor is reported;
  Host CPU: athlon-fx

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172983 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm/utils/valgrind/x86_64-pc-linux-gnu.supp: Add /usr/bin/cmp.
NAKAMURA Takumi [Sun, 20 Jan 2013 15:30:29 +0000 (15:30 +0000)]
llvm/utils/valgrind/x86_64-pc-linux-gnu.supp: Add /usr/bin/cmp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172981 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a build error.
Nadav Rotem [Sun, 20 Jan 2013 09:39:17 +0000 (09:39 +0000)]
Fix a build error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172971 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[docs] Update IRC information.
Michael J. Spencer [Sun, 20 Jan 2013 09:38:14 +0000 (09:38 +0000)]
[docs] Update IRC information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172970 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake LowerVSETCC a static function and use MVT instead of EVT.
Craig Topper [Sun, 20 Jan 2013 09:02:22 +0000 (09:02 +0000)]
Make LowerVSETCC a static function and use MVT instead of EVT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172969 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert 172708.
Nadav Rotem [Sun, 20 Jan 2013 08:35:56 +0000 (08:35 +0000)]
Revert 172708.

The optimization handles esoteric cases but adds a lot of complexity both to the X86 backend and to other backends.
This optimization disables an important canonicalization of chains of SEXT nodes and makes SEXT and ZEXT asymmetrical.
Disabling the canonicalization of consecutive SEXT nodes into a single node disables other DAG optimizations that assume
that there is only one SEXT node. The AVX mask optimizations is one example. Additionally this optimization does not update the cost model.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172968 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoChanged IRBuilder::CreateZExtOrTrunc and IRBuilder::CreateSExtOrTrunc so they also...
Michael Gottesman [Sun, 20 Jan 2013 07:33:26 +0000 (07:33 +0000)]
Changed IRBuilder::CreateZExtOrTrunc and IRBuilder::CreateSExtOrTrunc so they also work with vectors.

I also changed the name of a variable in IRBuilder::CreateFPExtOrFPTrunc to
match the names used in its two matching brethern as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172967 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUpdate the gcc-loops benchmark
Nadav Rotem [Sun, 20 Jan 2013 07:01:04 +0000 (07:01 +0000)]
Update the gcc-loops benchmark

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172966 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUpdate the linpack benchmark with different array sizes.
Nadav Rotem [Sun, 20 Jan 2013 06:52:47 +0000 (06:52 +0000)]
Update the linpack benchmark with different array sizes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172965 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLoopVectorizer: Implement a new heuristics for selecting the unroll factor.
Nadav Rotem [Sun, 20 Jan 2013 05:24:29 +0000 (05:24 +0000)]
LoopVectorizer: Implement a new heuristics for selecting the unroll factor.
We ignore the cpu frontend and focus on pipeline utilization. We do this because we
don't have a good way to estimate the loop body size at the IR level.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172964 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoChange the cpu type in the test.
Nadav Rotem [Sun, 20 Jan 2013 05:20:56 +0000 (05:20 +0000)]
Change the cpu type in the test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172963 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMore copy editing.
Michael Gottesman [Sun, 20 Jan 2013 05:12:35 +0000 (05:12 +0000)]
More copy editing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172962 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDoxygenified and copy edited BasicBlock.h.
Michael Gottesman [Sun, 20 Jan 2013 05:03:42 +0000 (05:03 +0000)]
Doxygenified and copy edited BasicBlock.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172961 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDoxygenified Argument.h and performed some copy editing of the documentation.
Michael Gottesman [Sun, 20 Jan 2013 05:03:39 +0000 (05:03 +0000)]
Doxygenified Argument.h and performed some copy editing of the documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172960 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoConverted all method comments in IRBuilder.h to use doxygen style comments.
Michael Gottesman [Sun, 20 Jan 2013 05:03:37 +0000 (05:03 +0000)]
Converted all method comments in IRBuilder.h to use doxygen style comments.

This implies changing method documentation from the following style:

/// MethodName - Method description...

to

/// \brief Method description...

ala the LLVM Style Guide.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172959 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCorrected assert messages for CreateZExtOrTrunc/CreateSExtOrTrunc.
Michael Gottesman [Sun, 20 Jan 2013 04:19:39 +0000 (04:19 +0000)]
Corrected assert messages for CreateZExtOrTrunc/CreateSExtOrTrunc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172958 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdded IRBuilder::CreateFPExtOrFPTrunc.
Michael Gottesman [Sun, 20 Jan 2013 03:56:31 +0000 (03:56 +0000)]
Added IRBuilder::CreateFPExtOrFPTrunc.

This method serves an analogous purpose to CreateZExtOrTrunc/CreateSExtOrTrunc
but for floating point types.

In detail, it provides a manner when one is handling conversions of floating
point types of automatically selecting fpext, fptrunc, or identity depending on
the relative bitsize of the source and destination types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172957 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm/test/Other/close-stderr.ll: Mark this as XFAIL:valgrind. We got 127 instead...
NAKAMURA Takumi [Sun, 20 Jan 2013 03:35:39 +0000 (03:35 +0000)]
llvm/test/Other/close-stderr.ll: Mark this as XFAIL:valgrind. We got 127 instead of 1 here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172956 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReleaseNotes: note Sphinx migration.
Sean Silva [Sun, 20 Jan 2013 03:32:55 +0000 (03:32 +0000)]
ReleaseNotes: note Sphinx migration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172955 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agodocs: Nuke the old release notes.
Sean Silva [Sun, 20 Jan 2013 03:29:50 +0000 (03:29 +0000)]
docs: Nuke the old release notes.

This change also removes a bunch of boilerplate and stuffing which made
it unnecessarily hard to navigate and see the comparatively miniscule
actual content that was added to this document during the 3.2
development period (or maybe even sticking around from earlier
releases...).

The new organization (a flat list) optimizes for making it easy for
people who know about changes to add them to the document.  It's
completely trivial for anyone with basic knowledge of LLVM to come in
later (such as when preparing for the actual release) and cluster any
changes into logical groups. However, I have left some comments
indicating how to add larger descriptions, if someone is feeling
adventurous ;)

Hopefully this organization will highlight how little effort is being
put into producing accurate, high-quality release notes, prompting a
corresponding improvement for the 3.3 release.

I have preserved the changes to this document that are not present
in the 3.2 release notes. There were only two... I'm pretty sure we've
been busier than that... (version control shows +213347/-173656 raw
lines just in the LLVM repo since the 3.2 release).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172954 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agotrivial micro-optimization: lazily call the virtual method instead of eagerly calling it.
Chris Lattner [Sun, 20 Jan 2013 02:54:05 +0000 (02:54 +0000)]
trivial micro-optimization: lazily call the virtual method instead of eagerly calling it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172953 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoswitch llvm-bcanalyzer onto the new cursor APIs, allowing deletion of
Chris Lattner [Sun, 20 Jan 2013 02:50:32 +0000 (02:50 +0000)]
switch llvm-bcanalyzer onto the new cursor APIs, allowing deletion of
the old ReadRecord methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172952 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agodocs: Use proper markup.
Sean Silva [Sun, 20 Jan 2013 02:19:42 +0000 (02:19 +0000)]
docs: Use proper markup.

These are really definition lists.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172950 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agodocs: Inline documentation structure into homepage.
Sean Silva [Sun, 20 Jan 2013 02:19:36 +0000 (02:19 +0000)]
docs: Inline documentation structure into homepage.

This brings back {Ctrl,Cmd}-f'ability, and makes some really bad
organizational choices easier to see (and therefore fix).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172949 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoconvert the bitstream reader itself and the IR .bc file parser to use the new advance...
Chris Lattner [Sun, 20 Jan 2013 02:13:19 +0000 (02:13 +0000)]
convert the bitstream reader itself and the IR .bc file parser to use the new advance() APIs,
simplifying things and making a bunch of details more private to BitstreamCursor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172947 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoadd an option to not auto-process abbreviations in advance()
Chris Lattner [Sun, 20 Jan 2013 02:12:39 +0000 (02:12 +0000)]
add an option to not auto-process abbreviations in advance()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172946 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoThe last of PR14471 - emission of constant floats
David Blaikie [Sun, 20 Jan 2013 01:18:01 +0000 (01:18 +0000)]
The last of PR14471 - emission of constant floats

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172941 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agostringref'ize readRecord and properly capitalize it. Add a compatibility method...
Chris Lattner [Sun, 20 Jan 2013 01:06:48 +0000 (01:06 +0000)]
stringref'ize readRecord and properly capitalize it.  Add a compatibility method to easy
the transition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172940 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake some helper methods static.
Craig Topper [Sun, 20 Jan 2013 00:50:58 +0000 (00:50 +0000)]
Make some helper methods static.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172936 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove DebugLoc argument from static function. It can easily be obtained from the...
Craig Topper [Sun, 20 Jan 2013 00:43:42 +0000 (00:43 +0000)]
Remove DebugLoc argument from static function. It can easily be obtained from the SVOp passed in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172935 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse MVT instead of EVT in more instruction lowering code.
Craig Topper [Sun, 20 Jan 2013 00:38:18 +0000 (00:38 +0000)]
Use MVT instead of EVT in more instruction lowering code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172933 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agomove some private methods out of line, add a skipRecord() method.
Chris Lattner [Sun, 20 Jan 2013 00:00:00 +0000 (00:00 +0000)]
move some private methods out of line, add a skipRecord() method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172931 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse MVT instead of EVT in more of the shuffle lowering code.
Craig Topper [Sat, 19 Jan 2013 23:36:09 +0000 (23:36 +0000)]
Use MVT instead of EVT in more of the shuffle lowering code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172930 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoadd some optional flags to affect the way advance works.
Chris Lattner [Sat, 19 Jan 2013 23:31:15 +0000 (23:31 +0000)]
add some optional flags to affect the way advance works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172928 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCapitalize LowerVectorIntExtend to be consistent with all the other lower functions...
Craig Topper [Sat, 19 Jan 2013 23:14:09 +0000 (23:14 +0000)]
Capitalize LowerVectorIntExtend to be consistent with all the other lower functions in this file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172927 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a latent bug exposed by recent static member debug info changes.
David Blaikie [Sat, 19 Jan 2013 23:00:25 +0000 (23:00 +0000)]
Fix a latent bug exposed by recent static member debug info changes.

We weren't encoding boolean constants correctly due to modeling boolean as a
signed type & then sign extending an i1 up to a byte & getting 255.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172926 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agofix method name.
Chris Lattner [Sat, 19 Jan 2013 21:37:14 +0000 (21:37 +0000)]
fix method name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172921 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a new BitstreamEntry concept, and add two helper methods for walking
Chris Lattner [Sat, 19 Jan 2013 21:35:24 +0000 (21:35 +0000)]
Add a new BitstreamEntry concept, and add two helper methods for walking
through a BitstreamCursor that produce it: advance() and
advanceSkippingSubblocks(), representing the two most common ways clients
want to walk through bitcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172919 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDocumentation: remove more mentions of Tcl
Dmitri Gribenko [Sat, 19 Jan 2013 20:35:18 +0000 (20:35 +0000)]
Documentation: remove more mentions of Tcl

Followup for r172836

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172918 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDocumentation: replace some non-ASCII characters by equivalent markup
Dmitri Gribenko [Sat, 19 Jan 2013 20:34:20 +0000 (20:34 +0000)]
Documentation: replace some non-ASCII characters by equivalent markup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172917 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoInclude Support/ELF.h instead of Object/ELF.h. It is much lighter and completely
Jakub Staszak [Sat, 19 Jan 2013 19:56:11 +0000 (19:56 +0000)]
Include Support/ELF.h instead of Object/ELF.h. It is much lighter and completely
sufficient.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172916 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoBitstreamReader hasn't aged well. It's been hacked on by various people and
Chris Lattner [Sat, 19 Jan 2013 18:19:39 +0000 (18:19 +0000)]
BitstreamReader hasn't aged well.  It's been hacked on by various people and
has past the point of making sense.  Lets tidy things up: first step, moving
a ton of big functions out of line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172904 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLoopVectorizer: Emit memory checks into their own basic block.
Benjamin Kramer [Sat, 19 Jan 2013 13:57:58 +0000 (13:57 +0000)]
LoopVectorizer: Emit memory checks into their own basic block.

This separates the check for "too few elements to run the vector loop" from the
"memory overlap" check, giving a lot nicer code and allowing to skip the memory
checks when we're not going to execute the vector code anyways. We still leave
the decision of whether to emit the memory checks as branches or setccs, but it
seems to be doing a good job. If ugly code pops up we may want to emit them as
separate blocks too. Small speedup on MultiSource/Benchmarks/MallocBench/espresso.

Most of this is legwork to allow multiple bypass blocks while updating PHIs,
dominators and loop info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172902 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoOn Sandybridge split unaligned 256bit stores into two xmm-sized stores.
Nadav Rotem [Sat, 19 Jan 2013 08:38:41 +0000 (08:38 +0000)]
On Sandybridge split unaligned 256bit stores into two xmm-sized stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172894 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse MVT instead of EVT when computing shuffle immediates since they can only be for...
Craig Topper [Sat, 19 Jan 2013 08:27:45 +0000 (08:27 +0000)]
Use MVT instead of EVT when computing shuffle immediates since they can only be for legal types. Keeps compiler from generating unneeded checks and handling for extended types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172893 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSort all of the includes. Several files got checked in with mis-sorted
Chandler Carruth [Sat, 19 Jan 2013 08:03:47 +0000 (08:03 +0000)]
Sort all of the includes. Several files got checked in with mis-sorted
includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172891 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoThis is a resubmittal. For some reason it broke the bots yesterday
Jack Carter [Sat, 19 Jan 2013 02:00:40 +0000 (02:00 +0000)]
This is a resubmittal. For some reason it broke the bots yesterday
but I cannot reproduce the problem and have scrubed my sources and
even tested with llvm-lit -v --vg.
Formatting fixes. Mostly long lines and
blank spaces at end of lines.

Contributer: Jack Carter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172882 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix 80-col and early exit in cost model
Renato Golin [Sat, 19 Jan 2013 00:42:16 +0000 (00:42 +0000)]
Fix 80-col and early exit in cost model

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172877 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove some register allocation order dependencies.
Jakob Stoklund Olesen [Sat, 19 Jan 2013 00:03:32 +0000 (00:03 +0000)]
Remove some register allocation order dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172874 91177308-0d34-0410-b5e6-96231b3b80d8