platform/upstream/llvm.git
9 years agoCMake: Stop using LLVM's custom parse_arguments. NFC
Filipe Cabecinhas [Fri, 19 Jun 2015 03:45:40 +0000 (03:45 +0000)]
CMake: Stop using LLVM's custom parse_arguments. NFC

Summary:
Use CMake's cmake_parse_arguments() instead.
It's called in a slightly different way, but supports all our use cases.
It's in CMake 2.8.8, which is our minimum supported version.

CMake 3.0 doc (roughly the same. No direct link to 2.8.8 doc):
http://www.cmake.org/cmake/help/v3.0/module/CMakeParseArguments.html?highlight=cmake_parse_arguments

Reviewers: pcc, beanz, chapuni

Subscribers: llvm-commits

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

llvm-svn: 240121

9 years agoCMake: Stop using LLVM's custom parse_arguments. NFC
Filipe Cabecinhas [Fri, 19 Jun 2015 03:39:24 +0000 (03:39 +0000)]
CMake: Stop using LLVM's custom parse_arguments. NFC

Summary:
Use CMake's cmake_parse_arguments() instead.
It's called in a slightly different way, but supports all our use cases.
It's in CMake 2.8.8, which is our minimum supported version.

CMake 3.0 doc (roughly the same. No direct link to 2.8.8 doc):
http://www.cmake.org/cmake/help/v3.0/module/CMakeParseArguments.html?highlight=cmake_parse_arguments

Since I was already changing these calls, I changed ARCH and LIB into
ARCHS and LIBS to make it more clear that they're lists of arguments.

Reviewers: eugenis, samsonov, beanz

Subscribers: llvm-commits

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

llvm-svn: 240120

9 years agoAdd NVIDIA vprintf printing to RuntimeDebugBuilder
Tobias Grosser [Fri, 19 Jun 2015 02:33:45 +0000 (02:33 +0000)]
Add NVIDIA vprintf printing to RuntimeDebugBuilder

2nd try, this time with the corresponding LLVM IRBuilder changes in place.

llvm-svn: 240119

9 years ago[ARM] Look through concat when lowering in-place shuffles (VZIP, ..)
Ahmed Bougacha [Fri, 19 Jun 2015 02:32:35 +0000 (02:32 +0000)]
[ARM] Look through concat when lowering in-place shuffles (VZIP, ..)

Currently, we canonicalize shuffles that produce a result larger than
their operands with:
  shuffle(concat(v1, undef), concat(v2, undef))
->
  shuffle(concat(v1, v2), undef)

because we can access quad vectors (see PerformVECTOR_SHUFFLECombine).

This is useful in the general case, but there are special cases where
native shuffles produce larger results: the two-result ops.

We can look through the concat when lowering them:
  shuffle(concat(v1, v2), undef)
->
  concat(VZIP(v1, v2):0, :1)

This lets us generate the native shuffles instead of scalarizing to
dozens of VMOVs.

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

llvm-svn: 240118

9 years agoCFI: Implement bitset emission for the Microsoft ABI.
Peter Collingbourne [Fri, 19 Jun 2015 02:30:43 +0000 (02:30 +0000)]
CFI: Implement bitset emission for the Microsoft ABI.

Clang's control flow integrity implementation works by conceptually attaching
"tags" (in the form of bitset entries) to each virtual table, identifying
the names of the classes that the virtual table is compatible with. Under
the Itanium ABI, it is simple to assign tags to virtual tables; they are
simply the address points, which are available via VTableLayout. Because any
overridden methods receive an entry in the derived class's virtual table,
a check for an overridden method call can always be done by checking the
tag of whichever derived class overrode the method call.

The Microsoft ABI is a little different, as it does not directly use address
points, and overrides in a derived class do not cause new virtual table entries
to be added to the derived class; instead, the slot in the base class is
reused, and the compiler needs to adjust the this pointer at the call site
to (generally) the base class that initially defined the method. After the
this pointer has been adjusted, we cannot check for the derived class's tag,
as the virtual table may not be compatible with the derived class. So we
need to determine which base class we have been adjusted to.

Specifically, at each call site, we use ASTRecordLayout to identify the most
derived class whose virtual table is laid out at the "this" pointer offset
we are using to make the call, and check the virtual table for that tag.

Because address point information is unavailable, we "reconstruct" it as
follows: any virtual tables we create for a non-derived class receive a tag
for that class, and virtual tables for a base class inside a derived class
receive a tag for the base class, together with tags for any derived classes
which are laid out at the same position as the derived class (and therefore
have compatible virtual tables).

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

llvm-svn: 240117

9 years ago[ARM] Factor out two-result shuffle matching. NFCI.
Ahmed Bougacha [Fri, 19 Jun 2015 02:25:01 +0000 (02:25 +0000)]
[ARM] Factor out two-result shuffle matching.  NFCI.

In preparation for a future patch: makes it easier to do the same
matching to generate different nodes, without duplication.

llvm-svn: 240116

9 years agoFix Windows test failure.
Peter Collingbourne [Fri, 19 Jun 2015 02:24:25 +0000 (02:24 +0000)]
Fix Windows test failure.

llvm-svn: 240115

9 years ago[ARM] Add D-sized vtrn/vuzp/vzip tests, and cleanup. NFC.
Ahmed Bougacha [Fri, 19 Jun 2015 02:15:34 +0000 (02:15 +0000)]
[ARM] Add D-sized vtrn/vuzp/vzip tests, and cleanup.  NFC.

llvm-svn: 240114

9 years agoIRBuilder: Allow globals to be constructed in a specific address space
Tobias Grosser [Fri, 19 Jun 2015 02:12:07 +0000 (02:12 +0000)]
IRBuilder: Allow globals to be constructed in a specific address space

llvm-svn: 240113

9 years agoFix "the the" in comments.
Eric Christopher [Fri, 19 Jun 2015 01:53:21 +0000 (01:53 +0000)]
Fix "the the" in comments.

llvm-svn: 240112

9 years agoAdd control flow integrity diagnosis function to UBSan runtime library.
Peter Collingbourne [Fri, 19 Jun 2015 01:52:55 +0000 (01:52 +0000)]
Add control flow integrity diagnosis function to UBSan runtime library.

Also includes execution tests for the feature.

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

llvm-svn: 240111

9 years agoFix "the the" in comments/documentation/etc.
Eric Christopher [Fri, 19 Jun 2015 01:52:53 +0000 (01:52 +0000)]
Fix "the the" in comments/documentation/etc.

llvm-svn: 240110

9 years agoImplement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag.
Peter Collingbourne [Fri, 19 Jun 2015 01:51:54 +0000 (01:51 +0000)]
Implement diagnostic mode for -fsanitize=cfi*, -fsanitize=cfi-diag.

This causes programs compiled with this flag to print a diagnostic when
a control flow integrity check fails instead of aborting. Diagnostics are
printed using UBSan's runtime library.

The main motivation of this feature over -fsanitize=vptr is fidelity with
the -fsanitize=cfi implementation: the diagnostics are printed under exactly
the same conditions as those which would cause -fsanitize=cfi to abort the
program. This means that the same restrictions apply regarding compiling
all translation units with -fsanitize=cfi, cross-DSO virtual calls are
forbidden, etc.

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

llvm-svn: 240109

9 years agoRevert "Revert "[CMake] LSan is not actually available on Darwin.""
Alexey Samsonov [Fri, 19 Jun 2015 01:34:06 +0000 (01:34 +0000)]
Revert "Revert "[CMake] LSan is not actually available on Darwin.""

Re-land fixed version of r239955.

llvm-svn: 240108

9 years ago[msan] Intercept fopencookie.
Evgeniy Stepanov [Fri, 19 Jun 2015 01:28:41 +0000 (01:28 +0000)]
[msan] Intercept fopencookie.

https://code.google.com/p/memory-sanitizer/issues/detail?id=86

llvm-svn: 240107

9 years agoFix hexagon test failure.
Peter Collingbourne [Fri, 19 Jun 2015 00:39:59 +0000 (00:39 +0000)]
Fix hexagon test failure.

llvm-svn: 240106

9 years agoIntroduce -fsanitize-trap= flag.
Peter Collingbourne [Thu, 18 Jun 2015 23:59:22 +0000 (23:59 +0000)]
Introduce -fsanitize-trap= flag.

This flag controls whether a given sanitizer traps upon detecting
an error. It currently only supports UBSan. The existing flag
-fsanitize-undefined-trap-on-error has been made an alias of
-fsanitize-trap=undefined.

This change also cleans up some awkward behavior around the combination
of -fsanitize-trap=undefined and -fsanitize=undefined. Previously we
would reject command lines containing the combination of these two flags,
as -fsanitize=vptr is not compatible with trapping. This required the
creation of -fsanitize=undefined-trap, which excluded -fsanitize=vptr
(and -fsanitize=function, but this seems like an oversight).

Now, -fsanitize=undefined is an alias for -fsanitize=undefined-trap,
and if -fsanitize-trap=undefined is specified, we treat -fsanitize=vptr
as an "unsupported" flag, which means that we error out if the flag is
specified explicitly, but implicitly disable it if the flag was implied
by -fsanitize=undefined.

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

llvm-svn: 240105

9 years agoDon't link ObjCARCOpts twice. Fixes PR22543
Keno Fischer [Thu, 18 Jun 2015 23:45:51 +0000 (23:45 +0000)]
Don't link ObjCARCOpts twice. Fixes PR22543

ObjCARCOpts is already included by ClangCodeGen. Linking it again causes the error in PR22543.

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

llvm-svn: 240104

9 years agoCOFF: Add /nodefaultlib and /merge for .drectve.
Rui Ueyama [Thu, 18 Jun 2015 23:22:39 +0000 (23:22 +0000)]
COFF: Add /nodefaultlib and /merge for .drectve.

llvm-svn: 240077

9 years agoCOFF: Handle /include in .drectve.
Rui Ueyama [Thu, 18 Jun 2015 23:20:11 +0000 (23:20 +0000)]
COFF: Handle /include in .drectve.

We don't want to insert a new symbol to the symbol table while reading
a .drectve section because it's going to be too complicated.
That we are reading a directive section means that we are currently
reading some object file. Adding a new undefined symbol to the symbol
table can trigger a library file to read a new file, so it would make
the call stack too deep.

In this patch, I add new symbol names to a list to resolve them later.

llvm-svn: 240076

9 years agoCOFF: Allow identical alternatename options.
Rui Ueyama [Thu, 18 Jun 2015 23:04:26 +0000 (23:04 +0000)]
COFF: Allow identical alternatename options.

Alternatename option is in the form of /alternatename:<from>=<to>.
It is an error if there are two options having the same <from> but
different <to>. It is *not* an error if both are the same.

llvm-svn: 240075

9 years agoMIR Serialization: Reenable one of the MIRParser tests by reverting r239805.
Alex Lorenz [Thu, 18 Jun 2015 22:46:27 +0000 (22:46 +0000)]
MIR Serialization: Reenable one of the MIRParser tests by reverting r239805.

The test 'llvm/test/CodeGen/MIR/machine-function.mir' was disabled on
x86 msc18 in r239805 as it failed. My commit r240054 have fixed the
problem, so this commit reverts the commit that disabled the test as
it should pass now.

llvm-svn: 240074

9 years agoImprove the --expand-relocs handling of MachO.
Rafael Espindola [Thu, 18 Jun 2015 22:38:20 +0000 (22:38 +0000)]
Improve the --expand-relocs handling of MachO.

In a relocation target can take 3 basic forms

* A r_value in scattered relocations.
* A symbol in external relocations.
* A section is non-external relocations.

Have the dump reflect that. With this change we go from

CHECK-NEXT:       Extern: 0
CHECK-NEXT:       Type: X86_64_RELOC_SUBTRACTOR (5)
CHECK-NEXT:       Symbol: 0x2
CHECK-NEXT:       Scattered: 0

To just

// CHECK-NEXT:       Type: X86_64_RELOC_SUBTRACTOR (5)
// CHECK-NEXT:       Section: __data (2)

Since the relocation is with a section, we print the seciton name and don't
need to say that it is not scattered or external.

Someone motivated can add further special cases for things like
ARM64_RELOC_ADDEND and ARM_RELOC_PAIR.

llvm-svn: 240073

9 years agoAvoid redundant select node in early if-conversion pass
Yi Jiang [Thu, 18 Jun 2015 22:34:09 +0000 (22:34 +0000)]
Avoid redundant select node in early if-conversion pass

llvm-svn: 240072

9 years agoSwitch lowering: enable whole-switch jump tables at -O0.
Hans Wennborg [Thu, 18 Jun 2015 22:22:30 +0000 (22:22 +0000)]
Switch lowering: enable whole-switch jump tables at -O0.

To same compile time, the analysis to find dense case-clusters in switches is
not done at -O0. However, when the whole switch is dense enough, it is easy to
turn it into a jump table, resulting in much faster code with no extra effort.

llvm-svn: 240071

9 years agoUpdate comment about the UNWIND_X86_64_MODE_STACK_IND encoding
Jason Molenda [Thu, 18 Jun 2015 22:16:10 +0000 (22:16 +0000)]
Update comment about the UNWIND_X86_64_MODE_STACK_IND encoding
bug in old clang's.

llvm-svn: 240070

9 years agoPass --expand-relocs to a few more tests.
Rafael Espindola [Thu, 18 Jun 2015 22:12:47 +0000 (22:12 +0000)]
Pass --expand-relocs to a few more tests.

llvm-svn: 240069

9 years ago[modules] Merging support for enums with a local definition prior to the first
Richard Smith [Thu, 18 Jun 2015 22:07:00 +0000 (22:07 +0000)]
[modules] Merging support for enums with a local definition prior to the first
imported definition.

llvm-svn: 240068

9 years agoCOFF: Unknown options in .drectve section is an error.
Rui Ueyama [Thu, 18 Jun 2015 21:50:38 +0000 (21:50 +0000)]
COFF: Unknown options in .drectve section is an error.

We skip unknown options in the command line with a warning message
being printed out, but we shouldn't do that for .drectve section.
The section is not visible to the user. We should handle unknown
options as an error.

llvm-svn: 240067

9 years agoAdd a new wart, I mean feature, on to gdb-remote protocol: compression.
Jason Molenda [Thu, 18 Jun 2015 21:46:06 +0000 (21:46 +0000)]
Add a new wart, I mean feature, on to gdb-remote protocol: compression.
For some communication channels, sending large packets can be very
slow.  In those cases, it may be faster to compress the contents of
the packet on the target device and decompress it on the debug host
system.  For instance, communicating with a device using something
like Bluetooth may be an environment where this tradeoff is a good one.

This patch adds a new field to the response to the "qSupported" packet
(which returns a "qXfer:features:" response) -- SupportedCompressions
and DefaultCompressionMinSize.  These tell you what the remote
stub can support.

lldb, if it wants to enable compression and can handle one of those
algorithms, it can send a QEnableCompression packet specifying the
algorithm and optionally the minimum packet size to use compression
on.  lldb may have better knowledge about the best tradeoff for
a given communication channel.

I added support to debugserver an lldb to use the zlib APIs
(if -DHAVE_LIBZ=1 is in CFLAGS and -lz is in LDFLAGS) and the
libcompression APIs on Mac OS X 10.11 and later
(if -DHAVE_LIBCOMPRESSION=1).  libz "zlib-deflate" compression.
libcompression can support deflate, lz4, lzma, and a proprietary
lzfse algorithm.  libcompression has been hand-tuned for Apple
hardware so it should be preferred if available.

debugserver currently only adds the SupportedCompressions when
it is being run on an Apple watch (TARGET_OS_WATCH).  Comment
that #if out from RNBRemote.cpp if you want to enable it to
see how it works.  I haven't tested this on a native system
configuration but surely it will be slower to compress & decompress
the packets in a same-system debug session.

I haven't had a chance to add support for this to
GDBRemoteCommunciationServer.cpp yet.

<rdar://problem/21090180>

llvm-svn: 240066

9 years ago[Driver] Compute MacOS/iOS version from triple if/when we actually need it. NFC.
Alexey Samsonov [Thu, 18 Jun 2015 21:46:05 +0000 (21:46 +0000)]
[Driver] Compute MacOS/iOS version from triple if/when we actually need it. NFC.

llvm-svn: 240065

9 years agouse SDValue bool operator; NFCI
Sanjay Patel [Thu, 18 Jun 2015 21:44:31 +0000 (21:44 +0000)]
use SDValue bool operator; NFCI

llvm-svn: 240064

9 years agoadd test to show suboptimal load merging behavior
Sanjay Patel [Thu, 18 Jun 2015 21:34:26 +0000 (21:34 +0000)]
add test to show suboptimal load merging behavior

llvm-svn: 240063

9 years ago[X86][SSE][CostModel] Fixed uitofp/sitofp cost target tests to specify sse2/avx2...
Simon Pilgrim [Thu, 18 Jun 2015 21:26:01 +0000 (21:26 +0000)]
[X86][SSE][CostModel] Fixed uitofp/sitofp cost target tests to specify sse2/avx2/avx512f directly instead of via a cpu model.

llvm-svn: 240062

9 years agoCOFF: Handle /failifmismatch in the same manner as other options.
Rui Ueyama [Thu, 18 Jun 2015 21:23:34 +0000 (21:23 +0000)]
COFF: Handle /failifmismatch in the same manner as other options.

No functionality change intended.

llvm-svn: 240061

9 years agoCorrect the end-of-vector check in GetCompactUnwindInfoForFunction().
Jason Molenda [Thu, 18 Jun 2015 21:15:58 +0000 (21:15 +0000)]
Correct the end-of-vector check in GetCompactUnwindInfoForFunction().
Problem noticed by Todd Fiala.

llvm-svn: 240060

9 years agoAMDGPU: Add missing GK_VOLCANIC_ISLANDS to switch statement
Tom Stellard [Thu, 18 Jun 2015 21:13:29 +0000 (21:13 +0000)]
AMDGPU: Add missing GK_VOLCANIC_ISLANDS to switch statement

This fixes buildbot failures introduced by r240038.

llvm-svn: 240059

9 years agofixed to test attributes and use better checks
Sanjay Patel [Thu, 18 Jun 2015 21:12:24 +0000 (21:12 +0000)]
fixed to test attributes and use better checks

1. Used update_llc_test_checks.py to tighten checks
2. Fixed triple (nothing Darwin-specific here)
3. Replaced CPU specifiers with attributes
4. Fixed comments
5. Removed IvyBridge run because it did not add any coverage

llvm-svn: 240058

9 years ago[modules] This debugging option doesn't need to match between module creation and...
Richard Smith [Thu, 18 Jun 2015 21:10:28 +0000 (21:10 +0000)]
[modules] This debugging option doesn't need to match between module creation and use.

llvm-svn: 240057

9 years agoAdd -Winfinite-recursion to -Wmost (and -Wall), PR23789.
Nico Weber [Thu, 18 Jun 2015 21:09:24 +0000 (21:09 +0000)]
Add -Winfinite-recursion to -Wmost (and -Wall), PR23789.

llvm-svn: 240056

9 years ago[Hexagon] Fixing unused field copypasta.
Colin LeMahieu [Thu, 18 Jun 2015 21:03:13 +0000 (21:03 +0000)]
[Hexagon] Fixing unused field copypasta.

llvm-svn: 240055

9 years agoMIR Serialization: initialize the fields without the default initializers in yaml...
Alex Lorenz [Thu, 18 Jun 2015 20:57:41 +0000 (20:57 +0000)]
MIR Serialization: initialize the fields without the default initializers in yaml::MachineFunction

My commit r239790 which introduced serialization for simple machine function attributes didn't
initialize them when parsing because I have misread the documentation for YAML IO's mapOptional
method. The mapOptional method doesn't actually set the values to the values returned by the
default constructor for that type when the key value pair is missing, it just doesn't modify
those values, so they still contain the value that was set during initialization by the default
constructor. But the fields in yaml::MachineFunction with types like unsigned and bool are not
initialized by default, and thus they can still be uninitialized after mapOptional during parsing.
This commit adds default initialization for those fields to prevent this.

llvm-svn: 240054

9 years agoUse --expand-relocs in a test. It will make the next change easier to read.
Rafael Espindola [Thu, 18 Jun 2015 20:57:35 +0000 (20:57 +0000)]
Use --expand-relocs in a test. It will make the next change easier to read.

llvm-svn: 240053

9 years agoFetch object file load address if it isn't specified by the linker
Tamas Berghammer [Thu, 18 Jun 2015 20:43:56 +0000 (20:43 +0000)]
Fetch object file load address if it isn't specified by the linker

Differential revision: http://reviews.llvm.org/D10490

llvm-svn: 240052

9 years ago[Hexagon] Printing packet brackets when asm printing and adding a number of tests...
Colin LeMahieu [Thu, 18 Jun 2015 20:43:50 +0000 (20:43 +0000)]
[Hexagon] Printing packet brackets when asm printing and adding a number of tests that test packet brackets.

llvm-svn: 240051

9 years ago[MC] Adding prettyPrintAsm to MCTargetStreamer to allow targets to specialize how...
Colin LeMahieu [Thu, 18 Jun 2015 20:43:22 +0000 (20:43 +0000)]
[MC] Adding prettyPrintAsm to MCTargetStreamer to allow targets to specialize how instructions are printed to asm.

llvm-svn: 240050

9 years agoForgot to update to a test in r240043
David Majnemer [Thu, 18 Jun 2015 20:34:05 +0000 (20:34 +0000)]
Forgot to update to a test in r240043

llvm-svn: 240049

9 years ago[TestLoadUnload] Build the main inferior exe with -pie.
Siva Chandra [Thu, 18 Jun 2015 20:33:56 +0000 (20:33 +0000)]
[TestLoadUnload] Build the main inferior exe with -pie.

Test Plan: dotest.py -p TestLoadUnload on Android API >= 21

Reviewers: tberghammer

Subscribers: tberghammer, lldb-commits

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

llvm-svn: 240048

9 years ago[X86] Rename RegInfo to TRI as suggested by Eric
Reid Kleckner [Thu, 18 Jun 2015 20:32:02 +0000 (20:32 +0000)]
[X86] Rename RegInfo to TRI as suggested by Eric

llvm-svn: 240047

9 years agoCOFF: Fix unsafe memory access.
Rui Ueyama [Thu, 18 Jun 2015 20:29:41 +0000 (20:29 +0000)]
COFF: Fix unsafe memory access.

llvm-svn: 240046

9 years agoCOFF: Add /implib option.
Rui Ueyama [Thu, 18 Jun 2015 20:27:09 +0000 (20:27 +0000)]
COFF: Add /implib option.

llvm-svn: 240045

9 years ago[X86] Refactor stack adjustments into X86FrameLowering::BuildStackAdjustment
Reid Kleckner [Thu, 18 Jun 2015 20:22:12 +0000 (20:22 +0000)]
[X86] Refactor stack adjustments into X86FrameLowering::BuildStackAdjustment

Deduplicates some code and lets us use LEA on atom when adjusting the
stack around callee-cleanup calls. This is the only intended
functionality change.

llvm-svn: 240044

9 years ago[MS ABI] Initialize "most general" member pointers which don't point at a vbase
David Majnemer [Thu, 18 Jun 2015 20:20:10 +0000 (20:20 +0000)]
[MS ABI] Initialize "most general" member pointers which don't point at a vbase

The most general model has fields for the vbptr offset and the vbindex.
Don't initialize the vbptr offset if the vbindex is 0: we aren't
referencing an entity from a vbase.

Getting this wrong can make member pointer equality fail.

llvm-svn: 240043

9 years agoCOFF: Handle both / and \ as path separator.
Rui Ueyama [Thu, 18 Jun 2015 20:16:26 +0000 (20:16 +0000)]
COFF: Handle both / and \ as path separator.

llvm-svn: 240042

9 years agoWrap to 80 columns, no behavior change.
Nico Weber [Thu, 18 Jun 2015 20:09:49 +0000 (20:09 +0000)]
Wrap to 80 columns, no behavior change.

llvm-svn: 240041

9 years ago[BranchFolding] Replace custom MachineInstr with MachineInstrExpressionTrait
Benjamin Kramer [Thu, 18 Jun 2015 20:00:03 +0000 (20:00 +0000)]
[BranchFolding] Replace custom MachineInstr with MachineInstrExpressionTrait

While the hash functions are subtly different it shouldn't have an
impact. Instructions are checked with isIdenticalTo later.

llvm-svn: 240040

9 years ago[CallGraph] Teach the CallGraph about non-leaf intrinsics.
Sanjoy Das [Thu, 18 Jun 2015 19:28:26 +0000 (19:28 +0000)]
[CallGraph] Teach the CallGraph about non-leaf intrinsics.

Summary:
Currently intrinsics don't affect the creation of the call graph.
This is not accurate with respect to statepoint and patchpoint
intrinsics -- these do call (or invoke) LLVM level functions.

This change fixes this inconsistency by adding a call to the external
node for call sites that call these non-leaf intrinsics.  This coupled
with the fact that these intrinsics also escape the function pointer
they call gives us a conservatively correct call graph.

Reviewers: reames, chandlerc, atrick, pgavlin

Subscribers: llvm-commits

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

llvm-svn: 240039

9 years agoR600: Add Volcanic Islands targets
Tom Stellard [Thu, 18 Jun 2015 19:14:15 +0000 (19:14 +0000)]
R600: Add Volcanic Islands targets

Reviewers: arsenm

Subscribers: cfe-commits

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

llvm-svn: 240038

9 years agoCOFF: Handle /alternatename in .drectve section.
Rui Ueyama [Thu, 18 Jun 2015 19:09:30 +0000 (19:09 +0000)]
COFF: Handle /alternatename in .drectve section.

llvm-svn: 240037

9 years ago[CodeGen] Don't emit a random reference to the personality function
David Majnemer [Thu, 18 Jun 2015 18:31:46 +0000 (18:31 +0000)]
[CodeGen] Don't emit a random reference to the personality function

This should fix issues we've been seeing with Darwin.

llvm-svn: 240036

9 years agodon't repeat function / variable names in comments; NFC
Sanjay Patel [Thu, 18 Jun 2015 18:28:20 +0000 (18:28 +0000)]
don't repeat function / variable names in comments; NFC

llvm-svn: 240035

9 years agoUpdate external project versions in README.txt
Michael Kruse [Thu, 18 Jun 2015 18:07:06 +0000 (18:07 +0000)]
Update external project versions in README.txt

This was meant to committed in r240027, but was left behind because
svn, in contrast to git, only commits the changes in the directory you
are currently in.

llvm-svn: 240034

9 years ago[X86] Remove unneeded parameters and deduplicate stack alignment code
Reid Kleckner [Thu, 18 Jun 2015 18:03:25 +0000 (18:03 +0000)]
[X86] Remove unneeded parameters and deduplicate stack alignment code

NFC

llvm-svn: 240033

9 years agoFix misplaced comment
Pavel Labath [Thu, 18 Jun 2015 17:56:45 +0000 (17:56 +0000)]
Fix misplaced comment

llvm-svn: 240032

9 years agoCOFF: Rename a function. NFC.
Rui Ueyama [Thu, 18 Jun 2015 17:29:50 +0000 (17:29 +0000)]
COFF: Rename a function. NFC.

llvm-svn: 240031

9 years agoAdd new test for stress testing stack unwinding
Tamas Berghammer [Thu, 18 Jun 2015 17:17:32 +0000 (17:17 +0000)]
Add new test for stress testing stack unwinding

This test case generates new tests from the source files dropped into
its directory. For stress testing stack unwinding it steps through the
code line by line and then tests unwinding from each instruction.

llvm-svn: 240030

9 years agoFix test regression TestDisassemble_VST1_64 (caused by r239996)
Tamas Berghammer [Thu, 18 Jun 2015 17:03:25 +0000 (17:03 +0000)]
Fix test regression TestDisassemble_VST1_64 (caused by r239996)

llvm-svn: 240029

9 years agotsan: mark meta shadow as NOHUGEPAGE
Dmitry Vyukov [Thu, 18 Jun 2015 16:57:37 +0000 (16:57 +0000)]
tsan: mark meta shadow as NOHUGEPAGE

Meta shadow is compressing and we don't flush it,
so it makes sense to mark it as NOHUGEPAGE to not over-allocate memory.
On one program it reduces memory consumption from 5GB to 2.5GB.

llvm-svn: 240028

9 years agoUpdate ISL to isl-0.15-3-g532568a
Michael Kruse [Thu, 18 Jun 2015 16:45:40 +0000 (16:45 +0000)]
Update ISL to isl-0.15-3-g532568a

This version adds small integer optimization, but is not active by
default. It will be enabled in a later commit.

The schedule-fuse=min/max option has been replaced by the
serialize-sccs option. Adapting Polly was necessary, but retaining the
name polly-opt-fusion=min/max.

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

Reviewers: grosser
llvm-svn: 240027

9 years agoAdd missing overrides to MultiplexConsumer. Test coverage will be
Adrian Prantl [Thu, 18 Jun 2015 16:41:53 +0000 (16:41 +0000)]
Add missing overrides to MultiplexConsumer. Test coverage will be
provided by an upcoming commit.

llvm-svn: 240026

9 years agoFix a typo.
Adrian Prantl [Thu, 18 Jun 2015 16:41:51 +0000 (16:41 +0000)]
Fix a typo.

llvm-svn: 240025

9 years agoclang-format: Row back on the AlwaysBreakBeforeMultilineStrings change.
Daniel Jasper [Thu, 18 Jun 2015 16:05:17 +0000 (16:05 +0000)]
clang-format: Row back on the AlwaysBreakBeforeMultilineStrings change.

It was a bit too aggressive.

With this patch, we keep on breaking here:
  aaaaaaaaaaaaa(aaaaaaa,
                "aaaaaaa"
                "bbbbbbb");

But don't break in:
  aaaaaaaaaaaaa(aaaaaaa, aaaaaaaa("aaaaaaa"
                                  "bbbbbbb"));

llvm-svn: 240024

9 years ago[EliminateDuplicatePHINodes] Replace custom hash map with DenseSet.
Benjamin Kramer [Thu, 18 Jun 2015 16:01:00 +0000 (16:01 +0000)]
[EliminateDuplicatePHINodes] Replace custom hash map with DenseSet.

While there use hash_combine instead of hand-rolled hashing. No
functionality change intended.

llvm-svn: 240023

9 years agofix typo; NFC
Sanjay Patel [Thu, 18 Jun 2015 15:53:33 +0000 (15:53 +0000)]
fix typo; NFC

llvm-svn: 240022

9 years agoclang-format: Better support functions with elaborated enum return types.
Daniel Jasper [Thu, 18 Jun 2015 15:45:17 +0000 (15:45 +0000)]
clang-format: Better support functions with elaborated enum return types.

Before, this wasn't formatted properly:
  enum ::C f() {
    return a;
  }

llvm-svn: 240021

9 years ago[SPARC] Repair GOT references to internal symbols.
James Y Knight [Thu, 18 Jun 2015 15:05:15 +0000 (15:05 +0000)]
[SPARC] Repair GOT references to internal symbols.

They had been getting emitted as a section + offset reference, which
is bogus since the value needs to be the offset within the GOT, not
the actual address of the symbol's object.

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

llvm-svn: 240020

9 years agoAllow case-insensitive values for -march for AArch64 target in line with GCC.
Gabor Ballabas [Thu, 18 Jun 2015 14:23:12 +0000 (14:23 +0000)]
Allow case-insensitive values for -march for AArch64 target in line with GCC.

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

llvm-svn: 240019

9 years ago[OPENMP] Codegen for 'proc_bind' clause (4.0).
Alexey Bataev [Thu, 18 Jun 2015 13:40:03 +0000 (13:40 +0000)]
[OPENMP] Codegen for 'proc_bind' clause (4.0).

Adds emission of the code for 'proc_bind(master|close|spread)' clause:
call void @__kmpc_push_proc_bind(<loc>, i32 thread_id, i32 4|3|2)

llvm-svn: 240018

9 years agoConvert a few tests to use llvm-mc.
Rafael Espindola [Thu, 18 Jun 2015 13:39:07 +0000 (13:39 +0000)]
Convert a few tests to use llvm-mc.

llvm-svn: 240017

9 years ago[LLDB][MIPS] Addressing some errors and warnings due to rL239991
Mohit K. Bhakkad [Thu, 18 Jun 2015 13:35:29 +0000 (13:35 +0000)]
[LLDB][MIPS] Addressing some errors and warnings due to rL239991

llvm-svn: 240016

9 years agoquick fix for failure from r.240012
Asaf Badouh [Thu, 18 Jun 2015 12:57:24 +0000 (12:57 +0000)]
quick fix for failure from r.240012

failure:
http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/11847/steps/build_Lld/logs/stdio

llvm-svn: 240015

9 years agoclang-format: [JS] Add a special case for indenting function literals.
Daniel Jasper [Thu, 18 Jun 2015 12:32:59 +0000 (12:32 +0000)]
clang-format: [JS] Add a special case for indenting function literals.

Before:
  var func =
      function() {
        doSomething();
      };

After:
  var func =
      function() {
    doSomething();
  };

This is a very narrow special case which fixes most of the discrepency
with what our users do. In the long run, we should try to come up with
a more generic fix for indenting these.

llvm-svn: 240014

9 years ago[X86][AVX2] Added AVX2 SINT_TO_FP/UINT_TO_FP tests
Simon Pilgrim [Thu, 18 Jun 2015 12:32:28 +0000 (12:32 +0000)]
[X86][AVX2] Added AVX2 SINT_TO_FP/UINT_TO_FP tests

llvm-svn: 240013

9 years ago[AVX512]
Asaf Badouh [Thu, 18 Jun 2015 12:30:53 +0000 (12:30 +0000)]
[AVX512]
add instructions: VPAVGB and VPAVGW

review
http://reviews.llvm.org/D10504

llvm-svn: 240012

9 years ago[OPENMP] Support for '#pragma omp taskgroup' directive.
Alexey Bataev [Thu, 18 Jun 2015 12:14:09 +0000 (12:14 +0000)]
[OPENMP] Support for '#pragma omp taskgroup' directive.

Added parsing, sema analysis and codegen for '#pragma omp taskgroup' directive (OpenMP 4.0).
The code for directive is generated the following way:
#pragma omp taskgroup
<body>

void __kmpc_taskgroup(<loc>, thread_id);
<body>
void __kmpc_end_taskgroup(<loc>, thread_id);

llvm-svn: 240011

9 years agoUpdate LLVM bindings after r239940. Apparently these aren't included in
Daniel Jasper [Thu, 18 Jun 2015 11:51:16 +0000 (11:51 +0000)]
Update LLVM bindings after r239940. Apparently these aren't included in
any tests and I even don't know how to run the tests. This seems like a
minimal change to make them work again, although I can't really verify
at this point. Additionally, it probably makes sense to propagate the
personality parameter removal further.

llvm-svn: 240010

9 years ago[OPENMP] Fixed test for '#pragma omp parallel for simd'.
Alexey Bataev [Thu, 18 Jun 2015 11:26:55 +0000 (11:26 +0000)]
[OPENMP] Fixed test for '#pragma omp parallel for simd'.

llvm-svn: 240009

9 years ago[clang] Refactoring of conditions so they use isOneOf() instead of multiple is().
Daniel Marjamaki [Thu, 18 Jun 2015 10:59:26 +0000 (10:59 +0000)]
[clang] Refactoring of conditions so they use isOneOf() instead of multiple is().

llvm-svn: 240008

9 years agoFix duplicate shared module list entries
Aidan Dodds [Thu, 18 Jun 2015 10:25:54 +0000 (10:25 +0000)]
Fix duplicate shared module list entries

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

llvm-svn: 240007

9 years ago[OPENMP] Add support for 'omp parallel for' directive.
Alexey Bataev [Thu, 18 Jun 2015 10:10:12 +0000 (10:10 +0000)]
[OPENMP] Add support for 'omp parallel for' directive.

Codegen for this directive is a combined codegen for 'omp parallel' region with 'omp for simd' region inside. Clauses are supported.

llvm-svn: 240006

9 years ago[MIPS64] Correct generic register number of argument registers in reginfo
Sagar Thakur [Thu, 18 Jun 2015 09:36:31 +0000 (09:36 +0000)]
[MIPS64] Correct generic register number of argument registers in reginfo

llvm-svn: 240005

9 years agoclang-format: Make AlwaysBreakBeforeMultilineStrings more conservative.
Daniel Jasper [Thu, 18 Jun 2015 09:12:47 +0000 (09:12 +0000)]
clang-format: Make AlwaysBreakBeforeMultilineStrings more conservative.

In essence this is meant to consistently indent multiline strings by a
fixed amount of spaces from the start of the line. Don't do this in
cases where it wouldn't help anyway.

Before:
  someFunction(aaaaa,
               "aaaaa"
               "bbbbb");

After:
  someFunction(aaaaa, "aaaaa"
                      "bbbbb");

llvm-svn: 240004

9 years agoAVX-512: (fixed) Added encoding of all forms of VPERMT2W/D/Q/PS/PD and VPERMI2W/D...
Elena Demikhovsky [Thu, 18 Jun 2015 08:56:19 +0000 (08:56 +0000)]
AVX-512: (fixed) Added encoding of all forms of VPERMT2W/D/Q/PS/PD and VPERMI2W/D/Q/PS/PD.
Intrinsics and tests for them are comming in the next patch.

llvm-svn: 240003

9 years agoA correction in rL239997: Added missing entry in lib/Makefile
Bhushan D. Attarde [Thu, 18 Jun 2015 08:38:40 +0000 (08:38 +0000)]
A correction in rL239997: Added missing entry in lib/Makefile

llvm-svn: 240002

9 years agoreverted 239999 due to test failures
Elena Demikhovsky [Thu, 18 Jun 2015 08:06:49 +0000 (08:06 +0000)]
reverted 239999 due to test failures

llvm-svn: 240001

9 years agoAdd ABISysV_mips.cpp to the xcode project file.
Jason Molenda [Thu, 18 Jun 2015 07:32:14 +0000 (07:32 +0000)]
Add ABISysV_mips.cpp to the xcode project file.

llvm-svn: 240000

9 years agoAVX-512: Added encoding of all forms of VPERMT2W/D/Q/PS/PD
Elena Demikhovsky [Thu, 18 Jun 2015 07:29:40 +0000 (07:29 +0000)]
AVX-512: Added encoding of all forms of VPERMT2W/D/Q/PS/PD
and VPERMI2W/D/Q/PS/PD.
Intrinsics and tests for them are comming in the next patch.

llvm-svn: 239999

9 years agoA correction in rL239996
Mohit K. Bhakkad [Thu, 18 Jun 2015 07:12:25 +0000 (07:12 +0000)]
A correction in rL239996

llvm-svn: 239998

9 years ago[LLDB][MIPS] ABI Plugin for MIPS32
Bhushan D. Attarde [Thu, 18 Jun 2015 07:02:10 +0000 (07:02 +0000)]
[LLDB][MIPS] ABI Plugin for MIPS32

SUMMARY:
This patch implements ABI plugin for MIPS32.

Reviewers: clayborg
Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits
Differential Revision: http://reviews.llvm.org/D10240

llvm-svn: 239997

9 years ago[LLDB][MIPS] Emulation of MIPS64 floating-point branch instructions
Mohit K. Bhakkad [Thu, 18 Jun 2015 06:03:27 +0000 (06:03 +0000)]
[LLDB][MIPS] Emulation of MIPS64 floating-point branch instructions
Patch by Jaydeep Patil

SUMMARY:
1. Added emulation of MIPS64 floating-point branch instructions
2. Updated GetRegisterInfo to recognize floating-point registers
3. Provided CPU information while creating createMCSubtargetInfo in disassembler
4. Bug fix in emulation of JIC and JIALC
5. Correct identification of breakpoint when set in a delay slot of a branch instruction

Reviewers: clayborg
Subscribers: bhushan, mohit.bhakkad, sagar, nitesh.jain, lldb-commits.
Differential Revision: http://reviews.llvm.org/D10355

llvm-svn: 239996