platform/upstream/llvm.git
11 years agoRevert r173056; it breaks one of the CodeGen-with-PCH tests.
Douglas Gregor [Mon, 21 Jan 2013 16:52:34 +0000 (16:52 +0000)]
Revert r173056; it breaks one of the CodeGen-with-PCH tests.

llvm-svn: 173058

11 years agoWhen loading an identifier from an AST file solely for the purpose of
Douglas Gregor [Mon, 21 Jan 2013 16:47:11 +0000 (16:47 +0000)]
When loading an identifier from an AST file solely for the purpose of
forming the identifier, e.g., as part of a selector or a declaration
name, don't actually deserialize any information about the
identifier. Instead, simply mark it "out-of-date" and we'll load the
the information on demand. 2% speedup on the modules testcase I'm
looking at; should also help PCH.

llvm-svn: 173056

11 years agoFixes formatting of empty blocks.
Manuel Klimek [Mon, 21 Jan 2013 16:42:44 +0000 (16:42 +0000)]
Fixes formatting of empty blocks.

We now only put empty blocks into a single line, if all of:
- all tokens of the structural element fit into a single line
- we're not in a control flow statement

Note that we usually don't put record definitions into a single line, as
there's usually at least one more token (the semicolon) after the
closing brace. This doesn't hold when we are in a context where there is
no semicolon, like "enum E {}".

There were some missing tests around joining lines around the corner
cases of the allowed number of columns, so this patch adds some.

llvm-svn: 173055

11 years agoWhen deserializing a declaration, don't look for redeclarations if its
Douglas Gregor [Mon, 21 Jan 2013 16:16:40 +0000 (16:16 +0000)]
When deserializing a declaration, don't look for redeclarations if its
kind indicates that it can never be redeclared. Good for a 1% speedup,
and redeclaration searching drops off the profile.

llvm-svn: 173054

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>
llvm-svn: 173053

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>
llvm-svn: 173052

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>
llvm-svn: 173051

11 years agoIntroduce a fast path for the ASTReader's name lookup within a
Douglas Gregor [Mon, 21 Jan 2013 15:25:38 +0000 (15:25 +0000)]
Introduce a fast path for the ASTReader's name lookup within a
DeclContext. When the DeclContext is of a kind that can only be
defined once and never updated, we limit the search to the module file
that conatins the lookup table. Provides a 15% speedup in one
modules-heavy source file.

llvm-svn: 173050

11 years ago[asan] fix linux build
Kostya Serebryany [Mon, 21 Jan 2013 15:04:36 +0000 (15:04 +0000)]
[asan] fix linux build

llvm-svn: 173049

11 years ago[ASan] Move Mac-specific tests to asan_mac_test.cc
Alexander Potapenko [Mon, 21 Jan 2013 14:49:55 +0000 (14:49 +0000)]
[ASan] Move Mac-specific tests to asan_mac_test.cc

llvm-svn: 173048

11 years agoFix parsing of templated declarations.
Daniel Jasper [Mon, 21 Jan 2013 14:39:22 +0000 (14:39 +0000)]
Fix parsing of templated declarations.

Before: template <template <typename T>, typename P > class X;
After:  template <template <typename T>, typename P> class X;

More importantly, the token annotations for the second ">" are now computed
correctly.

llvm-svn: 173047

11 years agoRemoving empty loop-convert directory
Edwin Vane [Mon, 21 Jan 2013 14:35:54 +0000 (14:35 +0000)]
Removing empty loop-convert directory

llvm-svn: 173046

11 years agoFixes indent in linkage specification blocks.
Manuel Klimek [Mon, 21 Jan 2013 14:32:05 +0000 (14:32 +0000)]
Fixes indent in linkage specification blocks.

We now indent:
extern "C" {
int a;
}

without additional indent inside the extern "C" block.

llvm-svn: 173045

11 years agoCMake: generalize checking for target availability and add initial support for PowerP...
Alexey Samsonov [Mon, 21 Jan 2013 14:31:45 +0000 (14:31 +0000)]
CMake: generalize checking for target availability and add initial support for PowerPC native arch. With this patch, building LLVM on PowerPC native arch produces a working ASan runtime.

llvm-svn: 173044

11 years agoFix bug discovered by valgrind.
Daniel Jasper [Mon, 21 Jan 2013 14:18:28 +0000 (14:18 +0000)]
Fix bug discovered by valgrind.

When trying to merge lines, we should not touch lines that are invalid,
as we don't know how long they might be.

llvm-svn: 173043

11 years agoAdd regression test.
Manuel Klimek [Mon, 21 Jan 2013 14:16:56 +0000 (14:16 +0000)]
Add regression test.

llvm-svn: 173042

11 years agoAST/VTableBuilder.h: Suppress a warning. [-Wunused-private-field]
NAKAMURA Takumi [Mon, 21 Jan 2013 14:15:24 +0000 (14:15 +0000)]
AST/VTableBuilder.h: Suppress a warning. [-Wunused-private-field]

llvm-svn: 173041

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]

llvm-svn: 173040

11 years agoFixes detection of class template specializations.
Manuel Klimek [Mon, 21 Jan 2013 13:58:54 +0000 (13:58 +0000)]
Fixes detection of class template specializations.

Now correctly formats:
template <> class A<int> {} a;

llvm-svn: 173038

11 years ago[sanitizer] Disable scanf interceptor on windows.
Evgeniy Stepanov [Mon, 21 Jan 2013 13:30:08 +0000 (13:30 +0000)]
[sanitizer] Disable scanf interceptor on windows.

llvm-svn: 173037

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.

llvm-svn: 173036

11 years agoFirst step towards vftable generation with -cxx-abi microsoft PR13231
Timur Iskhodzhanov [Mon, 21 Jan 2013 13:02:41 +0000 (13:02 +0000)]
First step towards vftable generation with -cxx-abi microsoft PR13231

llvm-svn: 173035

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. =]

llvm-svn: 173034

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.

llvm-svn: 173033

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.

llvm-svn: 173032

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.

llvm-svn: 173031

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.

llvm-svn: 173030

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.

llvm-svn: 173029

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.

llvm-svn: 173028

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.

llvm-svn: 173027

11 years agoFixup for r173021: build tests with zero-based shadow on Android only, fix condition...
Alexey Samsonov [Mon, 21 Jan 2013 11:36:38 +0000 (11:36 +0000)]
Fixup for r173021: build tests with zero-based shadow on Android only, fix condition in checking for shadow gap in asan_mapping.h

llvm-svn: 173026

11 years ago[sanitizer] Define va_copy on win32.
Evgeniy Stepanov [Mon, 21 Jan 2013 11:32:50 +0000 (11:32 +0000)]
[sanitizer] Define va_copy on win32.

llvm-svn: 173025

11 years agoAdd a fixit for _Noreturn main,
Dmitri Gribenko [Mon, 21 Jan 2013 11:25:03 +0000 (11:25 +0000)]
Add a fixit for _Noreturn main,
add tests for fixits removing static and inline from main

llvm-svn: 173024

11 years ago[tsan] fix thread_name.cc test to work with older versions of libc
Kostya Serebryany [Mon, 21 Jan 2013 11:20:49 +0000 (11:20 +0000)]
[tsan] fix thread_name.cc test to work with older versions of libc

llvm-svn: 173023

11 years agoCGDebugInfo.cpp: Fix a warning. [-Wunused-variable]
NAKAMURA Takumi [Mon, 21 Jan 2013 10:51:28 +0000 (10:51 +0000)]
CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]

llvm-svn: 173022

11 years agoASan: build unit tests with -fsanitize-address-zero-base-shadow on Linux and Android
Alexey Samsonov [Mon, 21 Jan 2013 10:51:18 +0000 (10:51 +0000)]
ASan: build unit tests with -fsanitize-address-zero-base-shadow on Linux and Android

llvm-svn: 173021

11 years ago[asan] Move *scanf declarations out of mac-only section.
Evgeniy Stepanov [Mon, 21 Jan 2013 10:33:14 +0000 (10:33 +0000)]
[asan] Move *scanf declarations out of mac-only section.

llvm-svn: 173020

11 years agoAllow for nested name specifiers in record declarations.
Manuel Klimek [Mon, 21 Jan 2013 10:17:14 +0000 (10:17 +0000)]
Allow for nested name specifiers in record declarations.

Now correctly formats:
class A::B {} n;

llvm-svn: 173019

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.

llvm-svn: 173018

11 years agoFix parsing of return statements.
Manuel Klimek [Mon, 21 Jan 2013 10:07:49 +0000 (10:07 +0000)]
Fix parsing of return statements.

Previously, we would not detect brace initializer lists in return
statements, thus:
 return (a)(b) { 1, 2, 3 };
would put the semicolon onto the next line.

llvm-svn: 173017

11 years agoASan: build runtime flexible mapping and offset in configure+make build as well
Alexey Samsonov [Mon, 21 Jan 2013 09:13:10 +0000 (09:13 +0000)]
ASan: build runtime flexible mapping and offset in configure+make build as well

llvm-svn: 173016

11 years agoASan: use dynamic lookup when building dynamic ASan runtime on Mac, because shadow...
Alexey Samsonov [Mon, 21 Jan 2013 09:07:01 +0000 (09:07 +0000)]
ASan: use dynamic lookup when building dynamic ASan runtime on Mac, because shadow mapping and offset are defined in the instrumented modules instead of runtime

llvm-svn: 173015

11 years agoPort r172856: 'Include ubsan runtime even when building a shared library. We don...
Alexey Samsonov [Mon, 21 Jan 2013 08:45:02 +0000 (08:45 +0000)]
Port r172856: 'Include ubsan runtime even when building a shared library. We don't require executable to be linked with UBSan.' to Mac

llvm-svn: 173014

11 years agoASan: build runtime library with ASAN_FLEXIBLE_MAPPING_AND_OFFSET=1 as shadow mapping...
Alexey Samsonov [Mon, 21 Jan 2013 08:24:19 +0000 (08:24 +0000)]
ASan: build runtime library with ASAN_FLEXIBLE_MAPPING_AND_OFFSET=1 as shadow mapping/offset are always emitted by the LLVM backend now

llvm-svn: 173013

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.

llvm-svn: 173012

11 years agoCMake: add functions creating universal runtime libraries for several architectures...
Alexey Samsonov [Mon, 21 Jan 2013 08:12:20 +0000 (08:12 +0000)]
CMake: add functions creating universal runtime libraries for several architectures on OS X and use them in ASan and UBSan build rules

llvm-svn: 173011

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.

llvm-svn: 173010

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.

llvm-svn: 173009

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

llvm-svn: 173008

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.

llvm-svn: 173007

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.

llvm-svn: 173006

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

llvm-svn: 173005

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.

llvm-svn: 173004

11 years agoPR14472: Preserve qualifiers while unwrapping types for debug info
David Blaikie [Mon, 21 Jan 2013 04:37:12 +0000 (04:37 +0000)]
PR14472: Preserve qualifiers while unwrapping types for debug info

Looks like r161368 fixed this for one case but not all. This change generalizes
the solution over all the unwrapping cases. Now that preserving the qualifiers
is done independent of the particular type being unwrapped I won't bother
adding test cases for each one but at least demonstrate that this change was
necessary & sufficient to fix the bug.

llvm-svn: 173002

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.

llvm-svn: 172999

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.

llvm-svn: 172998

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

llvm-svn: 172997

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?

llvm-svn: 172996

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.

llvm-svn: 172995

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.

llvm-svn: 172994

11 years ago[Core] Use LLVM's ErrorOr<T>.
Michael J. Spencer [Sun, 20 Jan 2013 21:27:05 +0000 (21:27 +0000)]
[Core] Use LLVM's ErrorOr<T>.

llvm-svn: 172993

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

llvm-svn: 172992

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.

llvm-svn: 172991

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.

llvm-svn: 172990

11 years agoPrune unused diagnostics.
Benjamin Kramer [Sun, 20 Jan 2013 19:29:01 +0000 (19:29 +0000)]
Prune unused diagnostics.

Courtesy of utils/find-unused-diagnostics.sh.

llvm-svn: 172988

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.

llvm-svn: 172987

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.

llvm-svn: 172986

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.

llvm-svn: 172985

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.

llvm-svn: 172984

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

llvm-svn: 172983

11 years agoclang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp: Add /usr/bin/cmp.
NAKAMURA Takumi [Sun, 20 Jan 2013 15:30:41 +0000 (15:30 +0000)]
clang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp: Add /usr/bin/cmp.

FIXME: It could be removed if;

  - check-all included llvm/valgrind/supp, too.
  - clang-vg didn't use "check-all".

llvm-svn: 172982

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.

llvm-svn: 172981

11 years agoAdd bitreader to LINK_COMPONENTS in users of libclang, c-arcmt-test and c-index-test.
NAKAMURA Takumi [Sun, 20 Jan 2013 14:53:49 +0000 (14:53 +0000)]
Add bitreader to LINK_COMPONENTS in users of libclang, c-arcmt-test and c-index-test.

They don't link cygclang.dll, but libclang.a on cygwin.

llvm-svn: 172980

11 years agoCMake: Add add_compiler_rt_osx_object_library to create universal libraries on Mac
Alexey Samsonov [Sun, 20 Jan 2013 14:36:12 +0000 (14:36 +0000)]
CMake: Add add_compiler_rt_osx_object_library to create universal libraries on Mac

llvm-svn: 172979

11 years agoCMake: use add_compiler_rt_static_runtime to build TSan and MSan runtimes. No functio...
Alexey Samsonov [Sun, 20 Jan 2013 14:14:13 +0000 (14:14 +0000)]
CMake: use add_compiler_rt_static_runtime to build TSan and MSan runtimes. No functionality change.

llvm-svn: 172978

11 years agoCMake: Add add_compiler_rt_static_runtime function and use it to build generic compil...
Alexey Samsonov [Sun, 20 Jan 2013 13:58:10 +0000 (13:58 +0000)]
CMake: Add add_compiler_rt_static_runtime function and use it to build generic compiler-rt libraries

llvm-svn: 172977

11 years agoTemporary disable test added in r172828 as it seems to be flaky on the buildbots
Alexey Samsonov [Sun, 20 Jan 2013 13:41:26 +0000 (13:41 +0000)]
Temporary disable test added in r172828 as it seems to be flaky on the buildbots

llvm-svn: 172976

11 years agoFixup for r172828: use InternalScopedBuffer in favor of large stack buffers
Alexey Samsonov [Sun, 20 Jan 2013 13:22:06 +0000 (13:22 +0000)]
Fixup for r172828: use InternalScopedBuffer in favor of large stack buffers

llvm-svn: 172975

11 years agoAdd top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressS...
Alexey Samsonov [Sun, 20 Jan 2013 13:12:12 +0000 (13:12 +0000)]
Add top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressSanitizer use bottom of the address space for the shadow memory. On Linux it can be used with -fPIE/-pie to improve performance.

llvm-svn: 172974

11 years agoImplement OpenCL event_t as Clang builtin type, including event_t related OpenCL...
Guy Benyei [Sun, 20 Jan 2013 12:31:11 +0000 (12:31 +0000)]
Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenCL 1.2 spec 6.9)

llvm-svn: 172973

11 years ago[docs] Document lld's usage of C++11 features.
Michael J. Spencer [Sun, 20 Jan 2013 10:39:17 +0000 (10:39 +0000)]
[docs] Document lld's usage of C++11 features.

llvm-svn: 172972

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

llvm-svn: 172971

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.

llvm-svn: 172970

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.

llvm-svn: 172969

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.

llvm-svn: 172968

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.

llvm-svn: 172967

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

llvm-svn: 172966

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.

llvm-svn: 172965

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.

llvm-svn: 172964

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.

llvm-svn: 172963

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

llvm-svn: 172962

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.

llvm-svn: 172961

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.

llvm-svn: 172960

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.

llvm-svn: 172959

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.

llvm-svn: 172958

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.

llvm-svn: 172957

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.

llvm-svn: 172956

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

llvm-svn: 172955

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).

llvm-svn: 172954

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.

llvm-svn: 172953