]> granicus.if.org Git - llvm/log
llvm
8 years agoAdd a test for r280191
David Majnemer [Fri, 16 Sep 2016 02:43:36 +0000 (02:43 +0000)]
Add a test for r280191

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281694 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "[asan] Avoid lifetime analysis for allocas with can be in ambiguous state"
Vitaly Buka [Fri, 16 Sep 2016 01:38:46 +0000 (01:38 +0000)]
Revert "[asan] Avoid lifetime analysis for allocas with can be in ambiguous state"

This approach is not good enough. Working on the new solution.

This reverts commit r280907.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281689 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "[asan] Add flag to allow lifetime analysis of problematic allocas"
Vitaly Buka [Fri, 16 Sep 2016 01:38:43 +0000 (01:38 +0000)]
Revert "[asan] Add flag to allow lifetime analysis of problematic allocas"

This approach is not good enough. Working on the new solution.

This reverts commit r281126.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281688 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix autoupgrade logic for Objective-C class properties module flag
Mehdi Amini [Fri, 16 Sep 2016 00:38:18 +0000 (00:38 +0000)]
Fix autoupgrade logic for Objective-C class properties module flag

Previous we were issuing an error when linking a module containing
the new Objective-C metadata structure for class properties with an
"old" one.
Now instead we downgrade the module flag so that the Objective-C
runtime does not expect the new metadata structure.

This is consistent with what ld64 is doing on binary files.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281685 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agobuild_llvm_package.bat: Update to VS2015 and include LLDB
Hans Wennborg [Thu, 15 Sep 2016 23:01:03 +0000 (23:01 +0000)]
build_llvm_package.bat: Update to VS2015 and include LLDB

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281676 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] move folds for icmp (sh C2, Y), C1 in with other icmp+sh folds; NFCI
Sanjay Patel [Thu, 15 Sep 2016 22:26:31 +0000 (22:26 +0000)]
[InstCombine] move folds for icmp (sh C2, Y), C1 in with other icmp+sh folds; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281672 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] make caller-callee feedback work with trace-pc-guard
Kostya Serebryany [Thu, 15 Sep 2016 22:16:15 +0000 (22:16 +0000)]
[libFuzzer] make caller-callee feedback work with trace-pc-guard

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281667 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[sanitizer-coverage] make trace-pc-guard and indirect-call work together
Kostya Serebryany [Thu, 15 Sep 2016 22:11:08 +0000 (22:11 +0000)]
[sanitizer-coverage] make trace-pc-guard and indirect-call work together

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281665 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[codeview] Optimize the size of defranges with gaps
Reid Kleckner [Thu, 15 Sep 2016 22:05:08 +0000 (22:05 +0000)]
[codeview] Optimize the size of defranges with gaps

For small, discontiguous local variable regions, CodeView can use a
single defrange record with a gap, rather than having two defrange
records. I expect that this optimization will only have a minor impact
on debug info size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281664 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] allow icmp (shr/shl) folds for vectors
Sanjay Patel [Thu, 15 Sep 2016 21:35:30 +0000 (21:35 +0000)]
[InstCombine] allow icmp (shr/shl) folds for vectors

These 2 helper functions were already using APInt internally, so just
change the API and caller to allow folds for splats. The scalar
regression tests look quite thorough, so I just added a couple of
tests to prove that vectors are handled too.

These folds should be grouped with the other cmp+shift folds though.
That can be an NFC follow-up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281663 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoregenerate checks
Sanjay Patel [Thu, 15 Sep 2016 20:39:01 +0000 (20:39 +0000)]
regenerate checks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281655 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[GlobalOpt] Dead Eliminate declarations
Mehdi Amini [Thu, 15 Sep 2016 20:26:27 +0000 (20:26 +0000)]
[GlobalOpt] Dead Eliminate declarations

GlobalOpt is already dead-code-eliminating global definitions. With
this change it also takes care of declarations.
Hopefully this should make it now a strict superset of GlobalDCE.
This is important for LTO/ThinLTO as we don't want the linker to see
"undefined reference" when it processes the input files: it could
prevent proper internalization (or even load an extra file from a
static archive, changing the behavior of the program!).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281653 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] Do not RAUW a constant GEP
David Majnemer [Thu, 15 Sep 2016 20:10:09 +0000 (20:10 +0000)]
[InstCombine] Do not RAUW a constant GEP

canRewriteGEPAsOffset expects to process instructions, not constants.

This fixes PR30342.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281650 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[AArch64] Support for FP FMA when -ffp-contract=fast
Evandro Menezes [Thu, 15 Sep 2016 19:55:23 +0000 (19:55 +0000)]
[AArch64] Support for FP FMA when -ffp-contract=fast

Currently, the machine combiner can proceed matching when -ffast-math is on.
It should also match when only -ffp-contract=fast is specified as was the
case before when DAGCombiner was doing the job.

Patch by: Abderrazek Zaafrani <a.zaafrani@samsung.com>.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281649 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "[ARM] Promote small global constants to constant pools"
Evgeniy Stepanov [Thu, 15 Sep 2016 19:13:32 +0000 (19:13 +0000)]
Revert "[ARM] Promote small global constants to constant pools"

This reverts r281604, which adds text relocations to ARM binaries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281645 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] simplify code; NFCI
Sanjay Patel [Thu, 15 Sep 2016 19:04:55 +0000 (19:04 +0000)]
[InstCombine] simplify code; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281644 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PM] Port CFGViewer and CFGPrinter to the new Pass Manager
Sriraman Tallam [Thu, 15 Sep 2016 18:35:27 +0000 (18:35 +0000)]
[PM] Port CFGViewer and CFGPrinter to the new Pass Manager
Differential Revision: https://reviews.llvm.org/D24592

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281640 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Write the IPI stream.
Zachary Turner [Thu, 15 Sep 2016 18:22:31 +0000 (18:22 +0000)]
[pdb] Write the IPI stream.

The IPI stream is structurally identical to the TPI stream, but it
contains different record types.  So we just re-use the TPI writing
code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281638 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agofix function names; NFC
Sanjay Patel [Thu, 15 Sep 2016 18:22:25 +0000 (18:22 +0000)]
fix function names; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281637 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Fix the TPI stream size computation.
Zachary Turner [Thu, 15 Sep 2016 18:22:21 +0000 (18:22 +0000)]
[pdb] Fix the TPI stream size computation.

We were inadvertently adding the size of the hash value stream to
the size of the TPI stream, even though the hash value stream is
an entirely separate stream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281636 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] fix the build for AFLDriverTest
Kostya Serebryany [Thu, 15 Sep 2016 18:10:38 +0000 (18:10 +0000)]
[libFuzzer] fix the build for  AFLDriverTest

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281633 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] allow icmp (sub nsw) folds for vectors
Sanjay Patel [Thu, 15 Sep 2016 18:05:17 +0000 (18:05 +0000)]
[InstCombine] allow icmp (sub nsw) folds for vectors

Also, clean up the code and comments for the existing folds in foldICmpSubConstant().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281631 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] add vector tests for icmp (sub nsw)
Sanjay Patel [Thu, 15 Sep 2016 17:54:47 +0000 (17:54 +0000)]
[InstCombine] add vector tests for icmp (sub nsw)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281630 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[IRObjectFile] Handle undefined weak symbols in RecordStreamer.
Davide Italiano [Thu, 15 Sep 2016 17:54:22 +0000 (17:54 +0000)]
[IRObjectFile] Handle undefined weak symbols in RecordStreamer.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281629 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoTake ownership of libLTO as discussed on llvm-dev.
Peter Collingbourne [Thu, 15 Sep 2016 17:42:39 +0000 (17:42 +0000)]
Take ownership of libLTO as discussed on llvm-dev.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281628 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] remove duplicated fold ; NFCI
Sanjay Patel [Thu, 15 Sep 2016 17:01:17 +0000 (17:01 +0000)]
[InstCombine] remove duplicated fold ; NFCI

This pattern is matched in foldICmpBinOpEqualityWithConstant() and already works
with vectors too. I changed some comments over there to point out the current
location. The tests for this transform are currently in 'sub.ll'.

Note that the remaining folds in this block all require a sub too, so they should
get grouped with the other icmp(sub) patterns.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281627 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] allow (icmp sgt smin(PosA, B), 0) fold for vectors
Sanjay Patel [Thu, 15 Sep 2016 16:23:20 +0000 (16:23 +0000)]
[InstCombine] allow (icmp sgt smin(PosA, B), 0) fold for vectors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281624 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] add vector tests for icmp sgt smin
Sanjay Patel [Thu, 15 Sep 2016 16:13:41 +0000 (16:13 +0000)]
[InstCombine] add vector tests for icmp sgt smin

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281623 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] auto-generate checks
Sanjay Patel [Thu, 15 Sep 2016 15:48:53 +0000 (15:48 +0000)]
[InstCombine] auto-generate checks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281621 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[compiler-rt] Changing function prototype returning unused value
Etienne Bergeron [Thu, 15 Sep 2016 15:45:05 +0000 (15:45 +0000)]
[compiler-rt] Changing function prototype returning unused value

Summary: The return value of `maybeInsertAsanInitAtFunctionEntry` is ignored.

Reviewers: rnk

Subscribers: llvm-commits, chrisha, dberris

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281620 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix silly mistake introduced here : https://reviews.llvm.org/D24566
Etienne Bergeron [Thu, 15 Sep 2016 15:35:59 +0000 (15:35 +0000)]
Fix silly mistake introduced here : https://reviews.llvm.org/D24566
Asan bots are currently broken without this patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281618 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoaddress comments from: https://reviews.llvm.org/D24566
Etienne Bergeron [Thu, 15 Sep 2016 15:19:19 +0000 (15:19 +0000)]
address comments from: https://reviews.llvm.org/D24566
using startswith instead of find.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281617 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDocument our extension to the COFF .section directive flags
Reid Kleckner [Thu, 15 Sep 2016 15:11:49 +0000 (15:11 +0000)]
Document our extension to the COFF .section directive flags

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281616 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] clean up foldICmpWithConstant(); NFC
Sanjay Patel [Thu, 15 Sep 2016 15:11:12 +0000 (15:11 +0000)]
[InstCombine] clean up foldICmpWithConstant(); NFC
1. Early exit to reduce indent
2. Rename variables
3. Add local 'Pred' variable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281615 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] add helper function for foldICmpWithConstant; NFC
Sanjay Patel [Thu, 15 Sep 2016 14:37:50 +0000 (14:37 +0000)]
[InstCombine] add helper function for foldICmpWithConstant; NFC

This is a big glob of transforms that probably should work for vectors,
but currently they are disallowed because of ConstantInt guards.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281614 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] use m_APInt to allow icmp folds using known bits for splat constant...
Sanjay Patel [Thu, 15 Sep 2016 14:15:47 +0000 (14:15 +0000)]
[InstCombine] use m_APInt to allow icmp folds using known bits for splat constant vectors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281613 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[mips][ias] Enable IAS by default for N64 on Debian mips64el.
Simon Dardis [Thu, 15 Sep 2016 13:13:01 +0000 (13:13 +0000)]
[mips][ias] Enable IAS by default for N64 on Debian mips64el.

Unfortunately we can't enable it for all N64 because it is not yet possible to
distinguish N32 from N64.

N64 has been confirmed to produce identical (within reason) objects to GAS
during stage 2 of compiler recursion on N64-abit Fedora. Unfortunately,
Fedora's triples do not distinguish N32 from N64 so I can't enable it by
default there. I'm currently repeating this testing for Debian mips64el but
it's very unlikely to produce a different result.

Patch by: Daniel Sanders

Reviewers: sdardis

Differential Review: https://reviews.llvm.org/D22678

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281607 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ARM] Promote small global constants to constant pools
James Molloy [Thu, 15 Sep 2016 12:30:27 +0000 (12:30 +0000)]
[ARM] Promote small global constants to constant pools

If a constant is unamed_addr and is only used within one function, we can save
on the code size and runtime cost of an indirection by changing the global's storage
to inside the constant pool. For example, instead of:

      ldr r0, .CPI0
      bl printf
      bx lr
    .CPI0: &format_string
    format_string: .asciz "hello, world!\n"

We can emit:

      adr r0, .CPI0
      bl printf
      bx lr
    .CPI0: .asciz "hello, world!\n"

This can cause significant code size savings when many small strings are used in one
function (4 bytes per string).

This recommit contains fixes for a nasty bug related to fast-isel fallback - because
fast-isel doesn't know about this optimization, if it runs and emits references to
a string that we inline (because fast-isel fell back to SDAG) we will end up
with an inlined string and also an out-of-line string, and we won't emit the
out-of-line string, causing backend failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281604 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoGlobalISel: legalize GEP instructions with small offsets.
Tim Northover [Thu, 15 Sep 2016 11:02:19 +0000 (11:02 +0000)]
GlobalISel: legalize GEP instructions with small offsets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281602 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoGlobalISel: relax type constraints on G_ICMP to allow pointers.
Tim Northover [Thu, 15 Sep 2016 10:40:38 +0000 (10:40 +0000)]
GlobalISel: relax type constraints on G_ICMP to allow pointers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281600 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoGlobalISel: remove "unsized" LLT
Tim Northover [Thu, 15 Sep 2016 10:09:59 +0000 (10:09 +0000)]
GlobalISel: remove "unsized" LLT

It was only really there as a sentinel when instructions had to have precisely
one type. Now that registers are typed, each register really has to have a type
that is sized.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281599 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agollvm/test/Transforms/CorrelatedValuePropagation/alloca.ll REQUIRES +Asserts.
NAKAMURA Takumi [Thu, 15 Sep 2016 09:45:31 +0000 (09:45 +0000)]
llvm/test/Transforms/CorrelatedValuePropagation/alloca.ll REQUIRES +Asserts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281598 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoGlobalISel: cache pointer sizes in LLT
Tim Northover [Thu, 15 Sep 2016 09:20:34 +0000 (09:20 +0000)]
GlobalISel: cache pointer sizes in LLT

Otherwise everything that needs to work out what size they are has to keep a
DataLayout handy, which is a bit silly and very annoying.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281597 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Move some layout logic to the right spot (NFC)
Vedant Kumar [Thu, 15 Sep 2016 06:49:13 +0000 (06:49 +0000)]
[llvm-cov] Move some layout logic to the right spot (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281590 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Hide instantiation views for unexecuted functions
Vedant Kumar [Thu, 15 Sep 2016 06:44:51 +0000 (06:44 +0000)]
[llvm-cov] Hide instantiation views for unexecuted functions

Copying in the full text of the function doesn't help at all when we
already know that it's never executed. Just say that it's unexecuted --
the relevant source text has already been printed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281589 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Don't create 'jump to ...' links in nested views
Vedant Kumar [Thu, 15 Sep 2016 06:44:48 +0000 (06:44 +0000)]
[llvm-cov] Don't create 'jump to ...' links in nested views

Doing so is pointless, since the whole view is usually visible in a
small amount of space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281588 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd some shortcuts in LazyValueInfo to reduce compile time of Correlated Value Propag...
Wei Mi [Thu, 15 Sep 2016 06:28:34 +0000 (06:28 +0000)]
Add some shortcuts in LazyValueInfo to reduce compile time of Correlated Value Propagation.

The patch is to partially fix PR10584. Correlated Value Propagation queries LVI
to check non-null for pointer params of each callsite. If we know the def of
param is an alloca instruction, we know it is non-null and can return early from
LVI. Similarly, CVP queries LVI to check whether pointer for each mem access is
constant. If the def of the pointer is an alloca instruction, we know it is not
a constant pointer. These shortcuts can reduce the cost of CVP significantly.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281586 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CMake] Fixing lit for runtimes directory
Jonas Hahnfeld [Thu, 15 Sep 2016 06:14:13 +0000 (06:14 +0000)]
[CMake] Fixing lit for runtimes directory

Copy variable LLVM_BUILD_MAIN_SRC_DIR from LLVMConfig.cmake to
LLVM_MAIN_SRC_DIR as it is named for in-tree builds. This ensures that
add_lit_target() can reliably find llvm-lit which is not necessarily
in the PATH.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281585 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] disable test that requires debug info -- it fails on the bot
Kostya Serebryany [Thu, 15 Sep 2016 05:46:58 +0000 (05:46 +0000)]
[libFuzzer] disable test that requires debug info -- it fails on the bot

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281584 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] move the AFL driver build rule test into the uninstrumented dir
Kostya Serebryany [Thu, 15 Sep 2016 05:17:39 +0000 (05:17 +0000)]
[libFuzzer] move the AFL driver build rule test into the uninstrumented dir

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281583 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Make a method name more accurate (NFC)
Vedant Kumar [Thu, 15 Sep 2016 04:45:59 +0000 (04:45 +0000)]
[llvm-cov] Make a method name more accurate (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281581 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] fix print_pcs test
Kostya Serebryany [Thu, 15 Sep 2016 04:43:06 +0000 (04:43 +0000)]
[libFuzzer] fix print_pcs test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281580 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Don't print a verbose title when looking at one file
Vedant Kumar [Thu, 15 Sep 2016 04:41:39 +0000 (04:41 +0000)]
[llvm-cov] Don't print a verbose title when looking at one file

Having the same title, timestamp, etc. occur repeatedly creates an
unnecessary distraction when paging through a report.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281579 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-cov] Fix tests that aren't checking anything (NFC)
Vedant Kumar [Thu, 15 Sep 2016 04:41:37 +0000 (04:41 +0000)]
[llvm-cov] Fix tests that aren't checking anything (NFC)

E.g the 'showProjectSummary' test contains some checks which can't fail
because they match themselves...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281578 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] implement print_pcs with trace-pc-guard. Change the trace-pc-guard heuris...
Kostya Serebryany [Thu, 15 Sep 2016 04:36:45 +0000 (04:36 +0000)]
[libFuzzer] implement print_pcs with trace-pc-guard. Change the trace-pc-guard heuristic for 8-bit counters to look more like in AFL (not that it's provable better, but the existin test preferes this heuristic)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281577 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd a C++ unittest to test the fix for PR30213.
Wei Mi [Thu, 15 Sep 2016 04:06:44 +0000 (04:06 +0000)]
Add a C++ unittest to test the fix for PR30213.

The test exercises the branch in scev expansion when the value in ValueOffsetPair
is a ptr and the offset is not divisible by the elem type size of value.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281575 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[doc] [CUDA] Add sections about STL support and differences between nvcc and clang...
Justin Lebar [Thu, 15 Sep 2016 02:04:32 +0000 (02:04 +0000)]
[doc] [CUDA] Add sections about STL support and differences between nvcc and clang to CompileCudaWithLLVM.rst.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281573 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LangRef] Add a clarifying example for undef
Sanjoy Das [Thu, 15 Sep 2016 01:56:58 +0000 (01:56 +0000)]
[LangRef] Add a clarifying example for undef

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281570 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] add 8-bit counters to trace-pc-guard handler
Kostya Serebryany [Thu, 15 Sep 2016 01:30:18 +0000 (01:30 +0000)]
[libFuzzer] add 8-bit counters to trace-pc-guard handler

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281568 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] refactor eq/ne cases in foldICmpUsingKnownBits() ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 23:38:56 +0000 (23:38 +0000)]
[InstCombine] refactor eq/ne cases in foldICmpUsingKnownBits() ; NFCI

The pattern matching and transforms are identical; the cmp predicate just changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281561 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Fix unit test compilation.
Zachary Turner [Wed, 14 Sep 2016 23:17:08 +0000 (23:17 +0000)]
[pdb] Fix unit test compilation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281560 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[InstCombine] add vector tests for foldICmpUsingKnownBits()
Sanjay Patel [Wed, 14 Sep 2016 23:15:11 +0000 (23:15 +0000)]
[InstCombine] add vector tests for foldICmpUsingKnownBits()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281559 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Get rid of Data and RawData in CVType.
Zachary Turner [Wed, 14 Sep 2016 23:00:16 +0000 (23:00 +0000)]
[pdb] Get rid of Data and RawData in CVType.

The `CVType` had two redundant fields which were confusing and
error-prone to fill out.  By treating member records as a distinct
type from leaf records, we are able to simplify this quite a bit.

Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D24432

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281556 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Write TPI hash values to the TPI stream.
Zachary Turner [Wed, 14 Sep 2016 23:00:02 +0000 (23:00 +0000)]
[pdb] Write TPI hash values to the TPI stream.

This completes being able to write all the interesting
values of a PDB TPI stream.

Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D24370

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281555 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[MC] Handle discardable COFF sections in assembly
Reid Kleckner [Wed, 14 Sep 2016 22:41:50 +0000 (22:41 +0000)]
[MC] Handle discardable COFF sections in assembly

Summary:
This fixes a dumpbin warning on objects produced by the MC assembler
when starting from text. All .debug$S sections are supposed to be marked
IMAGE_SCN_MEM_DISCARDABLE. The main, non-COMDAT .debug$S section had
this set, but any comdat ones were not being marked discardable because
there was no .section flag for it.

This change does two things:

- If the section name starts with .debug, implicitly mark the section as
  discardable. This means we do the same thing as gas on .s files with
  DWARF from GCC, which is important.

- Adds the 'D' flag to the .section directive on COFF to explicitly say
  a section is discardable. We only emit this flag if the section name
  does not start with .debug. This allows the user to explicitly tweak
  their section flags without worrying about magic section names.

The only thing you can't do in this scheme is to create a
non-discardable section with a name starting with ".debug", but
hopefully users don't need that.

Reviewers: majnemer, rafael

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281554 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix auto-upgrade of TBAA tags in Bitcode Reader
Mehdi Amini [Wed, 14 Sep 2016 22:29:59 +0000 (22:29 +0000)]
Fix auto-upgrade of TBAA tags in Bitcode Reader

If TBAA is on an intrinsic and it gets upgraded, it'll delete the call
instruction that we collected in a vector. Even if we were to use
WeakVH, it'll drop the TBAA and we'll hit the assert on the upgrade
path.

r263673 gave a shot to make sure the TBAA upgrade happens before
intrinsics upgrade, but failed to account for all cases.

Instead of collecting instructions in a vector, this patch makes it
just upgrade the TBAA on the fly, because metadata are always
already loaded at this point.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281549 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix indentation in codeview code
Reid Kleckner [Wed, 14 Sep 2016 21:49:21 +0000 (21:49 +0000)]
Fix indentation in codeview code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281542 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LTO] Move tests from test/tools to test/LTO, as they're testing the API functionalit...
Mehdi Amini [Wed, 14 Sep 2016 21:07:32 +0000 (21:07 +0000)]
[LTO] Move tests from test/tools to test/LTO, as they're testing the API functionalities (NFC)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281539 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LTO] Fix commons handling
Mehdi Amini [Wed, 14 Sep 2016 21:05:04 +0000 (21:05 +0000)]
[LTO] Fix commons handling

Previously the prevailing information was not honored, and commons
symbols could override a strong definition. This patch fixes it and
propose the following semantic for commons: the client should mark
as prevailing the commons that it expects the LTO implementation to
merge (i.e. take the maximum size and alignment).
It implies that commons are allowed to have multiple prevailing
definitions.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281538 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ThinLTO] Add an option to llvm-lto to print some basic statistics for the index
Mehdi Amini [Wed, 14 Sep 2016 21:04:59 +0000 (21:04 +0000)]
[ThinLTO] Add an option to llvm-lto to print some basic statistics for the index

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281537 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFinish renaming remaining analyzeBranch functions
Matt Arsenault [Wed, 14 Sep 2016 20:43:16 +0000 (20:43 +0000)]
Finish renaming remaining analyzeBranch functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281535 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Stackmap] Added callsite counts to emitted function information.
Sanjoy Das [Wed, 14 Sep 2016 20:22:03 +0000 (20:22 +0000)]
[Stackmap] Added callsite counts to emitted function information.

Summary:
It was previously not possible for tools to use solely the stackmap
information emitted to reconstruct the return addresses of callsites in
the map, which is necessary to use the information to walk a stack. This
patch adds per-function callsite counts when emitting the stackmap
section in order to resolve the problem. Note that this slightly alters
the stackmap format, so external tools parsing these maps will need to
be updated.

**Problem Details:**
Records only store their offset from the beginning of the function they
belong to. While these records and the functions are output in program
order, it is not possible to determine where the end of one function's
records are without the callsite count when processing the records to
compute return addresses.

Patch by Kavon Farvardin!

Reviewers: atrick, ributzka, sanjoy

Subscribers: nemanjai

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281532 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[x86] regenerate checks
Sanjay Patel [Wed, 14 Sep 2016 20:21:28 +0000 (20:21 +0000)]
[x86] regenerate checks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281531 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[x86] regenerate checks
Sanjay Patel [Wed, 14 Sep 2016 20:16:24 +0000 (20:16 +0000)]
[x86] regenerate checks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281529 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "[ARM] Promote small global constants to constant pools"
Evgeniy Stepanov [Wed, 14 Sep 2016 20:02:30 +0000 (20:02 +0000)]
Revert "[ARM] Promote small global constants to constant pools"

Breaks Android tests by introducing text relocations to ARM binaries.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/25362/steps/run%20asan%20lit%20tests%20%5Barm%2Fbullhead-userdebug%2FMTC20F%5D/logs/stdio

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281526 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[x86] regenerate checks
Sanjay Patel [Wed, 14 Sep 2016 19:42:03 +0000 (19:42 +0000)]
[x86] regenerate checks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281523 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[lib/LTO] Fix a typo. NFC.
Davide Italiano [Wed, 14 Sep 2016 18:48:43 +0000 (18:48 +0000)]
[lib/LTO] Fix a typo. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281517 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "AMDGPU: Use SOPK compare instructions"
Matt Arsenault [Wed, 14 Sep 2016 18:04:42 +0000 (18:04 +0000)]
Revert "AMDGPU: Use SOPK compare instructions"

Accidentally committed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281514 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAMDGPU: Use SOPK compare instructions
Matt Arsenault [Wed, 14 Sep 2016 18:03:53 +0000 (18:03 +0000)]
AMDGPU: Use SOPK compare instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281513 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoVerifier: Mark orphaned DICompileUnits as a debug info failure.
Adrian Prantl [Wed, 14 Sep 2016 17:30:37 +0000 (17:30 +0000)]
Verifier: Mark orphaned DICompileUnits as a debug info failure.
This is a follow-up to r268778 that adds a couple of missing cases,
most notably orphaned compile units.

rdar://problem/28193346

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281508 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMake analyzeBranch family of instruction names consistent
Matt Arsenault [Wed, 14 Sep 2016 17:24:15 +0000 (17:24 +0000)]
Make analyzeBranch family of instruction names consistent

analyzeBranch was renamed to use lowercase first, rename
the related set to match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281506 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAArch64: Use TTI branch functions in branch relaxation
Matt Arsenault [Wed, 14 Sep 2016 17:23:48 +0000 (17:23 +0000)]
AArch64: Use TTI branch functions in branch relaxation

The main change is to return the code size from
InsertBranch/RemoveBranch.

Patch mostly by Tim Northover

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281505 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[x86] fix formatting; NFC
Sanjay Patel [Wed, 14 Sep 2016 17:23:18 +0000 (17:23 +0000)]
[x86] fix formatting; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281504 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[compiler-rt] Avoid instrumenting sanitizer functions
Etienne Bergeron [Wed, 14 Sep 2016 17:18:37 +0000 (17:18 +0000)]
[compiler-rt] Avoid instrumenting sanitizer functions

Summary:
Function __asan_default_options is called by __asan_init before the
shadow memory got initialized. Instrumenting that function may lead
to flaky execution.

As the __asan_default_options is provided by users, we cannot expect
them to add the appropriate function atttributes to avoid
instrumentation.

Reviewers: kcc, rnk

Subscribers: dberris, chrisha, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281503 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE] Improve recognition of i64 sitofp conversions that can be performed as...
Simon Pilgrim [Wed, 14 Sep 2016 17:15:26 +0000 (17:15 +0000)]
[X86][SSE] Improve recognition of i64 sitofp conversions that can be performed as i32 (PR29078)

Until AVX512DQ we only support i64/vXi64 sitofp conversion as scalars.

This patch sees if the sign bit extends far enough that we can truncate to a i32 type and then perform sitofp without loss of precision.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281502 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopInterchange] Typo. NFC.
Chad Rosier [Wed, 14 Sep 2016 17:12:30 +0000 (17:12 +0000)]
[LoopInterchange] Typo. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281501 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopInterchange] Add CL option to override cost threshold.
Chad Rosier [Wed, 14 Sep 2016 17:07:13 +0000 (17:07 +0000)]
[LoopInterchange] Add CL option to override cost threshold.

Mostly useful for getting consistent lit testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281500 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE] Don't use PSHUFD directly - lower with generic shuffle
Simon Pilgrim [Wed, 14 Sep 2016 17:04:22 +0000 (17:04 +0000)]
[X86][SSE] Don't use PSHUFD directly - lower with generic shuffle

Remove the last user of the old getTargetShuffleNode helpers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281499 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agogetValueType().getScalarSizeInBits() -> getScalarValueSizeInBits(), round 2 ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 16:54:10 +0000 (16:54 +0000)]
getValueType().getScalarSizeInBits() -> getScalarValueSizeInBits(), round 2 ; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281498 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LoopInterchange] Cleanup debug whitespace. NFC.
Chad Rosier [Wed, 14 Sep 2016 16:43:19 +0000 (16:43 +0000)]
[LoopInterchange] Cleanup debug whitespace. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281497 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agogetVectorElementType().getSizeInBits() -> getScalarSizeInBits() ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 16:37:15 +0000 (16:37 +0000)]
getVectorElementType().getSizeInBits() -> getScalarSizeInBits() ; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281495 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agogetValueType().getSizeInBits() -> getValueSizeInBits() ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 16:05:51 +0000 (16:05 +0000)]
getValueType().getSizeInBits() -> getValueSizeInBits() ; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281493 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix typo in comment [NFC]
Etienne Bergeron [Wed, 14 Sep 2016 15:59:32 +0000 (15:59 +0000)]
Fix typo in comment [NFC]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281492 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAMDGPU: Support folding FrameIndex operands
Matt Arsenault [Wed, 14 Sep 2016 15:51:33 +0000 (15:51 +0000)]
AMDGPU: Support folding FrameIndex operands

This avoids test regressions in a future commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281491 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agogetValueType().getScalarSizeInBits() -> getScalarValueSizeInBits() ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 15:43:44 +0000 (15:43 +0000)]
getValueType().getScalarSizeInBits() -> getScalarValueSizeInBits() ; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281490 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agogetScalarType().getSizeInBits() -> getScalarSizeInBits() ; NFCI
Sanjay Patel [Wed, 14 Sep 2016 15:21:00 +0000 (15:21 +0000)]
getScalarType().getSizeInBits() -> getScalarSizeInBits() ; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281489 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAMDGPU: Improve splitting 64-bit bit ops by constants
Matt Arsenault [Wed, 14 Sep 2016 15:19:03 +0000 (15:19 +0000)]
AMDGPU: Improve splitting 64-bit bit ops by constants

This addresses a TODO to handle operations besides and. This
also starts eliminating no-op operations with a constant that
can emerge later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281488 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[LV] Process pointer IVs with PHINodes in collectLoopUniforms
Matthew Simpson [Wed, 14 Sep 2016 14:47:40 +0000 (14:47 +0000)]
[LV] Process pointer IVs with PHINodes in collectLoopUniforms

This patch moves the processing of pointer induction variables in
collectLoopUniforms from the consecutive pointer phase of the analysis to the
phi node phase. Previously, if a pointer induction variable was used by both a
scalarized non-memory instruction as well as a vectorized memory instruction,
we would incorrectly identify the pointer as uniform. Pointer induction
variables should be treated the same as other phi nodes. That is, they are
uniform if all users of the induction variable and induction variable update
are uniform.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281485 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ARM] Promote small global constants to constant pools
James Molloy [Wed, 14 Sep 2016 14:47:27 +0000 (14:47 +0000)]
[ARM] Promote small global constants to constant pools

If a constant is unamed_addr and is only used within one function, we can save
on the code size and runtime cost of an indirection by changing the global's storage
to inside the constant pool. For example, instead of:

      ldr r0, .CPI0
      bl printf
      bx lr
    .CPI0: &format_string
    format_string: .asciz "hello, world!\n"

We can emit:

      adr r0, .CPI0
      bl printf
      bx lr
    .CPI0: .asciz "hello, world!\n"

This can cause significant code size savings when many small strings are used in one
function (4 bytes per string).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281484 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMCInstrDesc: this fixes an issue setting/getting member Flags, which
Sjoerd Meijer [Wed, 14 Sep 2016 14:32:17 +0000 (14:32 +0000)]
MCInstrDesc: this fixes an issue setting/getting member Flags, which
is an uint64_t. However, getter function getFlags returned an unsigned,
and in function hasProperty (1 << MCFlag) was used instead of (1ULL << MCFlag).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281483 91177308-0d34-0410-b5e6-96231b3b80d8