platform/upstream/llvm.git
8 years ago[AArch64] Add pass to remove redundant copy after RA
Jun Bum Lim [Tue, 16 Feb 2016 20:02:39 +0000 (20:02 +0000)]
[AArch64] Add pass to remove redundant copy after RA

Summary:
This change will add a pass to remove unnecessary zero copies in target blocks
of cbz/cbnz instructions. E.g., the copy instruction in the code below can be
removed because the cbz jumps to BB1 when x0 is zero :
  BB0:
    cbz x0, .BB1
  BB1:
    mov x0, xzr

Jun

Reviewers: gberry, jmolloy, HaoLiu, MatzeB, mcrosier

Subscribers: mcrosier, mssimpso, haicheng, bmakam, llvm-commits, aemerson, rengolin

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

llvm-svn: 261004

8 years ago[GlobalISel] Re-apply r260922-260923 with MSVC-friendly code.
Quentin Colombet [Tue, 16 Feb 2016 19:26:02 +0000 (19:26 +0000)]
[GlobalISel] Re-apply r260922-260923 with MSVC-friendly code.
Original message:
Get rid of the ifdefs in TargetLowering.
Introduce a new API used only by GlobalISel: CallLowering.
This API will contain target hooks dedicated to call lowering.

llvm-svn: 260998

8 years agoExclude PCH/missing-file.cpp on Windows, it does not pass reliably
Reid Kleckner [Tue, 16 Feb 2016 19:16:28 +0000 (19:16 +0000)]
Exclude PCH/missing-file.cpp on Windows, it does not pass reliably

Tag the test with "REQUIRES: can-remove-opened-file", which is what we
use for the similar test Modules/explicit-build-missing-file.cpp.

llvm-svn: 260994

8 years ago[typo-correction] Apply name specifier corrections when forming a NNS
Reid Kleckner [Tue, 16 Feb 2016 19:16:20 +0000 (19:16 +0000)]
[typo-correction] Apply name specifier corrections when forming a NNS

Previously we would leave behind the old name specifier prefix, which
creates an invalid AST.  Other callers of CorrectTypo update their
CXXScopeSpec objects with the correction specifier if one is present.

llvm-svn: 260993

8 years agoclang-cl: Expose -isystem.
Nico Weber [Tue, 16 Feb 2016 19:05:50 +0000 (19:05 +0000)]
clang-cl: Expose -isystem.

Like cl.exe, clang-cl allows adding system include directories via the
INCLUDE env var.  Having a driver flag for this functionality is useful,
so add this too.

(In the future, we probably also want to have a flag alternative to
VCINSTALLDIR as used in MSVCToolChain::getVisualStudioBinaries(), and
a way to override the registry accesses in MSVCToolChain::getWindowsSDKDir()
-- maybe -ivcroot= and -iwinsdkroot=?).

llvm-svn: 260990

8 years agoPass a std::unique_ptr to IRMover::move.
Rafael Espindola [Tue, 16 Feb 2016 18:50:12 +0000 (18:50 +0000)]
Pass a std::unique_ptr to IRMover::move.

It was already the one "destroying" the source module, now the API
reflects that.

llvm-svn: 260989

8 years ago[WebAssembly] Insert COPY_LOCAL between CopyToReg and FrameIndex DAG nodes
Derek Schuff [Tue, 16 Feb 2016 18:18:36 +0000 (18:18 +0000)]
[WebAssembly] Insert COPY_LOCAL between CopyToReg and FrameIndex DAG nodes

CopyToReg nodes don't support FrameIndex operands. Other targets select
the FI to some LEA-like instruction, but since we don't have that, we
need to insert some kind of instruction that can take an FI operand and
produces a value usable by CopyToReg (i.e. in a vreg). So insert a dummy
copy_local between Op and its FI operand. This results in a redundant
copy which we should optimize away later (maybe in the post-FI-lowering
peephole pass).

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

llvm-svn: 260987

8 years ago[AMDGPU] Rename $dst operand to $vdst for VOP instructions.
Tom Stellard [Tue, 16 Feb 2016 18:14:56 +0000 (18:14 +0000)]
[AMDGPU] Rename $dst operand to $vdst for VOP instructions.

Summary: This change renames output operand for VOP instructions from dst to vdst. This is needed to enable decoding named operands for disassembler.

Reviewers: vpykhtin, tstellarAMD, arsenm

Subscribers: arsenm, llvm-commits, nhaustov

Projects: #llvm-amdgpu-spb

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

llvm-svn: 260986

8 years agoRevert 260705, it appears to be causing pr26628
Philip Reames [Tue, 16 Feb 2016 17:14:30 +0000 (17:14 +0000)]
Revert 260705, it appears to be causing pr26628

The root issue appears to be a confusion around what makeNoWrapRegion actually does.   It seems likely we need two versions of this function with slightly different semantics.

llvm-svn: 260981

8 years agoDon't create multiple .got.plt entries for the same symbol.
Rafael Espindola [Tue, 16 Feb 2016 16:46:31 +0000 (16:46 +0000)]
Don't create multiple .got.plt entries for the same symbol.

We were doing it for ifunc symbols.

llvm-svn: 260980

8 years ago[X86] Enable the LEA optimization pass by default.
Andrey Turetskiy [Tue, 16 Feb 2016 16:41:38 +0000 (16:41 +0000)]
[X86] Enable the LEA optimization pass by default.

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

llvm-svn: 260979

8 years ago[WebAssembly] Switch from RPO sorting to topological sorting.
Dan Gohman [Tue, 16 Feb 2016 16:22:41 +0000 (16:22 +0000)]
[WebAssembly] Switch from RPO sorting to topological sorting.

WebAssembly doesn't require full RPO; topological sorting is sufficient and
can preserve more of the MachineBlockPlacement ordering. Unfortunately, this
still depends a lot on heuristics, because while we use the
MachineBlockPlacement ordering as a guide, we can't use it in places where
it isn't topologically ordered. This area will require further attention.

llvm-svn: 260978

8 years agoMerge multiple tdata.* into a single section.
Rafael Espindola [Tue, 16 Feb 2016 16:12:06 +0000 (16:12 +0000)]
Merge multiple tdata.* into a single section.

llvm-svn: 260977

8 years agoMerge multiple .gcc_except_table.* into a single section.
Rafael Espindola [Tue, 16 Feb 2016 16:05:27 +0000 (16:05 +0000)]
Merge multiple .gcc_except_table.* into a single section.

llvm-svn: 260976

8 years agoAdd some status
Marshall Clow [Tue, 16 Feb 2016 16:05:15 +0000 (16:05 +0000)]
Add some status

llvm-svn: 260975

8 years agoMerge multiple .tbss.* sections into one output section.
Rafael Espindola [Tue, 16 Feb 2016 15:57:07 +0000 (15:57 +0000)]
Merge multiple .tbss.* sections into one output section.

llvm-svn: 260974

8 years agoA signed bitfield's range is [-1,0], so assigning 1 is technically an overflow. Howev...
Aaron Ballman [Tue, 16 Feb 2016 15:35:51 +0000 (15:35 +0000)]
A signed bitfield's range is [-1,0], so assigning 1 is technically an overflow. However, the other bitfield requires a signed value (it supports negative offsets), so it is slightly better to retain a signed 1-bit bitfield and use -1 instead of 1. Silences an MSVC warning.

llvm-svn: 260973

8 years agoReverting r260922-260923; they cause link failures with MSVC.
Aaron Ballman [Tue, 16 Feb 2016 15:29:06 +0000 (15:29 +0000)]
Reverting r260922-260923; they cause link failures with MSVC.

http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc2015/builds/15436/steps/build/logs/stdio
http://bb.pgr.jp/builders/msbuild-llvmclang-x64-msc18-DA/builds/961/steps/build_llvm/logs/stdio

llvm-svn: 260972

8 years ago[WebAssembly] Create new registers instead of reusing old ones in RegStackify.
Dan Gohman [Tue, 16 Feb 2016 15:17:21 +0000 (15:17 +0000)]
[WebAssembly] Create new registers instead of reusing old ones in RegStackify.

This avoids some complications updating LiveIntervals to be aware of the new
register lifetimes, because we can just compute new intervals from scratch
rather than describe how the old ones have been changed.

llvm-svn: 260971

8 years agoReapply r260489.
Rafael Espindola [Tue, 16 Feb 2016 15:16:00 +0000 (15:16 +0000)]
Reapply r260489.

Original commit message:

[readobj] Dump DT_JMPREL relocations when outputting dynamic relocations.

The bits of r260488 it depends on have been committed.

llvm-svn: 260970

8 years agoRevert "Use BKPT instead of UDF for arm/thumb breakpoints"
Tamas Berghammer [Tue, 16 Feb 2016 15:14:36 +0000 (15:14 +0000)]
Revert "Use BKPT instead of UDF for arm/thumb breakpoints"

This reverts commit 293c18e067d663e0fe93e6f3d800c2a4bfada2b0.

The BKPT instruction generates SIGBUS instead of SIGTRAP in the Linux
kernel on Nexus 6 - 5.1.1 (kernel version 3.10.40). Revert the CL
until we can figure out how can we hanble the SIGBUS or how to get
back a SIGTRAP using the BKPT instruction.

llvm-svn: 260969

8 years ago[WebAssembly] Implement support for custom NaN bit patterns.
Dan Gohman [Tue, 16 Feb 2016 15:14:23 +0000 (15:14 +0000)]
[WebAssembly] Implement support for custom NaN bit patterns.

llvm-svn: 260968

8 years agoIntroduce a getAsRange helper.
Rafael Espindola [Tue, 16 Feb 2016 14:50:39 +0000 (14:50 +0000)]
Introduce a getAsRange helper.

This requires making an error message a bit more generic, but that seems
a reasonable tradeoff.

Extracted from r260488 but simplified a bit.

llvm-svn: 260967

8 years agoAdd some comments
Marshall Clow [Tue, 16 Feb 2016 14:42:23 +0000 (14:42 +0000)]
Add some comments

llvm-svn: 260966

8 years agoScopDectect: Allow memory accesses with different element types by default (try 3)
Tobias Grosser [Tue, 16 Feb 2016 14:37:24 +0000 (14:37 +0000)]
ScopDectect: Allow memory accesses with different element types by default (try 3)

First support for this feature was committed in r259784. Support for
loop invariant load hoisting with different types was added by
Johannes Doerfert in r260045 and r260886.

llvm-svn: 260965

8 years agoAdded a (private) status page for the Jacksonville meeting
Marshall Clow [Tue, 16 Feb 2016 14:35:56 +0000 (14:35 +0000)]
Added a (private) status page for the Jacksonville meeting

llvm-svn: 260964

8 years agoMove DynRegionInfo out of the ELFDumper.
Rafael Espindola [Tue, 16 Feb 2016 14:27:33 +0000 (14:27 +0000)]
Move DynRegionInfo out of the ELFDumper.

This reduces indentation in preparation to adding a bit more code to it.

Extracted from r260488.

llvm-svn: 260963

8 years agoThis reverts commit r260488 and r260489.
Rafael Espindola [Tue, 16 Feb 2016 14:17:48 +0000 (14:17 +0000)]
This reverts commit r260488 and r260489.

Original messages:
    Revert "[readobj] Handle ELF files with no section table or with no program headers."
    Revert "[readobj] Dump DT_JMPREL relocations when outputting dynamic relocations."

r260489 depends on r260488 and among other issues r260488 deleted error
handling code.

llvm-svn: 260962

8 years agoIssue a warning instead of fatal errors when checks for libatomic fail.
Vasileios Kalintiris [Tue, 16 Feb 2016 14:15:27 +0000 (14:15 +0000)]
Issue a warning instead of fatal errors when checks for libatomic fail.

This should fix PR26631, PR26622 and has the nice property that the addition
of the CheckLibcxxAtomic.cmake module acts as an NFC on the platforms of the
reporters (at least for the time being).

As these bug reports explain, CMake fails the atomic check because the
include headers might not exist in the host environment. We could
potentially point to the headers provided by libcxx itself.

llvm-svn: 260961

8 years agoStart adding release notes for lld.
Rafael Espindola [Tue, 16 Feb 2016 13:12:55 +0000 (13:12 +0000)]
Start adding release notes for lld.

llvm-svn: 260960

8 years ago[X86] PR26575: Fix LEA optimization pass.
Andrey Turetskiy [Tue, 16 Feb 2016 12:47:45 +0000 (12:47 +0000)]
[X86] PR26575: Fix LEA optimization pass.

Add a missing check for a type of address displacement operand of the load/store instruction being a candidate for LEA substitution.

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

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

llvm-svn: 260959

8 years agoReplace getLoopForInst by getLoopForStmt
Johannes Doerfert [Tue, 16 Feb 2016 12:36:14 +0000 (12:36 +0000)]
Replace getLoopForInst by getLoopForStmt

  This patch was extracted from http://reviews.llvm.org/D13611.

llvm-svn: 260958

8 years ago[OPENMP] Allow to use compound assignment operators.
Alexey Bataev [Tue, 16 Feb 2016 12:13:49 +0000 (12:13 +0000)]
[OPENMP] Allow to use compound assignment operators.
Loop-based directives allow to use iterators as loop counters. Iterators are allowed to define their own operators. This patch allows to use compound assignment operators for iterators.

llvm-svn: 260957

8 years agoSet AST Build for all statements [NFC]
Johannes Doerfert [Tue, 16 Feb 2016 12:11:03 +0000 (12:11 +0000)]
Set AST Build for all statements [NFC]

llvm-svn: 260956

8 years ago[FIX] LICM test case
Johannes Doerfert [Tue, 16 Feb 2016 12:10:42 +0000 (12:10 +0000)]
[FIX] LICM test case

llvm-svn: 260955

8 years ago[OPENMP] Improved handling of pseudo-captured expressions in OpenMP.
Alexey Bataev [Tue, 16 Feb 2016 11:18:12 +0000 (11:18 +0000)]
[OPENMP] Improved handling of pseudo-captured expressions in OpenMP.
Expressions inside 'schedule'|'dist_schedule' clause must be captured in
combined directives to avoid possible crash during codegen. Patch
improves handling of such constructs

llvm-svn: 260954

8 years ago[clang-tidy] Fix an assert failure in `modernize-loop-convert`.
Haojian Wu [Tue, 16 Feb 2016 10:36:51 +0000 (10:36 +0000)]
[clang-tidy] Fix an assert failure in `modernize-loop-convert`.

Summary:
The test code will trigger following an assert failure:

assert.h assertion failed at LoopConvertUtils.cpp:560 in
bool clang::tidy::modernize::ForLoopIndexUseVisitor::TraverseMemberExpr(clang::MemberExpr*): ExprType->isPointerType() && "Operator-> returned non-pointer type"

Reviewers: alexfh

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

llvm-svn: 260953

8 years ago[clang-tidy] Fix an assert failure of ForStmt in `readability-braces-around-statement...
Haojian Wu [Tue, 16 Feb 2016 10:31:33 +0000 (10:31 +0000)]
[clang-tidy] Fix an assert failure of ForStmt in `readability-braces-around-statements` check.

Reviewers: alexfh

Subscribers: cfe-commits

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

llvm-svn: 260952

8 years agoBump up timeout in TestChangeProcessGroup
Pavel Labath [Tue, 16 Feb 2016 09:58:50 +0000 (09:58 +0000)]
Bump up timeout in TestChangeProcessGroup

The test fails very rarely. I suspect this is simply because the inferior does not have enough
time to create the file under heavy load.

llvm-svn: 260951

8 years agoMark TestLldbGdbServer.test_written_M_content_reads_back_correctly as flaky on linux
Pavel Labath [Tue, 16 Feb 2016 09:58:47 +0000 (09:58 +0000)]
Mark TestLldbGdbServer.test_written_M_content_reads_back_correctly as flaky on linux

I believe the root cause is the asynchronous arrival of inferior stdio (pr25652).

llvm-svn: 260950

8 years ago[Hexagon] Hoist nonnull assert up.
Benjamin Kramer [Tue, 16 Feb 2016 09:53:47 +0000 (09:53 +0000)]
[Hexagon] Hoist nonnull assert up.

Once a pointer is turned into a reference it cannot be nullptr, clang
rightfully warns about this assert being a tautology. Put the assert
before the reference is created.

llvm-svn: 260949

8 years ago[clang-tidy] Enhance modernize-redundant-void-arg check to apply fixes to header...
Alexander Kornienko [Tue, 16 Feb 2016 09:49:05 +0000 (09:49 +0000)]
[clang-tidy] Enhance modernize-redundant-void-arg check to apply fixes to header files

Fixes http://llvm.org/PR25894

Patch by Richard Thomson!

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

llvm-svn: 260948

8 years agoMake sure the functions' range is empty before going through it in the LLVM C API...
Amaury Sechet [Tue, 16 Feb 2016 08:37:01 +0000 (08:37 +0000)]
Make sure the functions' range is empty before going through it in the LLVM C API test

llvm-svn: 260947

8 years ago[Compiler-rt][MSan][MIPS] Resolve gethostbyname_r_erange for MIPS
Mohit K. Bhakkad [Tue, 16 Feb 2016 08:33:37 +0000 (08:33 +0000)]
[Compiler-rt][MSan][MIPS] Resolve gethostbyname_r_erange for MIPS

Reviewers: eugenis, kcc, samsonov

Subscribers: jaydeep, sagar, llvm-commits

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

llvm-svn: 260946

8 years agoclang-tools-extra/test/Unit/lit.site.cfg.in: Prune on_clone. I guess it has been...
NAKAMURA Takumi [Tue, 16 Feb 2016 08:13:36 +0000 (08:13 +0000)]
clang-tools-extra/test/Unit/lit.site.cfg.in: Prune on_clone. I guess it has been unused since r188006.

llvm-svn: 260944

8 years ago[X86] Fix typos. NFC
Craig Topper [Tue, 16 Feb 2016 07:45:07 +0000 (07:45 +0000)]
[X86] Fix typos. NFC

llvm-svn: 260943

8 years ago[X86] Use range-based for loop. NFC
Craig Topper [Tue, 16 Feb 2016 07:45:04 +0000 (07:45 +0000)]
[X86] Use range-based for loop. NFC

llvm-svn: 260942

8 years agoDo some refactoring in constant generation in the C API echo test. NFC
Amaury Sechet [Tue, 16 Feb 2016 07:33:23 +0000 (07:33 +0000)]
Do some refactoring in constant generation in the C API echo test. NFC

llvm-svn: 260941

8 years ago[X86] Fix typo in comment. NFC
Craig Topper [Tue, 16 Feb 2016 07:28:03 +0000 (07:28 +0000)]
[X86] Fix typo in comment. NFC

llvm-svn: 260940

8 years agoGenerate functions in 2 steps in the C API echo test. NFC
Amaury Sechet [Tue, 16 Feb 2016 07:08:49 +0000 (07:08 +0000)]
Generate functions in 2 steps in the C API echo test. NFC

llvm-svn: 260939

8 years ago[SCEVExpander] Make findExistingExpansion smarter
Junmo Park [Tue, 16 Feb 2016 06:46:58 +0000 (06:46 +0000)]
[SCEVExpander] Make findExistingExpansion smarter

Summary:
Extending findExistingExpansion can use existing value in ExprValueMap.
This patch gives 0.3~0.5% performance improvements on
benchmarks(test-suite, spec2000, spec2006, commercial benchmark)

Reviewers: mzolotukhin, sanjoy, zzheng

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

llvm-svn: 260938

8 years ago[Frontend] Make sure WrapperFrontendAction updates CurrentInput after calling BeginSo...
Argyrios Kyrtzidis [Tue, 16 Feb 2016 05:39:33 +0000 (05:39 +0000)]
[Frontend] Make sure WrapperFrontendAction updates CurrentInput after calling BeginSourceFileAction.

I don't have a test case to add unfortunately.

llvm-svn: 260937

8 years agoRestore the capability to manipulate datalayout from the C API
Amaury Sechet [Tue, 16 Feb 2016 05:11:24 +0000 (05:11 +0000)]
Restore the capability to manipulate datalayout from the C API

Summary:
This consist in variosu addition to the C API:

  LLVMTargetDataRef LLVMGetModuleDataLayout(LLVMModuleRef M);
  void LLVMSetModuleDataLayout(LLVMModuleRef M, LLVMTargetDataRef DL);
  LLVMTargetDataRef LLVMCreateTargetMachineData(LLVMTargetMachineRef T);

Reviewers: joker.eph, Wallbraker, echristo

Subscribers: axw

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

llvm-svn: 260936

8 years ago[TableGen] Fix inconsistent spacing. NFC
Craig Topper [Tue, 16 Feb 2016 04:24:58 +0000 (04:24 +0000)]
[TableGen] Fix inconsistent spacing. NFC

llvm-svn: 260935

8 years ago[TableGen] Stop passing by reference an integer that doesn't get modified. NFC
Craig Topper [Tue, 16 Feb 2016 04:24:56 +0000 (04:24 +0000)]
[TableGen] Stop passing by reference an integer that doesn't get modified. NFC

llvm-svn: 260934

8 years ago[TableGen] Remove unused member variable. NFC
Craig Topper [Tue, 16 Feb 2016 04:24:54 +0000 (04:24 +0000)]
[TableGen] Remove unused member variable. NFC

llvm-svn: 260933

8 years agoFix buildbot failure because I got an include path wrong.
Jason Molenda [Tue, 16 Feb 2016 04:20:56 +0000 (04:20 +0000)]
Fix buildbot failure because I got an include path wrong.

llvm-svn: 260932

8 years agoRemove an unnecessary std::move to fix -Wpessimizing-move warning.
Craig Topper [Tue, 16 Feb 2016 04:17:42 +0000 (04:17 +0000)]
Remove an unnecessary std::move to fix -Wpessimizing-move warning.

llvm-svn: 260931

8 years agoAdd -Wimplicit-fallthrough command line option to clang in
Jason Molenda [Tue, 16 Feb 2016 04:14:33 +0000 (04:14 +0000)]
Add -Wimplicit-fallthrough command line option to clang in
the xcode project file to catch switch statements that have a
case that falls through unintentionally.

Define LLVM_FALLTHROUGH to indicate instances where a case has code
and intends to fall through.  This should be in llvm/Support/Compiler.h;
Peter Collingbourne originally checked in there (r237766), then
reverted (r237941) because he didn't have time to mark up all the
'case' statements that were intended to fall through.  I put together
a patch to get this back in llvm http://reviews.llvm.org/D17063 but
it hasn't been approved in the past week.  I added a new
lldb-private-defines.h to hold the definition for now.

Every place in lldb where there is a comment that the fall-through
is intentional, I added LLVM_FALLTHROUGH to silence the warning.
I haven't tried to identify whether the fallthrough is a bug or
not in the other places.

I haven't tried to add this to the cmake option build flags.
This warning will only work for clang.

This build cleanly (with some new warnings) on macosx with clang
under xcodebuild, but if this causes problems for people on other
configurations, I'll back it out.

llvm-svn: 260930

8 years agoclang/test/Driver/ps4-linker-win.c: Tweak substitutions if %PATH% ends with '\\'...
NAKAMURA Takumi [Tue, 16 Feb 2016 03:17:13 +0000 (03:17 +0000)]
clang/test/Driver/ps4-linker-win.c: Tweak substitutions if %PATH% ends with '\\', or lit complains with "parser error".

llvm-svn: 260929

8 years ago[TableGen] Use range-based for loop. NFC
Craig Topper [Tue, 16 Feb 2016 02:48:30 +0000 (02:48 +0000)]
[TableGen] Use range-based for loop. NFC

llvm-svn: 260928

8 years agoSimplify users of StringRef::{l,r}trim (clang) (NFC)
Vedant Kumar [Tue, 16 Feb 2016 02:14:44 +0000 (02:14 +0000)]
Simplify users of StringRef::{l,r}trim (clang) (NFC)

r260925 introduced a version of the *trim methods which is preferable
when trimming a single kind of character. Update all users in clang.

llvm-svn: 260927

8 years agoSimplify users of StringRef::{l,r}trim (NFC)
Vedant Kumar [Tue, 16 Feb 2016 02:06:01 +0000 (02:06 +0000)]
Simplify users of StringRef::{l,r}trim (NFC)

r260925 introduced a version of the *trim methods which is preferable
when trimming a single kind of character. Update all users in llvm.

llvm-svn: 260926

8 years ago[ADT] Add StringRef::{l,r}trim(char) overloads (NFC)
Vedant Kumar [Tue, 16 Feb 2016 01:48:39 +0000 (01:48 +0000)]
[ADT] Add StringRef::{l,r}trim(char) overloads (NFC)

Add support for trimming a single kind of character from a StringRef.
This makes the common case of trimming null bytes much neater. It's also
probably a bit speedier too, since it avoids creating a std::bitset in
find_{first,last}_not_of.

llvm-svn: 260925

8 years ago[GlobalISel][IRTranslator] Override getPassName.
Quentin Colombet [Tue, 16 Feb 2016 01:38:09 +0000 (01:38 +0000)]
[GlobalISel][IRTranslator] Override getPassName.

llvm-svn: 260924

8 years ago[GlobalISel] Add missing file in previous commit.
Quentin Colombet [Tue, 16 Feb 2016 01:05:16 +0000 (01:05 +0000)]
[GlobalISel] Add missing file in previous commit.

llvm-svn: 260923

8 years ago[GlobalISel] Get rid of the ifdefs in TargetLowering.
Quentin Colombet [Tue, 16 Feb 2016 00:57:44 +0000 (00:57 +0000)]
[GlobalISel] Get rid of the ifdefs in TargetLowering.
Introduce a new API used only by GlobalISel: CallLowering.
This API will contain target hooks dedicated to call lowering.

llvm-svn: 260922

8 years agoRemove unnecessary regex in the test cases I fixed in r260496.
Akira Hatanaka [Tue, 16 Feb 2016 00:46:03 +0000 (00:46 +0000)]
Remove unnecessary regex in the test cases I fixed in r260496.

llvm-svn: 260921

8 years agoDeprecate LLVMGetDataLayout and replace it by LLVMGetDataLayoutStr
Amaury Sechet [Tue, 16 Feb 2016 00:23:52 +0000 (00:23 +0000)]
Deprecate LLVMGetDataLayout and replace it by LLVMGetDataLayoutStr

Summary: The name is confusing as it matche another method on the module.

Reviewers: joker.eph, Wallbraker, echristo

Subscribers: llvm-commits

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

llvm-svn: 260920

8 years agoKill LLVMAddTargetData
Amaury Sechet [Tue, 16 Feb 2016 00:22:02 +0000 (00:22 +0000)]
Kill LLVMAddTargetData

Summary: It's red, it's dead.

Reviewers: joker.eph, Wallbraker, echristo

Subscribers: llvm-commits, axw

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

llvm-svn: 260919

8 years agoMITests: Update libdeps. llvm/Target/TargetOptions.h depends on MC.
NAKAMURA Takumi [Tue, 16 Feb 2016 00:17:56 +0000 (00:17 +0000)]
MITests: Update libdeps. llvm/Target/TargetOptions.h depends on MC.

llvm-svn: 260918

8 years agoImplemented stack symbol table ordering/packing optimization to improve data locality...
Zia Ansari [Mon, 15 Feb 2016 23:44:13 +0000 (23:44 +0000)]
Implemented stack symbol table ordering/packing optimization to improve data locality and code size from SP/FP offset encoding.

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

llvm-svn: 260917

8 years agoRename LLVMSetDataLayout's argument to match what they stand for
Amaury Sechet [Mon, 15 Feb 2016 23:40:06 +0000 (23:40 +0000)]
Rename LLVMSetDataLayout's argument to match what they stand for

llvm-svn: 260916

8 years agounittests/MI: Add Core library reference
Matthias Braun [Mon, 15 Feb 2016 22:09:38 +0000 (22:09 +0000)]
unittests/MI: Add Core library reference

llvm-svn: 260915

8 years agoSilence some clang warnings
Saleem Abdulrasool [Mon, 15 Feb 2016 21:50:28 +0000 (21:50 +0000)]
Silence some clang warnings

Silences -Wmissing-brace and -Wformat-pedantic warnings from clang on Linux.  NFC.

llvm-svn: 260914

8 years agoSmallPtrSet: Avoid initializing Array in the small case.
Matthias Braun [Mon, 15 Feb 2016 21:38:42 +0000 (21:38 +0000)]
SmallPtrSet: Avoid initializing Array in the small case.

This patch avoids the initial memset at the cost of making iterators
slightly more complex. This should be beneficial as most SmallPtrSets
hold no or only a few elements, while iterating over them is less
common.

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

llvm-svn: 260913

8 years agofix an indent issue in the doc which causes sphinx to fail with some versions
Sylvestre Ledru [Mon, 15 Feb 2016 20:38:54 +0000 (20:38 +0000)]
fix an indent issue in the doc which causes sphinx to fail with some versions

llvm-svn: 260912

8 years agoAPInt: Slightly simplify countLeadingZerosSlowCase()
Matthias Braun [Mon, 15 Feb 2016 20:06:22 +0000 (20:06 +0000)]
APInt: Slightly simplify countLeadingZerosSlowCase()

We always clear the unused bits in the most signifant word so there is
no need to mask them out in countLeadingZerosSlowCase().

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

llvm-svn: 260911

8 years agoAPInt: Further simplify APInt::EqualSlowCase as suggested by Duncan
Matthias Braun [Mon, 15 Feb 2016 20:06:19 +0000 (20:06 +0000)]
APInt: Further simplify APInt::EqualSlowCase as suggested by Duncan

llvm-svn: 260910

8 years agoRefinement of r260624. It is possible somebody might try to add to the map
Jim Ingham [Mon, 15 Feb 2016 20:04:15 +0000 (20:04 +0000)]
Refinement of r260624.  It is possible somebody might try to add to the map
while we are finalizing its elements.  Prevent that.

<rdar://problem/24554920>

llvm-svn: 260909

8 years ago[X86] Remove now-dead variable and redundant assert. NFC.
Ahmed Bougacha [Mon, 15 Feb 2016 19:32:54 +0000 (19:32 +0000)]
[X86] Remove now-dead variable and redundant assert. NFC.

The variable was made dead in NDEBUG by r260901, but the assert
was redundant anyway: get rid of both.

llvm-svn: 260908

8 years agoFix typo in LiveIntervalTest
Matthias Braun [Mon, 15 Feb 2016 19:30:11 +0000 (19:30 +0000)]
Fix typo in LiveIntervalTest

llvm-svn: 260907

8 years agoLiveIntervalAnalysis: Support moving of subregister defs in handleMove
Matthias Braun [Mon, 15 Feb 2016 19:25:36 +0000 (19:25 +0000)]
LiveIntervalAnalysis: Support moving of subregister defs in handleMove

This is an updated version which fixes a bug that happened with
uses tied to an earlyclobber operand which end at an unusual slotindex.

If two definitions write to independent subregisters then they can be
put in any order. LiveIntervalAnalysis::handleMove() did not support
this previously because it looks like moving a definition of a vreg past
another one.

This is a modified version of a patch proposed (two years ago) by
Vincent Lejeune! This version does not touch the read-undef flags and is
extended for the case of moving a subregister def behind all uses - this
can happen for subregister defs that are completely unused.

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

llvm-svn: 260906

8 years agoAdd unittest for LiveIntervalAnalysis::handleMove()
Matthias Braun [Mon, 15 Feb 2016 19:25:34 +0000 (19:25 +0000)]
Add unittest for LiveIntervalAnalysis::handleMove()

llvm-svn: 260905

8 years agoMachineVerifier: Add parameter to choose if MachineFunction::verify() aborts
Matthias Braun [Mon, 15 Feb 2016 19:25:31 +0000 (19:25 +0000)]
MachineVerifier: Add parameter to choose if MachineFunction::verify() aborts

The abort on error behaviour is unpractical for debugger and unittest
usage.

llvm-svn: 260904

8 years ago[NFC] Fixing naming convention, lowercase start of function name.
Colin LeMahieu [Mon, 15 Feb 2016 18:47:55 +0000 (18:47 +0000)]
[NFC] Fixing naming convention, lowercase start of function name.

llvm-svn: 260903

8 years ago[Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to simplify...
Colin LeMahieu [Mon, 15 Feb 2016 18:42:07 +0000 (18:42 +0000)]
[Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to simplify handling and allow flags on the expression.

llvm-svn: 260902

8 years ago[CodeGen] Document and use getConstant's splat-building feature. NFC.
Ahmed Bougacha [Mon, 15 Feb 2016 18:07:29 +0000 (18:07 +0000)]
[CodeGen] Document and use getConstant's splat-building feature. NFC.

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

llvm-svn: 260901

8 years ago[X86][SSE2] Regenerated sse2 tests
Simon Pilgrim [Mon, 15 Feb 2016 17:57:40 +0000 (17:57 +0000)]
[X86][SSE2] Regenerated sse2 tests

llvm-svn: 260900

8 years ago[ScheduleDAGInstrs] isUnsafeMemoryObject() removed
Jonas Paulsson [Mon, 15 Feb 2016 16:43:15 +0000 (16:43 +0000)]
[ScheduleDAGInstrs] isUnsafeMemoryObject() removed

This function was basically useless, since volatile memacesses or MIs with
unmodelled sideffects become global memory objects, and the other little
checks are also done elsewhere.

Reviewed by Andy Trick
http://reviews.llvm.org/D16881

llvm-svn: 260899

8 years agoDarwin: fix stdlib handling when CLANG_DEFAULT_STDLIB is set
Tim Northover [Mon, 15 Feb 2016 16:38:10 +0000 (16:38 +0000)]
Darwin: fix stdlib handling when CLANG_DEFAULT_STDLIB is set

I'd accidentally skipped the CMake check in a premature optimisation. I'd also
put the original test in completely the wrong place.

Thanks Jonas Hahnfeld!

llvm-svn: 260898

8 years ago[Hexagon] Missed testcase update in r260895
Krzysztof Parzyszek [Mon, 15 Feb 2016 16:15:02 +0000 (16:15 +0000)]
[Hexagon] Missed testcase update in r260895

llvm-svn: 260897

8 years ago[mips] Implemented the .hword directive.
Scott Egerton [Mon, 15 Feb 2016 16:11:51 +0000 (16:11 +0000)]
[mips] Implemented the .hword directive.

Summary:
In order to pass the tests, this required marking R_MIPS_16 relocations
as needing to point to the symbol and not the section.

Reviewers: vkalintiris, dsanders

Subscribers: dsanders, llvm-commits

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

llvm-svn: 260896

8 years ago[Hexagon] Use zero-extending loads for anyext
Krzysztof Parzyszek [Mon, 15 Feb 2016 16:01:01 +0000 (16:01 +0000)]
[Hexagon] Use zero-extending loads for anyext

llvm-svn: 260895

8 years ago[LV] Add support for insertelt/extractelt processing during type truncation
Silviu Baranga [Mon, 15 Feb 2016 15:38:17 +0000 (15:38 +0000)]
[LV] Add support for insertelt/extractelt processing during type truncation

Summary:
While shrinking types according to the required bits, we can
encounter insert/extract element instructions. This will cause us to
reach an llvm_unreachable statement.

This change adds support for truncating insert/extract element
operations, and adds a regression test.

Reviewers: jmolloy

Subscribers: mzolotukhin, llvm-commits

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

llvm-svn: 260893

8 years agoTweak the LICM code to reuse the first sub-loop instead of creating a new one
Roman Gareev [Mon, 15 Feb 2016 14:48:50 +0000 (14:48 +0000)]
Tweak the LICM code to reuse the first sub-loop instead of creating a new one

LICM starts with an *empty* AST, and then merges in each sub-loop. While the
add code is appropriate for sub-loop 2 and up, it's utterly unnecessary for
sub-loop 1. If the AST starts off empty, we can just clone/move the contents
of the subloop into the containing AST.

Reviewed-by: Philip Reames <listmail@philipreames.com>
Differential Revision: http://reviews.llvm.org/D16753

llvm-svn: 260892

8 years ago[X86] More thorough partial-register division checks
Simon Pilgrim [Mon, 15 Feb 2016 14:09:35 +0000 (14:09 +0000)]
[X86] More thorough partial-register division checks

For when grep counts are just not enough...

llvm-svn: 260891

8 years ago[X86] Regenerated 64/128 bit multiply tests
Simon Pilgrim [Mon, 15 Feb 2016 14:04:05 +0000 (14:04 +0000)]
[X86] Regenerated 64/128 bit multiply tests

llvm-svn: 260890

8 years ago[X86][SSE] More thorough testing of all-ones vectors re-materialization
Simon Pilgrim [Mon, 15 Feb 2016 13:50:48 +0000 (13:50 +0000)]
[X86][SSE] More thorough testing of all-ones vectors re-materialization

llvm-svn: 260889

8 years ago[X86][SSE] Regenerated uint2fp special case tests
Simon Pilgrim [Mon, 15 Feb 2016 13:41:41 +0000 (13:41 +0000)]
[X86][SSE] Regenerated uint2fp special case tests

llvm-svn: 260888