John Thompson [Thu, 24 Oct 2013 14:52:56 +0000 (14:52 +0000)]
Reverting my r193344 checkin due to build breakage.
llvm-svn: 193350
Renato Golin [Thu, 24 Oct 2013 14:50:51 +0000 (14:50 +0000)]
Mark vector loops as already vectorized
Make sure we mark all loops (scalar and vector) when vectorizing,
so that we don't try to vectorize them anymore. Also, set unroll
to 1, since this is what we check for on early exit.
llvm-svn: 193349
Evgeniy Stepanov [Thu, 24 Oct 2013 14:47:34 +0000 (14:47 +0000)]
[sanitizer] Intercept shmctl.
llvm-svn: 193348
Chris Wailes [Thu, 24 Oct 2013 14:28:17 +0000 (14:28 +0000)]
Replaced duplicate code with calls to forwardInfo.
Also made move constructor handling safer.
llvm-svn: 193347
NAKAMURA Takumi [Thu, 24 Oct 2013 14:24:30 +0000 (14:24 +0000)]
Tooling/ReplacementsYaml.h: Prune Tooling's llvm::yaml::ScalarTraits<std::string> corresponding to LLVM r193344.
llvm-svn: 193346
Daniel Jasper [Thu, 24 Oct 2013 14:14:49 +0000 (14:14 +0000)]
clang-format: Be more conservative about column layout formatting.
Specifically, if a braced list has at least one nested braced list,
format it either all on one line or in one column (i.e. one item per
line).
This seems in general to be an improvement as the structure of nested
braced lists can make a tightly packed outer braced list hard to read.
llvm-svn: 193345
John Thompson [Thu, 24 Oct 2013 13:36:58 +0000 (13:36 +0000)]
Added std::string as a built-in type for mapping.
llvm-svn: 193344
Evgeniy Stepanov [Thu, 24 Oct 2013 13:20:34 +0000 (13:20 +0000)]
[msan] Unpoison errno in common interceptors.
llvm-svn: 193343
Tim Northover [Thu, 24 Oct 2013 12:48:05 +0000 (12:48 +0000)]
ARM: add a couple more NEON predicates.
The fused multiply instructions were added in VFPv4 but are still NEON
instructions, in particular they shouldn't be available on a Cortex-M4 not
matter how floaty it is.
llvm-svn: 193342
Tim Northover [Thu, 24 Oct 2013 12:22:58 +0000 (12:22 +0000)]
ARM: mark various aliases with their architecture requirements.
If an alias inherits directly from InstAlias then it doesn't get any default
"Requires" values, so llvm-mc will allow it even on architectures that don't
support the underlying instruction.
This tidies up the obvious VFP and NEON cases I found.
llvm-svn: 193340
Evgeniy Stepanov [Thu, 24 Oct 2013 11:56:03 +0000 (11:56 +0000)]
[msan] Fix invalid origin copying.
Origin copying may destroy valid origin info. This is caused by
__msan_copy_origin widening the address range to the nearest 4-byte aligned
addresses both on the left and on the right. If the target buffer is
uninitialized and the source is fully initialized, this will result in
overriding valid origin of target buffer with stale (possibly 0) origin of the
source buffer.
With this change the widened origin is copied only if corresponding shadow
values are non zero.
llvm-svn: 193338
Evgeniy Stepanov [Thu, 24 Oct 2013 11:52:48 +0000 (11:52 +0000)]
[msan] Change wording in the invalid origin message.
llvm-svn: 193335
Zoran Jovanovic [Thu, 24 Oct 2013 10:55:00 +0000 (10:55 +0000)]
Added tests for microMIPS relocations 1.
llvm-svn: 193332
Tim Northover [Thu, 24 Oct 2013 10:48:50 +0000 (10:48 +0000)]
ARM-Darwin: Use the *-*-darwin-eabi triple for v6m & v7m archs
These arch arguments are used for embedded targets (obviously) which need a
different calling convention to iOS.
llvm-svn: 193328
Tim Northover [Thu, 24 Oct 2013 10:37:09 +0000 (10:37 +0000)]
ARM: Use non-VFP softcalls on embedded Darwinish targets
The compiler-rt functions __adddf3vfp and so on exist purely to allow Thumb1
code to make use of VFP instructions by switching back to ARM mode, they make
no sense for M-class processors which don't even have an ARM mode.
Given that justification, in practice this is a platform ABI decision so the
actual check is based on that rather than CPU features.
rdar://problem/
15302004
llvm-svn: 193327
Daniel Jasper [Thu, 24 Oct 2013 10:31:50 +0000 (10:31 +0000)]
clang-format: Cleanup array initializer and dict initializer formatting.
Significant changes:
- Also recognize these literals with missing "@" for robustness.
- Reorganize tests.
llvm-svn: 193325
Yaron Keren [Thu, 24 Oct 2013 10:04:47 +0000 (10:04 +0000)]
Replaced non-ASCII character.
llvm-svn: 193324
Chandler Carruth [Thu, 24 Oct 2013 09:52:56 +0000 (09:52 +0000)]
Revert part of r193291, restoring the deletion of loaded objects.
Without this, customers of the MCJIT were leaking memory like crazy.
It's not really clear what the *right* memory management is here, so I'm
not trying to add lots of tests or other logic, just trying to get us
back to a better baseline. I'll follow up on the original commit to
figure out the right path forward.
llvm-svn: 193323
Tim Northover [Thu, 24 Oct 2013 09:37:18 +0000 (09:37 +0000)]
ARM: fix assert on unpredictable POP instruction.
POP instructions are aliased to the ARM LDM variants but have different syntax.
This caused two problems: we tried to access a non-existent operand to annotate
the '!', and the error message didn't make much sense.
With some vigorous hand-waving in the error message both problems can be
fixed.
llvm-svn: 193322
Yaron Keren [Thu, 24 Oct 2013 09:36:08 +0000 (09:36 +0000)]
Added test for -elf configuration, to see that _alloca call is properly
generated. See:
http://llvm.org/viewvc/llvm-project?view=revision&revision=193289
llvm-svn: 193321
Job Noorman [Thu, 24 Oct 2013 09:32:31 +0000 (09:32 +0000)]
Make sure SP is always aligned on a 2 byte boundary
llvm-svn: 193320
Chandler Carruth [Thu, 24 Oct 2013 09:21:37 +0000 (09:21 +0000)]
Teach Clang to accept and ignore -f[no-]implicit-templates.
This GCC flag is useful when you want to control whether implicit
template instantiation occurs at the commandline level. Clang doesn't
currently support such controls, but technically *always* implicitly
instantiating (what Clang does, and what every other compiler still in
use does by default) is valid behavior even under
-fno-implicit-templates, it just may be slow and very wasteful. If
people really want this, we can try to implement it, but I don't have an
actual use.
This should help fix the build of libstdc++ with Clang, its build system
uses this flag.
llvm-svn: 193319
Chandler Carruth [Thu, 24 Oct 2013 09:17:35 +0000 (09:17 +0000)]
Teach Clang to recognize and ignore GCC's -fdiagnostics-show-location
flag. We should probably wire at least some variants of this up to our
actual diagnostics engine, but I'm leaving that for someone else. This
fixes the builds of packages which hard code something here, at least
including libstdc++ itself.
llvm-svn: 193318
Nuno Lopes [Thu, 24 Oct 2013 09:17:24 +0000 (09:17 +0000)]
fix PR17635: false positive with packed structures
LLVM optimizers may widen accesses to packed structures that overflow the structure itself, but should be in bounds up to the alignment of the object
llvm-svn: 193317
Amara Emerson [Thu, 24 Oct 2013 08:28:24 +0000 (08:28 +0000)]
[AArch64] Fix NZCV reg live-in bug in F128CSEL codegen.
When generating the IfTrue basic block during the F128CSEL pseudo-instruction
handling, the NZCV live-in for the newly created BB wasn't being added. This
caused a fault during MI-sched/live range calculation when the predecessor
for the fall-through BB didn't have a live-in for phys-reg as expected.
llvm-svn: 193316
Zonr Chang [Thu, 24 Oct 2013 08:17:39 +0000 (08:17 +0000)]
Include missing Compiler.h for using LLVM_ENUM_INT_TYPE.
llvm-svn: 193315
Manuel Klimek [Thu, 24 Oct 2013 07:51:24 +0000 (07:51 +0000)]
Use the same SourceManager for ModuleMaps and compilations.
This allows using virtual file mappings on the original SourceManager to
map in virtual module.map files. Without this patch, the ModuleMap
search will find a module.map file (as the FileEntry exists in the
FileManager), but will be unable to get the content from the
SourceManager (as ModuleMap previously created its own SourceManager).
Two problems needed to be fixed which this patch exposed:
1. Storing the inferred module map
When writing out a module, the ASTWriter stores the names of the files
in the main source manager; when loading the AST again, the ASTReader
errs out if such a file is found missing, unless it is overridden.
Previously CompilerInstance's compileModule method would store the
inferred module map to a temporary file; the problem with this approach
is that now that the module map is handled by the main source manager,
the ASTWriter stores the name of the temporary module map as source to
the compilation; later, when the module is loaded, the temporary file
has already been deleted, which leads to a compilation error. This patch
changes the inferred module map to instead inject a virtual file into
the source manager. This both saves some disk IO, and works with how the
ASTWriter/ASTReader handle overridden source files.
2. Changing test input in test/Modules/Inputs/*
Now that the module map file is handled by the main source manager, the
VerifyDiagnosticConsumer will not ignore diagnostics created while
parsing the module map file. The module test test/Modules/renamed.m uses
-I test/Modules/Inputs and triggers recursive loading of all module maps
in test/Modules/Inputs, some of which had conflicting names, thus
leading errors while parsing the module maps. Those diagnostics already
occur on trunk, but before this patch they would not break the test, as
they were ignored by the VerifyDiagnosticConsumer. This patch thus
changes the module maps that have been recently introduced which broke
the invariant of compatible modules maps in test/Modules/Inputs.
llvm-svn: 193314
Benjamin Kramer [Thu, 24 Oct 2013 07:39:30 +0000 (07:39 +0000)]
Remove dead recursive function.
llvm-svn: 193313
Elena Demikhovsky [Thu, 24 Oct 2013 07:16:35 +0000 (07:16 +0000)]
AVX-512: added VCVTPH2PS, VCVTPS2PH with intrinsics
llvm-svn: 193312
Craig Topper [Thu, 24 Oct 2013 07:00:06 +0000 (07:00 +0000)]
Replace sse41/sse42 with sse4.1/sse4.2 in test command lines to fix bots.
llvm-svn: 193311
Craig Topper [Thu, 24 Oct 2013 06:50:17 +0000 (06:50 +0000)]
Add non-AVX tests for AES intrinsics.
llvm-svn: 193310
Craig Topper [Thu, 24 Oct 2013 06:45:13 +0000 (06:45 +0000)]
Add tests for SSE intrinsics in non-avx mode by copying from the AVX test cases. Some of these may have been tested by other tests, but most weren't. Patch by Cameron McInally.
llvm-svn: 193309
Peter Collingbourne [Thu, 24 Oct 2013 06:23:39 +0000 (06:23 +0000)]
Introduce an operator new for LowLevelAllocator, and convert most users to it.
llvm-svn: 193308
Juergen Ributzka [Thu, 24 Oct 2013 05:29:56 +0000 (05:29 +0000)]
Fix a bug in LinearFunctionTestReplace that created invalid loop exit checks.
Reviewed by Andy
llvm-svn: 193303
Shankar Easwaran [Thu, 24 Oct 2013 04:28:14 +0000 (04:28 +0000)]
Fix Comments.
llvm-svn: 193302
Shankar Easwaran [Thu, 24 Oct 2013 04:23:02 +0000 (04:23 +0000)]
[Driver] Change UniversalDriver to use TD file.
Easier to add new options such as -version, and easy to parse.
Now displays a help message with -help
llvm-svn: 193301
Shankar Easwaran [Thu, 24 Oct 2013 03:30:03 +0000 (03:30 +0000)]
[PassManager] add ReaderWriter{Native,YAML} to the Driver.
Disable tests to be run with REQUIRES: disable. Note disable is not added to the
config by the test runner Mkaefiles, so essentially disables the test.
Code changes would be required to fix these tests :-
test/darwin/hello-world.objtxt
test/elf/check.test
test/elf/phdr.test
test/elf/ppc.test
test/elf/undef-from-main-dso.test
test/elf/X86_64/note-sections-ro_plus_rw.test
test/pecoff/alignment.test
test/pecoff/base-reloc.test
test/pecoff/bss-section.test
test/pecoff/drectve.test
test/pecoff/dynamic.test
test/pecoff/dynamicbase.test
test/pecoff/entry.test
test/pecoff/hello.test
test/pecoff/imagebase.test
test/pecoff/importlib.test
test/pecoff/lib.test
test/pecoff/multi.test
test/pecoff/reloc.test
test/pecoff/weak-external.test
llvm-svn: 193300
Yuchen Wu [Thu, 24 Oct 2013 01:51:04 +0000 (01:51 +0000)]
Fixed llvm-cov to count edges instead of blocks.
This was a fundamental flaw in llvm-cov where it treated the values in
the GCDA files as block counts instead of edge counts. This created
incorrect line counts when branching was present. Instead, the edge
counts should be summed to obtain the correct block count.
The fix was tested using custom test files as well as single source
files from the test-suite directory. The behaviour can be verified by
reading the GCOV documentation that describes the GCDA spec ("ARC_COUNTS
gives the counter values for those arcs that are instrumented") and the
header description provided by GCOVProfiling.cpp ("instruments the code
that runs to records (sic) the edges between blocks that run and emit a
complementary "gcda" file on exit").
llvm-svn: 193299
Rui Ueyama [Thu, 24 Oct 2013 01:39:43 +0000 (01:39 +0000)]
[PECOFF] Support embedding resource file into executable.
Instead of making the linker to create a manifest XML file in the same
directory as the resulting binary, you can embed the XML as a part of
resource into the executable.
In order to do that, the linker first creates a resource script file containing
the XML file, compile it into a binary resource file with RC.EXE, and then
convert it to a COFF file with CVTRES.EXE.
llvm-svn: 193298
Richard Smith [Thu, 24 Oct 2013 01:21:09 +0000 (01:21 +0000)]
Support GNU attributes in alias-declarations now that GCC has implemented them
and we know where they go.
llvm-svn: 193297
Faisal Vali [Thu, 24 Oct 2013 01:11:55 +0000 (01:11 +0000)]
Fix a test file option from -emit-llvm -o to -emit-llvm-only.
As requested by Rafael Espindola here: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-
20131021/091556.html
llvm-svn: 193296
Richard Smith [Thu, 24 Oct 2013 01:07:54 +0000 (01:07 +0000)]
PR17666: Instead of allowing an initial identifier argument in any attribute
which we don't think can't have one, only allow it in the tiny number of
attributes which opts into this weird parse rule.
I've manually checked that the handlers for all these attributes can in fact
cope with an identifier as the argument. This is still somewhat terrible; we
should move more fully towards picking the parsing rules based on the
attribute, and make the Parse -> Sema interface more type-safe.
llvm-svn: 193295
Faisal Vali [Thu, 24 Oct 2013 01:05:22 +0000 (01:05 +0000)]
Fix an instantiation bug with nested generic lambdas and conversion to fptrs.
This patch fixes the typelocs of the conversion-operator and the conversion-operator-name and adds the parameters of the call operator to the FunctionProtoTypeLoc of the respective entities. Thus, when the template declarations (conversion operators) undergo deduction and instantiation/transformation/substitution - they add themselves to the local instantiation scope if needed.
This patch supports the following:
auto L = [](auto b) {
return [](auto a) ->decltype(a) { return a; };
};
int (*fp)(int) = L(8);
Richard LGTM'd this patch: http://llvm-reviews.chandlerc.com/D1831
Thanks!
llvm-svn: 193294
Warren Hunt [Thu, 24 Oct 2013 00:59:24 +0000 (00:59 +0000)]
Undoing accidental change to docs/LanguageExtensions.rst in my previous
patch.
llvm-svn: 193293
Andrew Trick [Thu, 24 Oct 2013 00:43:38 +0000 (00:43 +0000)]
Clarify comments in genLoopLimit.
llvm-svn: 193292
Andrew Kaylor [Thu, 24 Oct 2013 00:19:14 +0000 (00:19 +0000)]
Optimizing MCJIT module state tracking
Patch co-developed with Yaron Keren.
llvm-svn: 193291
Warren Hunt [Wed, 23 Oct 2013 23:53:07 +0000 (23:53 +0000)]
Implements 64 bit microsoft record layout and adds lit tests to cover
it. Also removes all of the microsoft C++ ABI related code from the
itanium layout builder.
Differential Revision: http://llvm-reviews.chandlerc.com/D2003
llvm-svn: 193290
Yaron Keren [Wed, 23 Oct 2013 23:37:01 +0000 (23:37 +0000)]
(this is a corrected patch)
Calling _chkstk is required on ELF as well as COFF on Windows. Without
_chkstk, functions requiring large stack crash in initialization code.
Previous code tested for COFF format but not Mach-O and this patch modifies
the code to test for Windows OS (both Windows target and MingW target)
but not Mach-O object format: Looks like macho environment was used to
build some EFI code.
Credits to Andrew MacPherson.
llvm-svn: 193289
Ted Kremenek [Wed, 23 Oct 2013 23:30:08 +0000 (23:30 +0000)]
More wordsmithing on objc_requires_super documentation.
llvm-svn: 193288
Manman Ren [Wed, 23 Oct 2013 23:05:28 +0000 (23:05 +0000)]
Debug Info: code clean up.
Since we never insert DIE for DITemplateTypeParameter to a map, there is no need
to call getDIE in getOrCreateTemplateTypeParameterDIE. It is also renamed to
constructTemplateTypeParameterDIE to match with other construct functions
in CompileUnit.
Same applies to getOrCreateTemplateValueParameterDIE.
llvm-svn: 193287
Manman Ren [Wed, 23 Oct 2013 23:00:44 +0000 (23:00 +0000)]
Debug Info: code clean up.
Rename createMemberDIE to constructMemberDIE to match other construct functions
in CompileUnit.
llvm-svn: 193286
Manman Ren [Wed, 23 Oct 2013 22:57:12 +0000 (22:57 +0000)]
Debug Info: code clean up.
Remove the unneeded return values from createMemberDIE, constructEnumTypeDIE,
getOrCreateTemplateTypeParameterDIE, and getOrCreateTemplateValueParameterDIE.
llvm-svn: 193285
Manman Ren [Wed, 23 Oct 2013 22:52:22 +0000 (22:52 +0000)]
Debug Info: code clean up.
Unifying the argument ordering of private construct functions in CompileUnit to
follow constructTypeDIE(DIE &, DIBasicType),
constructTypeDIE(DIE &, DIDerivedType), constructTypeDIE(DIE &, DICompositeType),
constructSubrangeDIE and constructArrayTypeDIE.
llvm-svn: 193284
Ted Kremenek [Wed, 23 Oct 2013 22:41:52 +0000 (22:41 +0000)]
Wordsmith text of objc_requires_super.
llvm-svn: 193283
Rafael Espindola [Wed, 23 Oct 2013 22:32:53 +0000 (22:32 +0000)]
Actually switch the default to use multiprocessing
llvm-svn: 193282
Ted Kremenek [Wed, 23 Oct 2013 22:25:59 +0000 (22:25 +0000)]
Fix typo.
llvm-svn: 193281
Daniel Dunbar [Wed, 23 Oct 2013 22:19:32 +0000 (22:19 +0000)]
[lit] Stop hacking the GIL check interval.
- This was never a big win, and is irrelevant now that we commonly use
multiprocessing based parallelism.
llvm-svn: 193280
Daniel Dunbar [Wed, 23 Oct 2013 22:19:07 +0000 (22:19 +0000)]
[lit] Use multiprocessing based parallelism by default, on Unix.
llvm-svn: 193279
Ted Kremenek [Wed, 23 Oct 2013 22:15:01 +0000 (22:15 +0000)]
Provide documentation on attribute((objc_requires_super)).
llvm-svn: 193278
Ted Kremenek [Wed, 23 Oct 2013 22:14:59 +0000 (22:14 +0000)]
Change title of section to reflect the concept, and not the mechanism.
llvm-svn: 193277
Manman Ren [Wed, 23 Oct 2013 22:12:26 +0000 (22:12 +0000)]
Remove {} from one-line block.
llvm-svn: 193276
Rafael Espindola [Wed, 23 Oct 2013 21:45:09 +0000 (21:45 +0000)]
Revert "Calling _chkstk is required on ELF as well as COFF on Windows. Without _chkstk functions requiring large stack crash in initialization code. Previous code tested for COFF format but not Mach-O and this patch modifies the code to test for Windows."
This reverts commit r193263.
It is causing CodeGen/X86/mingw-alloca.ll to fail.
llvm-svn: 193275
David Majnemer [Wed, 23 Oct 2013 21:31:20 +0000 (21:31 +0000)]
Parse: Disable delayed template parsing for constexpr functions
Commit r191484 treated constexpr function templates as normal function
templates with respect to delaying their parsing. However, this is
unnecessarily restrictive because there is no compatibility concern with
constexpr, MSVC doesn't support it.
Instead, simply disable delayed template parsing for constexpr function
templates. This largely reverts the changes made in r191484 but keeps
it's unit test.
This fixes PR17661.
llvm-svn: 193274
Yuchen Wu [Wed, 23 Oct 2013 21:25:44 +0000 (21:25 +0000)]
Fixed doxygen comment to match Module.cpp
llvm-svn: 193273
Rafael Espindola [Wed, 23 Oct 2013 21:24:34 +0000 (21:24 +0000)]
Reduce casting and use a fully covered switch.
llvm-svn: 193272
Rui Ueyama [Wed, 23 Oct 2013 21:15:48 +0000 (21:15 +0000)]
Run layout-transitivity test only when debugging is enabled.
Because it depends on "-mllvm -debug" flag, the test fails in Release build.
llvm-svn: 193271
Benjamin Kramer [Wed, 23 Oct 2013 21:06:07 +0000 (21:06 +0000)]
X86: Custom lower sext v16i8 to v16i16, and the corresponding truncate.
Also update the cost model.
llvm-svn: 193270
David Majnemer [Wed, 23 Oct 2013 20:52:43 +0000 (20:52 +0000)]
AST: Mangle fields in anonymous structs/unions
The Itanium mangler couldn't cope with mangling an IndirectFieldDecl.
Instead, mangle the field the IndirectFieldDecl refers to.
Further, give IndirectFieldDecl no linkage just like FieldDecl.
N.B. Decl.cpp:getLVForNamespaceScopeDecl tried to calculate linkage for
data members of anonymous structs/unions. However, this seems
impossible so turn it into an assertion.
llvm-svn: 193269
Yuchen Wu [Wed, 23 Oct 2013 20:35:00 +0000 (20:35 +0000)]
Fixed comment typo in GCOVProfiling.cpp
llvm-svn: 193268
Manman Ren [Wed, 23 Oct 2013 20:33:14 +0000 (20:33 +0000)]
Intrinsics: fix extract & insert when index is out of bound.
Now, all extract & insert intrinsics should have the correct and operation
to ignore higher bits.
rdar://
15250497
llvm-svn: 193267
Rui Ueyama [Wed, 23 Oct 2013 20:31:55 +0000 (20:31 +0000)]
Remove unused variable.
llvm-svn: 193266
Jordan Rose [Wed, 23 Oct 2013 20:08:55 +0000 (20:08 +0000)]
[analyzer] Generate a LazyCompoundVal when loading from a union-typed region.
This ensures that variables accessible through a union are invalidated when
the union value is passed to a function. We still don't fully handle union
values, but this should at least quiet some false positives.
PR16596
llvm-svn: 193265
Yuchen Wu [Wed, 23 Oct 2013 19:45:03 +0000 (19:45 +0000)]
Use a map instead of vector to store line counts.
There are a few motivations for this:
- Using a map allows for checking if line is in map. This differentiates
unexecutable lines (such as comments) from unexecuted logical lines of
code. "#####" is now outputted in this case, in line with gcov.
- Source files are no longer read in twice: once when storing the line
counts, and once when outputting the data.
- Greatly simplifies the function FileInfo::addLineCount().
llvm-svn: 193264
Yaron Keren [Wed, 23 Oct 2013 19:40:07 +0000 (19:40 +0000)]
Calling _chkstk is required on ELF as well as COFF on Windows.
Without _chkstk functions requiring large stack crash in
initialization code. Previous code tested for COFF format but
not Mach-O and this patch modifies the code to test for Windows.
Credits to Andrew MacPherson.
llvm-svn: 193263
Benjamin Kramer [Wed, 23 Oct 2013 19:19:04 +0000 (19:19 +0000)]
X86: Custom lower zext v16i8 to v16i16.
On sandy bridge (PR17654) we now get
vpxor %xmm1, %xmm1, %xmm1
vpunpckhbw %xmm1, %xmm0, %xmm2
vpunpcklbw %xmm1, %xmm0, %xmm0
vinsertf128 $1, %xmm2, %ymm0, %ymm0
On haswell it's a simple
vpmovzxbw %xmm0, %ymm0
There is a maze of duplicated and dead transforms and patterns in this
area. Remove the dead custom lowering of zext v8i16 to v8i32, that's
already handled by LowerAVXExtend.
llvm-svn: 193262
Michael Liao [Wed, 23 Oct 2013 18:32:43 +0000 (18:32 +0000)]
Fix PR17631
- Skip instructions added in prolog. For specific targets, prolog may
insert helper function calls (e.g. _chkstk will be called when
there're more than 4K bytes allocated on stack). However, these
helpers don't use/def YMM/XMM registers.
llvm-svn: 193261
Greg Clayton [Wed, 23 Oct 2013 18:24:30 +0000 (18:24 +0000)]
Fixed format strings as they still must specicy a '%' prior to using PRI*64 macros.
llvm-svn: 193260
Rui Ueyama [Wed, 23 Oct 2013 18:22:26 +0000 (18:22 +0000)]
Disable layout-transitivity test on FreeBSD for now.
llvm-svn: 193259
NAKAMURA Takumi [Wed, 23 Oct 2013 17:57:04 +0000 (17:57 +0000)]
Add llvm-c-test to check-llvm.
llvm-svn: 193258
NAKAMURA Takumi [Wed, 23 Oct 2013 17:56:59 +0000 (17:56 +0000)]
llvm/tools/llvm-c-test should be built also on msvc.
llvm-svn: 193257
NAKAMURA Takumi [Wed, 23 Oct 2013 17:56:52 +0000 (17:56 +0000)]
llvm-c/Target.h: Tweak "inline" for msvc to use __inline instead.
FIXME: I don't think it'd be smart.
llvm-svn: 193256
NAKAMURA Takumi [Wed, 23 Oct 2013 17:56:46 +0000 (17:56 +0000)]
llvm-c/lto.h: Avoid use of bool.
llvm-svn: 193255
NAKAMURA Takumi [Wed, 23 Oct 2013 17:56:37 +0000 (17:56 +0000)]
llvm-c-test: Make them C89-compliant.
llvm-svn: 193254
NAKAMURA Takumi [Wed, 23 Oct 2013 17:56:29 +0000 (17:56 +0000)]
include/llvm-c: Whitespace.
llvm-svn: 193253
Jim Grosbach [Wed, 23 Oct 2013 17:37:40 +0000 (17:37 +0000)]
X86: Make concat_vectors combine a bit more conservative.
Per Nadav's review comments for r192866.
llvm-svn: 193252
Shuxin Yang [Wed, 23 Oct 2013 17:28:19 +0000 (17:28 +0000)]
Use address-taken to disambiguate global variable and indirect memops.
Major steps include:
1). introduces a not-addr-taken bit-field in GlobalVariable
2). GlobalOpt pass sets "not-address-taken" if it proves a global varirable
dosen't have its address taken.
3). AA use this info for disambiguation.
llvm-svn: 193251
Ed Maste [Wed, 23 Oct 2013 17:24:15 +0000 (17:24 +0000)]
64-Bit DWARF support for .debug_aranges and .debug_pubnames
llvm-svn: 193250
Benjamin Kramer [Wed, 23 Oct 2013 16:57:34 +0000 (16:57 +0000)]
Mark zero-argument functions explicitly in C headers.
Pacifies GCC's -Wstrict-prototypes.
llvm-svn: 193249
Rafael Espindola [Wed, 23 Oct 2013 16:46:34 +0000 (16:46 +0000)]
A decl never becomes unused. Make that explicit in the API.
llvm-svn: 193248
Zoran Jovanovic [Wed, 23 Oct 2013 16:14:44 +0000 (16:14 +0000)]
Support for microMIPS relocations 1.
llvm-svn: 193247
Faisal Vali [Wed, 23 Oct 2013 16:10:50 +0000 (16:10 +0000)]
Refactor out the circular reference to LambdaExpr in CXXRecordDecl.
A prior commit of this patch was reverted because it was within the blamelist's purview of a failing test. The failure of that test has been addressed here: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-
20131021/091546.html. Therefore I am recommitting this patch (all tests pass on windows, except for the usual modules & index suspects that never pass on my box).
Some background: Both Doug and Richard had asked me in Chicago to remove the circular reference in CXXRecordDecl to LambdaExpr by factoring out and storing the needed information from LambdaExpr directly into CXXRecordDecl.
In addition, I have added an IsGenericLambda flag - this makes life a little easier when we implement capturing, and are Sema-analyzing the body of a lambda (and the calloperator hasn't been wired to the closure class yet). Any inner lambdas can have potential captures that could require walking up the scope chain and checking if any generic lambdas are capture-ready. This 'bit' makes some of that checking easier.
No change in functionality.
This patch was approved by Doug with minor modifications (comments were cleaned up, and all data members were converted from bool/enum to unsigned, as requested):
http://llvm-reviews.chandlerc.com/D1856
Thanks!
llvm-svn: 193246
Alexey Samsonov [Wed, 23 Oct 2013 15:36:22 +0000 (15:36 +0000)]
[ASan] ASan can be combined with LSan and UBSan, so export symbol from them as well.
llvm-svn: 193245
Evgeniy Stepanov [Wed, 23 Oct 2013 15:21:10 +0000 (15:21 +0000)]
[sanitizer] Fix OSX build.
llvm-svn: 193244
Anders Waldenborg [Wed, 23 Oct 2013 15:01:23 +0000 (15:01 +0000)]
Fix cmake dependency on llvm-c-test in test
llvm-svn: 193243
Ed Maste [Wed, 23 Oct 2013 14:18:41 +0000 (14:18 +0000)]
Initial DWARF64 support for .debug_line
Some versions of the GNU MIPS toolchain generate 64-Bit DWARF (even though
it isn't really necessary). This change adds support for the 64-Bit DWARF
format, but is not actually tested with >4GB of debug data.
Similar changes are in progress for llvm's version of DWARFDebugLine, in
review D1988.
llvm-svn: 193242
Evgeniy Stepanov [Wed, 23 Oct 2013 13:57:47 +0000 (13:57 +0000)]
[sanitizer] Intercept ether_* functions.
llvm-svn: 193241
Matheus Almeida [Wed, 23 Oct 2013 13:20:07 +0000 (13:20 +0000)]
[mips][msa] Direct Object Emission support for the LSA instruction.
llvm-svn: 193240
Daniel Sanders [Wed, 23 Oct 2013 10:36:52 +0000 (10:36 +0000)]
[mips][msa] Added support for matching fexp2 from normal IR (i.e. not intrinsics)
llvm-svn: 193239
Artyom Skrobov [Wed, 23 Oct 2013 10:14:40 +0000 (10:14 +0000)]
Make ARM hint ranges consistent, and add tests for these ranges
llvm-svn: 193238
Daniel Sanders [Wed, 23 Oct 2013 10:12:44 +0000 (10:12 +0000)]
[mips][msa] Add intrinsics that map to pseudo-instructions.
Unlike the previously added intrinsics, these do not map to a single instruction
on MIPS32. They are provided for regularity (to round out the .[bhw] variants
of the same operation) and compatibility with GCC.
Includes:
copy_[us].d, fill.d, insert.d, insve.d
llvm-svn: 193237