platform/upstream/llvm.git
10 years agoFactored out Linux proc file reading into separate class.
Todd Fiala [Mon, 30 Jun 2014 04:14:13 +0000 (04:14 +0000)]
Factored out Linux proc file reading into separate class.

Both NativeProcessLinux (in llgs branch) and Linux Host.cpp had similar code to handle /proc
file reading.  I factored that out into a new Linux-specific ProcFileReader class and added a method
that the llgs branch will use for line-by-line parsing.

This change also adds numerous Linux-specific files to Xcode that were missing from the Xcode
project files.

Related to https://github.com/tfiala/lldb/issues/27

llvm-svn: 212015

10 years agoDisable CodeGen/captured-statements-nested.c
Alexey Bataev [Mon, 30 Jun 2014 03:30:41 +0000 (03:30 +0000)]
Disable CodeGen/captured-statements-nested.c

llvm-svn: 212014

10 years agoTemp XFAIL CodeGen/captured-statements-nested.c to fix the test
Alexey Bataev [Mon, 30 Jun 2014 03:14:43 +0000 (03:14 +0000)]
Temp XFAIL CodeGen/captured-statements-nested.c to fix the test

llvm-svn: 212013

10 years agoX86: fix comment
Saleem Abdulrasool [Mon, 30 Jun 2014 03:11:18 +0000 (03:11 +0000)]
X86: fix comment

Fix a comment typo `DbgLocLImport` instead of `DLLImport`.

llvm-svn: 212012

10 years agoARM: use symbolic name for constant
Saleem Abdulrasool [Mon, 30 Jun 2014 03:11:14 +0000 (03:11 +0000)]
ARM: use symbolic name for constant

This just changes the constant value to the symbolic name corresponding to it.
NFC.

llvm-svn: 212011

10 years agoUsing of variable length arrays in captured statements and OpenMP constructs.
Alexey Bataev [Mon, 30 Jun 2014 02:55:54 +0000 (02:55 +0000)]
Using of variable length arrays in captured statements and OpenMP constructs.
Differential Revision: http://reviews.llvm.org/D4067

llvm-svn: 212010

10 years agotest: move test from CodeGen to Sema
Saleem Abdulrasool [Mon, 30 Jun 2014 02:14:37 +0000 (02:14 +0000)]
test: move test from CodeGen to Sema

Move test from CodeGen to Sema to more accurately reflect what is being tested
as pointed out by Alp.

llvm-svn: 212009

10 years agoRemove some incorrect test suppressions
Alp Toker [Mon, 30 Jun 2014 01:34:09 +0000 (01:34 +0000)]
Remove some incorrect test suppressions

These don't actually require any registered backend to run.

This commit tests the water with a handful of fixes for what is a more
widespread problem.

llvm-svn: 212008

10 years agoCodeGenAction::ExecuteAction(): check for invalid LLVM source locations
Alp Toker [Mon, 30 Jun 2014 01:33:59 +0000 (01:33 +0000)]
CodeGenAction::ExecuteAction(): check for invalid LLVM source locations

Add sign checks to deal with the fact that IR parser line/column pairs are
signed integers and sometimes invalid.

The crash path is potentially triggered by corrupt '.bc' files in practice,
though I don't have a binary input test case that can be checked-in right now.

(Unfortunately the backend itself crashes on various ill-formed '.bc' inputs so
this bandage isn't as helpful as it appears yet.)

llvm-svn: 212007

10 years agoExtract an isReservedName() function
Alp Toker [Mon, 30 Jun 2014 01:33:53 +0000 (01:33 +0000)]
Extract an isReservedName() function

We'll want to share the implementation if anything else decides to check
for reserved names in future, so make this little snippet of code more
discoverable.

Also remove the __va_list_tag and __builtin_va_list special-case
checks. They're leftovers from before when the reserved name logic was
added.

No change in functionality.

llvm-svn: 212006

10 years agoPull ProcessInfo and ProcessLaunchInfo out of Target/Process.
Todd Fiala [Mon, 30 Jun 2014 00:30:53 +0000 (00:30 +0000)]
Pull ProcessInfo and ProcessLaunchInfo out of Target/Process.

Elevate ProcessInfo and ProcessLaunchInfo into their own headers.
llgs will be using ProcessLaunchInfo but doesn't need to pull in
the rest of Process.h.

This also moves a bunch of implementation details from the header
declarations into ProcessInfo.cpp and ProcessLaunchInfo.cpp.

Tested on Ubuntu 14.04 Cmake and MacOSX Xcode.

Related to https://github.com/tfiala/lldb/issues/26.

llvm-svn: 212005

10 years agoBasic: correct the va_list type on Windows on ARM
Saleem Abdulrasool [Sun, 29 Jun 2014 23:05:41 +0000 (23:05 +0000)]
Basic: correct the va_list type on Windows on ARM

Windows on ARM defines va_list as a typedef for char *.  Although the semantics
of argument passing for variadic functions matches AAPCS VFP, the wrapped
struct __va_list type is unused.  This makes the intrinsic definition for
va_list match that of Visual Studio.

llvm-svn: 212004

10 years agoFix a stray semi-colon. (Found by a pedantic warning)
Chandler Carruth [Sun, 29 Jun 2014 22:42:51 +0000 (22:42 +0000)]
Fix a stray semi-colon. (Found by a pedantic warning)

llvm-svn: 212003

10 years agoAnother attempt to add a clang-tidy check for flagging C-style casts.
Alexander Kornienko [Sun, 29 Jun 2014 22:19:53 +0000 (22:19 +0000)]
Another attempt to add a clang-tidy check for flagging C-style casts.

Summary:
The first version failed the SubstNonTypeTempateParmExpr-related test
on some buildbots. This one uses the new substNonTypeTempateParmExpr matcher to
filter out implicit C-style casts.

This patch depends on D4327.

Reviewers: djasper

Reviewed By: djasper

Subscribers: aemerson, cfe-commits

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

llvm-svn: 212002

10 years agoAdd a matcher for SubstNonTypeTemplateParmExpr.
Alexander Kornienko [Sun, 29 Jun 2014 22:18:53 +0000 (22:18 +0000)]
Add a matcher for SubstNonTypeTemplateParmExpr.

Reviewers: klimek, djasper

Reviewed By: djasper

Subscribers: klimek, aemerson, cfe-commits

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

llvm-svn: 212001

10 years agoCodeGen: rename Win64 ExceptionHandling to WinEH
Saleem Abdulrasool [Sun, 29 Jun 2014 21:43:47 +0000 (21:43 +0000)]
CodeGen: rename Win64 ExceptionHandling to WinEH

This exception format is not specific to Windows x64.  A similar approach is
taken on nearly all architectures.  Generalise the name to reflect reality.
This will eventually be used for Windows on ARM data emission as well.

Switch the enum and namespace into an enum class.

llvm-svn: 212000

10 years ago[Mips] Fix MIPS ABI name in the test. The name "64" is accepted by both gcc
Simon Atanasyan [Sun, 29 Jun 2014 16:51:16 +0000 (16:51 +0000)]
[Mips] Fix MIPS ABI name in the test. The name "64" is accepted by both gcc
and Clang drivers but internally LLVM/Clang use the name "n64".

llvm-svn: 211999

10 years agoRevert r211866, r211895 and r211995, "Driver: use GNU::Link for the Generic_GCC toolc...
NAKAMURA Takumi [Sun, 29 Jun 2014 16:00:11 +0000 (16:00 +0000)]
Revert r211866, r211895 and r211995, "Driver: use GNU::Link for the Generic_GCC toolchain". It broke users of Generic_GCC, cygwin and mingw32.

It reverts commits as follows:
  r211866: "Driver: use GNU::Link for the Generic_GCC toolchain"
  r211895: "Replace GetProgramPath("ld") with GetLinkerPath()."
  r211995: "Driver: add a cygwin linker tool"

llvm-svn: 211998

10 years agoLibclangTest.cpp: s/uint/unsigned/. I think 'uint' is not a standard type.
NAKAMURA Takumi [Sun, 29 Jun 2014 11:07:48 +0000 (11:07 +0000)]
LibclangTest.cpp: s/uint/unsigned/. I think 'uint' is not a standard type.

llvm-svn: 211997

10 years agoclang/test/CodeGenCXX/windows-itanium-exceptions.cpp: Add REQUIRES:asserts for now.
NAKAMURA Takumi [Sun, 29 Jun 2014 11:03:28 +0000 (11:03 +0000)]
clang/test/CodeGenCXX/windows-itanium-exceptions.cpp: Add REQUIRES:asserts for now.

llvm-svn: 211996

10 years agoDriver: add a cygwin linker tool
Saleem Abdulrasool [Sun, 29 Jun 2014 06:11:14 +0000 (06:11 +0000)]
Driver: add a cygwin linker tool

This adds a linker tool for the Windows cygwin environment.  This linker
invocation is significantly different from the generic ld invocation.  It
requires additional parameters as well as does not accept some normal
parameters.  This should fix self-hosting on Cygwin.

llvm-svn: 211995

10 years agoMC: rename EmitWin64EH routines
Saleem Abdulrasool [Sun, 29 Jun 2014 01:52:01 +0000 (01:52 +0000)]
MC: rename EmitWin64EH routines

Rename the routines to reflect the reality that they are more related to call
frame information than to Win64 EH. Although EH is implemented in an intertwined
manner by augmenting with an exception handler and an associated parameter, the
majority of these routines emit information required to unwind the frames. This
also helps identify that these routines are generic for most windows platforms
(they apply equally to nearly all architectures except x86) although the
encoding of the information is architecture dependent.

Unwinding data is emitted via EmitWinCFI* and exception handling information via
EmitWinEH*.

llvm-svn: 211994

10 years agoAdd ops() method to SDNode that returns an ArrayRef<SDUse>. Use it to simplify some...
Craig Topper [Sun, 29 Jun 2014 00:40:57 +0000 (00:40 +0000)]
Add ops() method to SDNode that returns an ArrayRef<SDUse>. Use it to simplify some code.

llvm-svn: 211993

10 years agotest: add a test for windows itanium exceptions
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:15 +0000 (23:34 +0000)]
test: add a test for windows itanium exceptions

Some time ago, I noticed that try would get resolved incorrectly for Windows
Itanium targets.  Add an explicit test to exsure that exceptions are handled
correctly for Windows Itanium environments.

llvm-svn: 211992

10 years agoBasic: fix handling for Windows Itanium environment
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:11 +0000 (23:34 +0000)]
Basic: fix handling for Windows Itanium environment

This corrects the handling for i686-windows-itanium.  This environment is nearly
identical to Windows MSVC, except it uses the itanium ABI for C++.

llvm-svn: 211991

10 years agoBasic: whitespace cleanup
Saleem Abdulrasool [Sat, 28 Jun 2014 23:34:07 +0000 (23:34 +0000)]
Basic: whitespace cleanup

Remove unnecessary separation of anonymous namespace.  NFC.

llvm-svn: 211990

10 years agoExtend -Wtautological-undefined-compare and -Wundefined-bool-conversion to
Richard Trieu [Sat, 28 Jun 2014 23:25:37 +0000 (23:25 +0000)]
Extend -Wtautological-undefined-compare and -Wundefined-bool-conversion to
trigger on taking the address of a reference that is returned from a function
call.

llvm-svn: 211989

10 years agoImport MutableArrayRef into clang namespace.
Craig Topper [Sat, 28 Jun 2014 23:22:33 +0000 (23:22 +0000)]
Import MutableArrayRef into clang namespace.

llvm-svn: 211988

10 years agoRemove llvm:: from uses of ArrayRef.
Craig Topper [Sat, 28 Jun 2014 23:22:23 +0000 (23:22 +0000)]
Remove llvm:: from uses of ArrayRef.

llvm-svn: 211987

10 years agoUse a range loop. No functionality change.
Rafael Espindola [Sat, 28 Jun 2014 18:44:59 +0000 (18:44 +0000)]
Use a range loop. No functionality change.

llvm-svn: 211986

10 years agoSimplify code a bit, no functionality change.
Rafael Espindola [Sat, 28 Jun 2014 17:46:19 +0000 (17:46 +0000)]
Simplify code a bit, no functionality change.

llvm-svn: 211985

10 years ago[Driver][Mips] Fix else-after-return.
Simon Atanasyan [Sat, 28 Jun 2014 15:56:08 +0000 (15:56 +0000)]
[Driver][Mips] Fix else-after-return.

No functional changes.

llvm-svn: 211984

10 years ago[Driver][Mips] Remove redundant brackets.
Simon Atanasyan [Sat, 28 Jun 2014 15:56:03 +0000 (15:56 +0000)]
[Driver][Mips] Remove redundant brackets.

No functional changes.

llvm-svn: 211983

10 years ago[Driver][Mips] Remove redundant abstract/override function.
Simon Atanasyan [Sat, 28 Jun 2014 15:55:55 +0000 (15:55 +0000)]
[Driver][Mips] Remove redundant abstract/override function.

No functional changes.

llvm-svn: 211982

10 years ago[C++11] Use more range based fors
Tobias Grosser [Sat, 28 Jun 2014 08:59:45 +0000 (08:59 +0000)]
[C++11] Use more range based fors

llvm-svn: 211981

10 years agoRemove redundant code and use C++ range fors
Tobias Grosser [Sat, 28 Jun 2014 08:59:38 +0000 (08:59 +0000)]
Remove redundant code and use C++ range fors

llvm-svn: 211980

10 years agoGet arm_acle tests from r211962 working
Alp Toker [Sat, 28 Jun 2014 06:51:27 +0000 (06:51 +0000)]
Get arm_acle tests from r211962 working

llvm-svn: 211979

10 years agoFix build following r211956
Alp Toker [Sat, 28 Jun 2014 06:31:47 +0000 (06:31 +0000)]
Fix build following r211956

RuntimeDyld now uses MCInst::dump_pretty() which introduces a dependency on
'MC'.

llvm-svn: 211978

10 years agoVerifier: Update assert message to reflect LangRef
David Majnemer [Sat, 28 Jun 2014 06:24:49 +0000 (06:24 +0000)]
Verifier: Update assert message to reflect LangRef

No functionality change, just correcting the assertion message.

llvm-svn: 211977

10 years ago[x86] Fix a bug in the v8i16 shuffling exposed by the new splat-like
Chandler Carruth [Sat, 28 Jun 2014 05:46:28 +0000 (05:46 +0000)]
[x86] Fix a bug in the v8i16 shuffling exposed by the new splat-like
lowering for v16i8.

ASan and some bots caught this bug with existing test cases. Fixing it
even fixed a miscompile with one of the test cases. I'm still a bit
suspicious of this test case as I've not taken a proper amount of time
to think about it, but the fix here is strict goodness.

llvm-svn: 211976

10 years agoFix this test to not write to the source tree, and instead to write to
Chandler Carruth [Sat, 28 Jun 2014 05:18:49 +0000 (05:18 +0000)]
Fix this test to not write to the source tree, and instead to write to
a temporary file. This fixes the test in cases where the source tree is
mounted read-only.

llvm-svn: 211975

10 years ago[x86] Add handling for splat-like widenings of v16i8 shuffles.
Chandler Carruth [Sat, 28 Jun 2014 05:16:40 +0000 (05:16 +0000)]
[x86] Add handling for splat-like widenings of v16i8 shuffles.

These show up really frequently, not the least with actual splats. =] We
lowered these quite badly before. The new code path tries to widen i8
shuffles to i16 shuffles in a splat-like way. There are still some
inefficiencies in our i16 splat logic though, so we aren't really done
here.

Also, for certain patterns (bit of a gather-and-splat) we still
generate pretty silly code, and I've left a fixme for addressing it.
However, I'm not actually worried about this code pattern as much. The
old shuffle lowering generates a 29 instruction monstrosity for it that
should execute much more slowly.

llvm-svn: 211974

10 years agoThis file wasn't supposed to be checked in
David Majnemer [Sat, 28 Jun 2014 01:56:50 +0000 (01:56 +0000)]
This file wasn't supposed to be checked in

This was generated while trying to debug a test, it shouldn't have been
checked in.

Thanks to Alexander Kornienko for spotting this.

llvm-svn: 211973

10 years agoExtend -Wdynamic-class-memaccess to records containing dynamic classes
Reid Kleckner [Fri, 27 Jun 2014 23:58:21 +0000 (23:58 +0000)]
Extend -Wdynamic-class-memaccess to records containing dynamic classes

Reviewers: rtrieu

Subscribers: cfe-commits

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

llvm-svn: 211972

10 years ago[RuntimeDyld] Make sure that RuntimeDyld regression tests only run for targets
Lang Hames [Fri, 27 Jun 2014 23:29:18 +0000 (23:29 +0000)]
[RuntimeDyld] Make sure that RuntimeDyld regression tests only run for targets
that have been enabled.

Without this, testers will fail when llvm-rtdyld is invoked with triples for
unsupported targets.

llvm-svn: 211969

10 years agoDon't truncate the target triple when initializing clang.
Zachary Turner [Fri, 27 Jun 2014 23:19:42 +0000 (23:19 +0000)]
Don't truncate the target triple when initializing clang.

Reviewed by: Sean Callanan

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

llvm-svn: 211968

10 years agoRevert "Temporary hack to try cleaning extra .s file from bots."
Matt Arsenault [Fri, 27 Jun 2014 23:11:26 +0000 (23:11 +0000)]
Revert "Temporary hack to try cleaning extra .s file from bots."

llvm-svn: 211967

10 years agotsan: fix and re-enable a test
Dmitry Vyukov [Fri, 27 Jun 2014 22:27:02 +0000 (22:27 +0000)]
tsan: fix and re-enable a test

llvm-svn: 211966

10 years agoImplemented gdb-remote protocol tests for vCont;s and vCont;s:{thread}
Todd Fiala [Fri, 27 Jun 2014 22:11:56 +0000 (22:11 +0000)]
Implemented gdb-remote protocol tests for vCont;s and vCont;s:{thread}

Also added tests for presence of vCont;c, vCont;C, vCont;s, vCont;S as
returned by vCont? query.

Broke out single step functionality from TestLldbGdbServer into base class.
Used by new TestGdbRemoteSingleStep (using $s) and TestGdbRemote_vCont.

Also part of llgs wrap-up, see:
https://github.com/tfiala/lldb/issues/12

llvm-svn: 211965

10 years ago[Fix] Deleted renamed test after r211957
Johannes Doerfert [Fri, 27 Jun 2014 21:48:42 +0000 (21:48 +0000)]
[Fix] Deleted renamed test after r211957

llvm-svn: 211964

10 years agoTemporary hack to try cleaning extra .s file from bots.
Matt Arsenault [Fri, 27 Jun 2014 21:43:50 +0000 (21:43 +0000)]
Temporary hack to try cleaning extra .s file from bots.

llvm-svn: 211963

10 years agoIntroduce arm_acle.h supporting existing LLVM builtin intrinsics
Yi Kong [Fri, 27 Jun 2014 21:25:42 +0000 (21:25 +0000)]
Introduce arm_acle.h supporting existing LLVM builtin intrinsics

Summary: This patch introduces ACLE header file, implementing extensions that can be directly mapped to existing Clang intrinsics. It implements for both AArch32 and AArch64.

Reviewers: t.p.northover, compnerd, rengolin

Reviewed By: compnerd, rengolin

Subscribers: rnk, echristo, compnerd, aemerson, mroth, cfe-commits

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

llvm-svn: 211962

10 years ago[RuntimeDyld] Use a raw_ostream and llvm::format for int-to-string conversions.
Lang Hames [Fri, 27 Jun 2014 21:07:00 +0000 (21:07 +0000)]
[RuntimeDyld] Use a raw_ostream and llvm::format for int-to-string conversions.

Some users' C++11 standard libraries don't support std::to_string yet.

llvm-svn: 211961

10 years ago[AArch64] Fix memset ICE when memset value is f128.
Chad Rosier [Fri, 27 Jun 2014 21:05:09 +0000 (21:05 +0000)]
[AArch64] Fix memset ICE when memset value is f128.

llvm-svn: 211960

10 years agollvm-cov: Support specifying multiple source files
Justin Bogner [Fri, 27 Jun 2014 20:41:25 +0000 (20:41 +0000)]
llvm-cov: Support specifying multiple source files

Make llvm-cov compatible with gcov for cases where multiple files are
specified on the command line. That is, loop over each one and report
coverage, and report errors on stderr only rather than via return
code.

llvm-svn: 211959

10 years ago[RuntimeDyld] #include <cctype> header in RuntimeDyldChecker.cpp.
Lang Hames [Fri, 27 Jun 2014 20:37:39 +0000 (20:37 +0000)]
[RuntimeDyld] #include <cctype> header in RuntimeDyldChecker.cpp.

Hopefully this will unbreak the windows bots.

llvm-svn: 211958

10 years agoAllow multiple reductions per statement
Johannes Doerfert [Fri, 27 Jun 2014 20:31:28 +0000 (20:31 +0000)]
Allow multiple reductions per statement

  Iterate over all store memory accesses and check for valid binary reduction
  candidate loads by following the operands of the stored value.  For each
  candidate pair we check if they have the same base address and there are no
  other accesses which may overlap with them. This ensures that no intermediate
  value can escape into other memory locations or is overwritten at some point.

  + 17 test cases for reduction detection and reduction dependency modeling

llvm-svn: 211957

10 years ago[RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld.
Lang Hames [Fri, 27 Jun 2014 20:20:57 +0000 (20:20 +0000)]
[RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld.

This patch adds a "-verify" mode to the llvm-rtdyld utility. In verify mode,
llvm-rtdyld will test supplied expressions against the linked program images
that it creates in memory. This scheme can be used to verify the correctness
of the relocation logic applied by RuntimeDyld.

The expressions to test will be read out of files passed via the -check option
(there may be more than one of these). Expressions to check are extracted from
lines of the form:
# rtdyld-check: <expression>

This system is designed to fit the llvm-lit regression test workflow. It is
format and target agnostic, and supports verification of images linked for
remote targets. The expression language is defined in
llvm/include/llvm/RuntimeDyldChecker.h . Examples can be found in
test/ExecutionEngine/RuntimeDyld.

llvm-svn: 211956

10 years ago[x86] Fix another bug hit when bootstrapping with the new shuffle
Chandler Carruth [Fri, 27 Jun 2014 20:07:40 +0000 (20:07 +0000)]
[x86] Fix another bug hit when bootstrapping with the new shuffle
lowering.

For maximum irony, I had already discovered this bug, diagnosed it, and
left FIXMEs about it in the test cases. =[ I just failed to go back over
those until after i had reduced a bootstrap miscompile down to a single
TU, stared at the assembly for an hour, and figured out the bug. Again.

Oh well.

llvm-svn: 211955

10 years agoUpdated ObjectFileELF tests to include more varaints.
Todd Fiala [Fri, 27 Jun 2014 20:07:03 +0000 (20:07 +0000)]
Updated ObjectFileELF tests to include more varaints.

Removed the distribution EXEs from FreeBSD and Ubuntu.
Added a hello-world .cpp file, and compiled it for
several platform/compiler variants:

Ubuntu 14.04 x86_64, clang 3.5 (the ubuntu1 3.5 pre variant)
Ubuntu 14.04 x86_64, gcc 4.8.2
FreeBSD 10.0 x86_64, clang 3.3
FreeBSD 10.0 x86_64, gcc 4.7.3
NetBSD 6.1 x86_64, gcc 4.5.3

I also added the NetBSD expected architecture and triple.
Note I have NetBSD not appending the version info to the
OS name, in contrast to FreeBSD.

llvm-svn: 211954

10 years agoReverting r211950 -- it did not help resolve the -Wcomment warnings triggered in...
Aaron Ballman [Fri, 27 Jun 2014 19:52:34 +0000 (19:52 +0000)]
Reverting r211950 -- it did not help resolve the -Wcomment warnings triggered in GCC.

llvm-svn: 211953

10 years ago[NVPTX] Use GreatestCommonDivisor64 from MathExtras instead of using our own. Thanks...
Justin Holewinski [Fri, 27 Jun 2014 19:36:25 +0000 (19:36 +0000)]
[NVPTX] Use GreatestCommonDivisor64 from MathExtras instead of using our own.  Thanks Hal!

llvm-svn: 211952

10 years ago[mach-o] fix struct initialization to work with Windows compiler
Nick Kledzik [Fri, 27 Jun 2014 19:08:56 +0000 (19:08 +0000)]
[mach-o] fix struct initialization to work with Windows compiler

llvm-svn: 211951

10 years agoAdding some trailing whitespace after a comment previously ending with \ to ensure...
Aaron Ballman [Fri, 27 Jun 2014 19:05:17 +0000 (19:05 +0000)]
Adding some trailing whitespace after a comment previously ending with \ to ensure that it isn't lexed as a multiline comment. This silences some -Wcomment warnings.

llvm-svn: 211950

10 years agoInclude <tuple> to make buildbots happy
David Majnemer [Fri, 27 Jun 2014 18:38:12 +0000 (18:38 +0000)]
Include <tuple> to make buildbots happy

llvm-svn: 211949

10 years ago[NVPTX] Add reflect intrinsic (better than matching by function name)
Justin Holewinski [Fri, 27 Jun 2014 18:36:11 +0000 (18:36 +0000)]
[NVPTX] Add reflect intrinsic (better than matching by function name)

Also clean up some of the logic in NVVMReflect.cpp while we're messing around in there.

llvm-svn: 211948

10 years ago[NVPTX] Handle all possible vector types in getSetCCResultType, not just the ones...
Justin Holewinski [Fri, 27 Jun 2014 18:36:08 +0000 (18:36 +0000)]
[NVPTX] Handle all possible vector types in getSetCCResultType, not just the ones representable as MVTs

llvm-svn: 211947

10 years ago[NVPTX] Add 'b' asm constraint
Justin Holewinski [Fri, 27 Jun 2014 18:36:06 +0000 (18:36 +0000)]
[NVPTX] Add 'b' asm constraint

llvm-svn: 211946

10 years ago[NVPTX] Simplify some argument lowering logic
Justin Holewinski [Fri, 27 Jun 2014 18:36:04 +0000 (18:36 +0000)]
[NVPTX] Simplify some argument lowering logic

llvm-svn: 211945

10 years ago[NVPTX] Do not process samplers in GenericToNVVM
Justin Holewinski [Fri, 27 Jun 2014 18:36:02 +0000 (18:36 +0000)]
[NVPTX] Do not process samplers in GenericToNVVM

llvm-svn: 211944

10 years ago[NVPTX] Error out if initializer is given for variable in an address space that does...
Justin Holewinski [Fri, 27 Jun 2014 18:36:01 +0000 (18:36 +0000)]
[NVPTX] Error out if initializer is given for variable in an address space that does not support initialization

llvm-svn: 211943

10 years ago[NVPTX] Add support for .managed variables for UVM
Justin Holewinski [Fri, 27 Jun 2014 18:35:58 +0000 (18:35 +0000)]
[NVPTX] Add support for .managed variables for UVM

llvm-svn: 211942

10 years ago[NVPTX] Emit .weak linkage for link_once, weak, available_externally, and common...
Justin Holewinski [Fri, 27 Jun 2014 18:35:56 +0000 (18:35 +0000)]
[NVPTX] Emit .weak linkage for link_once, weak, available_externally, and common linkage

llvm-svn: 211941

10 years ago[NVPTX] Variables that start with llvm. or nvvm. are reserved and should not be emitted
Justin Holewinski [Fri, 27 Jun 2014 18:35:53 +0000 (18:35 +0000)]
[NVPTX] Variables that start with llvm. or nvvm. are reserved and should not be emitted

llvm-svn: 211940

10 years ago[NVPTX] Fix handling of ldg/ldu intrinsics.
Justin Holewinski [Fri, 27 Jun 2014 18:35:51 +0000 (18:35 +0000)]
[NVPTX] Fix handling of ldg/ldu intrinsics.

The address space of the pointer must be global (1) for these intrinsics.  There must also be alignment metadata attached to the intrinsic calls, e.g.

%val = tail call i32 @llvm.nvvm.ldu.i.global.i32.p1i32(i32 addrspace(1)* %ptr), !align !0

!0 = metadata !{i32 4}

llvm-svn: 211939

10 years ago[NVPTX] Clean up argument lowering code and properly handle alignment for structs...
Justin Holewinski [Fri, 27 Jun 2014 18:35:44 +0000 (18:35 +0000)]
[NVPTX] Clean up argument lowering code and properly handle alignment for structs and vectors

llvm-svn: 211938

10 years ago[NVPTX] Add missing boolean vector contents flag
Justin Holewinski [Fri, 27 Jun 2014 18:35:42 +0000 (18:35 +0000)]
[NVPTX] Add missing boolean vector contents flag

llvm-svn: 211937

10 years ago[NVPTX] Add support for [SHL,SRA,SRL]_PARTS
Justin Holewinski [Fri, 27 Jun 2014 18:35:40 +0000 (18:35 +0000)]
[NVPTX] Add support for [SHL,SRA,SRL]_PARTS

llvm-svn: 211936

10 years ago[NVPTX] Implement fma and imad contraction as target DAGCombiner patterns
Justin Holewinski [Fri, 27 Jun 2014 18:35:37 +0000 (18:35 +0000)]
[NVPTX] Implement fma and imad contraction as target DAGCombiner patterns

This also introduces DAGCombiner patterns for mul.wide to multiply two smaller integers and produce a larger integer

llvm-svn: 211935

10 years ago[NVPTX] Add support for efficient rotate instructions on SM 3.2+
Justin Holewinski [Fri, 27 Jun 2014 18:35:33 +0000 (18:35 +0000)]
[NVPTX] Add support for efficient rotate instructions on SM 3.2+

llvm-svn: 211934

10 years ago[NVPTX] Add missing isel patterns for 64-bit atomics
Justin Holewinski [Fri, 27 Jun 2014 18:35:30 +0000 (18:35 +0000)]
[NVPTX] Add missing isel patterns for 64-bit atomics

llvm-svn: 211933

10 years ago[NVPTX] Add isel patterns for bit-field extract (bfe)
Justin Holewinski [Fri, 27 Jun 2014 18:35:27 +0000 (18:35 +0000)]
[NVPTX] Add isel patterns for bit-field extract (bfe)

llvm-svn: 211932

10 years ago[NVPTX] Add support for isspacep instruction
Justin Holewinski [Fri, 27 Jun 2014 18:35:24 +0000 (18:35 +0000)]
[NVPTX] Add support for isspacep instruction

llvm-svn: 211931

10 years ago[NVPTX] Add support for envreg reads
Justin Holewinski [Fri, 27 Jun 2014 18:35:21 +0000 (18:35 +0000)]
[NVPTX] Add support for envreg reads

llvm-svn: 211930

10 years ago[NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell)
Justin Holewinski [Fri, 27 Jun 2014 18:35:18 +0000 (18:35 +0000)]
[NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell)

Default PTX version is set to PTX 3.2

llvm-svn: 211929

10 years ago[NVPTX] Update sub-target feature detection
Justin Holewinski [Fri, 27 Jun 2014 18:35:16 +0000 (18:35 +0000)]
[NVPTX] Update sub-target feature detection

llvm-svn: 211928

10 years ago[NVPTX] Directly control the Machine SSA passes that are invoked for NVPTX.
Justin Holewinski [Fri, 27 Jun 2014 18:35:14 +0000 (18:35 +0000)]
[NVPTX] Directly control the Machine SSA passes that are invoked for NVPTX.

NVPTX is a bit special in the optimizations it requires, so this gives
us better control over the backend optimization pipeline.

llvm-svn: 211927

10 years ago[NVPTX] Emit .weak when linkage is not external, internal, or private
Justin Holewinski [Fri, 27 Jun 2014 18:35:10 +0000 (18:35 +0000)]
[NVPTX] Emit .weak when linkage is not external, internal, or private

llvm-svn: 211926

10 years ago[NVPTX] Just use getTypeAllocSize() when computing return value size for structures...
Justin Holewinski [Fri, 27 Jun 2014 18:35:08 +0000 (18:35 +0000)]
[NVPTX] Just use getTypeAllocSize() when computing return value size for structures and vectors

llvm-svn: 211925

10 years agoVectorization documentation for loop hint pragmas and Rpass diagnostics.
Tyler Nowicki [Fri, 27 Jun 2014 18:30:08 +0000 (18:30 +0000)]
Vectorization documentation for loop hint pragmas and Rpass diagnostics.

llvm-svn: 211924

10 years agoSilencing some -Wcast-qual warnings. No functional changes intended.
Aaron Ballman [Fri, 27 Jun 2014 18:25:49 +0000 (18:25 +0000)]
Silencing some -Wcast-qual warnings. No functional changes intended.

llvm-svn: 211923

10 years ago[x86] Fix a miscompile in the new shuffle lowering uncovered by
Chandler Carruth [Fri, 27 Jun 2014 18:25:23 +0000 (18:25 +0000)]
[x86] Fix a miscompile in the new shuffle lowering uncovered by
a bootstrap.

I managed to mis-remember how PACKUS worked on x86, and was using undef
for the high bytes instead of zero. The fix is fairly obvious.

llvm-svn: 211922

10 years ago[mach-o] refactor x86_64 relocation handling.
Nick Kledzik [Fri, 27 Jun 2014 18:25:01 +0000 (18:25 +0000)]
[mach-o] refactor x86_64 relocation handling.

This is first step in reworking how mach-o relocations are processed.
The existing KindHandler is going to become a delgate/helper object for
processing architecture specific references.  The KindHandler knows how
to convert mach-o relocations into References and back, as well, as fixing
up the content the relocation is on.

One of the messy things about mach-o relocations is that they sometime
come in pairs, but the pairs still convert to one lld::Reference. So, the
conversion has to detect pairs (arch specific) and change the stride.

llvm-svn: 211921

10 years agoIR: Add COMDATs to the IR
David Majnemer [Fri, 27 Jun 2014 18:19:56 +0000 (18:19 +0000)]
IR: Add COMDATs to the IR

This new IR facility allows us to represent the object-file semantic of
a COMDAT group.

COMDATs allow us to tie together sections and make the inclusion of one
dependent on another. This is required to implement features like MS
ABI VFTables and optimizing away certain kinds of initialization in C++.

This functionality is only representable in COFF and ELF, Mach-O has no
similar mechanism.

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

llvm-svn: 211920

10 years agocmake: Don't do anything for LLVM_ENABLE_ASSERTIONS=OFF
Reid Kleckner [Fri, 27 Jun 2014 18:17:30 +0000 (18:17 +0000)]
cmake: Don't do anything for LLVM_ENABLE_ASSERTIONS=OFF

By default, CMake will set NDEBUG in Rel* builds and leave it off in
debug builds, so we shouldn't need to do anything ourselves.

Before this change, it was possible to a Debug build without assertions
(aka Debug-Asserts in the autoconf system) by configuring with
-DLLVM_ENABLE_ASSERTIONS=OFF, but this configuration isn't very useful.
You can still get the same effect by explicitly adding -DNDEBUG to
CFLAGS.

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

Patch by Janusz Sobczak!

llvm-svn: 211919

10 years agolldb can interrupt waitpid, so EINTR shouldn't be an error. This fixes the case
Julien Lerouge [Fri, 27 Jun 2014 18:02:54 +0000 (18:02 +0000)]
lldb can interrupt waitpid, so EINTR shouldn't be an error. This fixes the case
where there is no timeout. In the case where there is a timeout though, the
code is still wrong since it doesn't check that the alarm really went off.

Without this patch, I cannot debug a program that forks itself using
sys::ExecuteAndWait with lldb.

llvm-svn: 211918

10 years agoR600: Move trivial getters into header, use initializer list
Matt Arsenault [Fri, 27 Jun 2014 17:57:00 +0000 (17:57 +0000)]
R600: Move trivial getters into header, use initializer list

llvm-svn: 211917

10 years agoFix test so it doesn't try to write out temporary files into the test tree.
David Blaikie [Fri, 27 Jun 2014 17:45:43 +0000 (17:45 +0000)]
Fix test so it doesn't try to write out temporary files into the test tree.

llvm-svn: 211916

10 years agoRemove 'const' from MemoryBuffers used through the SourceManager
David Blaikie [Fri, 27 Jun 2014 17:40:03 +0000 (17:40 +0000)]
Remove 'const' from MemoryBuffers used through the SourceManager

This removes a const_cast added in r211884 that occurred due to an
inconsistency in how MemoryBuffers are handled between some parts of
clang and LLVM.

MemoryBuffers are immutable and the general convention in the LLVM
project is to omit const from immutable types as it's simply
redundant/verbose (see llvm::Type, for example). While this change
doesn't remove "const" from /every/ MemoryBuffer, it at least makes this
chain of ownership/usage consistent.

llvm-svn: 211915

10 years agoAvoid non-ascii character in the source code.
Logan Chien [Fri, 27 Jun 2014 17:25:54 +0000 (17:25 +0000)]
Avoid non-ascii character in the source code.

llvm-svn: 211914