platform/upstream/llvm.git
10 years agoSema: Remove useless MSStructPragmaOn update in Sema::~Sema
David Majnemer [Mon, 10 Feb 2014 17:17:03 +0000 (17:17 +0000)]
Sema: Remove useless MSStructPragmaOn update in Sema::~Sema

No functional change, this code was just superfluous.

llvm-svn: 201099

10 years agoCopy the ThreadLocalMode in GlobalVariable::copyAttributesFrom
Hans Wennborg [Mon, 10 Feb 2014 17:13:56 +0000 (17:13 +0000)]
Copy the ThreadLocalMode in GlobalVariable::copyAttributesFrom

This fixes the oversight from r159077.

llvm-svn: 201098

10 years agoR600/SI: Initialize M0 and emit S_WQM_B64 whenever DS instructions are used
Tom Stellard [Mon, 10 Feb 2014 16:58:30 +0000 (16:58 +0000)]
R600/SI: Initialize M0 and emit S_WQM_B64 whenever DS instructions are used

DS instructions that access local memory can only uses addresses that
are less than or equal to the value of M0.  When M0 is uninitialized,
then we experience undefined behavior.

This patch also changes the behavior to emit S_WQM_B64 on pixel shaders
no matter what kind of DS instruction is used.

llvm-svn: 201097

10 years agoR600/SI: Only use S_WQM_B64 in pixel shaders
Tom Stellard [Mon, 10 Feb 2014 16:58:27 +0000 (16:58 +0000)]
R600/SI: Only use S_WQM_B64 in pixel shaders

This doesn't change any functionality, since we only have two shader
types (compute and pixel) that use local memory.  We're just changing
the logic to match the documentation.

llvm-svn: 201096

10 years agoRemove some prototype code accidentally committed in r201043
David Blaikie [Mon, 10 Feb 2014 16:49:07 +0000 (16:49 +0000)]
Remove some prototype code accidentally committed in r201043

Thanks to Chandler for the catch.

llvm-svn: 201095

10 years agoARM: move vshll NEON implementation to common code
Tim Northover [Mon, 10 Feb 2014 16:20:36 +0000 (16:20 +0000)]
ARM: move vshll NEON implementation to common code

Now that both ARM backends use the same implementation for vshll operations,
the code can be shared. This is also a necessary LLVM/Clang interface update.

llvm-svn: 201094

10 years agoARM: use natural LLVM IR for vshll instructions
Tim Northover [Mon, 10 Feb 2014 16:20:29 +0000 (16:20 +0000)]
ARM: use natural LLVM IR for vshll instructions

Similarly to the vshrn instructions, these are simple zext/sext + trunc
operations. Using normal LLVM IR should allow for better code, and more sharing
with the AArch64 backend.

llvm-svn: 201093

10 years agoHost: unconstify editline paramters
Saleem Abdulrasool [Mon, 10 Feb 2014 16:10:42 +0000 (16:10 +0000)]
Host: unconstify editline paramters

Although the interface to el_push should be a constant parameter (as it is on
Darwin), certain Linux distributions currently ship a header which does not
provide proper const correctness.  This causes compilation failures on Linux.
Strip the constness on the parameter, which whilst incorrect, is mostly
harmless.  The parameter will not be changed by the interface and so it is
acceptable to do this.  When distributions have updated to a more correct
declaration, it would be nice to revert this change.

Addresses PR18784.

llvm-svn: 201092

10 years ago[AArch64] Handle aliases of conditional branches without b.pred form.
Chad Rosier [Mon, 10 Feb 2014 15:43:11 +0000 (15:43 +0000)]
[AArch64] Handle aliases of conditional branches without b.pred form.

llvm-svn: 201091

10 years agoARM: r12 is callee-saved for interrupt handlers
Oliver Stannard [Mon, 10 Feb 2014 14:24:23 +0000 (14:24 +0000)]
ARM: r12 is callee-saved for interrupt handlers

For A- and R-class processors, r12 is not normally callee-saved, but is for
interrupt handlers. See AAPCS, 5.3.1.1, "Use of IP by the linker".

llvm-svn: 201089

10 years agoMake succ_iterator a real random access iterator and clean up a couple of users.
Benjamin Kramer [Mon, 10 Feb 2014 14:17:42 +0000 (14:17 +0000)]
Make succ_iterator a real random access iterator and clean up a couple of users.

llvm-svn: 201088

10 years agoGlobalsModRef: Unify and clean up duplicated pointer analysis code.
Benjamin Kramer [Mon, 10 Feb 2014 14:17:30 +0000 (14:17 +0000)]
GlobalsModRef: Unify and clean up duplicated pointer analysis code.

llvm-svn: 201087

10 years agoARM: implement vshrn NEON intrinsic in terms of shr/trunc
Tim Northover [Mon, 10 Feb 2014 14:04:12 +0000 (14:04 +0000)]
ARM: implement vshrn NEON intrinsic in terms of shr/trunc

Now the backend supports the natural LLVM IR, we can shamelessly steal the
AArch64 front-end code to implement the vshrn intrinsic on 32-bit ARM.

llvm-svn: 201086

10 years agoARM: use LLVM IR to represent the vshrn operation
Tim Northover [Mon, 10 Feb 2014 14:04:07 +0000 (14:04 +0000)]
ARM: use LLVM IR to represent the vshrn operation

vshrn is just the combination of a right shift and a truncate (and the limits
on the immediate value actually mean the signedness of the shift doesn't
matter). Using that representation allows us to get rid of an ARM-specific
intrinsic, share more code with AArch64 and hopefully get better code out of
the mid-end optimisers.

llvm-svn: 201085

10 years agoAdd a copy of missing <ucontext.h> for Android and enable ASan SEGV handler.
Evgeniy Stepanov [Mon, 10 Feb 2014 13:34:43 +0000 (13:34 +0000)]
Add a copy of missing <ucontext.h> for Android and enable ASan SEGV handler.

This change adds a copy of <ucontext.h> for Android found in google-breakpad
that is missing from the official NDK.
ASan SEGV handler is still disabled by default and can be enabled with
ASAN_OPTIONS=handle_segv.

llvm-svn: 201084

10 years agoTest commit - added a new line to vec_shuf-insert.ll.
Robert Lougher [Mon, 10 Feb 2014 12:42:13 +0000 (12:42 +0000)]
Test commit - added a new line to vec_shuf-insert.ll.

llvm-svn: 201083

10 years agoASTUnit: simplify remapping files by using the exact same logic in Preprocessor
Dmitri Gribenko [Mon, 10 Feb 2014 12:31:34 +0000 (12:31 +0000)]
ASTUnit: simplify remapping files by using the exact same logic in Preprocessor

llvm-svn: 201082

10 years ago[mips][msa] Add DLSA instruction.
Matheus Almeida [Mon, 10 Feb 2014 12:05:17 +0000 (12:05 +0000)]
[mips][msa] Add DLSA instruction.

llvm-svn: 201081

10 years ago[mips][msa] Update FileCheck prefix in preparation for
Matheus Almeida [Mon, 10 Feb 2014 11:30:09 +0000 (11:30 +0000)]
[mips][msa] Update FileCheck prefix in preparation for
 the addition of Mips64 tests.

No functional changes.

llvm-svn: 201080

10 years ago[CMake] Add dependencies to gtest.
NAKAMURA Takumi [Mon, 10 Feb 2014 11:27:41 +0000 (11:27 +0000)]
[CMake] Add dependencies to gtest.

llvm-svn: 201079

10 years ago[mips][msa] Make LSA_DESC a parameterizable class.
Matheus Almeida [Mon, 10 Feb 2014 11:15:37 +0000 (11:15 +0000)]
[mips][msa] Make LSA_DESC a parameterizable class.

This way it's possible to share the instruction's description for LSA and
DLSA (to be added).

No functional changes.

llvm-svn: 201078

10 years ago[CMake] LLVMSupport should be responsible to provide system_libs.
NAKAMURA Takumi [Mon, 10 Feb 2014 10:52:19 +0000 (10:52 +0000)]
[CMake] LLVMSupport should be responsible to provide system_libs.

llvm-svn: 201077

10 years agoFix Clang install rules to not set permissions on include/
NAKAMURA Takumi [Mon, 10 Feb 2014 10:51:09 +0000 (10:51 +0000)]
Fix Clang install rules to not set permissions on include/

The CMake install(DIRECTORY) command documents that it sets permissions
on directories it is asked to install.  Since the <prefix>/include
directory may not be exclusive to the LLVM/Clang installation, we should
not ask CMake to manage permissions of that directory for us.  Instead,
give only our own include/clang and include/clang-c subdirectories to
the install(DIRECTORY) command.

Fixes PR4500. Patch by Brad King.

llvm-svn: 201076

10 years agoFix LLVM install rules to not set permissions on include/
NAKAMURA Takumi [Mon, 10 Feb 2014 10:50:55 +0000 (10:50 +0000)]
Fix LLVM install rules to not set permissions on include/

The CMake install(DIRECTORY) command documents that it sets permissions
on directories it is asked to install.  Since the <prefix>/include
directory may not be exclusive to the LLVM installation, we should not
ask CMake to manage permissions of that directory for us.  Instead, give
only our own include/llvm and include/llvm-c subdirectories to the
install(DIRECTORY) command.

Fixes PR4500. Patch by Brad King.

llvm-svn: 201075

10 years ago[msan] Return EINVAL instead of crashing from mmap of an invalid address.
Evgeniy Stepanov [Mon, 10 Feb 2014 09:37:03 +0000 (09:37 +0000)]
[msan] Return EINVAL instead of crashing from mmap of an invalid address.

llvm-svn: 201074

10 years ago[CMake] add_clang_library(): Use llvm_add_library.
NAKAMURA Takumi [Mon, 10 Feb 2014 09:05:28 +0000 (09:05 +0000)]
[CMake] add_clang_library(): Use llvm_add_library.

CMAKE_MODULE_LINKER_FLAGS can be removed since llvm_add_library(MODULE) adds same flags to MODULE.

llvm-svn: 201073

10 years ago[CMake] Introduce llvm_add_library().
NAKAMURA Takumi [Mon, 10 Feb 2014 09:05:11 +0000 (09:05 +0000)]
[CMake] Introduce llvm_add_library().

  - MODULE;SHARED;STATIC
      STATIC by default w/o BUILD_SHARED_LIBS.
      SHARED by default w/  BUILD_SHARED_LIBS.
  - OUTPUT_NAME name
      Corresponds to OUTPUT_NAME in target properties.
  - DEPENDS targets...
      Same semantics as add_dependencies().
  - LINK_COMPONENTS components...
      Same as the variable LLVM_LINK_COMPONENTS.
  - LINK_LIBS lib_targets...
      Same semantics as target_link_libraries().
  - ADDITIONAL_HEADERS (implemented in LLVMProcessSources)
      May specify header files for IDE generators.

I suggest llvm_add_library() may be used for inter-project add_library stuff
and also suggest add_***_library() may be used project-specific.

Please be patient that llvm_add_library might be ambiguous against add_llvm_library.

llvm-svn: 201072

10 years ago[Sanitizer] Don't #include the same system header twice.
Alexey Samsonov [Mon, 10 Feb 2014 08:57:28 +0000 (08:57 +0000)]
[Sanitizer] Don't #include the same system header twice.

llvm-svn: 201071

10 years ago[sanitizer] Disable 3 more syscall hooks on Android.
Evgeniy Stepanov [Mon, 10 Feb 2014 08:35:58 +0000 (08:35 +0000)]
[sanitizer] Disable 3 more syscall hooks on Android.

llvm-svn: 201070

10 years ago[TSan] Fix mismatched mangled names in operator delete interceptors
Alexey Samsonov [Mon, 10 Feb 2014 08:34:46 +0000 (08:34 +0000)]
[TSan] Fix mismatched mangled names in operator delete interceptors

llvm-svn: 201069

10 years ago[sanitizer] struct ustat and a bunch of other definitions are missing on Android.
Evgeniy Stepanov [Mon, 10 Feb 2014 08:00:24 +0000 (08:00 +0000)]
[sanitizer] struct ustat and a bunch of other definitions are missing on Android.

llvm-svn: 201068

10 years ago[asan] support for FreeBSD, LLVM part. patch by Viktor Kutuzov
Kostya Serebryany [Mon, 10 Feb 2014 07:37:04 +0000 (07:37 +0000)]
[asan] support for FreeBSD, LLVM part. patch by Viktor Kutuzov

llvm-svn: 201067

10 years agoAVX-512: Fixed extract_vector_elt for v16i1 and v8i1 vectors.
Elena Demikhovsky [Mon, 10 Feb 2014 07:02:39 +0000 (07:02 +0000)]
AVX-512: Fixed extract_vector_elt for v16i1 and v8i1 vectors.

llvm-svn: 201066

10 years agoRecommit r201059 and r201060 with hopefully a fix for its original failure.
Craig Topper [Mon, 10 Feb 2014 06:55:41 +0000 (06:55 +0000)]
Recommit r201059 and r201060 with hopefully a fix for its original failure.

Original commits messages:

Add MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of modrm byte as a don't care value. Will allow for simplification of disassembler code.

Simplify a bunch of code by removing the need for the x86 disassembler table builder to know about extended opcodes. The modrm forms are sufficient to convey the information.

llvm-svn: 201065

10 years agoRevert r201059 and r201060.
Bob Wilson [Mon, 10 Feb 2014 05:28:30 +0000 (05:28 +0000)]
Revert r201059 and r201060.

r201059 appears to cause a crash in a bootstrapped build of clang. Craig
isn't available to look at it right now, so I'm reverting it while he
investigates.

llvm-svn: 201064

10 years ago[CMake] LLVMProcessSources.cmake: Prune add_file_dependencies to ${TABLEGEN_OUTPUT}.
NAKAMURA Takumi [Mon, 10 Feb 2014 03:24:28 +0000 (03:24 +0000)]
[CMake] LLVMProcessSources.cmake: Prune add_file_dependencies to ${TABLEGEN_OUTPUT}.

I am sure it'd not be required any more.
In trunk, all of tablegen's users depend on ${TABLEGEN_OUTPUT} as not file dependency but inter-target dependency.

llvm-svn: 201063

10 years ago[CMake] Re-apply r200765, "Get rid of llvm_config() to expand dependencies."
NAKAMURA Takumi [Mon, 10 Feb 2014 03:24:19 +0000 (03:24 +0000)]
[CMake] Re-apply r200765, "Get rid of llvm_config() to expand dependencies."

CMake's target_link_libraries() will manage dependencies with Brad's LLVMConfig improvements.

Configuration time may be reduced by a few seconds.

llvm-svn: 201062

10 years ago[AArch64]Implement the copy of two FPR8 registers by using FMOVss of two FPR32 regist...
Hao Liu [Mon, 10 Feb 2014 03:16:22 +0000 (03:16 +0000)]
[AArch64]Implement the copy of two FPR8 registers by using FMOVss of two FPR32 registers in copyPhysReg.

llvm-svn: 201061

10 years agoSimplify a bunch of code by removing the need for the x86 disassembler table builder...
Craig Topper [Mon, 10 Feb 2014 01:58:12 +0000 (01:58 +0000)]
Simplify a bunch of code by removing the need for the x86 disassembler table builder to know about extended opcodes. The modrm forms are sufficient to convey the information.

llvm-svn: 201060

10 years agoAdd MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of...
Craig Topper [Mon, 10 Feb 2014 00:50:34 +0000 (00:50 +0000)]
Add MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of modrm byte as a don't care value. Will allow for simplification of disassembler code.

llvm-svn: 201059

10 years agoMCParser: add a single token lookahead
Saleem Abdulrasool [Sun, 9 Feb 2014 23:29:24 +0000 (23:29 +0000)]
MCParser: add a single token lookahead

Some of the more complex directive and macro handling for GAS compatibility
requires lookahead.  Add a single token lookahead in the MCAsmLexer.

llvm-svn: 201058

10 years agoRemove shell comment in the middle of a single-line command.
Bob Wilson [Sun, 9 Feb 2014 22:36:31 +0000 (22:36 +0000)]
Remove shell comment in the middle of a single-line command.

You can't put a comment in the middle of a command like this. This is
invalid shell syntax and breaks the build.

llvm-svn: 201057

10 years agoPR18685: Ignore class template specializations as potential
Kaelyn Uhrain [Sun, 9 Feb 2014 21:47:04 +0000 (21:47 +0000)]
PR18685: Ignore class template specializations as potential
nested-name-specifiers for typos unless the typo already has
a nested-name-specifier that is a template specialization.

llvm-svn: 201056

10 years agoAsmParser: Simplify code with ArrayRef.
Benjamin Kramer [Sun, 9 Feb 2014 17:13:11 +0000 (17:13 +0000)]
AsmParser: Simplify code with ArrayRef.

No functionality change.

llvm-svn: 201055

10 years agoWhitespace.
NAKAMURA Takumi [Sun, 9 Feb 2014 16:38:31 +0000 (16:38 +0000)]
Whitespace.

llvm-svn: 201054

10 years agoProvide CMake package modules in install tree
NAKAMURA Takumi [Sun, 9 Feb 2014 16:37:02 +0000 (16:37 +0000)]
Provide CMake package modules in install tree

Teach the Makefile build system to generate and install CMake modules
LLVMConfig.cmake and LLVMConfigVersion.cmake so that applications that
build with CMake can use 'find_package(LLVM)' even when LLVM is not
built with CMake.  These modules tell such applications about available
LLVM libraries and their dependencies.

Run llvm-config to generate the list of libraries and use the results of
llvm-build to generate the library dependencies.  Use sed to perform
substitutions in the LLVMConfig.cmake.in and LLVMConfigVersion.cmake.in
sources that our CMake build system uses.

Teach the Makefile build system to generate the LLVMExports.cmake file
with content similar to that produced by the CMake install(EXPORT)
command.  Extend llvm-build with an option to generate the library
dependencies fragment for this file.

Contributed by Brad King.

llvm-svn: 201053

10 years agoAdd version, arch, system libs, and targets to Makefile.config
NAKAMURA Takumi [Sun, 9 Feb 2014 16:36:42 +0000 (16:36 +0000)]
Add version, arch, system libs, and targets to Makefile.config

Teach autoconf/configure.ac to AC_SUBST several additional values in
Makefile.config to make them available to Makefile code.  These will
be useful to generate CMake package modules from the Makefile build.

Contributed by Brad King.

llvm-svn: 201052

10 years agoLoad exported lib and exe targets from LLVMConfig
NAKAMURA Takumi [Sun, 9 Feb 2014 16:36:28 +0000 (16:36 +0000)]
Load exported lib and exe targets from LLVMConfig

Teach each package configuration file to load the LLVMExports file for
its corresponding tree.  This will allow application CMake code to use
logical library and executable target names from LLVM as if they were in
our own build process (e.g. LLVMSupport).  CMake will have enough
information to propagate LLVM library link dependencies automatically
while configuring applications.

Contributed by Brad King.

llvm-svn: 201051

10 years agoExport lib and exe build target names from build tree
NAKAMURA Takumi [Sun, 9 Feb 2014 16:36:16 +0000 (16:36 +0000)]
Export lib and exe build target names from build tree

Record every logical target that we install with install(TARGETS) in a
global LLVM_EXPORTS property.  Then use the export(TARGETS) command to
provide a "LLVMExports.cmake" file that exports logical targets for
import into applications directly from our build tree.

The "LLVMExports.cmake" file is not meant for direct inclusion by
application code but should be included by "LLVMConfig.cmake" in a
future change.

Contributed by Brad King.

llvm-svn: 201050

10 years agoExport lib and exe build target names from install tree
NAKAMURA Takumi [Sun, 9 Feb 2014 16:36:03 +0000 (16:36 +0000)]
Export lib and exe build target names from install tree

Use the install(TARGETS) command EXPORT option for every library and
executable that we install with LLVM.  Then use the install(EXPORT)
command to provide a "LLVMExports.cmake" file that exports logical
targets for import into applications from our install tree.

The "LLVMExports.cmake" file is not meant for direct inclusion by
application code but should be included by "LLVMConfig.cmake" in a
future change.

Contributed by Brad King.

llvm-svn: 201049

10 years agoProvide LLVMConfig in both build and install tree
NAKAMURA Takumi [Sun, 9 Feb 2014 16:35:51 +0000 (16:35 +0000)]
Provide LLVMConfig in both build and install tree

Create separate package configuration files "LLVMConfig.cmake" for the
LLVM build and install trees so that each can have information specific
to its tree.  Configure each with the corresponding include, lib, and
cmake directories.  Include the "LLVM-Config" API modules directly from
the configured cmake modules directory.

In the install tree, compute the installation prefix relative to the
file location.  In the build tree, provide information specific to the
build tree for use by tools like Clang that can build externally against
the LLVM build tree.  Prefix such values in "LLVM_BUILD_" and comment
them as such.

Contributed by Brad King.

llvm-svn: 201048

10 years agoTeach LLVMConfig to avoid modifying CMAKE_MODULE_PATH
NAKAMURA Takumi [Sun, 9 Feb 2014 16:35:40 +0000 (16:35 +0000)]
Teach LLVMConfig to avoid modifying CMAKE_MODULE_PATH

Do not modify this value on the application's behalf and just ensure API
modules are always available next to the LLVMConfig module.  This is
already the case in the install tree so use file(COPY) to make it so in
the build tree.  Include the LLVM-Config API module from next to the
LLVMConfig location.

Contributed by Brad King.

llvm-svn: 201047

10 years agoDe-duplicate references to share/llvm/cmake path
NAKAMURA Takumi [Sun, 9 Feb 2014 16:35:29 +0000 (16:35 +0000)]
De-duplicate references to share/llvm/cmake path

Use a LLVM_INSTALL_PACKAGE_DIR variable to hold the path and reference
it where necessary.

Contributed by Brad King.

llvm-svn: 201046

10 years agoAsmParser: Parse (and ignore) nested .macro definitions.
Benjamin Kramer [Sun, 9 Feb 2014 16:22:00 +0000 (16:22 +0000)]
AsmParser: Parse (and ignore) nested .macro definitions.

This enables a slightly odd feature of gas. The macro is defined when
the outermost macro is instantiated.

PR18599

llvm-svn: 201045

10 years agoUse a consistent argument order in TargetLoweringObjectFile.
Rafael Espindola [Sun, 9 Feb 2014 14:50:44 +0000 (14:50 +0000)]
Use a consistent argument order in TargetLoweringObjectFile.

These methods normally call each other and it is really annoying if the
arguments are in different order. The more common rule was that the arguments
specific to call are first (GV, Encoding, Suffix) and the auxiliary objects
(Mang, TM) come after. This patch changes the exceptions.

llvm-svn: 201044

10 years agoFix formatting introduced in r200941
David Blaikie [Sun, 9 Feb 2014 09:49:29 +0000 (09:49 +0000)]
Fix formatting introduced in r200941

llvm-svn: 201043

10 years ago[libclang] While visiting a C++ destructor decl, keep the type identifier associated...
Argyrios Kyrtzidis [Sun, 9 Feb 2014 08:13:47 +0000 (08:13 +0000)]
[libclang] While visiting a C++ destructor decl, keep the type identifier associated with the decl,
don't turn it into a type ref.

rdar://15907618

llvm-svn: 201042

10 years agoRemove unnecessary include.
Craig Topper [Sun, 9 Feb 2014 07:55:19 +0000 (07:55 +0000)]
Remove unnecessary include.

llvm-svn: 201041

10 years agoClarify comment. Remove braces from single-statement block.
David Blaikie [Sun, 9 Feb 2014 07:24:41 +0000 (07:24 +0000)]
Clarify comment. Remove braces from single-statement block.

llvm-svn: 201040

10 years agoRemove some unnecessary code. The conditions it was checking had already been ruled...
Craig Topper [Sun, 9 Feb 2014 07:13:41 +0000 (07:13 +0000)]
Remove some unnecessary code. The conditions it was checking had already been ruled out by the caller.

llvm-svn: 201039

10 years agoImprove diagnostic for using non-class/namespace/scoped enum in a nested name specifier.
David Blaikie [Sun, 9 Feb 2014 06:54:23 +0000 (06:54 +0000)]
Improve diagnostic for using non-class/namespace/scoped enum in a nested name specifier.

Rather than simply saying "X is not a class or namespace", clarify what
X is by providing the aka type in the case where X is a type, or
pointing to the named declaration if there's an unambiguous one to refer
to. In the ambiguous case, the ambiguities are already enumerated
(though could be clarified by describing what kind of entities they are)

Included a few FIXMEs in tests where some further improvements could be
made.

llvm-svn: 201038

10 years agoPreprocessor: Add __ALIGNOF_MAX_ALIGN_T__
David Majnemer [Sun, 9 Feb 2014 05:30:48 +0000 (05:30 +0000)]
Preprocessor: Add __ALIGNOF_MAX_ALIGN_T__

TargetInfo::getSuitableAlign() was introduced in r146762 and is defined
as alignof(std::max_align_t).

Introduce __ALIGNOF_MAX_ALIGN_T__ which exposes getSuitableAlign() so
that libc++ may take advantage of it.

llvm-svn: 201037

10 years agotools: cast the right operand
Saleem Abdulrasool [Sun, 9 Feb 2014 03:13:07 +0000 (03:13 +0000)]
tools: cast the right operand

Properly apply the fix intended by SVN r201032.

llvm-svn: 201036

10 years ago[docs] [tblgen] clarify that code fragments are just string literals
Sean Silva [Sun, 9 Feb 2014 02:54:26 +0000 (02:54 +0000)]
[docs] [tblgen] clarify that code fragments are just string literals

Fun fact: looking at the TableGen code (around TGParser.cpp:1166), the
only difference in handling is that adjacent regular string literals are
concatenated in the parser.

llvm-svn: 201035

10 years ago[docs] [tblgen] There is no "code" type.
Sean Silva [Sun, 9 Feb 2014 02:54:15 +0000 (02:54 +0000)]
[docs] [tblgen] There is no "code" type.

Code fragments are just fancy string literals.

llvm-svn: 201034

10 years ago[docs] TableGen easter egg: Multiline string literals
Sean Silva [Sun, 9 Feb 2014 02:43:50 +0000 (02:43 +0000)]
[docs] TableGen easter egg: Multiline string literals

They're called code fragments, but they are really multiline string
literals. Just spotted this usage in a patch by Aaron using "code
fragments" for holding documentation text. I remember someone bemoaning
the lack of multiline string literals in TableGen, so I'm explicitly
documenting that code fragments are multiline string literals.

Let it be known that any use case needing multiline string literals in
TableGen (such as descriptions of options, or whatnot) can use use
code fragments (instead of C-style string concatenation or exceedingly
long lines). E.g.

    class Bar<int n>;
    class Baz<int n>;
    class Doc<string desc> {
        string Desc = desc;
    }
    def Foo : Bar<1>, Baz<3>, Doc<[{
    This Foo is a Bar, and also a Baz. It can take 3 values:
        * Qux
        * Quux
        * Quuux
    }]>;

llvm-svn: 201033

10 years agotools: explicitly cast to avoid a warning
Saleem Abdulrasool [Sun, 9 Feb 2014 01:12:21 +0000 (01:12 +0000)]
tools: explicitly cast to avoid a warning

llvm-svn: 201032

10 years agoPR16519, PR18009: When checking a partial specialization for uses of its own
Richard Smith [Sun, 9 Feb 2014 00:54:43 +0000 (00:54 +0000)]
PR16519, PR18009: When checking a partial specialization for uses of its own
template parameters, don't look for parameters of outer templates. If a problem
is found in a default template argument, point the diagnostic at the partial
specialization (with a note pointing at the default argument) instead of
pointing it at the default argument and leaving it unclear which partial
specialization os problematic.

llvm-svn: 201031

10 years agotools: handle out-of-line personality 0 decoding
Saleem Abdulrasool [Sat, 8 Feb 2014 23:17:08 +0000 (23:17 +0000)]
tools: handle out-of-line personality 0 decoding

In some cases it is possible to have a personality 0 unwinding opcodes in the
extab (such as when .handlerdata is used in the assembly).  Simply decode the 3
opcodes for that case.

llvm-svn: 201030

10 years agoARM: change attribute tests to use parsed form
Saleem Abdulrasool [Sat, 8 Feb 2014 23:17:02 +0000 (23:17 +0000)]
ARM: change attribute tests to use parsed form

This makes the tests more readable by using the -arm-attributes decoding support
in llvm-readobj since that is now available.  Change the invocation commands to
be similar to other test and use a more precise triple (the tests only require
ARM EABI support).

llvm-svn: 201029

10 years agoLoopVectorizer: Keep track of conditional store basic blocks
Arnold Schwaighofer [Sat, 8 Feb 2014 20:41:13 +0000 (20:41 +0000)]
LoopVectorizer: Keep track of conditional store basic blocks

Before conditional store vectorization/unrolling we had only one
vectorized/unrolled basic block. After adding support for conditional store
vectorization this will not only be one block but multiple basic blocks. The
last block would have the back-edge. I updated the code to use a vector of basic
blocks instead of a single basic block and fixed the users to use the last entry
in this vector. But, I forgot to add the basic blocks to this vector!

Fixes PR18724.

llvm-svn: 201028

10 years agohostname is guarantee to never be null in this branch.
Jean-Daniel Dupas [Sat, 8 Feb 2014 20:29:40 +0000 (20:29 +0000)]
hostname is guarantee to never be null in this branch.

llvm-svn: 201027

10 years agoFix null dereference if address is NULL.
Jean-Daniel Dupas [Sat, 8 Feb 2014 20:22:05 +0000 (20:22 +0000)]
Fix null dereference if address is NULL.

llvm-svn: 201026

10 years agoPass the Mangler by reference.
Rafael Espindola [Sat, 8 Feb 2014 14:53:28 +0000 (14:53 +0000)]
Pass the Mangler by reference.

It is never null and it is not used in casts, so there is no reason to use a
pointer. This matches how we pass TM.

llvm-svn: 201025

10 years agoOnly set EL_PROMPT_ESC when existing - fix typo
Sylvestre Ledru [Sat, 8 Feb 2014 13:26:24 +0000 (13:26 +0000)]
Only set EL_PROMPT_ESC when existing - fix typo

llvm-svn: 201024

10 years agoOnly set EL_PROMPT_ESC when existing
Sylvestre Ledru [Sat, 8 Feb 2014 13:25:47 +0000 (13:25 +0000)]
Only set EL_PROMPT_ESC when existing

llvm-svn: 201023

10 years agoAdd LLVM_OVERRIDE to a few declarations.
Rafael Espindola [Sat, 8 Feb 2014 06:07:27 +0000 (06:07 +0000)]
Add LLVM_OVERRIDE to a few declarations.

llvm-svn: 201022

10 years agoFix for PR18735 - self-assignment for map/multimap gives incorrect results in C++03
Marshall Clow [Sat, 8 Feb 2014 04:03:14 +0000 (04:03 +0000)]
Fix for PR18735 - self-assignment for map/multimap gives incorrect results in C++03

llvm-svn: 201021

10 years agotype_info objects are not unnamed_addr: the ABI requires us to
John McCall [Sat, 8 Feb 2014 03:26:05 +0000 (03:26 +0000)]
type_info objects are not unnamed_addr: the ABI requires us to
unique them and permits the implementation of dynamic_cast (and
anything else which knows it's working with a complete class
type) to compare their addresses directly.

rdar://16005328

llvm-svn: 201020

10 years agoMove the -fms-compatibility using decl check after real access checking
Reid Kleckner [Sat, 8 Feb 2014 02:40:20 +0000 (02:40 +0000)]
Move the -fms-compatibility using decl check after real access checking

Summary:
This avoids false positives from -Wmicrosoft when name lookup would
normally succeed in standard C++.  This triggered on a common CRTP
pattern in clang, where a derived class would have a private using decl
to pull in members of a dependent base:

class Verifier : InstVisitor<Verifier> {
private:
  using InstVisitor<Verifier>::visit;
  ...
  void anything() {
    visit(); // warned here
  }
};

Real access checks pass here because we're in the context of the
Verifier, but the -Wmicrosoft extension was just looking for the private
access specifier.

Reviewers: rsmith

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2679

llvm-svn: 201019

10 years agoPR18581: Attempt to complete the type in a VLA declaration before checking
Richard Smith [Sat, 8 Feb 2014 02:30:49 +0000 (02:30 +0000)]
PR18581: Attempt to complete the type in a VLA declaration before checking
whether it's POD.

llvm-svn: 201018

10 years agoclang-cl: Alias /Zi and /Z7 to -gline-tables-only
Reid Kleckner [Sat, 8 Feb 2014 01:43:16 +0000 (01:43 +0000)]
clang-cl: Alias /Zi and /Z7 to -gline-tables-only

LLVM only knows how to emit Z7-style line tables on -win32, so there's
no reason for clang to emit anything other than line info.

llvm-svn: 201017

10 years agoAdd throw() specifiers to more redeclarations of operator delete and operator delete[].
Nick Lewycky [Sat, 8 Feb 2014 01:42:08 +0000 (01:42 +0000)]
Add throw() specifiers to more redeclarations of operator delete and operator delete[].

llvm-svn: 201016

10 years agoStick to C++98 for this.
Nick Lewycky [Sat, 8 Feb 2014 01:36:21 +0000 (01:36 +0000)]
Stick to C++98 for this.

llvm-svn: 201015

10 years agoUpdate these declarations of operator delete (and delete[]) to have noexcept,
Nick Lewycky [Sat, 8 Feb 2014 01:29:07 +0000 (01:29 +0000)]
Update these declarations of operator delete (and delete[]) to have noexcept,
as required per core issue 1552 and warned about with
-Wimplicit-exception-spec-mismatch.

llvm-svn: 201014

10 years agoMS ABI: Use the most recent decl to check the inheritance model
Reid Kleckner [Sat, 8 Feb 2014 01:15:37 +0000 (01:15 +0000)]
MS ABI: Use the most recent decl to check the inheritance model

This was crashing compilation of DeclContext::buildLookupImpl<>.

llvm-svn: 201013

10 years agoFix lifetime issue causing buildbot failures.
Richard Smith [Sat, 8 Feb 2014 00:42:45 +0000 (00:42 +0000)]
Fix lifetime issue causing buildbot failures.

llvm-svn: 201012

10 years agoRemove the -fhidden-weak-vtables -cc1 option. It was dead,
John McCall [Sat, 8 Feb 2014 00:41:16 +0000 (00:41 +0000)]
Remove the -fhidden-weak-vtables -cc1 option.  It was dead,
gross, and increasingly replaced through other mechanisms.

llvm-svn: 201011

10 years agoASTUnit: remove dead code in remapping files
Dmitri Gribenko [Sat, 8 Feb 2014 00:38:15 +0000 (00:38 +0000)]
ASTUnit: remove dead code in remapping files

ASTUnit contains code to remap files to other files on disk.  This code is not
used.  We only remap files to MemoryBuffers.

llvm-svn: 201010

10 years ago[Constant Hoisting] Fix insertion point for constant materialization.
Juergen Ributzka [Sat, 8 Feb 2014 00:20:49 +0000 (00:20 +0000)]
[Constant Hoisting] Fix insertion point for constant materialization.

The bitcast instruction during constant materialization was not placed correcly
in the presence of phi nodes. This commit fixes the insertion point to be in the
idom instead.

This fixes PR18768

llvm-svn: 201009

10 years ago[Constant Hoisting] Don't update the use list while traversing it - DOH!
Juergen Ributzka [Sat, 8 Feb 2014 00:20:45 +0000 (00:20 +0000)]
[Constant Hoisting] Don't update the use list while traversing it - DOH!

This fix first traverses the whole use list of the constant expression and
keeps track of the instructions that need to be updated. Then perform the
fixup afterwards.

llvm-svn: 201008

10 years ago[analyzer] Objective-C object literals are always non-nil.
Jordan Rose [Sat, 8 Feb 2014 00:04:14 +0000 (00:04 +0000)]
[analyzer] Objective-C object literals are always non-nil.

<rdar://problem/15999214>

llvm-svn: 201007

10 years agoRemove dead code.
Rafael Espindola [Fri, 7 Feb 2014 23:32:41 +0000 (23:32 +0000)]
Remove dead code.

llvm-svn: 201006

10 years agoAdded a test case for variables in registers, with
Sean Callanan [Fri, 7 Feb 2014 23:04:57 +0000 (23:04 +0000)]
Added a test case for variables in registers, with
clang -O1.

<rdar://problem/15767528>

llvm-svn: 201005

10 years agoImprove existing visualizers by:
Nikola Smiljanic [Fri, 7 Feb 2014 22:57:20 +0000 (22:57 +0000)]
Improve existing visualizers by:

- Properly displaying non null terminated StringRef.
- Auto expanding pointer types.
- Displaying real type names for PointerUnions.
- Using "size" and "capacity" across all containers.
- Simplifying code where possible.

llvm-svn: 201004

10 years agoModified ObjectFile::SetLoadAddress() to now be:
Greg Clayton [Fri, 7 Feb 2014 22:54:47 +0000 (22:54 +0000)]
Modified ObjectFile::SetLoadAddress() to now be:

ObjectFile::SetLoadAddress (Target &target,
                            lldb::addr_t value,
                            bool value_is_offset);

Now "value" is a slide if "value_is_offset" is true, and "value" is an image base address otherwise. All previous usage of this API was using slides.

Updated the ObjectFileELF and ObjectFileMachO SetLoadAddress methods to do the right thing.

Also updated the ObjectFileMachO::SetLoadAddress() function to not load __LINKEDIT when it isn't needed and to only load sections that belong to the executable object file.

llvm-svn: 201003

10 years agoPR16638, DR1552: the exception specification on an implicitly-declared
Richard Smith [Fri, 7 Feb 2014 22:51:16 +0000 (22:51 +0000)]
PR16638, DR1552: the exception specification on an implicitly-declared
'operator delete' or 'operator delete[]' is an explicit exception
specification. Therefore we should diagnose 'void operator delete(void*)'
instead of 'void operator delete(void*) noexcept'.

This diagnostic remains an ExtWarn, since in practice people don't always
include the exception specification in such a declaration.

llvm-svn: 201002

10 years ago Comment cleanup. Don't repeat the function name in the comment.
Rafael Espindola [Fri, 7 Feb 2014 22:45:13 +0000 (22:45 +0000)]
 Comment cleanup. Don't repeat the function name in the comment.

llvm-svn: 201001

10 years agoFold together two repeated identical 'if's.
Richard Smith [Fri, 7 Feb 2014 22:39:53 +0000 (22:39 +0000)]
Fold together two repeated identical 'if's.

llvm-svn: 201000

10 years agoComment cleanup. Don't repeat the function name in the comment.
Rafael Espindola [Fri, 7 Feb 2014 22:39:17 +0000 (22:39 +0000)]
Comment cleanup. Don't repeat the function name in the comment.

llvm-svn: 200999