platform/upstream/llvm.git
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

10 years agoSupport: Move class ScaledNumber
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:38:09 +0000 (00:38 +0000)]
Support: Move class ScaledNumber

ScaledNumber has been cleaned up enough to pull out of BFI now.  Still
work to do there (tests for shifting, bloated printing code, etc.), but
it seems clean enough for its new home.

llvm-svn: 211562

10 years agoBFI: Un-floatify more language
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:13 +0000 (00:26 +0000)]
BFI: Un-floatify more language

llvm-svn: 211561

10 years agoBFI: Remove more float-like language from ScaledNumber
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:10 +0000 (00:26 +0000)]
BFI: Remove more float-like language from ScaledNumber

llvm-svn: 211560

10 years agoSupport: Return ScaledNumbers::MaxScale from getQuotient()
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:26:08 +0000 (00:26 +0000)]
Support: Return ScaledNumbers::MaxScale from getQuotient()

Return MaxScale now that it's available.

llvm-svn: 211559

10 years agoSupport: Extract ScaledNumbers::MinScale and MaxScale
Duncan P. N. Exon Smith [Tue, 24 Jun 2014 00:15:19 +0000 (00:15 +0000)]
Support: Extract ScaledNumbers::MinScale and MaxScale

llvm-svn: 211558

10 years agoBFI: Change language from "exponent" to "scale"
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:57:12 +0000 (23:57 +0000)]
BFI: Change language from "exponent" to "scale"

llvm-svn: 211557

10 years agoBFI: Update ScaledNumber header docs
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:49:31 +0000 (23:49 +0000)]
BFI: Update ScaledNumber header docs

llvm-svn: 211556

10 years agoBFI: Rename UnsignedFloat => ScaledNumber
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:36:17 +0000 (23:36 +0000)]
BFI: Rename UnsignedFloat => ScaledNumber

A lot of the docs and API are out of date, but I'll leave that for a
separate commit.

llvm-svn: 211555

10 years agoFix comments from r211553
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:17:36 +0000 (23:17 +0000)]
Fix comments from r211553

llvm-svn: 211554

10 years agoSupport: Extract ScaledNumbers::getSum() and getDifference()
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:15:25 +0000 (23:15 +0000)]
Support: Extract ScaledNumbers::getSum() and getDifference()

llvm-svn: 211553

10 years agoSupport: Return scale from ScaledNumbers::matchScales()
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 23:14:51 +0000 (23:14 +0000)]
Support: Return scale from ScaledNumbers::matchScales()

This will be convenient when extracting `ScaledNumbers::getSum()`.

llvm-svn: 211552

10 years agoPropagate isAddressOfMember into typo correction so that we don't correct &qualified...
Nick Lewycky [Mon, 23 Jun 2014 22:57:51 +0000 (22:57 +0000)]
Propagate isAddressOfMember into typo correction so that we don't correct &qualified-id into &unqualified-id. Also make sure to set the naming class when we find the qualified-id in a different class than the nested name specifier specified so far. Fixes PR19681!

llvm-svn: 211551

10 years agonot: Only consider exit code 3 to be a crash with --crash
Reid Kleckner [Mon, 23 Jun 2014 22:54:33 +0000 (22:54 +0000)]
not: Only consider exit code 3 to be a crash with --crash

This fixes Clang's test/Index/comment-xml-schema.c with Cygwin's
xmllint.exe, which uses exit(3) for XML validation failure.

llvm-svn: 211550

10 years agoFix error handling for the AppleGetQueues and AppleGetPendingItems
Jason Molenda [Mon, 23 Jun 2014 22:45:54 +0000 (22:45 +0000)]
Fix error handling for the AppleGetQueues and AppleGetPendingItems
ClangFunctions if the clang function compilation fails for any reason.
<rdar://problem/16793965>

llvm-svn: 211549

10 years agoUpdate for llvm api change.
Rafael Espindola [Mon, 23 Jun 2014 22:29:12 +0000 (22:29 +0000)]
Update for llvm api change.

llvm-svn: 211548

10 years agoAdd newline on last line of a few files.
Jason Molenda [Mon, 23 Jun 2014 22:26:01 +0000 (22:26 +0000)]
Add newline on last line of a few files.

llvm-svn: 211547

10 years agoPass a std::unique_ptr& to the create??? methods is lib/Object.
Rafael Espindola [Mon, 23 Jun 2014 22:00:37 +0000 (22:00 +0000)]
Pass a std::unique_ptr& to the create??? methods is lib/Object.

This makes the buffer ownership on error conditions very natural. The buffer
is only moved out of the argument if an object is constructed that now
owns the buffer.

llvm-svn: 211546

10 years ago[FastISel][X86] Lower unsupported selects to control-flow.
Juergen Ributzka [Mon, 23 Jun 2014 21:55:44 +0000 (21:55 +0000)]
[FastISel][X86] Lower unsupported selects to control-flow.

The extends the select lowering coverage by emiting pseudo cmov
instructions. These insturction will be later on lowered to control-flow to
simulate the select.

llvm-svn: 211545

10 years ago[FastISel][X86] Add support for floating-point select.
Juergen Ributzka [Mon, 23 Jun 2014 21:55:40 +0000 (21:55 +0000)]
[FastISel][X86] Add support for floating-point select.

This extends the select lowering to support floating-point selects. The
lowering depends on SSE instructions and that the conditon comes from a
floating-point compare. Under this conditions it is possible to emit an
optimized instruction sequence that doesn't require any branches to
simulate the select.

llvm-svn: 211544

10 years ago[FastISel][X86] Optimize selects when the condition comes from a compare.
Juergen Ributzka [Mon, 23 Jun 2014 21:55:36 +0000 (21:55 +0000)]
[FastISel][X86] Optimize selects when the condition comes from a compare.

Optimize the select instructions sequence to use the EFLAGS directly from a
compare when possible.

llvm-svn: 211543

10 years agoMake ObjectFile and BitcodeReader always own the MemoryBuffer.
Rafael Espindola [Mon, 23 Jun 2014 21:53:12 +0000 (21:53 +0000)]
Make ObjectFile and BitcodeReader always own the MemoryBuffer.

This allows us to just use a std::unique_ptr to store the pointer to the buffer.
The flip side is that they have to support releasing the buffer back to the
caller.

Overall this looks like a more efficient and less brittle api.

llvm-svn: 211542

10 years agoTemporarily roll back the parts of r211241 where I fixed a
Jason Molenda [Mon, 23 Jun 2014 21:30:15 +0000 (21:30 +0000)]
Temporarily roll back the parts of r211241 where I fixed a
mistake in the lock acquistion in HistoryUnwind and HistoryThread.
We've got a deadlock with one use case of HistoryUnwind; I
need to figure out what lock ordering is causing this and fix
it for real.
<rdar://problem/17411904>

llvm-svn: 211541

10 years agoThis reverts commit r211533 and r211539.
Rafael Espindola [Mon, 23 Jun 2014 21:20:58 +0000 (21:20 +0000)]
This reverts commit r211533 and r211539.

 Revert "Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64"
 Revert "Fix cmake build."

It was missing a file.

llvm-svn: 211540

10 years agoFix cmake build.
Juergen Ributzka [Mon, 23 Jun 2014 21:15:55 +0000 (21:15 +0000)]
Fix cmake build.

llvm-svn: 211539

10 years agoSimplify memory management with std::unique_ptr.
Rafael Espindola [Mon, 23 Jun 2014 21:15:27 +0000 (21:15 +0000)]
Simplify memory management with std::unique_ptr.

llvm-svn: 211538

10 years agonm-trivial-object.test requires shell since Lit internal runner isn't capable of...
NAKAMURA Takumi [Mon, 23 Jun 2014 21:07:04 +0000 (21:07 +0000)]
nm-trivial-object.test requires shell since Lit internal runner isn't capable of chdir.

llvm-svn: 211537

10 years agoDon't set the ABI to apcs-gnu for non-ARM iOS targets (i.e., the
Sean Callanan [Mon, 23 Jun 2014 21:00:25 +0000 (21:00 +0000)]
Don't set the ABI to apcs-gnu for non-ARM iOS targets (i.e., the
simulator).

<rdar://problem/17399406>

llvm-svn: 211536

10 years agoPart 2 of SBUnitSignals check-in.
Todd Fiala [Mon, 23 Jun 2014 20:56:48 +0000 (20:56 +0000)]
Part 2 of SBUnitSignals check-in.

I missed adding a few new files to the change list.
The build is broken from r211526 without this fix.
(And Ed Maste caught it before I did, so this is
the remainder - the test methods).

llvm-svn: 211535

10 years agoAdd SBUnixSignals.i
Ed Maste [Mon, 23 Jun 2014 20:49:41 +0000 (20:49 +0000)]
Add SBUnixSignals.i

From the patch posted by Russell Harmon.

llvm-svn: 211534

10 years agoFix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64
Weiming Zhao [Mon, 23 Jun 2014 20:44:16 +0000 (20:44 +0000)]
Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64

This patch is based on the changes from ARM target [1,2]

Based on ARM doc [3], if the literal value can be loaded with a valid MOV,
it can emit that instruction. This is implemented in this patch.

[1] Fix PR18345: ldr= pseudo instruction produces incorrect code when using in inline assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit b92cca222898d87bbc764fa22e805adb04ef7f13 (r200777)
[2] Implement the ldr-pseudo opcode for ARM assembly
Author: David Peixotto <dpeixott@codeaurora.org>
commit 0fa193b08627927ccaa0804a34d80480894614b8 (r197708)
[3] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/CJAHAIBC.html

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

llvm-svn: 211533

10 years agoConvert a few methods to use ErrorOr.
Rafael Espindola [Mon, 23 Jun 2014 20:41:02 +0000 (20:41 +0000)]
Convert a few methods to use ErrorOr.

It used to be inconvenient to mix ErrorOr and UniquePtr, but with c++11
they work OK together.

llvm-svn: 211532

10 years agoSupport: Extract ScaledNumbers::matchScale()
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 20:40:45 +0000 (20:40 +0000)]
Support: Extract ScaledNumbers::matchScale()

llvm-svn: 211531

10 years agoFix spelling. s/overloaed/overloaded/
Jim Grosbach [Mon, 23 Jun 2014 20:28:43 +0000 (20:28 +0000)]
Fix spelling. s/overloaed/overloaded/

llvm-svn: 211530

10 years agoChange the default input for llvm-nm to be a.out instead of standard input
Kevin Enderby [Mon, 23 Jun 2014 20:27:53 +0000 (20:27 +0000)]
Change the default input for llvm-nm to be a.out instead of standard input
to match llvm-size and other UNIX systems for their nm(1).

Tweak test cases that used llvm-nm with standard input to add a "-" to
indicate that and add a test case to check the default of a.out for llvm-nm.

llvm-svn: 211529

10 years agoCodeGen: Remove a stray tab character (NFC)
Justin Bogner [Mon, 23 Jun 2014 20:03:28 +0000 (20:03 +0000)]
CodeGen: Remove a stray tab character (NFC)

llvm-svn: 211528

10 years ago[Mips] Add a target streamer when creating a null streamer.
Rafael Espindola [Mon, 23 Jun 2014 19:43:40 +0000 (19:43 +0000)]
[Mips] Add a target streamer when creating a null streamer.

Should fix DebugInfo/global.ll on the mips bot.

llvm-svn: 211527

10 years agoAdd API control of the signal disposition.
Todd Fiala [Mon, 23 Jun 2014 19:30:49 +0000 (19:30 +0000)]
Add API control of the signal disposition.

See http://reviews.llvm.org/D4221 for details.

This commit allows you to control the signals that lldb will suppress, stop or forward using the Python and C++ APIs.

Change by Russell Harmon.

Xcode build system changes (and any mistakes) by Todd Fiala.  Tested on MacOSX 10.9.3 and Xcode 6 beta.  (Xcode 5 is hitting the dependency checker crasher on all my systems).

llvm-svn: 211526

10 years agoRecommit 211309 (StringMap::insert), reverted in 211328 due to issues with private...
David Blaikie [Mon, 23 Jun 2014 18:28:53 +0000 (18:28 +0000)]
Recommit 211309 (StringMap::insert), reverted in 211328 due to issues with private, but non-deleted, move members.

Certain versions of GCC (~4.7) couldn't handle the SFINAE on access
control, but with "= delete" (hidden behind a macro for portability)
this issue is worked around/addressed.

Patch by Agustín Bergé

llvm-svn: 211525

10 years agoR600/SI: Verify restrictions on div_scale operands.
Matt Arsenault [Mon, 23 Jun 2014 18:28:31 +0000 (18:28 +0000)]
R600/SI: Verify restrictions on div_scale operands.

llvm-svn: 211524

10 years agoR600/SI: Fix div_scale intrinsic.
Matt Arsenault [Mon, 23 Jun 2014 18:28:28 +0000 (18:28 +0000)]
R600/SI: Fix div_scale intrinsic.

The operand that must match one of the others does matter,
and implement selecting for it.

llvm-svn: 211523

10 years agoR600: Fix formatting of intrinsic definitions.
Matt Arsenault [Mon, 23 Jun 2014 18:28:23 +0000 (18:28 +0000)]
R600: Fix formatting of intrinsic definitions.

It makes more sense for the GCCBuiltin name to come immediately
after the ID name.

llvm-svn: 211522

10 years agoCleanup r211507
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 18:08:58 +0000 (18:08 +0000)]
Cleanup r211507

llvm-svn: 211521

10 years agoARMEB: Vector extend operations
Christian Pirker [Mon, 23 Jun 2014 18:05:53 +0000 (18:05 +0000)]
ARMEB: Vector extend operations

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

llvm-svn: 211520

10 years agoR600: Remove AMDILISelLowering
Matt Arsenault [Mon, 23 Jun 2014 18:00:55 +0000 (18:00 +0000)]
R600: Remove AMDILISelLowering

llvm-svn: 211519

10 years agoR600: Select is not expensive.
Matt Arsenault [Mon, 23 Jun 2014 18:00:52 +0000 (18:00 +0000)]
R600: Select is not expensive.

llvm-svn: 211518

10 years agoR600: Move add/sub with overflow out of AMDILISelLowering
Matt Arsenault [Mon, 23 Jun 2014 18:00:49 +0000 (18:00 +0000)]
R600: Move add/sub with overflow out of AMDILISelLowering

Add more tests for these.

llvm-svn: 211517

10 years agoR600: Move more out of AMDILISelLowering
Matt Arsenault [Mon, 23 Jun 2014 18:00:44 +0000 (18:00 +0000)]
R600: Move more out of AMDILISelLowering

llvm-svn: 211516

10 years agoR600: Don't set fp_round_inreg action.
Matt Arsenault [Mon, 23 Jun 2014 18:00:41 +0000 (18:00 +0000)]
R600: Don't set fp_round_inreg action.

There's no point in setting this since it seems to only
by created in 1 place for ppcf128

llvm-svn: 211515

10 years agoR600/SI: Handle i64 sub.
Matt Arsenault [Mon, 23 Jun 2014 18:00:38 +0000 (18:00 +0000)]
R600/SI: Handle i64 sub.

We can handle it the same way as add

llvm-svn: 211514

10 years agoR600/SI: Move selection of i64 add to separate function.
Matt Arsenault [Mon, 23 Jun 2014 18:00:34 +0000 (18:00 +0000)]
R600/SI: Move selection of i64 add to separate function.

Also don't use a SmallVector for fixed size array.

llvm-svn: 211513

10 years agoR600: Rename AMDIL file
Matt Arsenault [Mon, 23 Jun 2014 18:00:31 +0000 (18:00 +0000)]
R600: Rename AMDIL file

llvm-svn: 211512

10 years agoFix missing words in sentence
Matt Arsenault [Mon, 23 Jun 2014 18:00:26 +0000 (18:00 +0000)]
Fix missing words in sentence

llvm-svn: 211511

10 years agoUse helper function
Matt Arsenault [Mon, 23 Jun 2014 18:00:24 +0000 (18:00 +0000)]
Use helper function

llvm-svn: 211510

10 years agoAlphabetize forward declarations
Matt Arsenault [Mon, 23 Jun 2014 18:00:20 +0000 (18:00 +0000)]
Alphabetize forward declarations

llvm-svn: 211509

10 years agoDelete utils/FileUpdate.
Rafael Espindola [Mon, 23 Jun 2014 17:58:39 +0000 (17:58 +0000)]
Delete utils/FileUpdate.

It is unused and it looks like it was never used.

llvm-svn: 211508

10 years agoSupport: Extract ScaledNumbers::compare()
Duncan P. N. Exon Smith [Mon, 23 Jun 2014 17:47:40 +0000 (17:47 +0000)]
Support: Extract ScaledNumbers::compare()

llvm-svn: 211507

10 years agoDriver: correct behaviour of -fmsc-version=MAJOR
Saleem Abdulrasool [Mon, 23 Jun 2014 17:36:36 +0000 (17:36 +0000)]
Driver: correct behaviour of -fmsc-version=MAJOR

Ensure that we properly handle the case where just the major version component
is provided by the user.

Thanks to Alp Toker for pointing out that this was not handled correctly!

llvm-svn: 211506

10 years agoMS ABI: Add an additional test for typeid
David Majnemer [Mon, 23 Jun 2014 17:30:27 +0000 (17:30 +0000)]
MS ABI: Add an additional test for typeid

This tests typeid with polymorphic arguments which have an extendable
virtual function table.

llvm-svn: 211505

10 years agoStop sharing the FileManager in ASTUnit::Parse
Ben Langmuir [Mon, 23 Jun 2014 16:36:40 +0000 (16:36 +0000)]
Stop sharing the FileManager in ASTUnit::Parse

We were using old stat values for any files that had previously been
looked up, leading to badness. There might be a more elegant solution in
invalidating the cache for those file (since we already know which ones
they are), but it seems too likely there are existing references to
them hiding somewhere.

llvm-svn: 211504

10 years agolldb: deal with non-portable PTRACE-related constants
Todd Fiala [Mon, 23 Jun 2014 15:59:04 +0000 (15:59 +0000)]
lldb: deal with non-portable PTRACE-related constants

See http://reviews.llvm.org/D4091 for details.

Change by Paul Osmialowski.

llvm-svn: 211503

10 years agoAllow using .cfi_startproc without a leading symbol.
Rafael Espindola [Mon, 23 Jun 2014 15:34:32 +0000 (15:34 +0000)]
Allow using .cfi_startproc without a leading symbol.

This is possible now that we don't produce .eh symbols. This fixes pr19430.

llvm-svn: 211502

10 years agoclang-format initializer to reduce noise in another patch.
Rafael Espindola [Mon, 23 Jun 2014 15:17:34 +0000 (15:17 +0000)]
clang-format initializer to reduce noise in another patch.

llvm-svn: 211501

10 years agoStop producing func.eh symbols on Darwin.
Rafael Espindola [Mon, 23 Jun 2014 15:13:23 +0000 (15:13 +0000)]
Stop producing func.eh symbols on Darwin.

According Nick Kledzik (http://llvm.org/bugs/show_bug.cgi?id=19430#c2):
"... mach-o no longer needs names in the __eh_frame section (and has not for
years)."

Iain Sandoe confirms it is also unnecessary for their old darwin support.

llvm-svn: 211500

10 years agoRemove a temporary hack.
Rafael Espindola [Mon, 23 Jun 2014 14:22:55 +0000 (14:22 +0000)]
Remove a temporary hack.

Amusingly this survived a lot longer than the CFI transition. We don't even
support non-cfi assemblers any more.

llvm-svn: 211498

10 years ago[PowerPC] Refactor getMinCallFrameSize / getMinCallArgumentsSize
Ulrich Weigand [Mon, 23 Jun 2014 14:15:53 +0000 (14:15 +0000)]
[PowerPC] Refactor getMinCallFrameSize / getMinCallArgumentsSize

As of r211495, the only remaining users of getMinCallFrameSize are in
core ABI code (LowerFormalParameter / LowerCall).  This is actually a
good thing, since the details of the parameter save area are ABI specific.

With the new ELFv2 ABI in particular, the rules defining the size of the
save area will become significantly more complex, so it wouldn't make
sense to implement those outside ABI code that has all required
information.

In preparation, this patch eliminates the getMinCallFrameSize (and
associated getMinCallArgumentsSize) routines, and inlines them into all
callers.  Note that since nearly all call arguments are constant, this
allows simplifying the inlined copies to a single line everywhere.

No change in generate code expected.

llvm-svn: 211497

10 years agoProtect functions taking double by #ifdef cl_khr_fp64
Jeroen Ketema [Mon, 23 Jun 2014 14:15:39 +0000 (14:15 +0000)]
Protect functions taking double by #ifdef cl_khr_fp64

Also change the order of the functions to be consistent with
the order in the header files.

llvm-svn: 211496

10 years ago[PowerPC] Allow stack frames without parameter save area
Ulrich Weigand [Mon, 23 Jun 2014 13:47:52 +0000 (13:47 +0000)]
[PowerPC] Allow stack frames without parameter save area

The PPCFrameLowering::determineFrameLayout routine currently ensures
that every function that allocates a stack frame provides space for the
parameter save area (via PPCFrameLowering::getMinCallFrameSize).

This is actually not necessary.  There may be functions that never call
another routine but still allocate a frame; those do not require the
parameter save area.  In the future, with the ELFv2 ABI, even some
routines that do call other functions do not need to allocate the
parameter save area.

While it is not a bug to allocate the parameter area when it is not
needed, it is better to avoid it to save stack space.

Note that when any particular function call requires the parameter save
area, this space will already have been included by ABI code in the size
the CALLSEQ_START insn is annotated with, and therefore included in the
size returned by MFI->getMaxCallFrameSize().

This means that determineFrameLayout simply does not need to care about
the parameter save area.  (It still needs to ensure that every frame
provides the linkage area.)  This is implemented by this patch.

Note that this exposed a bug in the new fast-isel code where the parameter
area was *not* included in the CALLSEQ_START size; this is also fixed.

A couple of test cases needed to be adapted for the new (smaller) stack
frame size those tests now see.

llvm-svn: 211495

10 years ago[PowerPC] Fix IsDarwin arg in PPCFrameLowering:: calls
Ulrich Weigand [Mon, 23 Jun 2014 13:21:43 +0000 (13:21 +0000)]
[PowerPC] Fix IsDarwin arg in PPCFrameLowering:: calls

As remarked in the commit message to r211493, in several places
throughout the 64-bit SVR4 ABI code there are calls to
PPCFrameLowering::getLinkageSize and getMinCallFrameSize
using an incorrect IsDarwin argument of "true".

(Some of those were made explicit by the above refactoring patch, others
have been there all along.)

This patch fixes those places to pass "false" for IsDarwin.

No change in generated code expected.

llvm-svn: 211494

10 years ago[PowerPC] Refactor setMinReservedArea and CalculateParameterAndLinkageAreaSize
Ulrich Weigand [Mon, 23 Jun 2014 13:08:27 +0000 (13:08 +0000)]
[PowerPC] Refactor setMinReservedArea and CalculateParameterAndLinkageAreaSize

The PPCISelLowering.cpp routines PPCTargetLowering::setMinReservedArea and
CalculateParameterAndLinkageAreaSize are currently used as subroutines
from both 64-bit SVR4 and Darwin ABI code.

However, the two ABIs are already quite different w.r.t. AltiVec
conventions, and they will become more different when the ELFv2 ABI is
supported.  Also, in general it seems better to disentangle ABI support
routines for different ABIs to avoid accidentally affecting one ABI when
intending to change only the other.

(Actually, the current code strictly speaking already contains a bug:
these routines call PPCFrameLowering::getMinCallFrameSize and
PPCFrameLowering::getLinkageSize with the IsDarwin parameter set to
"true" even on 64-bit SVR4.  This bug currently has no adverse effect
since those routines always return the same for 64-bit SVR4 and 64-bit
Darwin, but it still seems wrong ...  I'll fix this in a follow-up
commit shortly.)

To remove this code sharing, I'm simply inlining both routines into all
call sites (there are just two each, one for 64-bit SVR4 and one for
Darwin), and simplifying due to constant parameters where possible.

A small piece of code that *does* make sense to share is refactored into
the new routine EnsureStackAlignment, now also called from 32-bit SVR4
ABI code.

No change in generated code is expected.

llvm-svn: 211493

10 years ago[PowerPC] Fix on-stack AltiVec arguments with 64-bit SVR4
Ulrich Weigand [Mon, 23 Jun 2014 12:36:34 +0000 (12:36 +0000)]
[PowerPC] Fix on-stack AltiVec arguments with 64-bit SVR4

Current 64-bit SVR4 code seems to have some remnants of Darwin code
in AltiVec argument handing.  This had the effect that AltiVec arguments
(or subsequent arguments) were not correctly placed in the parameter area
in some cases.

The correct behaviour with the 64-bit SVR4 ABI is:
- All AltiVec arguments take up space in the parameter area, just like
  any other arguments, whether vararg or not.
- They are always 16-byte aligned, skipping a parameter area doubleword
  (and the associated GPR, if any), if necessary.

This patch implements the correct behaviour and adds a test case.
(Verified against GCC behaviour via the ABI compat test suite.)

llvm-svn: 211492

10 years ago[Mips] Make rel-dynamic-03.test test case independent from external input files.
Simon Atanasyan [Mon, 23 Jun 2014 12:28:11 +0000 (12:28 +0000)]
[Mips] Make rel-dynamic-03.test test case independent from external input files.

llvm-svn: 211491

10 years agoARM: mark UBFX as not allowing PC.
Tim Northover [Mon, 23 Jun 2014 09:20:02 +0000 (09:20 +0000)]
ARM: mark UBFX as not allowing PC.

Strictly, it's unpredictable. But we don't quite model that yet and an error is
better than ignoring the issue. This one somehow got left out before though.

rdar://problem/15997748

llvm-svn: 211490

10 years ago[OPENMP] Reformatting and code improvement.
Alexey Bataev [Mon, 23 Jun 2014 08:21:53 +0000 (08:21 +0000)]
[OPENMP] Reformatting and code improvement.

llvm-svn: 211489

10 years agoclang-format: [proto] Add required space before absolute references.
Daniel Jasper [Mon, 23 Jun 2014 07:36:25 +0000 (07:36 +0000)]
clang-format: [proto] Add required space before absolute references.

llvm-svn: 211488

10 years agoclang-format: Fix corner case in pointer/reference detection.
Daniel Jasper [Mon, 23 Jun 2014 07:36:18 +0000 (07:36 +0000)]
clang-format: Fix corner case in pointer/reference detection.

llvm-svn: 211487

10 years agoMC: Cleanup parseMSInlineAsm
David Majnemer [Mon, 23 Jun 2014 02:17:16 +0000 (02:17 +0000)]
MC: Cleanup parseMSInlineAsm

Utilize range based for-loops to simplify some code.
Use insert() instead of a loop for simplicity/efficiency.

No functionality change.

llvm-svn: 211486

10 years agoParse: Simplify construction of the clobber list
David Majnemer [Mon, 23 Jun 2014 02:16:41 +0000 (02:16 +0000)]
Parse: Simplify construction of the clobber list

This avoids going over the clobber list twice.

No functionality change.

llvm-svn: 211485