platform/upstream/llvm.git
10 years agoFix a regression from r211653.
Rafael Espindola [Wed, 25 Jun 2014 05:31:22 +0000 (05:31 +0000)]
Fix a regression from r211653.

The method was empty in the null streamer but I mistakenly replaced it with
the aborting one in MCStreamer.

llvm-svn: 211666

10 years ago[Driver] Follow-up to r211598, r211663. Do not build a dynamic linker
Simon Atanasyan [Wed, 25 Jun 2014 05:00:59 +0000 (05:00 +0000)]
[Driver] Follow-up to r211598, r211663. Do not build a dynamic linker
path using sub-strings concatenation. Return the whole string explicitly.

llvm-svn: 211665

10 years agoMCNullStreamer.cpp: Roll back a few empty methods that have been marked as unreachabl...
NAKAMURA Takumi [Wed, 25 Jun 2014 04:34:36 +0000 (04:34 +0000)]
MCNullStreamer.cpp: Roll back a few empty methods that have been marked as unreachable in MCStreamer.cpp.

  void EmitCOFFSecRel32(MCSymbol const *Symbol) override {}
  void EmitGPRel32Value(const MCExpr *Value) override {}

It should fix crash like "llc -mtriple=i686-cygwin -filetype=null".

llvm-svn: 211664

10 years agoTools.cpp: Update getLinuxDynamicLinker() to return Twine instead of StringRef, since...
NAKAMURA Takumi [Wed, 25 Jun 2014 04:34:20 +0000 (04:34 +0000)]
Tools.cpp: Update getLinuxDynamicLinker() to return Twine instead of StringRef, since r211598 has introduced manipulation of return string.

llvm-svn: 211663

10 years agoVirtualFileSystemTest.cpp: Get rid of initializer list on std::vector, to appease...
NAKAMURA Takumi [Wed, 25 Jun 2014 04:34:10 +0000 (04:34 +0000)]
VirtualFileSystemTest.cpp: Get rid of initializer list on std::vector, to appease msc17.

llvm-svn: 211662

10 years agoReformat.
NAKAMURA Takumi [Wed, 25 Jun 2014 04:34:00 +0000 (04:34 +0000)]
Reformat.

llvm-svn: 211661

10 years ago[OPENMP] Improved code and replaced struct by lambda.
Alexey Bataev [Wed, 25 Jun 2014 04:09:13 +0000 (04:09 +0000)]
[OPENMP] Improved code and replaced struct by lambda.

llvm-svn: 211660

10 years agoCodeGen/X86/pr20088.ll: Add -march=x86-64, or llc fails due to non-x86 default target.
NAKAMURA Takumi [Wed, 25 Jun 2014 03:05:47 +0000 (03:05 +0000)]
CodeGen/X86/pr20088.ll: Add -march=x86-64, or llc fails due to non-x86 default target.

llvm-svn: 211659

10 years agoAdded an option to turn OFF the "detach on error" behavior that was added
Jim Ingham [Wed, 25 Jun 2014 02:32:56 +0000 (02:32 +0000)]
Added an option to turn OFF the "detach on error" behavior that was added
to debugserver when launching processes.

<rdar://problem/16216199>

llvm-svn: 211658

10 years agoImplement predefined stdint macros
JF Bastien [Wed, 25 Jun 2014 01:31:33 +0000 (01:31 +0000)]
Implement predefined stdint macros

Add predefined stdint macros that match the given patterns:

U?INT{_,_FAST,_LEAST}{8,16,32,64}_{MAX,TYPE}
U?INT{PTR,MAX}_{MAX,TYPE}

http://reviews.llvm.org/D4141

Author: binji
llvm-svn: 211657

10 years agoUse SourceMgr::getMemoryBuffer() in a couple of places
Alp Toker [Wed, 25 Jun 2014 00:41:15 +0000 (00:41 +0000)]
Use SourceMgr::getMemoryBuffer() in a couple of places

Cleanup only.

llvm-svn: 211656

10 years agoRemove extra newline from log Printf
Ed Maste [Wed, 25 Jun 2014 00:38:35 +0000 (00:38 +0000)]
Remove extra newline from log Printf

Clean up this one specifically, as it has the effect of double-spacing
the list of thread stop reasons, and substantially bloats the log file
when opening a core with hundreds of threads.

There are other cases of extra newlines.  Some of them do increase
readability, so avoid a general sweep for now.

llvm-svn: 211655

10 years agoFix parsing nested __if_exists blocks
Reid Kleckner [Wed, 25 Jun 2014 00:28:35 +0000 (00:28 +0000)]
Fix parsing nested __if_exists blocks

Rather than having kw___if_exists be a special case of
ParseCompoundStatementBody, we can look for kw___if_exists in the big
switch over for valid statement tokens in ParseStatementOrDeclaration.

Nested __if_exists blocks are used in the DECLARE_REGISTRY_RESOURCEID
macro from atlcom.h.

llvm-svn: 211654

10 years agoMove some trivial methods up to MCStreamer.
Rafael Espindola [Wed, 25 Jun 2014 00:27:53 +0000 (00:27 +0000)]
Move some trivial methods up to MCStreamer.

This saves some duplicated boilerplate in RecordStreamer and NullStreamer.

llvm-svn: 211653

10 years ago[RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated
Lang Hames [Wed, 25 Jun 2014 00:20:53 +0000 (00:20 +0000)]
[RuntimeDyld] Adds the necessary hooks to MCJIT to be able to debug generated
MachO files using the GDB JIT debugging interface.

Patch by Keno Fischer. Thanks Keno!

llvm-svn: 211652

10 years agoSimplify the handling of .cfi_endproc.
Rafael Espindola [Wed, 25 Jun 2014 00:13:59 +0000 (00:13 +0000)]
Simplify the handling of .cfi_endproc.

No functionality change.

llvm-svn: 211651

10 years agoAdd a missing test for the __if_exists extension
Reid Kleckner [Wed, 25 Jun 2014 00:10:50 +0000 (00:10 +0000)]
Add a missing test for the __if_exists extension

MSVC does not create a new scope for the body of an __if_exists compound
statement.  Clang already gets this right today, but it was untested.

llvm-svn: 211650

10 years agoSplit tests for __if_exists out into their own file
Reid Kleckner [Wed, 25 Jun 2014 00:08:10 +0000 (00:08 +0000)]
Split tests for __if_exists out into their own file

llvm-svn: 211649

10 years agoMS ABI: Ignore dll attributes on partial template specializations
Hans Wennborg [Tue, 24 Jun 2014 23:57:13 +0000 (23:57 +0000)]
MS ABI: Ignore dll attributes on partial template specializations

llvm-svn: 211648

10 years agoMerge handleDLLImportAttr and handleDLLExportAttr into one function.
Hans Wennborg [Tue, 24 Jun 2014 23:57:05 +0000 (23:57 +0000)]
Merge handleDLLImportAttr and handleDLLExportAttr into one function.

llvm-svn: 211647

10 years agoSimplify EmitLabel.
Rafael Espindola [Tue, 24 Jun 2014 23:54:40 +0000 (23:54 +0000)]
Simplify EmitLabel.

All the "real" streamers were already calling to MCStreamer::EmitLabel
to do part of the work.

llvm-svn: 211646

10 years ago[FastISel][X86] Fold XALU condition into branch and compare.
Juergen Ributzka [Tue, 24 Jun 2014 23:51:21 +0000 (23:51 +0000)]
[FastISel][X86] Fold XALU condition into branch and compare.

Optimize the codegen of select and branch instructions to directly use the
EFLAGS from the {s|u}{add|sub|mul}.with.overflow intrinsics.

llvm-svn: 211645

10 years agoR600/SI: Use a ComplexPattern for MUBUF stores
Tom Stellard [Tue, 24 Jun 2014 23:33:07 +0000 (23:33 +0000)]
R600/SI: Use a ComplexPattern for MUBUF stores

Now that non-leaf ComplexPatterns are allowed we can fold all the MUBUF
store patterns into the instruction definition.  We will also be able to
reuse this new ComplexPattern for MUBUF loads and atomic operations.

llvm-svn: 211644

10 years agoR600: Promote i64 stores to v2i32
Tom Stellard [Tue, 24 Jun 2014 23:33:04 +0000 (23:33 +0000)]
R600: Promote i64 stores to v2i32

Now we need only one 64-bit pattern for stores.

llvm-svn: 211643

10 years agoldr-pseudo-obj-errors.s: Fix silly copypasto.
NAKAMURA Takumi [Tue, 24 Jun 2014 23:18:07 +0000 (23:18 +0000)]
ldr-pseudo-obj-errors.s: Fix silly copypasto.

llvm-svn: 211642

10 years agoProvide a better diagnostic when braces are put before the identifier.
Richard Trieu [Tue, 24 Jun 2014 23:14:24 +0000 (23:14 +0000)]
Provide a better diagnostic when braces are put before the identifier.

When a user types:
  int [4] foo;
assume that the user means:
  int foo[4];

Update the information for 'foo' to prevent additional errors, and provide
a fix-it hint to move the brackets to the correct location.

Additionally, suggest parens for types that require it, such as:
  int [4] *foo;
to:
  int (*foo)[4];

llvm-svn: 211641

10 years agollvm/test/MC/AArch64/ldr-pseudo-obj-errors.s: Add -triple=aarch64-linux. AArch64...
NAKAMURA Takumi [Tue, 24 Jun 2014 23:11:42 +0000 (23:11 +0000)]
llvm/test/MC/AArch64/ldr-pseudo-obj-errors.s: Add -triple=aarch64-linux. AArch64 is unaware of PECOFF for now.

FIXME: This should pass for also targeting aarch64-darwin.
llvm-svn: 211640

10 years agoPrint a=b as an assignment.
Rafael Espindola [Tue, 24 Jun 2014 22:45:16 +0000 (22:45 +0000)]
Print a=b as an assignment.

In assembly the expression a=b is parsed as an assignment, so it should be
printed as one.

This remove a truly horrible hack for producing a label with "a=.". It would
be used by codegen but would never be reached by the asm parser. Sorry I
missed this when it was first committed.

llvm-svn: 211639

10 years agoPatch from Keno Fischer to enable JITLoaderGDB with mach-o file support.
Greg Clayton [Tue, 24 Jun 2014 22:22:43 +0000 (22:22 +0000)]
Patch from Keno Fischer to enable JITLoaderGDB with mach-o file support.

The patch is as is with the functionality left disabled for apple vendors because of performance regressions. If this is enabled it ends up searching for symbols in all shared libraries that are loadeded.

llvm-svn: 211638

10 years agoR600: Fix inconsistency in rsq instructions.
Matt Arsenault [Tue, 24 Jun 2014 22:13:39 +0000 (22:13 +0000)]
R600: Fix inconsistency in rsq instructions.

R600 was using a clamped version of rsq, but SI was not. Add a
new rsq_clamped intrinsic and use them consistently.

It's unclear to me from the documentation what behavior
the R600 instructions have, so I assume they have the legacy behavior
described by the SI documents. For R600, use RECIPSQRT_IEEE
for both llvm.AMDGPU.rsq.legacy and llvm.AMDGPU.rsq. R600 also
has RECIPSQRT_FF, which I'm not sure how it fits in here.

llvm-svn: 211637

10 years agoRework fix in r201744. You really DO need to waitpid twice to get the
Jim Ingham [Tue, 24 Jun 2014 21:51:42 +0000 (21:51 +0000)]
Rework fix in r201744.  You really DO need to waitpid twice to get the
process fully reaped.  The race & bad behavior was because we were letting
the reaping thread in LLDB to also set the Process exit status, so debugserver
would sometimes be shut down before it got a chance to report the exit status,
and then we got confused.

<rdar://problem/16555850>

llvm-svn: 211636

10 years agoFix up Windows build for the SBUnixSignals addition.
Todd Fiala [Tue, 24 Jun 2014 21:38:31 +0000 (21:38 +0000)]
Fix up Windows build for the SBUnixSignals addition.

Change by Zachary Turner.

llvm-svn: 211635

10 years agofixed a few typos in comments
Sanjay Patel [Tue, 24 Jun 2014 21:11:51 +0000 (21:11 +0000)]
fixed a few typos in comments

llvm-svn: 211634

10 years agoFix test issues from r211623 and remove test-only API
Ben Langmuir [Tue, 24 Jun 2014 21:08:13 +0000 (21:08 +0000)]
Fix test issues from r211623 and remove test-only API

1) missing iterator bits needed by libstdc++4.7
Using find_if was convenient, but since operator++ wasn't a good
interface anyway, I just replaced with a range-based for loop and
removed operator++ from the directory_iterator class.

2) stop relying on order of iterating real files

llvm-svn: 211633

10 years agoForgot to add file in r211631
Matt Arsenault [Tue, 24 Jun 2014 20:58:46 +0000 (20:58 +0000)]
Forgot to add file in r211631

llvm-svn: 211632

10 years agoAdd R600 builtin codegen.
Matt Arsenault [Tue, 24 Jun 2014 20:45:01 +0000 (20:45 +0000)]
Add R600 builtin codegen.

llvm-svn: 211631

10 years agoFix missing C++ mode comment
Matt Arsenault [Tue, 24 Jun 2014 20:32:13 +0000 (20:32 +0000)]
Fix missing C++ mode comment

llvm-svn: 211630

10 years agoeliminate install of duplicate headers (take 2)
David Fang [Tue, 24 Jun 2014 20:32:11 +0000 (20:32 +0000)]
eliminate install of duplicate headers (take 2)
Patch by Ryuta Suzuki

llvm-svn: 211629

10 years agoFix up scoping in a few tests (and delete one that validates unnecessary behavior).
David Blaikie [Tue, 24 Jun 2014 20:10:27 +0000 (20:10 +0000)]
Fix up scoping in a few tests (and delete one that validates unnecessary behavior).

Most of this is just tests that were silently succeeding in spite of
schema changes I made over a year ago. Cleaning them up as they lead to
failures in a change I'm working on/will come soon.

test/DebugInfo/2010-01-19-DbgScope.ll was removed as it tested miscoping
where a DebugLoc described a location not in the current function. The
test case doesn't describe why this is a valid situation and should be
supported, so I'm removing it and shortly going to commit changes that
make this firmly unsupported/assert-fail.

llvm-svn: 211628

10 years ago[PPC64] Fix PR20071 (fctiduz generated for targets lacking that instruction)
Bill Schmidt [Tue, 24 Jun 2014 20:05:18 +0000 (20:05 +0000)]
[PPC64] Fix PR20071 (fctiduz generated for targets lacking that instruction)

PR20071 identifies a problem in PowerPC's fast-isel implementation for
floating-point conversion to integer.  The fctiduz instruction was added in
Power ISA 2.06 (i.e., Power7 and later).  However, this instruction is being
generated regardless of which 64-bit PowerPC target is selected.

The intent is for fast-isel to punt to DAG selection when this instruction is
not available.  This patch implements that change.  For testing purposes, the
existing fast-isel-conversion.ll test adds a RUN line for -mcpu=970 and tests
for the expected code generation.  Additionally, the existing test
fast-isel-conversion-p5.ll was found to be incorrectly expecting the
unavailable instruction to be generated.  I've removed these test variants
since we have adequate coverage in fast-isel-conversion.ll.

llvm-svn: 211627

10 years agoCorrectly Load Mixed FP-GP Variadic Arguments for x86-64.
Rafael Espindola [Tue, 24 Jun 2014 20:01:50 +0000 (20:01 +0000)]
Correctly Load Mixed FP-GP Variadic Arguments for x86-64.

According to the x86-64 ABI, structures with both floating point and
integer members are split between floating-point and general purpose
registers, and consecutive 32-bit floats can be packed into a single
floating point register.

In the case of variadic functions these are stored to memory and the position
recorded in the va_list. This was already correctly implemented in
llvm.va_start.

The problem is that the code in clang for implementing va_arg was reading
floating point registers from the wrong location.

Patch by Thomas Jablin.

Fixes PR20018.

llvm-svn: 211626

10 years agoDisable the bits of r211623 that broke the bots
Ben Langmuir [Tue, 24 Jun 2014 20:00:30 +0000 (20:00 +0000)]
Disable the bits of r211623 that broke the bots

Part of my test seems to rely on iterator bits that I didn't implement,
at least in the gcc bots. Disabling while I investigate.

llvm-svn: 211625

10 years agoUse appropriate default PIE settings for OpenBSD.
Brad Smith [Tue, 24 Jun 2014 19:51:29 +0000 (19:51 +0000)]
Use appropriate default PIE settings for OpenBSD.

llvm-svn: 211624

10 years agoAdd directory_iterator for (non-recursive) iteration of VFS directories
Ben Langmuir [Tue, 24 Jun 2014 19:37:16 +0000 (19:37 +0000)]
Add directory_iterator for (non-recursive) iteration of VFS directories

The API is based on sys::fs::directory_iterator, but it allows iterating
over overlays and the yaml-based VFS.  For now, it isn't used by
anything (except its tests).

llvm-svn: 211623

10 years agoSimplify optimization-remark.c test following r211610
Alp Toker [Tue, 24 Jun 2014 19:23:10 +0000 (19:23 +0000)]
Simplify optimization-remark.c test following r211610

With LocTrackingOnly there's no longer a user-facing distinction so the NDEBUG
checks can go away. (Except maybe column info, but -verify only checks line
numbers anyway.)

Also add a RUN line to validate the traditional !LocTrackingOnly case.

llvm-svn: 211622

10 years agoRestore r211547: Add newline on last line of a few files.
Ed Maste [Tue, 24 Jun 2014 19:18:28 +0000 (19:18 +0000)]
Restore r211547: Add newline on last line of a few files.

llvm-svn: 211621

10 years agoRestore fixes reverted by r211607:
Ed Maste [Tue, 24 Jun 2014 19:16:18 +0000 (19:16 +0000)]
Restore fixes reverted by r211607:

r209631: Use MIUtilSystemLinux on FreeBSD as well

  We should later rename this file (probably MIUtilSystemPOSIX), but
  more clean-up is still needed here, and we can wait until we better
  understand how this code may be shared between FreeBSD, Linux, and OS X.

r209632: Add stdlib.h for malloc and friends

r209633: Remove include of obsolete stropts.h header

  The header is for POSIX streams functionality, and does not exist on
  FreeBSD, OS X, or contemporary Linux distributions.

Issue reported by John Wolfe.

llvm-svn: 211620

10 years ago[Driver][Mips] Support mips64-linux-gnuabi64 / mips64el-linux-gnuabi64 target triples.
Simon Atanasyan [Tue, 24 Jun 2014 19:00:12 +0000 (19:00 +0000)]
[Driver][Mips] Support mips64-linux-gnuabi64 / mips64el-linux-gnuabi64 target triples.

The patch fixes the bug #19869.
http://llvm.org/bugs/show_bug.cgi?id=19869

llvm-svn: 211619

10 years agoRemove unused files, causing CMake build error.
Deepak Panickal [Tue, 24 Jun 2014 18:20:51 +0000 (18:20 +0000)]
Remove unused files, causing CMake build error.

llvm-svn: 211618

10 years agovpblend intrinsics combines as shifts intrinsics due to absence return stmt between...
Robert Khasanov [Tue, 24 Jun 2014 18:08:04 +0000 (18:08 +0000)]
vpblend intrinsics combines as shifts intrinsics due to absence return stmt between them
Fix PR20088

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

llvm-svn: 211617

10 years agoR600: Remove DIV_INF
Matt Arsenault [Tue, 24 Jun 2014 17:42:16 +0000 (17:42 +0000)]
R600: Remove DIV_INF

This corresponded to an amdil instruction which there is
a 2 instruction equivalent for.

llvm-svn: 211616

10 years agoFix test added in r211610 so it doesn't race on output file creation.
David Blaikie [Tue, 24 Jun 2014 17:31:05 +0000 (17:31 +0000)]
Fix test added in r211610 so it doesn't race on output file creation.

llvm-svn: 211615

10 years agoR600/SI: Move pattern to instruction definition
Matt Arsenault [Tue, 24 Jun 2014 17:17:06 +0000 (17:17 +0000)]
R600/SI: Move pattern to instruction definition

llvm-svn: 211614

10 years agoFix test case in r211605/r211533
Weiming Zhao [Tue, 24 Jun 2014 17:05:43 +0000 (17:05 +0000)]
Fix test case in r211605/r211533

The test case in
"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64" should
only work with Linux.

llvm-svn: 211613

10 years ago[Refactor] Create nicer test cases from C/C++
Johannes Doerfert [Tue, 24 Jun 2014 17:02:53 +0000 (17:02 +0000)]
[Refactor] Create nicer test cases from C/C++

Insert a header into the new testcase containing a sample RUN line a FIXME and
an XFAIL. Then insert the formated C code and finally the LLVM-IR without
attributes, the module ID or the target triple.

llvm-svn: 211612

10 years agoObjective-C. When we use @selector(save:), etc. there may be more
Fariborz Jahanian [Tue, 24 Jun 2014 17:02:19 +0000 (17:02 +0000)]
Objective-C. When we use @selector(save:), etc. there may be more
than one method with mismatched type of same selector name.
clang issues a warning to point this out since it may cause
undefined behavior. There are cases though that some APIs
don't care about user methods and such warnings are perceived as
noise. This patch allows users to add paren delimiters around
selector name to turn off such warnings. So, @selector((save:)) will
turn off the warning. It also provides 'fixit' so user knows
what to do. // rdar://16458579

llvm-svn: 211611

10 years agoAdd new debug kind LocTrackingOnly.
Diego Novillo [Tue, 24 Jun 2014 17:02:17 +0000 (17:02 +0000)]
Add new debug kind LocTrackingOnly.

Summary:
This new debug emission kind supports emitting line location
information in all instructions, but stops code generation
from emitting debug info to the final output.

This mode is useful when the backend wants to track source
locations during code generation, but it does not want to
produce debug info. This is currently used by optimization
remarks (-Rpass, -Rpass-missed and -Rpass-analysis).

When one of the -Rpass flags is used, the front end will enable
location tracking, only if no other debug option is enabled.

To prevent debug information from being generated, a new debug
info kind LocTrackingOnly causes DIBuilder::createCompileUnit() to
not emit the llvm.dbg.cu annotation. This blocks final code generation
from generating debug info in the back end.

Depends on D4234.

Reviewers: echristo, dblaikie

Subscribers: cfe-commits

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

llvm-svn: 211610

10 years agoAdd new debug kind LocTrackingOnly.
Diego Novillo [Tue, 24 Jun 2014 17:02:03 +0000 (17:02 +0000)]
Add new debug kind LocTrackingOnly.

Summary:
This new debug emission kind supports emitting line location
information in all instructions, but stops code generation
from emitting debug info to the final output.

This mode is useful when the backend wants to track source
locations during code generation, but it does not want to
produce debug info. This is currently used by optimization
remarks (-pass-remarks, -pass-remarks-missed and
-pass-remarks-analysis).

To prevent debug info emission, DIBuilder never inserts the
annotation 'llvm.dbg.cu' when LocTrackingOnly is enabled.

Reviewers: echristo, dblaikie

Subscribers: llvm-commits

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

llvm-svn: 211609

10 years agoRemove ARM XFAIL from passing test
Greg Fitzgerald [Tue, 24 Jun 2014 16:58:59 +0000 (16:58 +0000)]
Remove ARM XFAIL from passing test

llvm-svn: 211608

10 years agoAdded support for new MI commands and bug fixes. More details in MIReadme.txt.
Deepak Panickal [Tue, 24 Jun 2014 16:35:50 +0000 (16:35 +0000)]
Added support for new MI commands and bug fixes. More details in MIReadme.txt.

llvm-svn: 211607

10 years agoAllow static_assert inside an anonymous union; fixes PR20021 as well as implements...
Aaron Ballman [Tue, 24 Jun 2014 16:22:41 +0000 (16:22 +0000)]
Allow static_assert inside an anonymous union; fixes PR20021 as well as implements C++ Issue 1940.

llvm-svn: 211606

10 years agoResubmit commit r211533
Weiming Zhao [Tue, 24 Jun 2014 16:21:38 +0000 (16:21 +0000)]
Resubmit commit r211533

"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
Missed files are added in this commit.

llvm-svn: 211605

10 years agoUse lowercase windows.h for mingw cross compilation.
Logan Chien [Tue, 24 Jun 2014 16:18:10 +0000 (16:18 +0000)]
Use lowercase windows.h for mingw cross compilation.

llvm-svn: 211604

10 years agoCodeGen: Avoid multiple strlen calls
David Majnemer [Tue, 24 Jun 2014 16:01:53 +0000 (16:01 +0000)]
CodeGen: Avoid multiple strlen calls

Use a StringRef to hold our section prefix.  This avoids multiple calls
to strlen.

llvm-svn: 211602

10 years agoARM: Fix TPsoft for Thumb mode
Christian Pirker [Tue, 24 Jun 2014 15:45:59 +0000 (15:45 +0000)]
ARM: Fix TPsoft for Thumb mode

Reviewed at http://reviews.llvm.org/D4230

llvm-svn: 211601

10 years agoRemove an empty directory left after r211508.
Alexander Kornienko [Tue, 24 Jun 2014 15:38:38 +0000 (15:38 +0000)]
Remove an empty directory left after r211508.

llvm-svn: 211600

10 years agoFix "warning: fallthrough annotation does not directly precede switch label" in lambdas.
Alexander Kornienko [Tue, 24 Jun 2014 15:28:21 +0000 (15:28 +0000)]
Fix "warning: fallthrough annotation does not directly precede switch label" in lambdas.

Summary: This patch fixes http://llvm.org/PR17864 - "warning: fallthrough annotation does not directly precede switch label" in lambdas.

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: rnk, cfe-commits

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

llvm-svn: 211599

10 years ago[mips] Correct linux dynamic linker for -mnan=2008
Daniel Sanders [Tue, 24 Jun 2014 15:04:16 +0000 (15:04 +0000)]
[mips] Correct linux dynamic linker for -mnan=2008

Summary:
The dynamic linker is named ld-linux-mipsn8.so.1 when -mnan=2008 is given (or
is the default). It remains ld.so.1 for other cases.

This is necessary for MIPS32r6/MIPS64r6 since these ISA's default to -mnan=2008.

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

llvm-svn: 211598

10 years agoReplace two release calls with std::move. I missed this on the previous commit.
Rafael Espindola [Tue, 24 Jun 2014 14:25:17 +0000 (14:25 +0000)]
Replace two release calls with std::move. I missed this on the previous commit.

llvm-svn: 211597

10 years agoUpdate for llvm api change.
Rafael Espindola [Tue, 24 Jun 2014 13:57:13 +0000 (13:57 +0000)]
Update for llvm api change.

llvm-svn: 211596

10 years agoPass a unique_ptr<MemoryBuffer> to the constructors in the Binary hierarchy.
Rafael Espindola [Tue, 24 Jun 2014 13:56:32 +0000 (13:56 +0000)]
Pass a unique_ptr<MemoryBuffer> to the constructors in the  Binary hierarchy.

Once the objects are constructed, they own the buffer. Passing a unique_ptr
makes that clear.

llvm-svn: 211595

10 years agoRevert: r211588 - [mips] Use __clear_cache builtin instead of cacheflush() in Unix...
Daniel Sanders [Tue, 24 Jun 2014 13:53:56 +0000 (13:53 +0000)]
Revert: r211588 - [mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateInstructionCache()

Buildbot reports a test failure on the llvm-mips-linux builder and blames r211588.
Although it doesn't appear in the blamelist, it seems it could also be r211587
(because it's committed to compiler-rt?) since they were tested together.

Reverting the most likely suspect (r211588) to confirm one way or the other.

llvm-svn: 211594

10 years agoRevert r211121 (and r211285), "Change libclang initialization to use std::call_once...
NAKAMURA Takumi [Tue, 24 Jun 2014 13:50:01 +0000 (13:50 +0000)]
Revert r211121 (and r211285), "Change libclang initialization to use std::call_once instead of"

It broke mingw builder and cygwin-clang stage2, possibly lack of tls in <mutex>.

llvm-svn: 211593

10 years agoRevert r211287, "Remove support for LLVM runtime multi-threading."
NAKAMURA Takumi [Tue, 24 Jun 2014 13:36:31 +0000 (13:36 +0000)]
Revert r211287, "Remove support for LLVM runtime multi-threading."

libclang still requires it on cygming, lack of incomplete <mutex>.

llvm-svn: 211592

10 years agocmake: Fix reference to Pluto file
Tobias Grosser [Tue, 24 Jun 2014 13:31:42 +0000 (13:31 +0000)]
cmake: Fix reference to Pluto file

llvm-svn: 211591

10 years ago[mips] Added support for assembling sdbbp.
Daniel Sanders [Tue, 24 Jun 2014 13:00:32 +0000 (13:00 +0000)]
[mips] Added support for assembling sdbbp.

Summary:
This instruction is re-encoded in MIPS32r6/MIPS64r6 without changing the
restrictions. We hadn't implemented it for earlier ISA's so it has been added to those too.

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

llvm-svn: 211590

10 years ago[OPENMP] Additional checking for 'collapse' clause.
Alexey Bataev [Tue, 24 Jun 2014 12:55:56 +0000 (12:55 +0000)]
[OPENMP] Additional checking for 'collapse' clause.

llvm-svn: 211589

10 years ago[mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateIn...
Daniel Sanders [Tue, 24 Jun 2014 12:26:49 +0000 (12:26 +0000)]
[mips] Use __clear_cache builtin instead of cacheflush() in Unix Memory::InvalidateInstructionCache()

MIPS64 Android bionic has removed cacheflush(). Use __clear_cache() instead for 32-bit and 64-bit MIPS

Patch by Duane Sand <Duane.Sand@imgtec.com>

llvm-svn: 211588

10 years ago[asan] adding support of 32-bit address sanitizer for MIPS
Daniel Sanders [Tue, 24 Jun 2014 12:08:18 +0000 (12:08 +0000)]
[asan] adding support of 32-bit address sanitizer for MIPS

Summary: The patch supports both the clang cross-compiler and native compiler

Patch by Kumar Sukhani <Kumar.Sukhani@imgtec.com>

Test Plan:
Kumar had the following asan test results when compiled on a MIPS board:

  Expected Passes    : 96
  Expected Failures  : 2
  Unsupported Tests  : 84
  Unexpected Passes  : 4
  Unexpected Failures: 19

The list of unexpected failures can be found in the review.

Reviewers: kcc, petarj, dsanders

Reviewed By: kcc

Subscribers: farazs, kcc, llvm-commits

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

llvm-svn: 211587

10 years agoARM: remove dead CodeGen functions.
Tim Northover [Tue, 24 Jun 2014 12:07:44 +0000 (12:07 +0000)]
ARM: remove dead CodeGen functions.

These two are no longer being used by NEON codegen.

llvm-svn: 211586

10 years ago[msan] Fix origin copying.
Evgeniy Stepanov [Tue, 24 Jun 2014 11:50:26 +0000 (11:50 +0000)]
[msan] Fix origin copying.

Conditions for the first and the last origin value in range were wrong.

llvm-svn: 211585

10 years agoInstCombine: Disable umul.with.overflow recognition for vectors.
Benjamin Kramer [Tue, 24 Jun 2014 10:47:52 +0000 (10:47 +0000)]
InstCombine: Disable umul.with.overflow recognition for vectors.

It doesn't make a lot on most targets and the code isn't ready for it. PR20113.

llvm-svn: 211583

10 years agoInstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr.
Benjamin Kramer [Tue, 24 Jun 2014 10:38:10 +0000 (10:38 +0000)]
InstCombine: Don't try to reorder shuffles where the mask is a ConstantExpr.

We can't analyze the individual values of a vector expression. PR20114.

llvm-svn: 211581

10 years agoAdd half limits
Jeroen Ketema [Tue, 24 Jun 2014 09:51:01 +0000 (09:51 +0000)]
Add half limits

These are apparently only defined in OpenCL 1.2.

HALF_MAX, HALF_MIN and HALF_EPSILON are currently omitted. Clang does
not seem to support the ‘h’ suffix for half float constants even with
the cl_khr_fp16 extension enabled.

Reviewed-by: Tom Sellard <tom@stellard.net>
llvm-svn: 211579

10 years agoIntroduce CLC_VERSION macros v2
Jeroen Ketema [Tue, 24 Jun 2014 09:46:52 +0000 (09:46 +0000)]
Introduce CLC_VERSION macros v2

Add these out-of-order in clc.h so we can use these in other headers.

v2: Take into account the lack of a definition in OpenCL 1.0

Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 211578

10 years agoAdd MAXFLOAT
Jeroen Ketema [Tue, 24 Jun 2014 09:41:28 +0000 (09:41 +0000)]
Add MAXFLOAT

Align definitions while we are here.

Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 211577

10 years agoMove clcmacro.h to avoid cluttering user namespace v2
Jeroen Ketema [Tue, 24 Jun 2014 09:36:32 +0000 (09:36 +0000)]
Move clcmacro.h to avoid cluttering user namespace v2

v2: - use quotes instead of <>
    - add include to r600/lib/math/nextafter.c changed

Reviewed-by: Tom Stellard <tom@stellard.net>
Reviewed-by: Aaron Watry <awatry@gmail.com>
llvm-svn: 211576

10 years agoclang-format: Understand that breaking before lambdas is fine.
Daniel Jasper [Tue, 24 Jun 2014 09:15:49 +0000 (09:15 +0000)]
clang-format: Understand that breaking before lambdas is fine.

Before:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa([](
      const aaaaaaaaaa &a) { return a; });

After:
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      [](const aaaaaaaaaa &a) { return a; });

llvm-svn: 211575

10 years ago[msan] Print stats even on successful run with atexit=1.
Evgeniy Stepanov [Tue, 24 Jun 2014 09:04:06 +0000 (09:04 +0000)]
[msan] Print stats even on successful run with atexit=1.

llvm-svn: 211574

10 years agoRemove use of llvm.codegen intrinsic for GPGPU codegen
Yabin Hu [Tue, 24 Jun 2014 08:11:36 +0000 (08:11 +0000)]
Remove use of llvm.codegen intrinsic for GPGPU codegen

We use llvm.codegen intrinsic to generate code for embedded LLVM-IR
strings. The reason we introduce such a intrinsic is that previous
clang/opt tools was NOT linked with various LLVM targets and their
AsmParsers and AsmPrinters. Since clang/opt been linked with all the
needed libraries, we no longer need the llvm.codegen intrinsic.

llvm-svn: 211573

10 years agoDriver: Restore proper naming of crashdump files
Justin Bogner [Tue, 24 Jun 2014 08:01:01 +0000 (08:01 +0000)]
Driver: Restore proper naming of crashdump files

Based on a review of r211411 by Jordan Rose.

llvm-svn: 211572

10 years agoGlobalOpt: Don't optimize dllimport for initializers
David Majnemer [Tue, 24 Jun 2014 06:53:45 +0000 (06:53 +0000)]
GlobalOpt: Don't optimize dllimport for initializers

Referencing a dllimport variable requires actually instructions, not
just a relocation.  This fixes PR19955.

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

llvm-svn: 211571

10 years agoAST: Address of dllimport functions isn't constant
David Majnemer [Tue, 24 Jun 2014 06:40:51 +0000 (06:40 +0000)]
AST: Address of dllimport functions isn't constant

The address of dllimport functions can be accessed one of two ways:
- Through the IAT which is symbolically referred to with a symbol
  starting with __imp_.
- Via the wrapper-function which ends up calling through the __imp_
  symbol.

The problem with using the wrapper-function is that it's address will
not compare as equal in all translation units.  Specifically, it will
compare unequally with the translation unit which defines the function.

This fixes PR19955.

llvm-svn: 211570

10 years agoInclude <tuple> for std::tie
Alexey Samsonov [Tue, 24 Jun 2014 05:59:52 +0000 (05:59 +0000)]
Include <tuple> for std::tie

llvm-svn: 211569

10 years agoAST: Address of dllimport variables isn't constant
David Majnemer [Tue, 24 Jun 2014 05:59:13 +0000 (05:59 +0000)]
AST: Address of dllimport variables isn't constant

The address of dllimport variables isn't something that can be
meaningfully used in a constexpr context and isn't suitable for
evaluation at load-time.  They require loads from memory to properly
evaluate.

This fixes PR19955.

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

llvm-svn: 211568

10 years ago[AArch64] Fix a build_vector pattern match fail
Kevin Qin [Tue, 24 Jun 2014 05:37:27 +0000 (05:37 +0000)]
[AArch64] Fix a build_vector pattern match fail
caused by defect in isBuildVectorAllZeros().

llvm-svn: 211567

10 years ago[OPENMP] Added initial checking of nesting of OpenMP regions.
Alexey Bataev [Tue, 24 Jun 2014 04:39:47 +0000 (04:39 +0000)]
[OPENMP] Added initial checking of nesting of OpenMP regions.

llvm-svn: 211566

10 years ago[Disasm][AVX512] Implement decoding of top bit for non-destructive reg fields
Adam Nemet [Tue, 24 Jun 2014 01:42:32 +0000 (01:42 +0000)]
[Disasm][AVX512] Implement decoding of top bit for non-destructive reg fields

V' bit in the P2 byte of the EVEX prefix provides the top bit of the NDD and
NDS register fields.  This was simply not used in the decoder until now.

Fixes <rdar://problem/17402661>

llvm-svn: 211565

10 years ago[Emacs] Use spaces rather than tabs for indentation in tablegen-mode
Adam Nemet [Tue, 24 Jun 2014 01:42:29 +0000 (01:42 +0000)]
[Emacs] Use spaces rather than tabs for indentation in tablegen-mode

llvm-svn: 211564

10 years agoSome calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug...
Marshall Clow [Tue, 24 Jun 2014 00:46:19 +0000 (00:46 +0000)]
Some calls to get<>() were qualified. Some were not. Qualify them all. Fixes bug #20092. Thanks to Agustín Bergé for the bug report and the fix.

llvm-svn: 211563