OSDN Git Service

android-x86/external-llvm.git
8 years ago Fix LivePhysRegs::addLiveOuts
Weiming Zhao [Fri, 22 Jan 2016 22:21:34 +0000 (22:21 +0000)]
 Fix LivePhysRegs::addLiveOuts

Summary:
The testing for returnBB was flipped which may cause ARM ld/st opt pass uses callee saved regs in returnBB when shrink-wrap is used.

Reviewers: t.p.northover, apazos, MatzeB

Subscribers: mcrosier, zzheng, aemerson, llvm-commits, rengolin

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

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

8 years agofixed to test features, not CPU models
Sanjay Patel [Fri, 22 Jan 2016 22:20:56 +0000 (22:20 +0000)]
fixed to test features, not CPU models

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

8 years agofix typos; NFC
Sanjay Patel [Fri, 22 Jan 2016 22:09:41 +0000 (22:09 +0000)]
fix typos; NFC

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

8 years agoStrip local symbols when using externalized debug info.
Owen Anderson [Fri, 22 Jan 2016 22:07:24 +0000 (22:07 +0000)]
Strip local symbols when using externalized debug info.

When we build LLVM with externalized debug info, all debugging and
symbolication related data is extracted into dSYM files prior to
stripping. As such, there is no need to preserve local symbols in LLVM
binaries after dSYM creation.

This shrinks libLLVM.dylib from 58MB to 55MB on my system.

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

8 years ago[gold] Remove inconsistent llvm_unreachable().
Davide Italiano [Fri, 22 Jan 2016 21:36:49 +0000 (21:36 +0000)]
[gold] Remove inconsistent llvm_unreachable().

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

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

8 years agoAMDGPU: Remove GCCBuiltin from intrinsics that need mangling
Matt Arsenault [Fri, 22 Jan 2016 21:30:46 +0000 (21:30 +0000)]
AMDGPU: Remove GCCBuiltin from intrinsics that need mangling

If the intrinsic is overloaded and works on multiple types,
it cannot resolve to a single corresponding builtin and requires
handling in clang. This just causes crashes now.

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

8 years agoAMDGPU: Add new name for barrier intrinsic
Matt Arsenault [Fri, 22 Jan 2016 21:30:43 +0000 (21:30 +0000)]
AMDGPU: Add new name for barrier intrinsic

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

8 years agoAMDGPU: Rename intrinsics to use amdgcn prefix
Matt Arsenault [Fri, 22 Jan 2016 21:30:34 +0000 (21:30 +0000)]
AMDGPU: Rename intrinsics to use amdgcn prefix

The intrinsic target prefix should match the target name
as it appears in the triple.

This is not yet complete, but gets most of the important ones.
llvm.AMDGPU.* intrinsics used by mesa and libclc are still handled
for compatability for now.

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

8 years agoMake sure that any new and optimized objects created during GlobalOPT copy all the...
Sergei Larin [Fri, 22 Jan 2016 21:18:20 +0000 (21:18 +0000)]
Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object.

Summary:
Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object.

A good example of improper behavior in the current implementation is section information associated with the GlobalObject. If a section was set for it, and GlobalOpt is creating/modifying a new object based on this one (often copying the original name), without this change new object will be placed in a default section, resulting in inappropriate properties of the new variable.
The argument here is that if customer specified a section for a variable, any changes to it that compiler does should not cause it to change that section allocation.
Moreover, any other properties worth representation in copyAttributesFrom() should also be propagated.

Reviewers: jmolloy, joker-eph, joker.eph

Subscribers: slarin, joker.eph, rafael, tobiasvk, llvm-commits

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

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

8 years agoMake InstProfWriter compile again after 258544 with MSVC.
Nico Weber [Fri, 22 Jan 2016 21:13:04 +0000 (21:13 +0000)]
Make InstProfWriter compile again after 258544 with MSVC.

\src\llvm-rw\include\llvm/Support/AlignOf.h(254) :
    error C2872: 'detail' : ambiguous symbol
        could be 'llvm::detail'
        or       'llvm::support::detail'

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

8 years agofunction names start with a lowercase letter; NFC
Sanjay Patel [Fri, 22 Jan 2016 21:11:47 +0000 (21:11 +0000)]
function names start with a lowercase letter; NFC

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

8 years ago[PlaceSafepoints] Introduce a -spp-no-statepoints flag
Sanjoy Das [Fri, 22 Jan 2016 21:02:55 +0000 (21:02 +0000)]
[PlaceSafepoints] Introduce a -spp-no-statepoints flag

Summary:
This change adds a `-spp-no-statepoints` flag to PlaceSafepoints that
bypasses the code that wraps newly introduced polls and existing calls
in gc.statepoint.  With `-spp-no-statepoints` enabled, PlaceSafepoints
effectively becomes a safpeoint **poll** insertion pass.

The eventual goal is to "constant fold" this option, along with
`-rs4gc-use-deopt-bundles` to `true`, once clients using gc.statepoint
are okay doing so.

Reviewers: pgavlin, reames, JosephTremoulet

Subscribers: sanjoy, mcrosier, llvm-commits

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

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

8 years ago[PGO] Remove use of static variable. /NFC
Xinliang David Li [Fri, 22 Jan 2016 20:25:56 +0000 (20:25 +0000)]
[PGO] Remove use of static variable. /NFC

Make the variable a member of  the writer trait object owned
now by the writer. Also use a different generator interface
to pass the infoObject from the writer.

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

8 years ago[AArch64] Cleanup ccmp test check labels. NFC.
Ahmed Bougacha [Fri, 22 Jan 2016 20:02:26 +0000 (20:02 +0000)]
[AArch64] Cleanup ccmp test check labels. NFC.

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

8 years agoTypo fix and simplification.
Rafael Espindola [Fri, 22 Jan 2016 19:58:18 +0000 (19:58 +0000)]
Typo fix and simplification.

Thanks to Justin Bogner for the suggestion.

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

8 years agoRevert 258486 -- for a better fix coming soon
Xinliang David Li [Fri, 22 Jan 2016 19:53:31 +0000 (19:53 +0000)]
Revert 258486 -- for a better fix coming soon

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

8 years agoAMDGPU: Fix crash with invariant markers
Matt Arsenault [Fri, 22 Jan 2016 19:47:54 +0000 (19:47 +0000)]
AMDGPU: Fix crash with invariant markers

The promote alloca pass didn't handle these intrinsics and crashed.
These intrinsics should accept any address space, but for now just
erase them to avoid breaking.

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

8 years ago[NVPTX] expand mul_lohi to mul_lo and mul_hi
Jingyue Wu [Fri, 22 Jan 2016 19:47:26 +0000 (19:47 +0000)]
[NVPTX] expand mul_lohi to mul_lo and mul_hi

Summary: Fixes PR26186.

Reviewers: grosser, jholewinski

Subscribers: jholewinski, llvm-commits

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

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

8 years agoAdd ArrayRef support to EndianStream.
Rafael Espindola [Fri, 22 Jan 2016 19:44:46 +0000 (19:44 +0000)]
Add ArrayRef support to EndianStream.

Using an array instead of ArrayRef would allow type inference, but
(short of using C99) one would still need to write

    typedef uint16_t VT[];
    LE.write(VT{0x1234, 0x5678});

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

8 years ago[AArch64] Simplify emitConditionalCompare calls. NFC.
Ahmed Bougacha [Fri, 22 Jan 2016 19:43:57 +0000 (19:43 +0000)]
[AArch64] Simplify emitConditionalCompare calls. NFC.

Now that both callsites are identical, we can simplify the
prototype and make it easier to reason about the 2-CC case.

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

8 years ago[AArch64] Lower 2-CC FCCMPs (one/ueq) using AND'ed CCs.
Ahmed Bougacha [Fri, 22 Jan 2016 19:43:54 +0000 (19:43 +0000)]
[AArch64] Lower 2-CC FCCMPs (one/ueq) using AND'ed CCs.

The current behavior is incorrect, as the two CCs returned by
changeFPCCToAArch64CC, intended to be OR'ed, are instead used
in an AND ccmp chain.

Consider:
define i32 @t(float %a, float %b, float %c, float %d, i32 %e, i32 %f) {
  %cc1 = fcmp one float %a, %b
  %cc2 = fcmp olt float %c, %d
  %and = and i1 %cc1, %cc2
  %r = select i1 %and, i32 %e, i32 %f
  ret i32 %r
}

Assuming (%a < %b) and (%c < %d); we used to do:
  fcmp  s0, s1            # nzcv <- 1000
  orr   w8, wzr, #0x1     # w8 <- 1
  csel  w9, w8, wzr, mi   # w9 <- 1
  csel  w8, w8, w9, gt    # w8 <- 1
  fcmp  s2, s3            # nzcv <- 1000
  cset   w9, mi           # w9 <- 1
  tst    w8, w9           # (w8 & w9) == 1, so: nzcv <- 0000
  csel  w0, w0, w1, ne    # w0 <- w0

We now do:
  fcmp  s2, s3            # nzcv <- 1000
  fccmp s0, s1, #0, mi    #  mi, so: nzcv <- 1000
  fccmp s0, s1, #8, le    # !le, so: nzcv <- 1000
  csel  w0, w0, w1, pl    # !pl, so: w0 <- w1

In other words, we transformed:
  (c < d) &&  ((a < b) || (a > b))
into:
  (c < d) &&   (a u>= b) && (a u<= b)
whereas, per De Morgan's, we wanted:
  (c < d) && !((a u>= b) && (a u<= b))

Note that this problem doesn't occur in the test-suite.

changeFPCCToAArch64CC produces disjunct CCs; here, one -> mi/gt.
We can't represent that in the fccmp chain; it can't express
arbitrary OR sequences, as one comment explains:
  In general we can create code for arbitrary "... (and (and A B) C)"
  sequences.  We can also implement some "or" expressions, because
  "(or A B)" is equivalent to "not (and (not A) (not B))" and we can
  implement some  negation operations. [...] However there is no way
  to negate the result of a partial sequence.

Instead, introduce changeFPCCToANDAArch64CC, which produces the
conjunct cond codes:
- (a one b)
    == ((a olt b) || (a ogt b))
    == ((a ord b) && (a une b))
- (a ueq b)
    == ((a uno b) || (a oeq b))
    == ((a ule b) && (a uge b))

Note that, at first, one might think that, when PushNegate is true,
we should use the disjunct CCs, in effect doing:
  (a || b)
  = !(!a && !(b))
  = !(!a && !(b1 || b2))  <- changeFPCCToAArch64CC(b, b1, b2)
  = !(!a && !b1 && !b2)

However, we can take advantage of the fact that the CC is already
negated, which lets us avoid special-casing PushNegate and doing
the simpler to reason about:

  (a || b)
  = !(!a && (!b))
  = !(!a && (b1 && b2))   <- changeFPCCToANDAArch64CC(!b, b1, b2)
  = !(!a && b1 && b2)

This makes both emitConditionalCompare cases behave identically,
and produces correct ccmp sequences for the 2-CC fcmps.

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

8 years ago[AArch64] Assert that CCMP isel didn't fail inconsistently.
Ahmed Bougacha [Fri, 22 Jan 2016 19:43:43 +0000 (19:43 +0000)]
[AArch64] Assert that CCMP isel didn't fail inconsistently.

We verify that the op tree is eligible for CCMP emission in
isConjunctionDisjunctionTree, but it's also possible that
emitConjunctionDisjunctionTree fails later.
The initial check is useful, as it avoids building nodes
that will get discarded.
Still, make sure that inconsistencies don't happen with
an assert.

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

8 years ago[RS4GC] Use OB_deopt instead of "deopt"
Sanjoy Das [Fri, 22 Jan 2016 19:20:40 +0000 (19:20 +0000)]
[RS4GC] Use OB_deopt instead of "deopt"

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

8 years ago[Hexagon] Use general purpose registers to spill pred/mod registers into
Krzysztof Parzyszek [Fri, 22 Jan 2016 19:15:58 +0000 (19:15 +0000)]
[Hexagon] Use general purpose registers to spill pred/mod registers into

Patch by Tobias Edler Von Koch.

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

8 years agoAMDGPU: Fix getArchTypePrefix
Matt Arsenault [Fri, 22 Jan 2016 19:09:12 +0000 (19:09 +0000)]
AMDGPU: Fix getArchTypePrefix

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

8 years agoAMDGPU: Rename some r600 intrinsics to use correct TargetPrefix
Matt Arsenault [Fri, 22 Jan 2016 19:00:09 +0000 (19:00 +0000)]
AMDGPU: Rename some r600 intrinsics to use correct TargetPrefix

These ones aren't directly emitted by mesa and inserted by a pass.

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

8 years agoAMDGPU: Remove unused R600 intrinsics
Matt Arsenault [Fri, 22 Jan 2016 18:52:14 +0000 (18:52 +0000)]
AMDGPU: Remove unused R600 intrinsics

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

8 years ago[WinEH] Make collectFuncletMembers non-recursive
David Majnemer [Fri, 22 Jan 2016 18:49:50 +0000 (18:49 +0000)]
[WinEH] Make collectFuncletMembers non-recursive

Use a worklist for the pre-order DFS instead of using recursion.
No functionality change is intended.

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

8 years agoFix MachOObjectFile::getSymbolName() to not call report_fatal_error()
Kevin Enderby [Fri, 22 Jan 2016 18:47:14 +0000 (18:47 +0000)]
Fix MachOObjectFile::getSymbolName() to not call report_fatal_error()
but to return object_error::parse_failed.  Then made the code in llvm-nm
do for Mach-O files what is done in the darwin native tools which is to
print "bad string index" for bad string indexes.  Updated the error message
in the llvm-objdump test, and added tests to show llvm-nm prints
"bad string index" and a test to print the actual bad string index value
which in this case is 0xfe000002 when printing the fields as raw hex.

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

8 years agoAMDGPU: Change control flow intrinsics to use amdgcn prefix
Matt Arsenault [Fri, 22 Jan 2016 18:42:55 +0000 (18:42 +0000)]
AMDGPU: Change control flow intrinsics to use amdgcn prefix

These aren't supposed to be used outside of the backend,
so there aren't any users to worry about.

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

8 years agoAMDGPU: Don't use separate mulhu/mulhs Pats
Matt Arsenault [Fri, 22 Jan 2016 18:42:49 +0000 (18:42 +0000)]
AMDGPU: Don't use separate mulhu/mulhs Pats

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

8 years agoAMDGPU: Remove random TGSI intrinsic
Matt Arsenault [Fri, 22 Jan 2016 18:42:44 +0000 (18:42 +0000)]
AMDGPU: Remove random TGSI intrinsic

I don't think this was ever used.

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

8 years agoAMDGPU: Remove AMDGPU.fract intrinsic
Matt Arsenault [Fri, 22 Jan 2016 18:42:38 +0000 (18:42 +0000)]
AMDGPU: Remove AMDGPU.fract intrinsic

Mesa doesn't use this, and this is pattern matched already
from fsub x, (ffloor x)

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

8 years ago[PGO] add an interface needed by icall promotion
Xinliang David Li [Fri, 22 Jan 2016 18:13:34 +0000 (18:13 +0000)]
[PGO] add an interface needed by icall promotion

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

8 years ago[TableGen] Make a class member local to the function that populates it and consumes...
Craig Topper [Fri, 22 Jan 2016 05:59:43 +0000 (05:59 +0000)]
[TableGen] Make a class member local to the function that populates it and consumes it later. NFC

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

8 years ago[TableGen] Reorder fields in AsmWriterOperand to remove padding and reduce size. NFC
Craig Topper [Fri, 22 Jan 2016 05:59:40 +0000 (05:59 +0000)]
[TableGen] Reorder fields in AsmWriterOperand to remove padding and reduce size. NFC

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

8 years ago[TableGen] Remove the CGIOpNo from AsmWriterOperand as its not used for anything...
Craig Topper [Fri, 22 Jan 2016 05:59:37 +0000 (05:59 +0000)]
[TableGen] Remove the CGIOpNo from AsmWriterOperand as its not used for anything. NFC

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

8 years ago[PGO] eliminate use of static variable
Xinliang David Li [Fri, 22 Jan 2016 05:48:40 +0000 (05:48 +0000)]
[PGO] eliminate use of static variable

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

8 years agoNFC WebAssembly: update links
JF Bastien [Fri, 22 Jan 2016 04:21:49 +0000 (04:21 +0000)]
NFC WebAssembly: update links

I got a vanity URL, and moved the github waterfall repo.

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

8 years ago[SelectionDAG] Fold more offsets into GlobalAddresses
Dan Gohman [Fri, 22 Jan 2016 03:57:34 +0000 (03:57 +0000)]
[SelectionDAG] Fold more offsets into GlobalAddresses

This reapplies r258296 and r258366, and also fixes an existing bug in
SelectionDAG.cpp's isMemSrcFromString, neglecting to account for the
offset in a GlobalAddressSDNode, which is uncovered by those patches.

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

8 years agoReplace Type::getInt32Ty() and comparison by isIntegerTy(32). NFC.
Manuel Jacob [Fri, 22 Jan 2016 03:30:27 +0000 (03:30 +0000)]
Replace Type::getInt32Ty() and comparison by isIntegerTy(32).  NFC.

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

8 years agoRevert r258473 as it's breaking the build with libc++
Ivan Krasin [Fri, 22 Jan 2016 03:21:52 +0000 (03:21 +0000)]
Revert r258473 as it's breaking the build with libc++

Reviewers: kcc

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

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

8 years ago[opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type...
Eduard Burtescu [Fri, 22 Jan 2016 03:08:27 +0000 (03:08 +0000)]
[opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type instead of pointer type and rename to getIndexedOffsetInType.

Summary:

Reviewers: mjacob, dblaikie

Subscribers: llvm-commits

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

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

8 years ago[opaque pointer types] [NFC] FindAvailableLoadedValue: take LoadInst instead of just...
Eduard Burtescu [Fri, 22 Jan 2016 01:51:51 +0000 (01:51 +0000)]
[opaque pointer types] [NFC] FindAvailableLoadedValue: take LoadInst instead of just the pointer.

Reviewers: mjacob, dblaikie

Subscribers: llvm-commits

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

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

8 years ago[opaque pointer types] [NFC] gep_type_{begin,end} now take source element type and...
Eduard Burtescu [Fri, 22 Jan 2016 01:33:43 +0000 (01:33 +0000)]
[opaque pointer types] [NFC] gep_type_{begin,end} now take source element type and address space.

Reviewers: mjacob, dblaikie

Subscribers: llvm-commits

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

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

8 years agoUse std::piecewise_constant_distribution instead of ad-hoc binary search.
Ivan Krasin [Fri, 22 Jan 2016 01:32:34 +0000 (01:32 +0000)]
Use std::piecewise_constant_distribution instead of ad-hoc binary search.

Summary:
Fix the issue with the most recently discovered unit receiving much less attention.

Note: I had to change the seed for one test to make it pass. Alternatively,
the number of runs could be increased. I believe that the average time of
'foo' discovery is not increased, just seed=1 was particularly convenient
for the previous PRNG scheme used.

Reviewers: aizatsky, kcc

Subscribers: llvm-commits, kcc

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

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

8 years ago[opaque pointer types] [NFC] Add an explicit type argument to ConstantFoldLoadFromCon...
Eduard Burtescu [Fri, 22 Jan 2016 01:17:26 +0000 (01:17 +0000)]
[opaque pointer types] [NFC] Add an explicit type argument to ConstantFoldLoadFromConstPtr.

Reviewers: mjacob, dblaikie

Subscribers: llvm-commits

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

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

8 years agoDo not lower VSETCC if operand is an f16 vector
Pirama Arumuga Nainar [Fri, 22 Jan 2016 01:16:57 +0000 (01:16 +0000)]
Do not lower VSETCC if operand is an f16 vector

Summary:
SETCC with f16 vectors has OperationAction set to Expand but still gets
lowered to FCM* intrinsics based on its result type.  This patch skips
lowering of VSETCC if the operand is an f16 vector.

v4 and v8 tests included.

Reviewers: ab, jmolloy

Subscribers: srhines, llvm-commits

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

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

8 years agoRevert "[SelectionDAG] Fold more offsets into GlobalAddresses"
Reid Kleckner [Fri, 22 Jan 2016 01:09:29 +0000 (01:09 +0000)]
Revert "[SelectionDAG] Fold more offsets into GlobalAddresses"

This reverts r258296 and the follow up r258366. With this change, we
miscompiled the following program on Windows:
  #include <string>
  #include <iostream>
  static const char kData[] = "asdf jkl;";
  int main() {
    std::string s(kData + 3, sizeof(kData) - 3);
    std::cout << s << '\n';
  }

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

8 years ago[libFuzzer] don't do expensive memmem if the result will not be used
Kostya Serebryany [Fri, 22 Jan 2016 01:04:58 +0000 (01:04 +0000)]
[libFuzzer] don't do expensive memmem if the result will not be used

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

8 years ago[ThinLTO] Do metadata linking during batch function importing
Teresa Johnson [Fri, 22 Jan 2016 00:15:53 +0000 (00:15 +0000)]
[ThinLTO] Do metadata linking during batch function importing

Summary:
Since we are currently not doing incremental importing there is
no need to link metadata as a postpass. The module linker will
only link in the imported subroutines due to the functionality
added by r256003.

(Note that the metadata postpass linking functionalitiy is still
used by llvm-link, and may be needed here in the future if a more
incremental strategy is adopted.)

Reviewers: joker.eph

Subscribers: joker.eph, llvm-commits

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

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

8 years ago[opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType when...
Eduard Burtescu [Thu, 21 Jan 2016 23:42:06 +0000 (23:42 +0000)]
[opaque pointer types] [NFC] Take advantage of get{Source,Result}ElementType when folding GEPs.

Summary:

Reviewers: mjacob, dblaikie

Subscribers: llvm-commits

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

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

8 years agomove function definitions so we don't need separate declarations ; NFCI
Sanjay Patel [Thu, 21 Jan 2016 23:38:43 +0000 (23:38 +0000)]
move function definitions so we don't need separate declarations ; NFCI

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

8 years ago[LibCallSimplifier] refactor FP function signature checks ; NFCI
Sanjay Patel [Thu, 21 Jan 2016 22:58:01 +0000 (22:58 +0000)]
[LibCallSimplifier] refactor FP function signature checks ; NFCI

Use the helper function added in r258428.

The check should really be hoisted to the caller of all of these
optimize* functions, but that's another step.

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

8 years agoavoid variable shadowing; NFC
Sanjay Patel [Thu, 21 Jan 2016 22:41:16 +0000 (22:41 +0000)]
avoid variable shadowing; NFC

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

8 years agoremove unnecessary variable; NFC
Sanjay Patel [Thu, 21 Jan 2016 22:31:18 +0000 (22:31 +0000)]
remove unnecessary variable; NFC

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

8 years agoAvoid unnecessary stack realignment in musttail thunks with SSE2 enabled
Reid Kleckner [Thu, 21 Jan 2016 22:23:22 +0000 (22:23 +0000)]
Avoid unnecessary stack realignment in musttail thunks with SSE2 enabled

The X86 musttail implementation finds register parameters to forward by
running the calling convention algorithm until a non-register location
is returned. However, assigning a vector memory location has the side
effect of increasing the function's stack alignment. We shouldn't
increase the stack alignment when we are only looking for register
parameters, so this change conditionalizes it.

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

8 years ago[X86][SSE] Improve i16 splatting shuffles
Simon Pilgrim [Thu, 21 Jan 2016 22:07:41 +0000 (22:07 +0000)]
[X86][SSE] Improve i16 splatting shuffles

Better handling of the annoying pshuflw/pshufhw ops which only shuffle lower/upper halves of a vector.

Added vXi16 unary shuffle support for cases where i16 elements (from the same half of the source) are being splatted to the whole of one of the halves. This avoids the general lowering case which must shuffle the 32-bit elements first - meaning that we used to end up with unnecessary duplicate pshuflw/pshufhw shuffles.

Note this has the side effect of a lot of SSSE3 test cases no longer needing to use PSHUFB, as it falls below the 3 op combine threshold for when PSHUFB is typically worth it. I've raised PR26183 to discuss if the threshold should be changed and whether we need to make it more specific to the target CPU.

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

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

8 years agoIn test-release.sh, only run `uname -s` once. NFC.
Dimitry Andric [Thu, 21 Jan 2016 22:07:17 +0000 (22:07 +0000)]
In test-release.sh, only run `uname -s` once. NFC.

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

8 years ago[RuntimeDyld][AArch64] Add support for the MachO ARM64_RELOC_SUBTRACTOR reloc.
Lang Hames [Thu, 21 Jan 2016 21:59:50 +0000 (21:59 +0000)]
[RuntimeDyld][AArch64] Add support for the MachO ARM64_RELOC_SUBTRACTOR reloc.

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

8 years agoLet test-release.sh checkout subprojects directly into the target tree,
Dimitry Andric [Thu, 21 Jan 2016 21:57:49 +0000 (21:57 +0000)]
Let test-release.sh checkout subprojects directly into the target tree,
instead of using symlinks

Summary:
In the past I have run into several problems with the way
`test-release.sh` creates all the subproject directories as siblings,
and then uses symlinks to stitch them all together.  In some scenarios
this leads to clang not being able to find header files, etc.

This patch changes the script so it directly exports into the correct
target locations for each subproject.

Reviewers: hans

Subscribers: emaste, llvm-commits

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

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

8 years agoFix for two constant propagation problems in GVN with the assume intrinsic
David L Kreitzer [Thu, 21 Jan 2016 21:32:35 +0000 (21:32 +0000)]
Fix for two constant propagation problems in GVN with the assume intrinsic
instruction.

Patch by Yuanrui Zhang.

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

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

8 years agoFix MachOObjectFile::getSymbolSection() to not call report_fatal_error()
Kevin Enderby [Thu, 21 Jan 2016 21:13:27 +0000 (21:13 +0000)]
Fix MachOObjectFile::getSymbolSection() to not call report_fatal_error()
but to return object_error::parse_failed.  Then made the code in llvm-nm
do for Mach-O files what is done in the darwin native tools which is to
print "(?,?)" or just "s" for bad section indexes.  Also added a test to show
it prints the bad section index of "42" when printing the fields as raw hex.

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

8 years ago[LibCallSimplifier] don't get fooled by a fake fmin()
Sanjay Patel [Thu, 21 Jan 2016 20:19:54 +0000 (20:19 +0000)]
[LibCallSimplifier] don't get fooled by a fake fmin()

This is similar to the bug/fix:
https://llvm.org/bugs/show_bug.cgi?id=26211
http://reviews.llvm.org/rL258325

The fmin() test case reveals another bug caused by sloppy
code duplication. It will crash without this patch because
fp128 is a valid floating-point type, but we would think
that we had matched a function that used doubles.

The new helper function can be used to replace similar
checks that are used in several other places in this file.

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

8 years agoFix buildbot failure due to r258420
Rong Xu [Thu, 21 Jan 2016 19:06:24 +0000 (19:06 +0000)]
Fix buildbot failure due to r258420

Include the needed headfile to fix the buildbot failure due to r258420 [PGO] Passmanagerbuilder change that enable IR level PGO instrumentation.

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

8 years ago[InstCombine] Simplify (x >> y) <= x
David Majnemer [Thu, 21 Jan 2016 18:55:54 +0000 (18:55 +0000)]
[InstCombine] Simplify (x >> y) <= x

This commit extends the patterns recognised by InstSimplify to also handle (x >> y) <= x in the same way as (x /u y) <= x.

The missing optimisation was found investigating why LLVM did not optimise away bound checks in a binary search: https://github.com/rust-lang/rust/pull/30917

Patch by Andrea Canciani!

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

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

8 years agoPartially revert "Add command line options to force function/loop alignments."
Chad Rosier [Thu, 21 Jan 2016 18:49:15 +0000 (18:49 +0000)]
Partially revert "Add command line options to force function/loop alignments."

This partially reverts r256571 in favor of the solution in r258409.

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

8 years ago[PGO] Passmanagerbuilder change that enable IR level PGO instrumentation
Rong Xu [Thu, 21 Jan 2016 18:28:59 +0000 (18:28 +0000)]
[PGO] Passmanagerbuilder change that enable IR level PGO instrumentation

This patch includes the passmanagerbuilder change that enables IR level PGO instrumentation. It adds two passmanagerbuilder options: -profile-generate=<profile_filename> and -profile-use=<profile_filename>. The new options are primarily for debug purpose.

Reviewers: davidxl, silvas

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

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

8 years ago[TTI] Add getCacheLineSize
Adam Nemet [Thu, 21 Jan 2016 18:28:36 +0000 (18:28 +0000)]
[TTI] Add getCacheLineSize

Summary:
And use it in PPCLoopDataPrefetch.cpp.

@hfinkel, please let me know if your preference would be to preserve the
ppc-loop-prefetch-cache-line option in order to be able to override the
value of TTI::getCacheLineSize for PPC.

Reviewers: hfinkel

Subscribers: hulx2000, mcrosier, mssimpso, hfinkel, llvm-commits

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

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

8 years ago[PGO] IR level instrumentation of indirect call value profiling
Rong Xu [Thu, 21 Jan 2016 18:11:44 +0000 (18:11 +0000)]
[PGO] IR level instrumentation of indirect call value profiling

This patch adds the instrumentation for indirect call value profiling. It finds all the indirect call-sites and generates instrprof_value_profile intrinsic calls. A new opt level option -disable-vp is introduced to disable this instrumentation.

Reviewers: davidxl, betulb, vsk

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

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

8 years agomake helper functions static; NFCI
Sanjay Patel [Thu, 21 Jan 2016 18:01:57 +0000 (18:01 +0000)]
make helper functions static; NFCI

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

8 years agoUndo r258163 "Move part of an if condition into an assertion. NFC."
Manuel Jacob [Thu, 21 Jan 2016 17:36:14 +0000 (17:36 +0000)]
Undo r258163 "Move part of an if condition into an assertion.  NFC."

This undoes the change made in r258163.  The assertion fails if `Ptr` is of a
vector type.  The previous code doesn't look completely correct either, so I'll
investigate this more.

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

8 years agoFix a type in a comment
Philip Reames [Thu, 21 Jan 2016 17:32:12 +0000 (17:32 +0000)]
Fix a type in a comment

Thanks to Sean Silva for pointing it out.

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

8 years ago[BlockPlacement] Add option to align all non-fall-through blocks.
Geoff Berry [Thu, 21 Jan 2016 17:25:52 +0000 (17:25 +0000)]
[BlockPlacement] Add option to align all non-fall-through blocks.

Summary: This option is being added for testing purposes.

Reviewers: mcrosier

Subscribers: mcrosier, llvm-commits

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

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

8 years agoRevert "[SLP] Truncate expressions to minimum required bit width"
Matthew Simpson [Thu, 21 Jan 2016 17:17:20 +0000 (17:17 +0000)]
Revert "[SLP] Truncate expressions to minimum required bit width"

This reverts commit r258404.

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

8 years agoUse early return to simplify code (NFC)
Teresa Johnson [Thu, 21 Jan 2016 17:16:53 +0000 (17:16 +0000)]
Use early return to simplify code (NFC)

Follow on to r258405.

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

8 years ago[GCOV] Avoid emitting profile arcs for module and skeleton CUs
Vedant Kumar [Thu, 21 Jan 2016 17:04:42 +0000 (17:04 +0000)]
[GCOV] Avoid emitting profile arcs for module and skeleton CUs

Do not emit profile arc files and note files for module and skeleton
CU's.

Our users report seeing unexpected *.gcda and *.gcno files in their
projects when using gcov-style profiling with modules or frameworks.
The unwanted files come from these modules. This is not very helpful
for end-users. Further, we've seen reports of instrumented programs
crashing while writing these files out (due to I/O failures).

rdar://problem/22838296

Reviewed-by: aprantl
Differential Revision: http://reviews.llvm.org/D15997

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

8 years ago[ThinLTO] Avoid unnecesary hash lookups during metadata linking (NFC)
Teresa Johnson [Thu, 21 Jan 2016 16:46:40 +0000 (16:46 +0000)]
[ThinLTO] Avoid unnecesary hash lookups during metadata linking (NFC)

Replace sequences of count() followed by operator[] with either
find() or insert(), depending on the context.

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

8 years ago[SLP] Truncate expressions to minimum required bit width
Matthew Simpson [Thu, 21 Jan 2016 16:31:55 +0000 (16:31 +0000)]
[SLP] Truncate expressions to minimum required bit width

This change attempts to produce vectorized integer expressions in bit widths
that are narrower than their scalar counterparts. The need for demotion arises
especially on architectures in which the small integer types (e.g., i8 and i16)
are not legal for scalar operations but can still be used in vectors. Like
similar work done within the loop vectorizer, we rely on InstCombine to perform
the actual type-shrinking. We use the DemandedBits analysis and
ComputeNumSignBits from ValueTracking to determine the minimum required bit
width of an expression.

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

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

8 years ago[mips] Allowed dla instructions on 32-bit architectures.
Scott Egerton [Thu, 21 Jan 2016 15:11:01 +0000 (15:11 +0000)]
[mips] Allowed dla instructions on 32-bit architectures.

Summary:
This is now the same as the behaviour of the GNU assembler. This was done
as it is required in order to build the Linux kernel with the integrated
assembler enabled.

Reviewers: dsanders, vkalintiris

Subscribers: dsanders, llvm-commits

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

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

8 years agoRevert obsolete llvm-link -preserve-modules option/test
Teresa Johnson [Thu, 21 Jan 2016 14:28:52 +0000 (14:28 +0000)]
Revert obsolete llvm-link -preserve-modules option/test

This testing mode is now obsolete with the change to linkInModule
to take a std::unique_ptr to Module.

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

8 years agoAVX512: Masked move intrinsic implementation.
Igor Breger [Thu, 21 Jan 2016 14:18:11 +0000 (14:18 +0000)]
AVX512: Masked move intrinsic implementation.
Implemented intrinsic for the follow instructions (reg move) : VMOVDQU8/16, VMOVDQA32/64, VMOVAPS/PD.

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

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

8 years ago[AVX512] Adding VPERMT2B and VPERMI2B Intrinsics
Michael Zuckerman [Thu, 21 Jan 2016 13:36:01 +0000 (13:36 +0000)]
[AVX512] Adding VPERMT2B and VPERMI2B Intrinsics

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

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

8 years agoPR26172: unnecessary indirection in HexagonCopyToCombine.cpp
Krzysztof Parzyszek [Thu, 21 Jan 2016 12:45:17 +0000 (12:45 +0000)]
PR26172: unnecessary indirection in HexagonCopyToCombine.cpp

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

8 years ago[X86] - Removing warning on legal cases caused by commit r258132
Marina Yatsina [Thu, 21 Jan 2016 11:37:06 +0000 (11:37 +0000)]
[X86] - Removing warning on legal cases caused by commit r258132

There's an overloading of the "movsd" and "cmpsd" instructions, e.g. movsd can be either "Move Data from String to String" or "Move or Merge Scalar Double-Precision Floating-Point Value".
The former should produce warnings when parsing a memory operand that is not ESI/EDI, but the latter should not.

Fixed the code to produce warnings only after making sure we're dealing with the first case.

Expanded the tests of the produced warnings + fixed RUN line of the test so that it would check both stdout and stderr

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

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

8 years agoChange ConstantFoldInstOperands to take Instruction instead of opcode and type. ...
Manuel Jacob [Thu, 21 Jan 2016 06:33:22 +0000 (06:33 +0000)]
Change ConstantFoldInstOperands to take Instruction instead of opcode and type.  NFC.

Summary:
The previous form, taking opcode and type, is moved to an internal
helper and the new form, taking an instruction, is a wrapper around this
helper.

Although this is a slight cleanup on its own, the main motivation is to
refactor the constant folding API to ease migration to opaque pointers.
This will be follow-up work.

Reviewers: eddyb

Subscribers: dblaikie, llvm-commits

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

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

8 years agoIntroduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldIn...
Manuel Jacob [Thu, 21 Jan 2016 06:31:08 +0000 (06:31 +0000)]
Introduce ConstantFoldCastOperand function and migrate some callers of ConstantFoldInstOperands to use it.  NFC.

Summary:
Although this is a slight cleanup on its own, the main motivation is to
refactor the constant folding API to ease migration to opaque pointers.
This will be follow-up work.

Reviewers: eddyb

Subscribers: zzheng, dblaikie, llvm-commits

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

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

8 years agoIntroduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantF...
Manuel Jacob [Thu, 21 Jan 2016 06:26:35 +0000 (06:26 +0000)]
Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ConstantFoldInstOperands to use it.  NFC.

Summary:
Although this is a slight cleanup on its own, the main motivation is to
refactor the constant folding API to ease migration to opaque pointers.
This will be follow-up work.

Reviewers: eddyb

Subscribers: dblaikie, llvm-commits

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

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

8 years agoAMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute
Tom Stellard [Thu, 21 Jan 2016 04:28:34 +0000 (04:28 +0000)]
AMDGPU/SI: Pass whether to use the SI scheduler via Target Attribute

Summary:
Currently the SI scheduler can be selected via command line option,
but it turned out it would be better if it was selectable via a Target Attribute.

This patch adds "si-scheduler" attribute to the backend.

Reviewers: tstellarAMD, echristo

Subscribers: echristo, arsenm

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

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

8 years agore-submit test case (withright format-version)
Xinliang David Li [Thu, 21 Jan 2016 02:35:59 +0000 (02:35 +0000)]
re-submit test case (withright format-version)

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

8 years agollvm-go: call llvm-config with components
Andrew Wilkins [Thu, 21 Jan 2016 02:33:39 +0000 (02:33 +0000)]
llvm-go: call llvm-config with components

Summary:
Add components back into calls to llvm-config,
which was accidentally removed in r258283.

Reviewers: pcc

Subscribers: llvm-commits

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

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

8 years agoRename MCLineEntry to MCDwarfLineEntry
David Majnemer [Thu, 21 Jan 2016 01:59:03 +0000 (01:59 +0000)]
Rename MCLineEntry to MCDwarfLineEntry

MCLineEntry gives the impression that it is generic MC machinery.
However, it is specific to DWARF.

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

8 years ago[libFuzzer] don't use std::vector in one more hot path
Kostya Serebryany [Thu, 21 Jan 2016 01:52:14 +0000 (01:52 +0000)]
[libFuzzer] don't use std::vector in one more hot path

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

8 years ago[GlobalISel] make library an optional component
Andrew Wilkins [Thu, 21 Jan 2016 01:41:03 +0000 (01:41 +0000)]
[GlobalISel] make library an optional component

Summary:
Mark the LLVMGlobalISel library as optional in
LLVMBuild.txt, since the library is only built
if LLVM_BUILD_GLOBAL_ISEL is set. Without doing
this, llvm-config includes the library in the
list of components regardless of whether it's
built, and then will error out when asked for
the library names/paths.

Reviewers: qcolombet

Subscribers: joker.eph, llvm-commits, vkalintiris

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

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

8 years ago[GlobalISel] Move generic opcodes description to their own file.
Quentin Colombet [Thu, 21 Jan 2016 01:37:18 +0000 (01:37 +0000)]
[GlobalISel] Move generic opcodes description to their own file.

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

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

8 years agoRevert 258376 -- wrong version
Xinliang David Li [Thu, 21 Jan 2016 01:21:00 +0000 (01:21 +0000)]
Revert 258376 -- wrong version

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

8 years ago[Coverage] Add a test case for comdat
Xinliang David Li [Thu, 21 Jan 2016 00:57:42 +0000 (00:57 +0000)]
[Coverage] Add a test case for comdat

The binary contains two (merged) covmap sections which
have duplicate CovMapRecords from comdat (template instantation).
This test makes sure the reader reads it properly. It also
tests that the coverage data from different instantiations
of the same template function are properly merged in show
output.

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

8 years ago[libfuzzer] use %p for printing addresses
Mike Aizatsky [Thu, 21 Jan 2016 00:02:09 +0000 (00:02 +0000)]
[libfuzzer] use %p for printing addresses

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

8 years agoRemove redundant argument.
Rafael Espindola [Thu, 21 Jan 2016 00:00:53 +0000 (00:00 +0000)]
Remove redundant argument.

It is already a member variable.

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

8 years ago[readobj] Print CodeOffset first, it's easier to read
Reid Kleckner [Wed, 20 Jan 2016 23:21:14 +0000 (23:21 +0000)]
[readobj] Print CodeOffset first, it's easier to read

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