platform/upstream/llvm.git
9 years agoRetry defaulting the virtual dtor in LoadedObjectInfo
David Blaikie [Thu, 4 Jun 2015 20:41:51 +0000 (20:41 +0000)]
Retry defaulting the virtual dtor in LoadedObjectInfo

Originally committed in r237975, GCC 4.7 gave a compilation error
regarding "looser throw specification" though it seemed to be pointing
to a virtual defaulted dtor in a base class and an override defaulted
dtor in a derived class - so I'm not quite sure why/how they could end
up with different throw specifications. To simplify and reduce the risk
of this, I've just removed the pointless override in the derived class,
the base class's should be sufficient. *fingers crossed*

llvm-svn: 239088

9 years ago[GlobalMerge] Take into account minsize on Global users' parents.
Ahmed Bougacha [Thu, 4 Jun 2015 20:39:23 +0000 (20:39 +0000)]
[GlobalMerge] Take into account minsize on Global users' parents.

Now that we can look at users, we can trivially do this: when we would
have otherwise disabled GlobalMerge (currently -O<3), we can just run
it for minsize functions, as it's usually a codesize win.

Differential Revision: http://reviews.llvm.org/D10054

llvm-svn: 239087

9 years ago[docs] Document "LGTM" in the lexicon.
Sean Silva [Thu, 4 Jun 2015 20:28:09 +0000 (20:28 +0000)]
[docs] Document "LGTM" in the lexicon.

llvm-svn: 239085

9 years agoMC: Remove obsolete MachO UseAggressiveSymbolFolding.
Jim Grosbach [Thu, 4 Jun 2015 20:27:42 +0000 (20:27 +0000)]
MC: Remove obsolete MachO UseAggressiveSymbolFolding.

Fix the FIXME and remove this old as(1) compat option. It was useful for
bringup of the integrated assembler to diff object files, but now it's
just causing more relocations than strictly necessary to be generated.

rdar://21201804

llvm-svn: 239084

9 years agoHaving another go at some simple cleanup from r237975/r237976
David Blaikie [Thu, 4 Jun 2015 20:23:13 +0000 (20:23 +0000)]
Having another go at some simple cleanup from r237975/r237976

I made a few changes here in a couple of commits - breaking them out
into smaller ones in case I hit the GCC oddities again.

I'm still not /entirely/ sure what the issues were, so apologies if any
of these experiments break things again. Feel free to revert
immediately.

llvm-svn: 239083

9 years ago[NVPTX] kernel pointer arguments point to the global address space
Jingyue Wu [Thu, 4 Jun 2015 20:19:38 +0000 (20:19 +0000)]
[NVPTX] kernel pointer arguments point to the global address space

Summary:
With this patch, NVPTXLowerKernelArgs converts a kernel pointer argument to a
pointer in the global address space. This change, along with
NVPTXFavorNonGenericAddrSpaces, allows the NVPTX backend to emit ld.global.*
and st.global.* for accessing kernel pointer arguments.

Minor changes:
1. refactor: extract function convertToPointerInAddrSpace
2. fix a bug in the test case in bug21465.ll

Test Plan: lower-kernel-ptr-arg.ll

Reviewers: eliben, meheff, jholewinski

Reviewed By: jholewinski

Subscribers: wengxt, jholewinski, llvm-commits

Differential Revision: http://reviews.llvm.org/D10154

llvm-svn: 239082

9 years ago[Object, MachO] Don't crash on invalid MachO segment load commands.
Alexey Samsonov [Thu, 4 Jun 2015 20:08:52 +0000 (20:08 +0000)]
[Object, MachO] Don't crash on invalid MachO segment load commands.

Summary:
Properly report the error in segment load commands from MachOObjectFile
constructor instead of crashing the program.

Adjust the test case accordingly.

Test Plan: regression test suite

Reviewers: rafael, filcab

Subscribers: llvm-commits
llvm-svn: 239081

9 years ago[Object, MachO] Don't crash on invalid MachO load commands.
Alexey Samsonov [Thu, 4 Jun 2015 19:57:46 +0000 (19:57 +0000)]
[Object, MachO] Don't crash on invalid MachO load commands.

Summary:
Currently all load commands are parsed in MachOObjectFile constructor.
If the next load command cannot be parsed, or if command size is too
small, properly report it through the error code and fail to construct
the object, instead of crashing the program.

Test Plan: regression test suite

Reviewers: rafael, filcab

Subscribers: llvm-commits
llvm-svn: 239080

9 years ago[MC] Allowing operands to be erased from MCInst.
Colin LeMahieu [Thu, 4 Jun 2015 19:49:52 +0000 (19:49 +0000)]
[MC] Allowing operands to be erased from MCInst.

llvm-svn: 239079

9 years ago[Object, MachO] Don't crash on parsing invalid MachO header.
Alexey Samsonov [Thu, 4 Jun 2015 19:45:22 +0000 (19:45 +0000)]
[Object, MachO] Don't crash on parsing invalid MachO header.

Summary: Instead, properly report this error from MachOObjectFile constructor.

Test Plan: regression test suite

Reviewers: rafael

Subscribers: llvm-commits
llvm-svn: 239078

9 years ago[Object, MachO] Remove some code duplication. NFC.
Alexey Samsonov [Thu, 4 Jun 2015 19:34:14 +0000 (19:34 +0000)]
[Object, MachO] Remove some code duplication. NFC.

llvm-svn: 239077

9 years ago[CMake] Fixing the check for Ninja
Chris Bieneman [Thu, 4 Jun 2015 19:33:23 +0000 (19:33 +0000)]
[CMake] Fixing the check for Ninja

Enabling Ninja Job Pools needs to be dependent on the CMAKE_MAKE_PROGRAM not the CMAKE_GENERATOR. There are generators (like "Sublime Text 2 - Ninja") that also generate ninja build files. Basing of the CMAKE_MAKE_PROGRAM is the best future-proof way to handle this.

llvm-svn: 239076

9 years ago[Object, MachO] Cache parsed MachO header in MachOObjectFile. NFC.
Alexey Samsonov [Thu, 4 Jun 2015 19:22:03 +0000 (19:22 +0000)]
[Object, MachO] Cache parsed MachO header in MachOObjectFile. NFC.

Summary:
Avoid parsing object file each time MachOObjectFile::getHeader() is
called. Instead, cache the header in MachOObjectFile constructor, where
it's parsed anyway. In future, we must avoid constructing the object
at all if the header can't be parsed.

Test Plan: regression test suite.

Reviewers: rafael

Subscribers: llvm-commits
llvm-svn: 239075

9 years agoFix buildbot failure on Windows by relaxing test expectations.
Alexey Samsonov [Thu, 4 Jun 2015 19:22:00 +0000 (19:22 +0000)]
Fix buildbot failure on Windows by relaxing test expectations.

llvm-svn: 239074

9 years agoCOFF: Add /failifmismatch option.
Rui Ueyama [Thu, 4 Jun 2015 19:21:24 +0000 (19:21 +0000)]
COFF: Add /failifmismatch option.

llvm-svn: 239073

9 years agoAdd comments.
Rui Ueyama [Thu, 4 Jun 2015 19:21:22 +0000 (19:21 +0000)]
Add comments.

llvm-svn: 239072

9 years ago[bpf] add big- and host- endian support
Alexei Starovoitov [Thu, 4 Jun 2015 19:15:05 +0000 (19:15 +0000)]
[bpf] add big- and host- endian support

Summary:
-march=bpf    -> host endian
-march=bpf_le -> little endian
-match=bpf_be -> big endian

Test Plan:
v1 was tested by IBM s390 guys and appears to be working there.
It bit rots too fast here.

Reviewers: chandlerc, tstellarAMD

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10177

llvm-svn: 239071

9 years ago[DAGCombiner] Fix wrong folding of a build_vector into a blend with zero.
Andrea Di Biagio [Thu, 4 Jun 2015 19:15:01 +0000 (19:15 +0000)]
[DAGCombiner] Fix wrong folding of a build_vector into a blend with zero.

Method 'visitBUILD_VECTOR' in the DAGCombiner knows how to combine a
build_vector of a bunch of extract_vector_elt nodes and constant zero nodes
into a shuffle blend with a zero vector.

However, method 'visitBUILD_VECTOR' forgot that a floating point
build_vector may contain negative zero as well as positive zero.

Example:

define <2 x double> @example(<2 x double> %A) {
entry:
  %0 = extractelement <2 x double> %A, i32 0
  %1 = insertelement <2 x double> undef, double %0, i32 0
  %2 = insertelement <2 x double> %1, double -0.0, i32 1
  ret <2 x double> %2
}

Before this patch, llc (with -mattr=+sse4.1) wrongly generated
  movq   %xmm0, %xmm0  # xmm0 = xmm0[0],zero

So, the sign bit of the negative zero was effectively lost.

This patch fixes the problem by adding explicit checks for positive zero.

With this patch, llc produces the following code for the example above:
  movhpd .LCPI0_0(%rip), %xmm0

where .LCPI0_0 referes to a 'double -0'.

llvm-svn: 239070

9 years agoFix the check for Ninja in the CMake build.
Evgeniy Stepanov [Thu, 4 Jun 2015 18:54:16 +0000 (18:54 +0000)]
Fix the check for Ninja in the CMake build.

The current check never passes, because CMAKE_MAKE_PROGRAM, at least on Linux,
includes the full path to the "ninja" binary; this effectively disables
compile/link jobs pools.

Use CMAKE_GENERATOR STREQUAL "Ninja" as a more reliable check.

llvm-svn: 239069

9 years agoMake test case more readable: move CHECK-lines next to corresponding RUN-lines.
Alexey Samsonov [Thu, 4 Jun 2015 18:50:04 +0000 (18:50 +0000)]
Make test case more readable: move CHECK-lines next to corresponding RUN-lines.

llvm-svn: 239068

9 years agoFix the test to use the correct size.
Rafael Espindola [Thu, 4 Jun 2015 18:49:12 +0000 (18:49 +0000)]
Fix the test to use the correct size.

For some reason llvm's r239045 made lld propagate data_1's size. This indicates
a bug somewhere in lld.

I hesitated between changing the test or just checking in a .o produced with
the old llvm-mc. Since the size is now correct, it seemed better to update the
test.

llvm-svn: 239067

9 years ago[PowerPC] This revision adds 68 of the missing "Predefined Functions for Vector Progr...
Bill Seurer [Thu, 4 Jun 2015 18:45:44 +0000 (18:45 +0000)]
[PowerPC] This revision adds 68 of the missing "Predefined Functions for Vector Programming" from appendix A of the OpenPOWER ABI for Linux Supplement document.

I also added tests for the new functions and updated another test that was looking for specific line numbers in error messages from altivec.h.

https://llvm.org/bugs/show_bug.cgi?id=23679

http://reviews.llvm.org/D10131

llvm-svn: 239066

9 years agollvm-objdump: return non-zero exit code for certain cases of invalid input
Alexey Samsonov [Thu, 4 Jun 2015 18:34:11 +0000 (18:34 +0000)]
llvm-objdump: return non-zero exit code for certain cases of invalid input

* If the input file is missing;
* If the type of input object file can't be recognized;
* If the object file can't be parsed correctly.

llvm-svn: 239065

9 years agoC++11 rangify for loop.
Yaron Keren [Thu, 4 Jun 2015 18:33:04 +0000 (18:33 +0000)]
C++11 rangify for loop.

llvm-svn: 239064

9 years ago[tsan] Disable a flaky test.
Evgeniy Stepanov [Thu, 4 Jun 2015 18:28:35 +0000 (18:28 +0000)]
[tsan] Disable a flaky test.

llvm-svn: 239063

9 years ago[APInt] Remove special case for i1.
Benjamin Kramer [Thu, 4 Jun 2015 18:19:13 +0000 (18:19 +0000)]
[APInt] Remove special case for i1.

Add a unit test.

llvm-svn: 239062

9 years agoUse owning pointers to avoid memory leaks
Tobias Grosser [Thu, 4 Jun 2015 17:59:54 +0000 (17:59 +0000)]
Use owning pointers to avoid memory leaks

This fixes a memory leak caused by us not freeing the expanded region nodes.

llvm-svn: 239061

9 years agoDisable output for test case that does not need output
Tobias Grosser [Thu, 4 Jun 2015 17:59:51 +0000 (17:59 +0000)]
Disable output for test case that does not need output

llvm-svn: 239060

9 years agoAllow case-insensitive values for -mcpu for ARM
Gabor Ballabas [Thu, 4 Jun 2015 17:56:32 +0000 (17:56 +0000)]
Allow case-insensitive values for -mcpu for ARM

GCC allows case-insensitive values for -mcpu, -march and -mtune options.
This patch implements the same behaviour for the -mcpu option.

llvm-svn: 239059

9 years agoTest commit access.
Gabor Ballabas [Thu, 4 Jun 2015 17:30:26 +0000 (17:30 +0000)]
Test commit access.

Fix trailing whitespace.

llvm-svn: 239058

9 years agoFix some sign compare warnings.
Jonathan Peyton [Thu, 4 Jun 2015 17:29:13 +0000 (17:29 +0000)]
Fix some sign compare warnings.

This change changes kmp_bstate.old_tid to sign integer instead of unsigned integer.
It also defines two new macros KMP_NSEC_PER_SEC and KMP_USEC_PER_SEC which lets us take
control of the sign (we want them to be longs).  Also, in kmp_wait_release.h, the byteref()
function's return type is changed from char to unsigned char.

llvm-svn: 239057

9 years ago[SDag switch lowering] Simplify code a bit. No functional change intended.
Benjamin Kramer [Thu, 4 Jun 2015 17:07:59 +0000 (17:07 +0000)]
[SDag switch lowering] Simplify code a bit. No functional change intended.

llvm-svn: 239056

9 years agoFix doxygen warnings.
Bruce Mitchener [Thu, 4 Jun 2015 16:53:46 +0000 (16:53 +0000)]
Fix doxygen warnings.

Summary:
Building the doxygen target presented some warnings which are now
addressed by this patch.

Test Plan: Ran doxygen build target and these warnings were no longer present.

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D10181

llvm-svn: 239055

9 years ago[clang-tidy] Force braces around leaf 'else if' for consistency.
Samuel Benzaquen [Thu, 4 Jun 2015 16:36:58 +0000 (16:36 +0000)]
[clang-tidy] Force braces around leaf 'else if' for consistency.

Summary:
Force braces around leaf 'else if' for consistency.
This complements r233697.

Reviewers: alexfh

Subscribers: curdeius, cfe-commits

Differential Revision: http://reviews.llvm.org/D10245

llvm-svn: 239054

9 years agoR600/SI: Reimplement isLegalAddressingMode
Matt Arsenault [Thu, 4 Jun 2015 16:17:42 +0000 (16:17 +0000)]
R600/SI: Reimplement isLegalAddressingMode

Now that we sometimes know the address space, this can
theoretically do a better job.

This needs better test coverage, but this mostly depends on
first updating the loop optimizatiosn to provide the address
space.

llvm-svn: 239053

9 years agoCodeGenPrepare: Provide address space to isLegalAddressingMode
Matt Arsenault [Thu, 4 Jun 2015 16:17:38 +0000 (16:17 +0000)]
CodeGenPrepare: Provide address space to isLegalAddressingMode

Use -1 as the address space if it can't be determined.

llvm-svn: 239052

9 years agoPass address space to isLegalAddressingMode in DAGCombiner
Matt Arsenault [Thu, 4 Jun 2015 16:17:34 +0000 (16:17 +0000)]
Pass address space to isLegalAddressingMode in DAGCombiner

No test because I don't know of a target that makes use
of address spaces and indexed load / store.

llvm-svn: 239051

9 years agoStore ArrayShape in shared_ptr and MemAccs as actual objects
Tobias Grosser [Thu, 4 Jun 2015 16:03:16 +0000 (16:03 +0000)]
Store ArrayShape in shared_ptr and MemAccs as actual objects

This fixes two more memory leaks.

llvm-svn: 239050

9 years agoR600/SI: Fix some cases for load / store of half
Matt Arsenault [Thu, 4 Jun 2015 16:00:27 +0000 (16:00 +0000)]
R600/SI: Fix some cases for load / store of half

Mostly argument loads were producing broken zextloads
from an FP type.

llvm-svn: 239049

9 years agoSwitch lowering: fix assert in buildBitTests (PR23738)
Hans Wennborg [Thu, 4 Jun 2015 15:55:00 +0000 (15:55 +0000)]
Switch lowering: fix assert in buildBitTests (PR23738)

When checking (High - Low + 1).sle(BitWidth), BitWidth would be truncated
to the size of the left-hand side. In the case of this PR, the left-hand
side was i4, so BitWidth=64 got truncated to 0 and the assert failed.

llvm-svn: 239048

9 years ago[SPARC] Fix multiarch path detection for sparc and sparcv9.
James Y Knight [Thu, 4 Jun 2015 15:36:30 +0000 (15:36 +0000)]
[SPARC] Fix multiarch path detection for sparc and sparcv9.

llvm-svn: 239047

9 years ago[SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on Linux.
James Y Knight [Thu, 4 Jun 2015 15:36:29 +0000 (15:36 +0000)]
[SPARC] Fix types of size_t, intptr_t, and ptrdiff_t on Linux.

They should be 'int' instead of 'long int' everywhere else except
NetBSD too, from what I gather in GCC's spec files. So, optimistically
changing it for everyone else, too.

llvm-svn: 239046

9 years agoOmit unused section symbols from the symbol table.
Rafael Espindola [Thu, 4 Jun 2015 15:33:30 +0000 (15:33 +0000)]
Omit unused section symbols from the symbol table.

Section symbols exist as an optimization: instead of having multiple relocations
point to different symbols, many of them can point to a single section symbol.

When that optimization is unused, a section symbol is also unused and adds no
extra information to the object file.

This saves a bit of space on the object files and makes the output of
llvm-objdump -t easier to read and consequently some tests get quite a bit
simpler.

llvm-svn: 239045

9 years ago[CMake] Add warning for using compile and link pools on unsupported versions of CMake...
Chris Bieneman [Thu, 4 Jun 2015 15:33:08 +0000 (15:33 +0000)]
[CMake] Add warning for using compile and link pools on unsupported versions of CMake or non-ninja generators.

Summary: I've gotten feedback from users on CMake 2.8 that the compile and link pool options were not working. This is expected so I'm adding a warning so we can report invalid configurations to users.

Reviewers: eugenis

Reviewed By: eugenis

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10193

llvm-svn: 239044

9 years agoMove test that depends on x86 to the x86 directory.
Rafael Espindola [Thu, 4 Jun 2015 15:25:47 +0000 (15:25 +0000)]
Move test that depends on x86 to the x86 directory.

llvm-svn: 239043

9 years agoNo need to check the raw relocation bytes if checking the parsed dump.
Rafael Espindola [Thu, 4 Jun 2015 15:21:17 +0000 (15:21 +0000)]
No need to check the raw relocation bytes if checking the parsed dump.

llvm-svn: 239042

9 years agollvm-readobj can parse relocations, no need to check the raw bytes.x
Rafael Espindola [Thu, 4 Jun 2015 15:15:12 +0000 (15:15 +0000)]
llvm-readobj can parse relocations, no need to check the raw bytes.x

llvm-svn: 239041

9 years agoReplace custom fixed endian to raw_ostream emission with EndianStream.
Benjamin Kramer [Thu, 4 Jun 2015 15:03:02 +0000 (15:03 +0000)]
Replace custom fixed endian to raw_ostream emission with EndianStream.

Less code, clearer and more efficient. No functionality change intended.

llvm-svn: 239040

9 years agoDisassemble the start of sections even if there is no symbol there.
Rafael Espindola [Thu, 4 Jun 2015 15:01:05 +0000 (15:01 +0000)]
Disassemble the start of sections even if there is no symbol there.

We already handled a section with no symbols, extend that to also handle a
section with symbols that don't include the section start.

llvm-svn: 239039

9 years agoRemove extraneous qualifiers due to "using namespace". NFC
Douglas Katzman [Thu, 4 Jun 2015 14:40:44 +0000 (14:40 +0000)]
Remove extraneous qualifiers due to "using namespace". NFC

llvm-svn: 239038

9 years agoDon't create a MIN/MAX node if the underlying compare has more than one use.
James Molloy [Thu, 4 Jun 2015 13:48:23 +0000 (13:48 +0000)]
Don't create a MIN/MAX node if the underlying compare has more than one use.

If the compare in a select pattern has another use then it can't be removed, so we'd just
be creating repeated code if we created a min/max node.

Spotted by Matt Arsenault!

llvm-svn: 239037

9 years agoReplace string GNU Triples with llvm::Triple in MCAsmInfo subclasses and create*AsmIn...
Daniel Sanders [Thu, 4 Jun 2015 13:12:25 +0000 (13:12 +0000)]
Replace string GNU Triples with llvm::Triple in MCAsmInfo subclasses and create*AsmInfo(). NFC.

Summary:
This is the first of several patches to eliminate StringRef forms of GNU
triples from the internals of LLVM. After this is complete, GNU triples
will be replaced by a more authoratitive representation in the form of
an LLVM TargetTuple.

Reviewers: rengolin

Reviewed By: rengolin

Subscribers: ted, llvm-commits, rengolin, jholewinski

Differential Revision: http://reviews.llvm.org/D10236

llvm-svn: 239036

9 years agoInclude BPF target in CMake builds.
Daniel Sanders [Thu, 4 Jun 2015 12:51:20 +0000 (12:51 +0000)]
Include BPF target in CMake builds.

llvm-svn: 239035

9 years agoTidy code in InstrProfiling.cpp. NFC.
Diego Novillo [Thu, 4 Jun 2015 11:45:32 +0000 (11:45 +0000)]
Tidy code in InstrProfiling.cpp. NFC.

Removed the redundant "llvm::" from class names in InstrProfiling.cpp
clang-format is ran on the changes.

Patch from Betul Buyukkurt.

llvm-svn: 239034

9 years agoStore comparison objects as objects, not pointers
Tobias Grosser [Thu, 4 Jun 2015 11:44:09 +0000 (11:44 +0000)]
Store comparison objects as objects, not pointers

This fixes a memory leak. If we store the actual objects we can not forget to
free them.

llvm-svn: 239033

9 years ago[C API] Add LLVMStructGetTypeAtIndex.
Peter Zotov [Thu, 4 Jun 2015 09:09:53 +0000 (09:09 +0000)]
[C API] Add LLVMStructGetTypeAtIndex.

Patch by deadalnix (Amaury SECHET).

llvm-svn: 239029

9 years agoUse the appropriate PIE level for OpenBSD/sparc.
Brad Smith [Thu, 4 Jun 2015 08:45:23 +0000 (08:45 +0000)]
Use the appropriate PIE level for OpenBSD/sparc.

llvm-svn: 239028

9 years ago[ASan] Fix Darwin and Windows builds.
Yury Gribov [Thu, 4 Jun 2015 07:56:19 +0000 (07:56 +0000)]
[ASan] Fix Darwin and Windows builds.

llvm-svn: 239027

9 years agoAVX-512: I brought back vector-shuffle-512-v8.ll test.
Elena Demikhovsky [Thu, 4 Jun 2015 07:49:56 +0000 (07:49 +0000)]
AVX-512: I brought back vector-shuffle-512-v8.ll test.
I re-generated it after all AVX-512 shuffle optimizations.

llvm-svn: 239026

9 years agoMark sdivs as 'exact' instead of lowering them ourselves
Tobias Grosser [Thu, 4 Jun 2015 07:45:09 +0000 (07:45 +0000)]
Mark sdivs as 'exact' instead of lowering them ourselves

LLVM's instcombine already translates power-of-two sdivs that are known to be
exact to fast ashr instructions. Hence, there is no need to add this logic
ourselves.

Pointed-out-by: Johannes Doerfert
llvm-svn: 239025

9 years agoEnsure memory access mappings are defined for full domain
Tobias Grosser [Thu, 4 Jun 2015 07:44:35 +0000 (07:44 +0000)]
Ensure memory access mappings are defined for full domain

We now verify that memory access functions imported via JSON are indeed defined
for the full iteration domain. Before this change we accidentally imported
memory mappings such as i -> i / 127, which only defined a mapped for values of
i that are evenly divisible by 127, but which did not define any mapping for the
remaining values, with the result that isl just generated an access expression
that had undefined behavior for all the unmapped values.

In the incorrect test cases, we now either use floor(i/127) or we use p/127 and
provide the information that p is indeed a multiple of 127.

llvm-svn: 239024

9 years ago[TableGen] Replace a couple if/else chains with a switch. NFC
Craig Topper [Thu, 4 Jun 2015 07:40:16 +0000 (07:40 +0000)]
[TableGen] Replace a couple if/else chains with a switch. NFC

llvm-svn: 239023

9 years ago[TableGen] Use range-based for loops. NFC
Craig Topper [Thu, 4 Jun 2015 07:40:14 +0000 (07:40 +0000)]
[TableGen] Use range-based for loops. NFC

llvm-svn: 239022

9 years ago[TableGen] Merge single prefix bit in RecordVal into PointerIntPair with Name to...
Craig Topper [Thu, 4 Jun 2015 07:40:12 +0000 (07:40 +0000)]
[TableGen] Merge single prefix bit in RecordVal into PointerIntPair with Name to reduce memory usage.

llvm-svn: 239021

9 years ago[ASan] Make binary name reader cross-platform.
Yury Gribov [Thu, 4 Jun 2015 07:29:43 +0000 (07:29 +0000)]
[ASan] Make binary name reader cross-platform.

Differential Revision: http://reviews.llvm.org/D10213

llvm-svn: 239020

9 years agoTest commit
Igor Breger [Thu, 4 Jun 2015 07:23:38 +0000 (07:23 +0000)]
Test commit

llvm-svn: 239019

9 years ago[ASan] Move ASan runtime library self-checks to a more appropriate place.
Yury Gribov [Thu, 4 Jun 2015 07:23:09 +0000 (07:23 +0000)]
[ASan] Move ASan runtime library self-checks to a more appropriate place.

llvm-svn: 239018

9 years agoMake the test introduced in r239015 more targeted.
David Majnemer [Thu, 4 Jun 2015 07:21:42 +0000 (07:21 +0000)]
Make the test introduced in r239015 more targeted.

We don't need to go through LSR to trigger this bug.  Instead,
hand-craft a tricky GEP and get the constant folder to hack on it when
parsing the IR.

llvm-svn: 239017

9 years agoAVX-512: added all SKX forms of VPERMW/D/Q instructions.
Elena Demikhovsky [Thu, 4 Jun 2015 07:07:13 +0000 (07:07 +0000)]
AVX-512: added all SKX forms of VPERMW/D/Q instructions.
Added all forms of VPERMPS/PD instrcuctions.
Added encoding tests.

llvm-svn: 239016

9 years ago[ConstantFold] Don't skip the first gep index when folding geps
David Majnemer [Thu, 4 Jun 2015 07:01:56 +0000 (07:01 +0000)]
[ConstantFold] Don't skip the first gep index when folding geps

We neglected to check if the first index made the GEP ineligible for
'inbounds'.

This fixes PR23753.

llvm-svn: 239015

9 years agoRemoved {}, NFC.
Elena Demikhovsky [Thu, 4 Jun 2015 07:01:29 +0000 (07:01 +0000)]
Removed {}, NFC.

llvm-svn: 239014

9 years agoMake the function that parses the json packets in debugserver
Jason Molenda [Thu, 4 Jun 2015 06:03:03 +0000 (06:03 +0000)]
Make the function that parses the json packets in debugserver
a little more resilient to freely formatted json.  Greg's change
in r238279 made the json output from StructuredData unconditionally
pretty-printed and the spaces were confusing debugserver.

llvm-svn: 239013

9 years agoBring back r239006 with a fix.
Rafael Espindola [Thu, 4 Jun 2015 05:59:23 +0000 (05:59 +0000)]
Bring back r239006 with a fix.

The fix is just that getOther had not been updated for packing the st_other
values in fewer bits and could return spurious values:

-  unsigned Other = (getFlags() & (0x3f << ELF_STO_Shift)) >> ELF_STO_Shift;
+  unsigned Other = (getFlags() & (0x7 << ELF_STO_Shift)) >> ELF_STO_Shift;

Original message:

Pack the MCSymbolELF bit fields into MCSymbol's Flags.

This reduces MCSymolfELF from 64 bytes to 56 bytes on x86_64.

While at it, also make getOther/setOther easier to use by accepting unshifted
STO_* values.

llvm-svn: 239012

9 years agoAdd testcase that would crash before the previous revert.
Rafael Espindola [Thu, 4 Jun 2015 05:51:13 +0000 (05:51 +0000)]
Add testcase that would crash before the previous revert.

llvm-svn: 239011

9 years agoRevert "Pack the MCSymbolELF bit fields into MCSymbol's Flags."
Rafael Espindola [Thu, 4 Jun 2015 05:00:12 +0000 (05:00 +0000)]
Revert "Pack the MCSymbolELF bit fields into MCSymbol's Flags."

This reverts commit r239006.

I am debugging the powerpc failures.

llvm-svn: 239010

9 years agoFix fragile source-col-map.c test-case.
James Y Knight [Thu, 4 Jun 2015 04:15:33 +0000 (04:15 +0000)]
Fix fragile source-col-map.c test-case.

The test passing was dependent upon your source tree being checked out
in a directory with a long enough path, to cause the diagnostics to
wrap at the expected locations.

Use stdin instead, so that the error messages consistently use
<stdin> as the filename, and get wrapped consistently.

llvm-svn: 239009

9 years agoUpdate Polly for the AA/MemoryLocation refactoring.
Chandler Carruth [Thu, 4 Jun 2015 03:49:46 +0000 (03:49 +0000)]
Update Polly for the AA/MemoryLocation refactoring.

llvm-svn: 239008

9 years ago[lldb] Enable building with Cmake/BUILD_SHARED_LIBS
Andrew Wilkins [Thu, 4 Jun 2015 03:12:37 +0000 (03:12 +0000)]
[lldb] Enable building with Cmake/BUILD_SHARED_LIBS

Summary:
Several changes to fix CMake builds of LLDB with the
BUILD_SHARED_LIBS setting on.

- Force all internal libraries to be built STATIC.
- Add additional library dependencies (pthread, dl,
  runtimedyld).
- modify finalisation of SWIG wrapper to symlink the
  "lib" dir into python/site-packages, so _lldb.so's
  RPATH resolves.

Test Plan: Verified one test case with "dotest.py".

Reviewers: sylvestre.ledru, zturner

Reviewed By: zturner

Subscribers: zturner, ted, tberghammer, emaste, lldb-commits

Differential Revision: http://reviews.llvm.org/D10157

llvm-svn: 239007

9 years agoPack the MCSymbolELF bit fields into MCSymbol's Flags.
Rafael Espindola [Thu, 4 Jun 2015 02:32:20 +0000 (02:32 +0000)]
Pack the MCSymbolELF bit fields into MCSymbol's Flags.

This reduces MCSymolfELF from 64 bytes to 56 bytes on x86_64.

While at it, also make getOther/setOther easier to use by accepting unshifted
STO_* values.

llvm-svn: 239006

9 years agoCOFF: /include'd symbols must be preserved.
Rui Ueyama [Thu, 4 Jun 2015 02:12:16 +0000 (02:12 +0000)]
COFF: /include'd symbols must be preserved.

Not only entry point symbol but also symbols specified by /include
option must be preserved, as they will never be dead-stripped.

http://reviews.llvm.org/D10220

llvm-svn: 239005

9 years agoWhile applying N4258, I forgot about LWG#2455, which modified the modifications....
Marshall Clow [Thu, 4 Jun 2015 02:05:41 +0000 (02:05 +0000)]
While applying N4258, I forgot about LWG#2455, which modified the modifications. Correct those - h/t: Howard

llvm-svn: 239004

9 years ago[PM/AA] Start refactoring AliasAnalysis to remove the analysis group and
Chandler Carruth [Thu, 4 Jun 2015 02:03:15 +0000 (02:03 +0000)]
[PM/AA] Start refactoring AliasAnalysis to remove the analysis group and
port it to the new pass manager.

All this does is extract the inner "location" class used by AA into its
own full fledged type. This seems *much* cleaner as MemoryDependence and
soon MemorySSA also use this heavily, and it doesn't make much sense
being inside the AA infrastructure.

This will also make it much easier to break apart the AA infrastructure
into something that stands on its own rather than using the analysis
group design.

There are a few places where this makes APIs not make sense -- they were
taking an AliasAnalysis pointer just to build locations. I'll try to
clean those up in follow-up commits.

Differential Revision: http://reviews.llvm.org/D10228

llvm-svn: 239003

9 years ago[CodeGen][NEON] Emit constants for "immediate" intrinsic arguments.
Ahmed Bougacha [Thu, 4 Jun 2015 01:43:41 +0000 (01:43 +0000)]
[CodeGen][NEON] Emit constants for "immediate" intrinsic arguments.

On ARM/AArch64, we currently always use EmitScalarExpr for the immediate
builtin arguments, instead of directly emitting the constant. When the
overflow sanitizer is enabled, this generates overflow intrinsics
instead of constants, breaking assumptions in various places.

Instead, use the knowledge of "immediates" to directly emit a constant:
- teach the tablegen backend to emit the "immediate" modifiers
- use those modifiers in the NEON CodeGen, on ARM and AArch64.

Fixes PR23517.

Differential Revision: http://reviews.llvm.org/D10045

llvm-svn: 239002

9 years agomake reciprocal estimate code generation more flexible by adding command-line options...
Sanjay Patel [Thu, 4 Jun 2015 01:32:35 +0000 (01:32 +0000)]
make reciprocal estimate code generation more flexible by adding command-line options (3rd try)

The first try (r238051) to land this was reverted due to ExecutionEngine build failure;
that was hopefully addressed by r238788.

The second try (r238842) to land this was reverted due to BUILD_SHARED_LIBS failure;
that was hopefully addressed by r238953.

This patch adds a TargetRecip class for processing many recip codegen possibilities.
The class is intended to handle both command-line options to llc as well
as options passed in from a front-end such as clang with the -mrecip option.

The x86 backend is updated to use the new functionality.
Only -mcpu=btver2 with -ffast-math should see a functional change from this patch.
All other x86 CPUs continue to *not* use reciprocal estimates by default with -ffast-math.

Differential Revision: http://reviews.llvm.org/D8982

llvm-svn: 239001

9 years ago[sanitizer_common] Added VS-style output for source locations
Filipe Cabecinhas [Thu, 4 Jun 2015 01:20:06 +0000 (01:20 +0000)]
[sanitizer_common] Added VS-style output for source locations

Summary:
With this patch, we have a flag to toggle displaying source locations in
the regular style:
file:line:column

or Visual Studio style:
file(line,column)

This way, they get picked up on the Visual Studio output window and one
can double-click them to get to that file location.

Reviewers: samsonov, rnk

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10113

llvm-svn: 239000

9 years agoR600: Re-enable sub-reg liveness
Tom Stellard [Thu, 4 Jun 2015 01:20:04 +0000 (01:20 +0000)]
R600: Re-enable sub-reg liveness

The bug in the R600 backend that this uncovered has been fixed.

llvm-svn: 238999

9 years agoFixed option description. '=' is required.
John Thompson [Thu, 4 Jun 2015 01:12:56 +0000 (01:12 +0000)]
Fixed option description. '=' is required.

llvm-svn: 238998

9 years agoFixed option comment. '=' is required.
John Thompson [Thu, 4 Jun 2015 01:10:19 +0000 (01:10 +0000)]
Fixed option comment. '=' is required.

llvm-svn: 238997

9 years agoRemove MCELFSymbolFlags.h. It is now internal to MCSymbolELF.
Rafael Espindola [Thu, 4 Jun 2015 00:47:43 +0000 (00:47 +0000)]
Remove MCELFSymbolFlags.h. It is now internal to MCSymbolELF.

llvm-svn: 238996

9 years ago[asan] Fix undefined MAP_NORESERVE on FreeBSD.
Evgeniy Stepanov [Thu, 4 Jun 2015 00:42:15 +0000 (00:42 +0000)]
[asan] Fix undefined MAP_NORESERVE on FreeBSD.

llvm-svn: 238995

9 years agoDriver: Don't crash when generating crash reports for *-header inputs
Justin Bogner [Thu, 4 Jun 2015 00:30:22 +0000 (00:30 +0000)]
Driver: Don't crash when generating crash reports for *-header inputs

If we crash while handling headers, the crash report mechanism
currently tries to make a string out of a null pointer when it tries
to make up a file extension.

Map *-header input types to reasonable extensions to avoid this.

llvm-svn: 238994

9 years ago[analyzer]Test commit fixing 80-column violation in comment. NFC.
Devin Coughlin [Thu, 4 Jun 2015 00:18:10 +0000 (00:18 +0000)]
[analyzer]Test commit fixing 80-column violation in comment. NFC.

llvm-svn: 238993

9 years agoSave getArch() in a local var instead of calling it 20 times, etc.
Douglas Katzman [Thu, 4 Jun 2015 00:15:00 +0000 (00:15 +0000)]
Save getArch() in a local var instead of calling it 20 times, etc.

Differential Revision: http://reviews.llvm.org/D10224

llvm-svn: 238992

9 years ago[Sanitizers] Add *SAN_OPTIONS to possibly_dangerous_env_vars
Filipe Cabecinhas [Thu, 4 Jun 2015 00:12:55 +0000 (00:12 +0000)]
[Sanitizers] Add *SAN_OPTIONS to possibly_dangerous_env_vars

Summary:
This way, if they're set when running ninja check-ubsan (or another
sanitizer), they get cleared before we start invoking the programs.

Reviewers: samsonov, kcc

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10229

llvm-svn: 238991

9 years agoMore N4258 changes. This time vector's constructors
Marshall Clow [Thu, 4 Jun 2015 00:10:20 +0000 (00:10 +0000)]
More N4258 changes. This time vector's constructors

llvm-svn: 238990

9 years ago[ELF/AArch64] Fix build issue on MSVC
Adhemerval Zanella [Wed, 3 Jun 2015 22:47:41 +0000 (22:47 +0000)]
[ELF/AArch64] Fix build issue on MSVC

This patch fixes a build issue from r238981.

llvm-svn: 238986

9 years agoImprove test added in r238481.
Alexey Samsonov [Wed, 3 Jun 2015 22:36:17 +0000 (22:36 +0000)]
Improve test added in r238481.

llvm-svn: 238985

9 years agoI make no claims that Mach ports work, but at least we should check the right thing
Enrico Granata [Wed, 3 Jun 2015 22:35:55 +0000 (22:35 +0000)]
I make no claims that Mach ports work, but at least we should check the right thing

llvm-svn: 238984

9 years ago[Object, MachO] Introduce MachOObjectFile::load_commands() range iterator.
Alexey Samsonov [Wed, 3 Jun 2015 22:19:36 +0000 (22:19 +0000)]
[Object, MachO] Introduce MachOObjectFile::load_commands() range iterator.

Summary:
Now users don't have to manually deal with getFirstLoadCommandInfo() /
getNextLoadCommandInfo(), calculate the number of load segments, etc.

No functionality change.

Test Plan: regression test suite

Reviewers: rafael, lhames, loladiro

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10144

llvm-svn: 238983

9 years agoRemember if a weakref of a symbol has been used.
Rafael Espindola [Wed, 3 Jun 2015 21:52:06 +0000 (21:52 +0000)]
Remember if a weakref of a symbol has been used.

This avoids yet another last minute patching of the binding.

While at it, also simplify the weakref implementation a bit by not walking
past it in the expression evaluation.

llvm-svn: 238982