platform/upstream/llvm.git
8 years agoRevert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"
Benjamin Kramer [Fri, 22 Jul 2016 11:03:10 +0000 (11:03 +0000)]
Revert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"

It caused PR28657.

This reverts commit r276281.

llvm-svn: 276405

8 years ago[llvm-cov] - Improve llvm-cov error message
Ying Yi [Fri, 22 Jul 2016 10:52:21 +0000 (10:52 +0000)]
[llvm-cov] - Improve llvm-cov error message

Summary:

When giving the following command:
% llvm-cov report -instr-profile=default.profraw

llvm-cov will give the following error message:

>llvm-cov report: Not enough positional command line arguments specified!
>Must specify at least 1 positional arguments: See: orbis-llvm-cov report -help

This patch changes the error message from  '1 positional arguments'
to '1 positional argument'.

Differential Revision: https://reviews.llvm.org/D22621

llvm-svn: 276404

8 years agoFix a crash when an ELF section symbol have no name
Tamas Berghammer [Fri, 22 Jul 2016 10:43:03 +0000 (10:43 +0000)]
Fix a crash when an ELF section symbol have no name

llvm-svn: 276403

8 years ago[compiler-rt][cmake] Don't reset CAN_TARGET_${arch} on every cmake invocation.
Daniel Sanders [Fri, 22 Jul 2016 10:15:09 +0000 (10:15 +0000)]
[compiler-rt][cmake] Don't reset CAN_TARGET_${arch} on every cmake invocation.

Allowing this variable to be cached makes it possible to repair the MIPS
buildbots in lieu of either fixing the mips64 sanitizer issues or fixing the
detection of mips64 support (which I think was changed by r268977 but didn't
take effect on this buildbot until the last couple days) so that it returns to
not being built on these buildbots.

llvm-svn: 276402

8 years agotest commit
Ying Yi [Fri, 22 Jul 2016 09:20:21 +0000 (09:20 +0000)]
test commit

llvm-svn: 276401

8 years ago[include-fixer] Fix faulty sort predicate.
Benjamin Kramer [Fri, 22 Jul 2016 09:07:16 +0000 (09:07 +0000)]
[include-fixer] Fix faulty sort predicate.

Note the == on the last line, this isn't a strict-weak ordering.

llvm-svn: 276400

8 years agoThis refactoring of ARM machine block size computation creates two utility
Sjoerd Meijer [Fri, 22 Jul 2016 08:39:12 +0000 (08:39 +0000)]
This refactoring of ARM machine block size computation creates two utility
functions so that the size computation is available not only in ConstantIslands
but in other passes as well.

Differential Revision: https://reviews.llvm.org/D22640

llvm-svn: 276399

8 years ago[ELF] Support PROVIDE and PROVIDE_HIDDEN inside SECTIONS
Eugene Leviant [Fri, 22 Jul 2016 07:38:40 +0000 (07:38 +0000)]
[ELF] Support PROVIDE and PROVIDE_HIDDEN inside SECTIONS

llvm-svn: 276398

8 years ago[mips][microMIPS] Implement SLT, SLTI, SLTIU, SLTU microMIPS32r6 instructions
Hrvoje Varga [Fri, 22 Jul 2016 07:18:33 +0000 (07:18 +0000)]
[mips][microMIPS] Implement SLT, SLTI, SLTIU, SLTU microMIPS32r6 instructions
Differential Revision: https://reviews.llvm.org/D19906

llvm-svn: 276397

8 years agoGPGPU: Generate PTX assembly code for the kernel modules
Tobias Grosser [Fri, 22 Jul 2016 07:11:12 +0000 (07:11 +0000)]
GPGPU: Generate PTX assembly code for the kernel modules

Run the NVPTX backend over the GPUModule IR and write the resulting assembly
code in a string.

To work correctly, it is important to invalidate analysis results that still
reference the IR in the kernel module. Hence, this change clears all references
to dominators, loop info, and scalar evolution.

Finally, the NVPTX backend has troubles to generate code for various special
floating point types (not surprising), but also for uncommon integer types. This
commit does not resolve these issues, but pulls out problematic test cases into
separate files to XFAIL them individually and resolve them in future (not
immediate) changes one by one.

llvm-svn: 276396

8 years ago[ELF][MIPS] Apply mask while reading implicit addend and writing result of R_MIPS_26...
Simon Atanasyan [Fri, 22 Jul 2016 05:56:43 +0000 (05:56 +0000)]
[ELF][MIPS] Apply mask while reading implicit addend and writing result of R_MIPS_26 relocation.

llvm-svn: 276395

8 years ago[AVX512] Add ExeDomain to vector extend and truncate instructions.
Craig Topper [Fri, 22 Jul 2016 05:46:44 +0000 (05:46 +0000)]
[AVX512] Add ExeDomain to vector extend and truncate instructions.

llvm-svn: 276394

8 years ago[AVX512] Add initial support for the Execution Domain fixing pass to change some...
Craig Topper [Fri, 22 Jul 2016 05:00:52 +0000 (05:00 +0000)]
[AVX512] Add initial support for the Execution Domain fixing pass to change some EVEX instructions.

llvm-svn: 276393

8 years ago[AVX512] Fix the ExeDomain for some packed fp instructions.
Craig Topper [Fri, 22 Jul 2016 05:00:42 +0000 (05:00 +0000)]
[AVX512] Fix the ExeDomain for some packed fp instructions.

llvm-svn: 276392

8 years ago[AVX512] Add load folding for some AVX512VL logic and arithmetic instructions.
Craig Topper [Fri, 22 Jul 2016 05:00:39 +0000 (05:00 +0000)]
[AVX512] Add load folding for some AVX512VL logic and arithmetic instructions.

llvm-svn: 276391

8 years ago[AVX512] Update X86InstrInfo::foldMemoryOperandCustom to handle the EVEX encoded...
Craig Topper [Fri, 22 Jul 2016 05:00:35 +0000 (05:00 +0000)]
[AVX512] Update X86InstrInfo::foldMemoryOperandCustom to handle the EVEX encoded instructions too.

llvm-svn: 276390

8 years agoDon't remove side effecting instructions due to ConstantFoldInstruction
David Majnemer [Fri, 22 Jul 2016 04:54:44 +0000 (04:54 +0000)]
Don't remove side effecting instructions due to ConstantFoldInstruction

Just because we can constant fold the result of an instruction does not
imply that we can delete the instruction.  It may have side effects.

This fixes PR28655.

llvm-svn: 276389

8 years agoSync up InstrProfData.inc with compiler-rt with fixes to references
Xinliang David Li [Fri, 22 Jul 2016 04:46:56 +0000 (04:46 +0000)]
Sync up InstrProfData.inc with compiler-rt with fixes to references

llvm-svn: 276388

8 years agoRevert 276386
Xinliang David Li [Fri, 22 Jul 2016 04:31:26 +0000 (04:31 +0000)]
Revert 276386

llvm-svn: 276387

8 years agoSync up InstrProfData.inc with compiler-rt
Xinliang David Li [Fri, 22 Jul 2016 04:18:17 +0000 (04:18 +0000)]
Sync up InstrProfData.inc with compiler-rt

llvm-svn: 276386

8 years ago[Profile] cleanup: do not reference name directly of vars shared between rt and llvm
Xinliang David Li [Fri, 22 Jul 2016 04:08:16 +0000 (04:08 +0000)]
[Profile] cleanup: do not reference name directly of vars shared between rt and llvm

llvm-svn: 276385

8 years ago[ELF/LinkerScript] Support ONLY_IF_{RO, RW} directive.
Davide Italiano [Fri, 22 Jul 2016 03:36:24 +0000 (03:36 +0000)]
[ELF/LinkerScript] Support ONLY_IF_{RO, RW} directive.

Differential Revision:   https://reviews.llvm.org/D22660

llvm-svn: 276384

8 years ago[sanitizer] refactor TransferBatch to hide the implementation. NFC
Kostya Serebryany [Fri, 22 Jul 2016 02:21:12 +0000 (02:21 +0000)]
[sanitizer] refactor TransferBatch to hide the implementation. NFC

llvm-svn: 276383

8 years agoFix r276380 for targets without REALPATH.
Pete Cooper [Fri, 22 Jul 2016 01:52:58 +0000 (01:52 +0000)]
Fix r276380 for targets without REALPATH.

This was a mistake in the layout of the code from r276380.  I moved the appropriate lines out of the #ifdef to fix it.

llvm-svn: 276382

8 years agoFix test on windows, symbolizer returns invalid line
Vitaly Buka [Fri, 22 Jul 2016 01:47:28 +0000 (01:47 +0000)]
Fix test on windows, symbolizer returns invalid line

llvm-svn: 276381

8 years agoAvoid dsymutil calls to getFileNameByIndex.
Pete Cooper [Fri, 22 Jul 2016 01:41:32 +0000 (01:41 +0000)]
Avoid dsymutil calls to getFileNameByIndex.

This change adds a hasFileAtIndex method. getChildDeclContext can first call this method, and if it returns true it knows it can then lookup the resolved path cache for the given file index. If we hit that cache then we don't even have to call getFileNameByIndex.

Running dsymutil against the swift executable built from github gives a 20% performance improvement without any change in the binary.

Differential Revision: https://reviews.llvm.org/D22655

Reviewed by friss.

llvm-svn: 276380

8 years ago[asan] revert to using -std=c++11 on test/asan/TestCases/use-after-scope-capture...
Kostya Serebryany [Fri, 22 Jul 2016 01:34:32 +0000 (01:34 +0000)]
[asan] revert to using -std=c++11 on  test/asan/TestCases/use-after-scope-capture.cc to fix Linux failures after r276332. This probably breaks the windows build, sorry, but returns to the earlier status quo.

llvm-svn: 276379

8 years agofix windows
Vitaly Buka [Fri, 22 Jul 2016 01:34:12 +0000 (01:34 +0000)]
fix windows

llvm-svn: 276378

8 years ago[sanitizer] allocator: introduce kUseSeparateSizeClassForBatch (false by default...
Kostya Serebryany [Fri, 22 Jul 2016 01:13:13 +0000 (01:13 +0000)]
[sanitizer] allocator: introduce kUseSeparateSizeClassForBatch (false by default). When true, it will cause all TransferBatches to be allocated on a separate dedicated size class, which improves security and may potentially simplify memory reclamation. However in the current state this may cause up to 3% extra memory usage. Subsequent changes should bring this overhead down

llvm-svn: 276377

8 years agoFix test on windows
Vitaly Buka [Fri, 22 Jul 2016 01:12:04 +0000 (01:12 +0000)]
Fix test on windows

llvm-svn: 276376

8 years agoAdd test to check detection of stack-use-after-scope on various types
Vitaly Buka [Fri, 22 Jul 2016 00:58:06 +0000 (00:58 +0000)]
Add test to check detection of stack-use-after-scope on various types

Summary:
Test for D22657

PR27453

Reviewers: kcc, eugenis

Subscribers: kubabrecka

Differential Revision: https://reviews.llvm.org/D22658

llvm-svn: 276375

8 years agoFix detection of stack-use-after scope for char arrays.
Vitaly Buka [Fri, 22 Jul 2016 00:56:17 +0000 (00:56 +0000)]
Fix detection of stack-use-after scope for char arrays.

Summary:
Clang inserts GetElementPtrInst so findAllocaForValue was not
able to find allocas.

PR27453

Reviewers: kcc, eugenis

Differential Revision: https://reviews.llvm.org/D22657

llvm-svn: 276374

8 years ago[IRCE] Don't misuse CHECK-LABEL; NFC
Sanjoy Das [Fri, 22 Jul 2016 00:41:02 +0000 (00:41 +0000)]
[IRCE] Don't misuse CHECK-LABEL; NFC

llvm-svn: 276373

8 years ago[IRCE] Add an option to skip profitability checks
Sanjoy Das [Fri, 22 Jul 2016 00:40:56 +0000 (00:40 +0000)]
[IRCE] Add an option to skip profitability checks

If `-irce-skip-profitability-checks` is passed in, IRCE will kick in in
all cases where it is legal for it to kick in.  This flag is intended to
help diagnose and analyse performance issues.

llvm-svn: 276372

8 years agoRestructure release notes.
Eugene Zelenko [Fri, 22 Jul 2016 00:34:42 +0000 (00:34 +0000)]
Restructure release notes.

Differential revision: https://reviews.llvm.org/D22605

llvm-svn: 276371

8 years ago[Coverage] Attempt to appease a Windows builder
Vedant Kumar [Fri, 22 Jul 2016 00:25:09 +0000 (00:25 +0000)]
[Coverage] Attempt to appease a Windows builder

The builder prints out the following IR:

  \5CCoverageMapping\5COutput\5Ctest\5Cf1.c

The updated test in r276367 expects path separators to be either '/' or
'\\', so it chokes on the unexpected "5C" stuff. I'm not sure what that
is, but I included a kludge that should work around it.

Failing bot:

  http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/8718

llvm-svn: 276370

8 years agoAdd support to get the shared cache information from the new
Jason Molenda [Fri, 22 Jul 2016 00:17:55 +0000 (00:17 +0000)]
Add support to get the shared cache information from the new
debugserver jGetSharedCacheInfo packet instead of reading
the dyld internal data structures directly.  This code is
(currently) only used for ios native lldb's - I should really
move this ObjectFileMachO::GetProcessSharedCacheUUID method
somewhere else, it makes less and less sense being in the
file reader.

<rdar://problem/25251243>

llvm-svn: 276369

8 years agoGVN-hoist: move check before mutating the IR
Sebastian Pop [Fri, 22 Jul 2016 00:07:01 +0000 (00:07 +0000)]
GVN-hoist: move check before mutating the IR

llvm-svn: 276368

8 years ago[Coverage] Strengthen a test case
Vedant Kumar [Fri, 22 Jul 2016 00:00:02 +0000 (00:00 +0000)]
[Coverage] Strengthen a test case

We should be able to use `mkdir` without turning on `REQUIRES: shell`.
Moreover, this test should check for a path separator which precedes the
relative filename to make sure that absolute paths are being used.

llvm-svn: 276367

8 years ago[AArch64] Cleanup sign extend in genAlternativeCodeSequence
David Majnemer [Thu, 21 Jul 2016 23:46:56 +0000 (23:46 +0000)]
[AArch64] Cleanup sign extend in genAlternativeCodeSequence

Use the machinery in MathExtras instead of rolling it by hand.

This fixes PR28624.

llvm-svn: 276366

8 years ago[analyzer] Add checker modeling potential C++ self-assignment
Devin Coughlin [Thu, 21 Jul 2016 23:42:31 +0000 (23:42 +0000)]
[analyzer] Add checker modeling potential C++ self-assignment

This checker checks copy and move assignment operators whether they are
protected against self-assignment. Since C++ core guidelines discourages
explicit checking for `&rhs==this` in general we take a different approach: in
top-frame analysis we branch the exploded graph for two cases, where &rhs==this
and &rhs!=this and let existing checkers (e.g. unix.Malloc) do the rest of the
work. It is important that we check all copy and move assignment operator in top
frame even if we checked them already since self-assignments may happen
undetected even in the same translation unit (e.g. using random indices for an
array what may or may not be the same).

This reapplies r275820 after fixing a string-lifetime issue discovered by the
bots.

A patch by Ádám Balogh!

Differential Revision: https://reviews.llvm.org/D19311

llvm-svn: 276365

8 years agoGVN-hoist: add missing check for all GEP operands available
Sebastian Pop [Thu, 21 Jul 2016 23:32:39 +0000 (23:32 +0000)]
GVN-hoist: add missing check for all GEP operands available

llvm-svn: 276364

8 years ago[llvm-cov] Strengthen a test case
Vedant Kumar [Thu, 21 Jul 2016 23:31:26 +0000 (23:31 +0000)]
[llvm-cov] Strengthen a test case

Check that stylesheets work when we're not using -output-dir.

llvm-svn: 276363

8 years ago[Sparc]: Fix bug in LowerSTORE due to r275592
Douglas Katzman [Thu, 21 Jul 2016 23:28:54 +0000 (23:28 +0000)]
[Sparc]: Fix bug in LowerSTORE due to r275592

llvm-svn: 276362

8 years agoReverting r275115 which caused PR28634.
Wolfgang Pieb [Thu, 21 Jul 2016 23:28:18 +0000 (23:28 +0000)]
Reverting r275115 which caused PR28634.
When empty (forwarding) basic blocks that are referenced by user labels
are removed, incorrect code may be generated.

llvm-svn: 276361

8 years ago[InstCombine] break up foldICmpEqualityWithConstant(); NFCI
Sanjay Patel [Thu, 21 Jul 2016 23:27:36 +0000 (23:27 +0000)]
[InstCombine] break up foldICmpEqualityWithConstant(); NFCI

Almost all of these folds require changes to allow vector types.
Splitting up the logic should make that easier to do incrementally.

llvm-svn: 276360

8 years ago[llvm-cov] Use relative paths to the stylesheet (for html reports)
Vedant Kumar [Thu, 21 Jul 2016 23:26:15 +0000 (23:26 +0000)]
[llvm-cov] Use relative paths to the stylesheet (for html reports)

This makes it easy to swap out the default stylesheet for a custom one.
It also shaves ~6.62 MB out of the report directory for a full coverage
build of llvm+clang.

While we're at it, prune the CSS and add tests for it.

llvm-svn: 276359

8 years agoGVH-hoist: only clone GEPs (PR28606)
Sebastian Pop [Thu, 21 Jul 2016 23:22:10 +0000 (23:22 +0000)]
GVH-hoist: only clone GEPs (PR28606)

Do not clone stored values unless they are GEPs that are special cased to avoid
hoisting them without hoisting their associated ld/st.

Differential revision: https://reviews.llvm.org/D22652

llvm-svn: 276358

8 years ago[lit] Use full config path in diagnostics.
Daniel Dunbar [Thu, 21 Jul 2016 23:20:41 +0000 (23:20 +0000)]
[lit] Use full config path in diagnostics.

 - This allows tools like emacs to automatically find the config file path when
   you step through errors.

 - Patch by Dave Abrahams.

llvm-svn: 276357

8 years ago[profile] update test case with interface change.
Xinliang David Li [Thu, 21 Jul 2016 23:19:39 +0000 (23:19 +0000)]
[profile] update test case with interface change.

See http://reviews.llvm.org/D22613, http://reviews.llvm.org/D22614

llvm-svn: 276356

8 years ago[Profile] deprecate __llvm_profile_override_default_filename (part2)
Xinliang David Li [Thu, 21 Jul 2016 23:19:18 +0000 (23:19 +0000)]
[Profile] deprecate __llvm_profile_override_default_filename (part2)

This eliminates unncessary calls and init functions.

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

llvm-svn: 276355

8 years ago[Profile] deprecate __llvm_profile_override_default_filename
Xinliang David Li [Thu, 21 Jul 2016 23:19:10 +0000 (23:19 +0000)]
[Profile] deprecate __llvm_profile_override_default_filename

This eliminates unncessary calls and init functions.

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

llvm-svn: 276354

8 years ago[lit] Bump version number.
Daniel Dunbar [Thu, 21 Jul 2016 23:17:44 +0000 (23:17 +0000)]
[lit] Bump version number.

llvm-svn: 276353

8 years ago[Sema] Handle errors during rewriteBuiltinFunctionDecl
David Majnemer [Thu, 21 Jul 2016 23:03:43 +0000 (23:03 +0000)]
[Sema] Handle errors during rewriteBuiltinFunctionDecl

rewriteBuiltinFunctionDecl can encounter errors when performing
DefaultFunctionArrayLvalueConversion.  These errors were not handled
which led to a null pointer dereference.

This fixes PR28651.

llvm-svn: 276352

8 years agoStop printing double { characters on Dictionary StructuredData objects
Jason Molenda [Thu, 21 Jul 2016 22:50:01 +0000 (22:50 +0000)]
Stop printing double { characters on Dictionary StructuredData objects
when Dumping, thanks to Devin to catching the edit mistake I made in
r276079.

llvm-svn: 276351

8 years ago[CodeGen] Fix a crash when constant folding switch statement
Erik Pilkington [Thu, 21 Jul 2016 22:31:40 +0000 (22:31 +0000)]
[CodeGen] Fix a crash when constant folding switch statement

Differential revision: https://reviews.llvm.org/D22542

llvm-svn: 276350

8 years ago[PM] Port NaryReassociate to the new PM
Wei Mi [Thu, 21 Jul 2016 22:28:52 +0000 (22:28 +0000)]
[PM] Port NaryReassociate to the new PM

Differential Revision: https://reviews.llvm.org/D22648

llvm-svn: 276349

8 years ago[MIRTesting] Abort when failing to parse a function.
Quentin Colombet [Thu, 21 Jul 2016 22:25:57 +0000 (22:25 +0000)]
[MIRTesting] Abort when failing to parse a function.

When we failed to parse a function in the mir parser, we should abort
the whole compilation instead of continuing in a weird state. Indeed,
this was creating strange machine function passes failures that were
hard to understand, until we notice that the function actually did not
get parsed correctly!

llvm-svn: 276348

8 years ago[X86] Do not use AND8ri8 in AVX512 pattern
Michael Kuperstein [Thu, 21 Jul 2016 22:24:08 +0000 (22:24 +0000)]
[X86] Do not use AND8ri8 in AVX512 pattern

This variant is (as documented in the TD) for disassembler use only, and should
not be used in patterns - it is longer, and is broken on 64-bit.

llvm-svn: 276347

8 years ago[sanitizer] trying to fix Mac bots
Kostya Serebryany [Thu, 21 Jul 2016 22:18:36 +0000 (22:18 +0000)]
[sanitizer] trying to fix Mac  bots

llvm-svn: 276346

8 years ago[InstSimplify] don't crash handling a pointer or aggregate type
Sanjay Patel [Thu, 21 Jul 2016 21:56:00 +0000 (21:56 +0000)]
[InstSimplify] don't crash handling a pointer or aggregate type

llvm-svn: 276345

8 years ago[AArch64][Inline-Asm] Return the 32-bit floating point register class
Akira Hatanaka [Thu, 21 Jul 2016 21:39:05 +0000 (21:39 +0000)]
[AArch64][Inline-Asm] Return the 32-bit floating point register class
when constraint "w" is used on a 32-bit operand.

This enables compiling the following code, which used to error out in
the backend:

void foo1(int a) {
  asm volatile ("sqxtn h0, %s0\n" : : "w"(a):);
}

Fixes PR28633.

llvm-svn: 276344

8 years ago[sanitizer] better allocator stats (with rss)
Kostya Serebryany [Thu, 21 Jul 2016 21:38:40 +0000 (21:38 +0000)]
[sanitizer] better allocator stats (with rss)

llvm-svn: 276343

8 years ago[cmake] Move the including of utils/unittests under LLVM_INCLUDE_UTILS instead of...
Michael Gottesman [Thu, 21 Jul 2016 21:35:23 +0000 (21:35 +0000)]
[cmake] Move the including of utils/unittests under LLVM_INCLUDE_UTILS instead of LLVM_INCLUDE_TESTS.

This does not change anything by default since LLVM_INCLUDE_UTILS is already set
to TRUE by default. In addition, since LLVM_INCLUDE_TESTS => LLVM_INCLUDE_UTILS,
the only way that this can cause changes is in the case where LLVM_INCLUDE_UTILS
is set to TRUE, but LLVM_INCLUDE_TESTS is FALSE. In that case, building gtest is
not a huge cost.

The reason to do this is that without this change, one can not turn off
LLVM_INCLUDE_TESTS in downstream projects that also use gtest for unittests. It
also just in general makes more sense since LLVM_INCLUDE_UTILS gates FileCheck
and other utilities that are along the lines of gtest.

Additionally from talking with chandlerc, this was not done for any specific
reason, so there is no reason not to do it and lots of benefit to doing it.

llvm-svn: 276342

8 years ago[InstSimplify] recognize trunc + icmp sgt/slt variants of select simplifications...
Sanjay Patel [Thu, 21 Jul 2016 21:26:45 +0000 (21:26 +0000)]
[InstSimplify] recognize trunc + icmp sgt/slt variants of select simplifications (PR28466)

rL245171 exposed a hole in InstSimplify that manifested in a strange way in PR28466:
https://llvm.org/bugs/show_bug.cgi?id=28466

It's possible to use trunc + icmp sgt/slt in place of an and + icmp eq/ne, so we need to
recognize that pattern to eliminate selects that are choosing between some value and some
bitmasked version of that value.

Note that there is significant room for improvement (refactoring) and enhancement (more
patterns, possibly in InstCombine rather than here).

Differential Revision: https://reviews.llvm.org/D22537

llvm-svn: 276341

8 years ago[OptDiag,LDist] Convert remaining opt remarks to use the new API
Adam Nemet [Thu, 21 Jul 2016 21:21:34 +0000 (21:21 +0000)]
[OptDiag,LDist] Convert remaining opt remarks to use the new API

llvm-svn: 276340

8 years ago[LV] Move vector int induction update to end of latch
Matthew Simpson [Thu, 21 Jul 2016 21:20:15 +0000 (21:20 +0000)]
[LV] Move vector int induction update to end of latch

This patch moves the update instruction for vectorized integer induction phi
nodes to the end of the latch block. This ensures consistent placement of all
induction updates across all the kinds of int inductions we create (scalar,
splat vector, or vector phi).

Differential Revision: https://reviews.llvm.org/D22416

llvm-svn: 276339

8 years agoReally fix invalid EhSectionPiece access.
Rafael Espindola [Thu, 21 Jul 2016 21:15:32 +0000 (21:15 +0000)]
Really fix invalid EhSectionPiece access.

I wonder what is the most idiomatic way to write this.

llvm-svn: 276338

8 years ago[compiler-rt] Add support for relative offset adjustment in interception
Etienne Bergeron [Thu, 21 Jul 2016 21:08:54 +0000 (21:08 +0000)]
[compiler-rt] Add support for relative offset adjustment in interception

Summary:
Some instructions can only be copied if the relative offset is adjusted.

This patch adds support for two common instruction.
It's quite common to have a indirect load in the prologue
(loading the security cookie).

Reviewers: rnk

Subscribers: llvm-commits, wang0109, chrisha

Differential Revision: https://reviews.llvm.org/D22647

llvm-svn: 276336

8 years agoDisable a flaky test on Windows that uses "echo >>"
Reid Kleckner [Thu, 21 Jul 2016 21:07:47 +0000 (21:07 +0000)]
Disable a flaky test on Windows that uses "echo >>"

llvm-svn: 276335

8 years agoFix the clang-cl self-host with VS 2013 headers
Reid Kleckner [Thu, 21 Jul 2016 21:06:04 +0000 (21:06 +0000)]
Fix the clang-cl self-host with VS 2013 headers

std::numeric_limits<int64_t>::max() is not constexpr in VC 2013 headers,
and Clang complains that it isn't. MSVC 2013 itself is emitting a
dynamic initializer for this thing. Instead, use an enum.

llvm-svn: 276334

8 years agoEnable cross-compilation across architectures on android
Francis Ricci [Thu, 21 Jul 2016 21:05:14 +0000 (21:05 +0000)]
Enable cross-compilation across architectures on android

Summary:
This patch fixes cross-architecture compilation,
by allowing flags like -target and --sysroot to be set for
architecture testing and compilation.

Reviewers: tberghammer, srhines, danalbert, beanz, compnerd

Subscribers: tberghammer, llvm-commits, danalbert

Differential Revision: https://reviews.llvm.org/D22415

llvm-svn: 276333

8 years ago[asan] Fix Win64 test portability issues
Reid Kleckner [Thu, 21 Jul 2016 21:04:34 +0000 (21:04 +0000)]
[asan] Fix Win64 test portability issues

The OOM test should really only run on 32-bits, since it's hard to OOM
on x64.

The operator_array_new_with_dtor_left_oob tests need to account for the
larger array cookie on x64 (8 bytes instead of 4).

Use -std=c++14 in use-after-scope-capture.cc to avoid errors in the MSVC
2015 STL on Windows. The default there is C++14 anyway.

llvm-svn: 276332

8 years agoNormalize file docs. NFC.
George Burgess IV [Thu, 21 Jul 2016 20:52:35 +0000 (20:52 +0000)]
Normalize file docs. NFC.

Having the added `\brief` made doxygen interpret it as the summary for
the `llvm` namespace (visible at:
http://llvm.org/doxygen/namespaces.html).

llvm-svn: 276331

8 years ago[PGO] Make needsComdatForCounter() available (NFC)
Rong Xu [Thu, 21 Jul 2016 20:50:02 +0000 (20:50 +0000)]
[PGO] Make needsComdatForCounter() available (NFC)

Move needsComdatForCounter() to lib/ProfileData/InstrProf.cpp from
lib/Transforms/Instrumentation/InstrProfiling.cpp to make is available for
other files.

Differential Revision: https://reviews.llvm.org/D22643

llvm-svn: 276330

8 years agoFix PR28575.
Rafael Espindola [Thu, 21 Jul 2016 20:18:30 +0000 (20:18 +0000)]
Fix PR28575.

Not all relocations from a .eh_frame that point to an executable
section should be ignored. In particular, the relocation finding the
personality function should not.

This is a reduction from trying to bootstrap a static lld on linux.

llvm-svn: 276329

8 years agoadd vector tests and a simpler version of the negative tests
Sanjay Patel [Thu, 21 Jul 2016 20:11:08 +0000 (20:11 +0000)]
add vector tests and a simpler version of the negative tests

llvm-svn: 276328

8 years agoDisable thread safe statics in clang-cl, they call the CRT
Reid Kleckner [Thu, 21 Jul 2016 20:03:37 +0000 (20:03 +0000)]
Disable thread safe statics in clang-cl, they call the CRT

Also remove the needless static that was using them.

llvm-svn: 276327

8 years agoFix unsymbolize unittest. Adding win64 address.
Etienne Bergeron [Thu, 21 Jul 2016 20:02:03 +0000 (20:02 +0000)]
Fix unsymbolize unittest. Adding win64 address.

llvm-svn: 276326

8 years ago[docs] Move GitHub to GitHubSubMod
Renato Golin [Thu, 21 Jul 2016 19:52:27 +0000 (19:52 +0000)]
[docs] Move GitHub to GitHubSubMod

Given that other proposals are making their way through, it's better if we
specify what GitHub proposal this is, in case there are others that also
involve GitHub, but not sub-modules.

llvm-svn: 276325

8 years ago[compiler-rt] Fix interception of memcpy/memmove on win64
Etienne Bergeron [Thu, 21 Jul 2016 19:49:11 +0000 (19:49 +0000)]
[compiler-rt] Fix interception of memcpy/memmove on win64

Summary:
This patch is fixing running interception unittests for memcpy/memmove on
windows 64.

Reviewers: rnk

Subscribers: llvm-commits, wang0109, kubabrecka, chrisha

Differential Revision: https://reviews.llvm.org/D22641

llvm-svn: 276324

8 years ago[ELF] - Basic support of linkerscript commands: DATA_SEGMENT_ALIGN, DATA_SEGMENT_END...
George Rimar [Thu, 21 Jul 2016 19:48:00 +0000 (19:48 +0000)]
[ELF] - Basic support of linkerscript commands: DATA_SEGMENT_ALIGN, DATA_SEGMENT_END, CONSTANT

It is called basic because:

CONSTANT expression can refer to COMMONPAGESIZE and MAXPAGESIZE.
This sizes are usually different and used for possible optimization of
memory consumption.
More details are here: https://sourceware.org/ml/binutils/2002-02/msg00265.html
We currently do not support this optimization, so both CONSTANT(MAXPAGESIZE)
and CONSTANT(COMMONPAGESIZE) just return Target->PageSize value.

DATA_SEGMENT_ALIGN and DATA_SEGMENT_END are used as a part of opt.
The latter one is just ignored now.
According to documentation DATA_SEGMENT_ALIGN has 2 possible
calculation, but since we do not support mentioned opt - it
is always calculated now as (ALIGN(MAXPAGESIZE) + (. & (MAXPAGESIZE - 1))).

In general this should work for now until we deside to support this opt.

Differential revision: https://reviews.llvm.org/D19663

llvm-svn: 276323

8 years agoUpdate comment.
Rui Ueyama [Thu, 21 Jul 2016 19:45:22 +0000 (19:45 +0000)]
Update comment.

llvm-svn: 276322

8 years agoTransfer ownership of the XCore backend.
Richard Osborne [Thu, 21 Jul 2016 19:20:57 +0000 (19:20 +0000)]
Transfer ownership of the XCore backend.

llvm-svn: 276321

8 years agoRevert "Invariant start/end intrinsics overloaded for address space"
Anna Thomas [Thu, 21 Jul 2016 19:06:28 +0000 (19:06 +0000)]
Revert "Invariant start/end intrinsics overloaded for address space"

This reverts commit r276316.

llvm-svn: 276320

8 years ago[IndVars] Reflow oddly formatted condition; NFC
Sanjoy Das [Thu, 21 Jul 2016 18:58:01 +0000 (18:58 +0000)]
[IndVars] Reflow oddly formatted condition; NFC

llvm-svn: 276319

8 years ago[sanitizer] allocator: remove kPopulateSize and only use SizeClassMap::MaxCached...
Kostya Serebryany [Thu, 21 Jul 2016 18:47:53 +0000 (18:47 +0000)]
[sanitizer] allocator: remove kPopulateSize and only use SizeClassMap::MaxCached; ensure that TransferBatch size is a power of two, refactor TransferBatch creation/destruction into separate functions.

llvm-svn: 276318

8 years agoReroll "Include unreferenced nested types in member list only for CodeView"
Adrian McCarthy [Thu, 21 Jul 2016 18:43:20 +0000 (18:43 +0000)]
Reroll "Include unreferenced nested types in member list only for CodeView"

Another attempt at r276271, hopefully without breaking ModuleDebugInfo test.

llvm-svn: 276317

8 years agoInvariant start/end intrinsics overloaded for address space
Anna Thomas [Thu, 21 Jul 2016 18:41:44 +0000 (18:41 +0000)]
Invariant start/end intrinsics overloaded for address space

Summary:
The llvm.invariant.start and llvm.invariant.end intrinsics currently
support specifying invariant memory objects only in the default address space.

With this change, these intrinsics are overloaded for any adddress space for memory objects
and we can use these llvm invariant intrinsics in non-default address spaces.

Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr)

This overloaded intrinsic is needed for representing final or invariant memory in managed languages.

Reviewers: tstellarAMD, reames, apilipenko

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D22519

llvm-svn: 276316

8 years agoFix MSVC 2015 compilation failure around range-for without curly braces
Reid Kleckner [Thu, 21 Jul 2016 18:39:28 +0000 (18:39 +0000)]
Fix MSVC 2015 compilation failure around range-for without curly braces

It doesn't appear to like this pattern:
  for (auto X : Xs)
    if (...) { ... }
    else ...;

We have heard anecdotes that range based for loops are implemented as a
token rewrite in MSVC's lexer, and that the most challenging part of the
rewrite is finding the end of the for loop. That makes sense, given that
it's a lexer.

llvm-svn: 276315

8 years agoFix clang-cl warning and crash in sanitizers
Reid Kleckner [Thu, 21 Jul 2016 18:31:01 +0000 (18:31 +0000)]
Fix clang-cl warning and crash in sanitizers

Make kStderrFd a macro to avoid dynamic initialization of the
report_file global. This actually causes a crash at runtime, because
ASan initializes before static initializers run.

Remove an unused variable in asan_win.cc.

llvm-svn: 276314

8 years agoUse just built llvm-as in tests.
Rafael Espindola [Thu, 21 Jul 2016 18:08:36 +0000 (18:08 +0000)]
Use just built llvm-as in tests.

llvm-svn: 276313

8 years agomake InstCombine compare helper functions private; NFC
Sanjay Patel [Thu, 21 Jul 2016 18:07:40 +0000 (18:07 +0000)]
make InstCombine compare helper functions private; NFC

Also, rename some of them for consistency and to follow current conventions.

llvm-svn: 276312

8 years agofix https://reviews.llvm.org/D22610
Etienne Bergeron [Thu, 21 Jul 2016 17:58:04 +0000 (17:58 +0000)]
fix https://reviews.llvm.org/D22610
AppleClang can't compile the assignment expression.

llvm-svn: 276311

8 years agoAvoid a string copy, NFC
Vedant Kumar [Thu, 21 Jul 2016 17:50:07 +0000 (17:50 +0000)]
Avoid a string copy, NFC

llvm-svn: 276310

8 years agoRemove FIXME for feature test macro
JF Bastien [Thu, 21 Jul 2016 17:34:28 +0000 (17:34 +0000)]
Remove FIXME for feature test macro

The value I'd picked was correct, as per the recently published SG10 paper http://wg21.link/p0096r3

llvm-svn: 276309

8 years ago[IRTranslator] Add G_SUB opcode.
Quentin Colombet [Thu, 21 Jul 2016 17:26:50 +0000 (17:26 +0000)]
[IRTranslator] Add G_SUB opcode.

This commit adds a generic SUB opcode to global-isel.

llvm-svn: 276308

8 years ago[llvm-config][GlobalISel] Canonicalize LLVM_HAS_GLOBAL_ISEL on ON/OFF.
Quentin Colombet [Thu, 21 Jul 2016 17:26:47 +0000 (17:26 +0000)]
[llvm-config][GlobalISel] Canonicalize LLVM_HAS_GLOBAL_ISEL on ON/OFF.

Previously LLVM_HAS_GLOBAL_ISEL would directly get the value of
LLVM_BUILD_GLOBAL_ISEL. This could be any integer value and not just ON
and OFF. The problem is that lit.cfg was checking for ON to define that
global-isel was supported, thus if we were setting
LLVM_BUILD_GLOBAL_ISEL with an integer value, say 1, this test would
fail whereas we do build global-isel and want to test it.

llvm-svn: 276307

8 years ago[CMake][GlobalISel] Turn LLVM_BUILD_GLOBAL_ISEL into an option. NFC.
Quentin Colombet [Thu, 21 Jul 2016 17:26:45 +0000 (17:26 +0000)]
[CMake][GlobalISel] Turn LLVM_BUILD_GLOBAL_ISEL into an option. NFC.

Previously LLVM_BUILD_GLOBAL_ISEL was a boolean variable and although,
this is strictly identical to an option, it did not convey the
information that the user may set it. Options are here for that.

llvm-svn: 276306

8 years ago[IRTranslator] Add comments to explain the ordering of the switch. NFC.
Quentin Colombet [Thu, 21 Jul 2016 17:26:41 +0000 (17:26 +0000)]
[IRTranslator] Add comments to explain the ordering of the switch. NFC.

Group arithmetic operations, bitwise operations, and branch operations.

llvm-svn: 276305