]> granicus.if.org Git - llvm/log
llvm
8 years agoFix syntactical nit from r281990.
Adrian McCarthy [Tue, 20 Sep 2016 17:42:13 +0000 (17:42 +0000)]
Fix syntactical nit from r281990.

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

8 years agoEmit S_COMPILE3 CodeView record
Adrian McCarthy [Tue, 20 Sep 2016 17:20:51 +0000 (17:20 +0000)]
Emit S_COMPILE3 CodeView record

CodeView has an S_COMPILE3 record to identify the compiler and source language of the compiland.  This record comes first in the debug$S section for the compiland. The debuggers rely on this record to know the source language of the code.

There was a little test fallout from introducing a new record into the symbols subsection.

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

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

8 years agoX86: loosen an overly aggressive MachO assertion
Saleem Abdulrasool [Tue, 20 Sep 2016 17:05:04 +0000 (17:05 +0000)]
X86: loosen an overly aggressive MachO assertion

We would assert that the FP setup CFI used esp/rsp always.  This held up in
practice when the code was generated from IR.  However, with the integrated
assembler, it is possible to have the input be user specified assembly.  In such
a case, we cannot assume that the function implementation has a compact unwind
representation.  Loosen the assertion into a check and bail if we cannot
represent the frame pointer in the compact unwinding.

Addresses PR30453!

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

8 years agoRemove more guts of TargetMachine::getNameWithPrefix and migrate one check to the...
Eric Christopher [Tue, 20 Sep 2016 16:05:02 +0000 (16:05 +0000)]
Remove more guts of TargetMachine::getNameWithPrefix and migrate one check to the TLOF mach-o version.

NFC intended.

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

8 years agoRemove a use of subtarget initialization in the X86 backend so we can get rid of...
Eric Christopher [Tue, 20 Sep 2016 16:04:59 +0000 (16:04 +0000)]
Remove a use of subtarget initialization in the X86 backend so we can get rid of the default subtarget.

NFC intended.

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

8 years agoRemove extra argument used once on TargetMachine::getNameWithPrefix and inline the...
Eric Christopher [Tue, 20 Sep 2016 16:04:50 +0000 (16:04 +0000)]
Remove extra argument used once on TargetMachine::getNameWithPrefix and inline the result into the singular caller.

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

8 years agoImprove the -debug output for Debug Range Extension (NFC)
Keith Walker [Tue, 20 Sep 2016 16:04:31 +0000 (16:04 +0000)]
Improve the -debug output for Debug Range Extension (NFC)

Include header messages and remove unnecessary blank lines.

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

8 years agoGlobalISel: split aggregates for PCS lowering
Tim Northover [Tue, 20 Sep 2016 15:20:36 +0000 (15:20 +0000)]
GlobalISel: split aggregates for PCS lowering

This should match the existing behaviour for passing complicated struct and
array types, in particular HFAs come through like that from Clang.

For C & C++ we still need to somehow support all the weird ABI flags, or at
least those that are present in the IR (signext, byval, ...), and stack-based
parameter passing.

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

8 years ago[X86][SSE] Regenerate multiple combine tests
Simon Pilgrim [Tue, 20 Sep 2016 14:42:45 +0000 (14:42 +0000)]
[X86][SSE] Regenerate multiple combine tests

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

8 years agomove variables closer to their uses; add FIXMEs; NFC
Sanjay Patel [Tue, 20 Sep 2016 14:36:14 +0000 (14:36 +0000)]
move variables closer to their uses; add FIXMEs; NFC

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

8 years ago[AMDGPU][mc] Add regression tests for Bug 28168
Artem Tamazov [Tue, 20 Sep 2016 11:58:40 +0000 (11:58 +0000)]
[AMDGPU][mc] Add regression tests for Bug 28168

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

8 years agoAVX-512: Fixed a bug in lowering saturated operations on KNL.
Elena Demikhovsky [Tue, 20 Sep 2016 11:02:26 +0000 (11:02 +0000)]
AVX-512: Fixed a bug in lowering saturated operations on KNL.

The generated code is still not optimal.

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

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

8 years ago[AMDGPU] Refactor VOP3 instruction TD definitions
Valery Pykhtin [Tue, 20 Sep 2016 10:41:16 +0000 (10:41 +0000)]
[AMDGPU] Refactor VOP3 instruction TD definitions

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

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

8 years agoMake llvm::ConvertDebugDeclareToDebugValue() be a void function (NFC)
Keith Walker [Tue, 20 Sep 2016 10:36:17 +0000 (10:36 +0000)]
Make llvm::ConvertDebugDeclareToDebugValue() be a void function (NFC)

The routines llvm::ConvertDebugDeclareToDebugValue() always returned
a true value which was never checked at the call site; change the
function return type to void.

This NFC cleanup was approved in the review https://reviews.llvm.org/D23715

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

8 years agoAMDGPU: Improve documentation.
Nikolay Haustov [Tue, 20 Sep 2016 09:04:51 +0000 (09:04 +0000)]
AMDGPU: Improve documentation.

Summary:
Add links to ISA manuals and ABI.
Add text about assembler syntax.
Add info about instructions operands.
Add instruction examples for each encoding.
Update directives section, add missing .amdgpu_hsa_kernel.

Reviewers: tstellarAMD, SamWot, vpykhtin

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, artem.tamazov, llvm-commits

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

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

8 years agoReverting revision 281960 due to test failures.
Dorit Nuzman [Tue, 20 Sep 2016 08:27:48 +0000 (08:27 +0000)]
Reverting revision 281960 due to test failures.

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

8 years ago[SROA] Preserve llvm.mem.parallel_loop_access metadata.
Dorit Nuzman [Tue, 20 Sep 2016 07:50:49 +0000 (07:50 +0000)]
[SROA] Preserve llvm.mem.parallel_loop_access metadata.

SROA doesn't preserve the llvm.mem.parallel_loop_access metadata when it
transforms loads/stores. This patch fixes a couple occurences of this
issue.

(Partially addresses PR28981).

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

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

8 years ago[AVX-512] Teach X86InstrInfo::copyPhysReg to use a 512-bit move if XMM16-XMM31 or...
Craig Topper [Tue, 20 Sep 2016 06:49:17 +0000 (06:49 +0000)]
[AVX-512] Teach X86InstrInfo::copyPhysReg to use a 512-bit move if XMM16-XMM31 or YMM16-YMM31 are the source or dest of the copy and VLX is not supported.

This can happen with SUBREG_TO_REG of ZMM16-ZMM31. Fixes PR30430.

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

8 years ago[AVX-512] Use 512-bit vcvtps2ph/vcvtph2ps to implement fp_to_f16/f16_to_fp when F16C...
Craig Topper [Tue, 20 Sep 2016 05:44:47 +0000 (05:44 +0000)]
[AVX-512] Use 512-bit vcvtps2ph/vcvtph2ps to implement fp_to_f16/f16_to_fp when F16C and VLX are not supported.

Fixes PR23941.

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

8 years agoBranchFolder: Fix invalid undef flags after merge.
Matthias Braun [Tue, 20 Sep 2016 01:14:42 +0000 (01:14 +0000)]
BranchFolder: Fix invalid undef flags after merge.

It is legal to merge instructions with different undef flags; However we
must drop the undef flag from the merged instruction if it isn't present
everywhere.

This fixes http://llvm.org/PR30199

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

8 years agoMachine{Instr|Operand}: Clarify some isIdenticalTo() subtleties.
Matthias Braun [Tue, 20 Sep 2016 01:14:39 +0000 (01:14 +0000)]
Machine{Instr|Operand}: Clarify some isIdenticalTo() subtleties.

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

8 years ago[RegisterBankInfo] Avoid heap allocation in InstructionMapping.
Quentin Colombet [Tue, 20 Sep 2016 00:48:44 +0000 (00:48 +0000)]
[RegisterBankInfo] Avoid heap allocation in InstructionMapping.

Use SmallVector instead of dynamically allocated arrays for the mapping of the
operands in the InstructionMapping. That way we avoid heap allocation for most
of the cases. Ultimately, we should not have to rely on such tricky, the
instances of InstructionMapping would be TableGen'ed.

This improves the compilation time of the RegBankSelect pass.

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

8 years ago[x86] fix variable names; NFC
Sanjay Patel [Tue, 20 Sep 2016 00:27:22 +0000 (00:27 +0000)]
[x86] fix variable names; NFC

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

8 years ago[sanitizer-coverage] add comdat to coverage guards if needed
Kostya Serebryany [Tue, 20 Sep 2016 00:16:54 +0000 (00:16 +0000)]
[sanitizer-coverage] add comdat to coverage guards if needed

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

8 years ago[x86] auto-generate checks
Sanjay Patel [Mon, 19 Sep 2016 23:44:50 +0000 (23:44 +0000)]
[x86] auto-generate checks

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

8 years ago[LCSSA] Cache LoopExits to avoid wasted work
Philip Reames [Mon, 19 Sep 2016 23:30:23 +0000 (23:30 +0000)]
[LCSSA] Cache LoopExits to avoid wasted work

When looking at the scribus_1.3 example from https://llvm.org/bugs/show_bug.cgi?id=10584, I noticed that we were spending a large amount of time computing loop exits in LCSSA. This code appears to be written with the assumption that LoopExits are stored in the Loop and thus cheap to query. This is not true, so we should cache the result across the potentially long running loop which tends to visit a small handful of Loops.

On the particular example from 10584, this change drops the time spent in LCSSA computation by about 80%.

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

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

8 years ago[RegisterBankInfo] Adapt call to std::fill due to use of SmallVector.
Quentin Colombet [Mon, 19 Sep 2016 23:18:47 +0000 (23:18 +0000)]
[RegisterBankInfo] Adapt call to std::fill due to use of SmallVector.

This was meant to be commited with my previous commit.

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

8 years agoMerge branch 'ADCE5'
David Callahan [Mon, 19 Sep 2016 23:17:58 +0000 (23:17 +0000)]
Merge branch 'ADCE5'

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

8 years ago[Kaleidoscope] Make Chapter 2 use llvm::make_unique, rather than a helper.
Lang Hames [Mon, 19 Sep 2016 23:00:27 +0000 (23:00 +0000)]
[Kaleidoscope] Make Chapter 2 use llvm::make_unique, rather than a helper.

This essentially reverts r251936, minimizing the difference between Chapter2
and Chapter 3, and making Chapter 2's code match the tutorial text.

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

8 years ago[x86] use getSignBit() to simplify code; NFCI
Sanjay Patel [Mon, 19 Sep 2016 22:07:27 +0000 (22:07 +0000)]
[x86] use getSignBit() to simplify code; NFCI

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

8 years agoMove the armv8.1-a ras test to a negative with noras test as ras is
Eric Christopher [Mon, 19 Sep 2016 21:55:04 +0000 (21:55 +0000)]
Move the armv8.1-a ras test to a negative with noras test as ras is
included in armv8.1-a by default and so we weren't testing anything.

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

8 years agoBitcodeWriter: fix emission of invoke when calling a var-arg function with operand...
Mehdi Amini [Mon, 19 Sep 2016 21:27:04 +0000 (21:27 +0000)]
BitcodeWriter: fix emission of invoke when calling a var-arg function with operand bundles

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

8 years agoMisleading comments of SplitBlockAndInsertIfThenElse in BasicBlockUtils.h
Evgeniy Stepanov [Mon, 19 Sep 2016 21:26:05 +0000 (21:26 +0000)]
Misleading comments of SplitBlockAndInsertIfThenElse in BasicBlockUtils.h

The comments of SplitBlockAndInsertIfThenElse say the SplitBefore instruction will stay in the old block.
But according to the implementation(split the block at SplitBefore by using splitBasicBlock), the SplitBefore will be moved to the new block.

This patch fixes the comments.

Patch by Zhe Yu Wu.

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

8 years ago[X86][SSE] Updated vector abs tests
Simon Pilgrim [Mon, 19 Sep 2016 20:50:35 +0000 (20:50 +0000)]
[X86][SSE] Updated vector abs tests

Renamed and added v2i64 / v4i64 tests

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

8 years ago[libFuzzer] use sleep() instead of std::this_thread::sleep_for to avoid coverage...
Kostya Serebryany [Mon, 19 Sep 2016 20:32:34 +0000 (20:32 +0000)]
[libFuzzer] use sleep() instead of  std::this_thread::sleep_for to  avoid coverage from instrumented libc++

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

8 years agoHandle early inline for hot callsites that reside in the same basic block.
Dehao Chen [Mon, 19 Sep 2016 18:38:14 +0000 (18:38 +0000)]
Handle early inline for hot callsites that reside in the same basic block.

Summary: Callsites in the same basic block should share the same hotness. This patch checks for the hottest callsite in the same basic block, and use the hotness for all callsites in that basic block for early inline decisions. It also fixes the test to add "-S" so theat the "CHECK-NOT" is actually checking the content.

Reviewers: dnovillo

Subscribers: llvm-commits

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

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

8 years ago[RegisterBankInfo] Avoid heap allocation in most cases.
Quentin Colombet [Mon, 19 Sep 2016 17:33:55 +0000 (17:33 +0000)]
[RegisterBankInfo] Avoid heap allocation in most cases.

The OperandsMapper class is used heavy in RegBankSelect and each
instantiation triggered a heap allocation for the array of operands.
Instead, use a SmallVector with a big enough size such that most of the
cases do not have to use dynamically allocated memory.

This improves the compile time of the RegBankSelect pass.

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

8 years agoLiveRangeCalc: Fix reporting of invalid vreg usage in liveness calculation
Matthias Braun [Mon, 19 Sep 2016 16:49:45 +0000 (16:49 +0000)]
LiveRangeCalc: Fix reporting of invalid vreg usage in liveness calculation

Machine programs need a definition of each vreg before reaching a use
(the definition may come from an IMPLICIT_DEF instruction). This class
of errors is not detected by the MachineVerifier because of efficiency
concerns. LiveRangeCalc used to report these problems, make it do that
again (followup to r279625).

Also use report_fatal_error() instead of llvm_unreachable() as the error
reporting is only present in asserts build anyway.

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

8 years agoOnly set branch weight during sample pgo annotation when max_weight of the branch...
Dehao Chen [Mon, 19 Sep 2016 16:33:41 +0000 (16:33 +0000)]
Only set branch weight during sample pgo annotation when max_weight of the branch is non-zero. Otherwise use default static profile to set branch probability.

Summary: It does not make sense to set equal weights for all unkown branches as we have static branch prediction available.

Reviewers: dnovillo

Subscribers: llvm-commits

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

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

8 years agoUse call target count to derive the call instruction weight
Dehao Chen [Mon, 19 Sep 2016 16:06:37 +0000 (16:06 +0000)]
Use call target count to derive the call instruction weight

Summary: The call target count profile is directly derived from LBR branch->target data. This is more reliable than instruction frequency profiles that could be moved across basic block boundaries. This patches uses call target count profile to annotate call instructions.

Reviewers: davidxl, dnovillo

Subscribers: llvm-commits

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

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

8 years ago[asan] Support dynamic shadow address instrumentation
Etienne Bergeron [Mon, 19 Sep 2016 15:58:38 +0000 (15:58 +0000)]
[asan] Support dynamic shadow address instrumentation

Summary:
This patch is adding the support for a shadow memory with
dynamically allocated address range.

The compiler-rt needs to export a symbol containing the shadow
memory range.

This is required to support ASAN on windows 64-bits.

Reviewers: kcc, rnk, vitalybuka

Subscribers: kubabrecka, dberris, llvm-commits, chrisha

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

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

8 years ago[Support] Add StringRef::withNullAsEmpty()
Zachary Turner [Mon, 19 Sep 2016 15:34:51 +0000 (15:34 +0000)]
[Support] Add StringRef::withNullAsEmpty()

When porting large bodies of code from using const char*
to StringRef, it is helpful to be able to treat nullptr
as an empty string, since that it is often what it is used
to indicate in C-style code.

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

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

8 years agoRevert r281841, it does not work on Windows (PR30443).
Nico Weber [Mon, 19 Sep 2016 15:22:04 +0000 (15:22 +0000)]
Revert r281841, it does not work on Windows (PR30443).

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

8 years ago[AMDGPU] Refactor VOPC instruction TD definitions
Valery Pykhtin [Mon, 19 Sep 2016 14:39:49 +0000 (14:39 +0000)]
[AMDGPU] Refactor VOPC instruction TD definitions

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

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

8 years ago[AArch64] Fix encoding for lsl #12 in add/sub immediates
Diana Picus [Mon, 19 Sep 2016 11:10:18 +0000 (11:10 +0000)]
[AArch64] Fix encoding for lsl #12 in add/sub immediates

Whenever an add/sub immediate needs a fixup, we set that immediate field to zero,
which is correct, but we also set the shift bits to zero, which is not true for
instructions that use lsl #12. This patch makes sure that if lsl #12 was used,
it will appear in the encoding of the instruction.

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

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

8 years ago[AMDGPU] Fix s_branch with -1 offset
Sam Kolton [Mon, 19 Sep 2016 10:20:55 +0000 (10:20 +0000)]
[AMDGPU] Fix s_branch with -1 offset

Summary:
In case s_branch instruction target is itself backend should emit offset -1 but instead it emit 0.
'''
label:
    s_branch label  // should emit [0xff,0xff,0x82,0xbf]
'''

Tom, Matt: why are we adjusting fixup values in applyFixup() method instead of processFixup()? processFixup() is calling adjustFixupValue() but does nothing with its result.

Reviewers: vpykhtin, artem.tamazov, tstellarAMD

Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl

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

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

8 years agoAdd @llvm.dbg.value entries for the phi node created by -mem2reg
Keith Walker [Mon, 19 Sep 2016 09:49:30 +0000 (09:49 +0000)]
Add @llvm.dbg.value entries for the phi node created by -mem2reg

When phi nodes are created in the -mem2reg phase, the @llvm.dbg.declare
entries are converted to @llvm.dbg.value entries at the place where the
store instructions existed. However no entry is created to describe
the resulting value of the phi node.

The effect of this is especially noticeable in for loops which have a
constant for the intial value; the loop control variable's location
would be described as the intial constant value in the loop body once
the -mem2reg optimization phase was run.

This change adds the creation of the @llvm.dbg.value entries to describe
variables whose location is the result of a phi node created in -mem2reg.

Also when the phi node is finally lowered to a machine instruction it
is important that the lowered "load" instruction is placed before the
associated DEBUG_VALUE entry describing the value loaded.

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

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

8 years ago[Thumb] Set correct initial mapping symbol for big-endian thumb
Oliver Stannard [Mon, 19 Sep 2016 09:21:45 +0000 (09:21 +0000)]
[Thumb] Set correct initial mapping symbol for big-endian thumb

The initial mapping symbol state is set from the triple, but we only checked
for the little-endian thumb triple, so could end up with an ARM mapping symbol
for big-endian thumb.

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

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

8 years agoARM: check alignment before transforming ldr -> ldm (or similar).
Tim Northover [Mon, 19 Sep 2016 09:11:09 +0000 (09:11 +0000)]
ARM: check alignment before transforming ldr -> ldm (or similar).

ldm and stm instructions always require 4-byte alignment on the pointer, but we
weren't checking this before trying to reduce code-size by replacing a
post-indexed load/store with them. Unfortunately, we were also dropping this
incormation in DAG ISel too, but that's easy enough to fix.

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

8 years ago[X86 Codegen Test] Divided masked_memop into several files. NFC.
Elena Demikhovsky [Mon, 19 Sep 2016 08:58:43 +0000 (08:58 +0000)]
[X86 Codegen Test] Divided masked_memop into several files. NFC.

The masked_memop.ll became huge. I extracted AVX-512 specific tests into separate files.

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

8 years ago[SimplifyCFG] Update (AND) IR flags when CSE'ing instructions
James Molloy [Mon, 19 Sep 2016 08:23:08 +0000 (08:23 +0000)]
[SimplifyCFG] Update (AND) IR flags when CSE'ing instructions

We were updating metadata but not IR flags. Because we pick an arbitrary instruction to be the CSE candidate, it comes down to luck (50% or less chance) if this results in broken codegen or not, which is why PR30373 which is actually not the fault of the commit it was bisected down to.

Fixes PR30373.

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

8 years ago[X86,AVX-512] Use INSERT_SUBREG instead of SUBREG_TO_REG when the input is not the...
Craig Topper [Mon, 19 Sep 2016 02:53:43 +0000 (02:53 +0000)]
[X86,AVX-512] Use INSERT_SUBREG instead of SUBREG_TO_REG when the input is not the output of an instruction.

SUBREG_TO_REG is supposed to indicate that the super register has been zeroed, but we can't prove that if we don't know where it came from.

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

8 years ago[AVX-512] Add support for lowering fp_to_f16 and f16_to_fp when VLX is supported...
Craig Topper [Mon, 19 Sep 2016 02:53:37 +0000 (02:53 +0000)]
[AVX-512] Add support for lowering fp_to_f16 and f16_to_fp when VLX is supported regardless of whether F16C is also supported.

Still need to add support for lowering using AVX512F when neither VLX or F16C is supported.

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

8 years ago[llvm-cov] Emit a link to some documentation
Vedant Kumar [Mon, 19 Sep 2016 02:15:59 +0000 (02:15 +0000)]
[llvm-cov] Emit a link to some documentation

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

8 years ago[llvm-cov] Delete the NonCodeLines field, it was always dead
Vedant Kumar [Mon, 19 Sep 2016 01:46:01 +0000 (01:46 +0000)]
[llvm-cov] Delete the NonCodeLines field, it was always dead

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

8 years ago[XRay] ARM 32-bit no-Thumb support in LLVM
Dean Michael Berris [Mon, 19 Sep 2016 00:54:35 +0000 (00:54 +0000)]
[XRay] ARM 32-bit no-Thumb support in LLVM

This is a port of XRay to ARM 32-bit, without Thumb support yet. The XRay instrumentation support is moving up to AsmPrinter.
This is one of 3 commits to different repositories of XRay ARM port. The other 2 are:

https://reviews.llvm.org/D23932 (Clang test)
https://reviews.llvm.org/D23933 (compiler-rt)

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

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

8 years ago[llvm-cov] Teach the coverage exporter about instantiation coverage
Vedant Kumar [Mon, 19 Sep 2016 00:38:29 +0000 (00:38 +0000)]
[llvm-cov] Teach the coverage exporter about instantiation coverage

While we're at it, re-use the logic from CoverageReport to compute
summaries.

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

8 years ago[llvm-cov] Make a helper method static for re-use (NFC)
Vedant Kumar [Mon, 19 Sep 2016 00:38:25 +0000 (00:38 +0000)]
[llvm-cov] Make a helper method static for re-use (NFC)

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

8 years ago[llvm-cov] Track function and instantiation coverage separately
Vedant Kumar [Mon, 19 Sep 2016 00:38:23 +0000 (00:38 +0000)]
[llvm-cov] Track function and instantiation coverage separately

These are distinct statistics which are useful to look at separately.

Example: say you have a template function "foo" with 5 instantiations
and only 3 of them are covered. Then this contributes (1/1) to the total
function coverage and (3/5) to the total instantiation coverage. I.e,
the old "Function Coverage" column has been renamed to "Instantiation
Coverage", and the new "Function Coverage" aggregates information from
the various instantiations of a function.

One benefit of making this switch is that the Line and Region coverage
columns will start making sense. Let's continue the example and assume
that the 5 instantiations of "foo" cover {2, 4, 6, 8, 10} out of 10
lines respectively. The new line coverage for "foo" is (10/10), not
(30/50).  The old scenario got confusing because we'd report that there
were more lines in a file than what was actually possible.

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

8 years ago[llvm-cov] Don't recompute the 'Covered' field from *CoverageInfo (NFC)
Vedant Kumar [Mon, 19 Sep 2016 00:38:18 +0000 (00:38 +0000)]
[llvm-cov] Don't recompute the 'Covered' field from *CoverageInfo (NFC)

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

8 years ago[llvm-cov] Make 'adjustColumnWidths' do less work
Vedant Kumar [Mon, 19 Sep 2016 00:38:16 +0000 (00:38 +0000)]
[llvm-cov] Make 'adjustColumnWidths' do less work

This drops some redundant calls to get{UniqueSourceFiles,
CoveredFunctions}. We can figure out the right column widths without
re-doing this expensive work.

This isn't NFC, but I don't want to check in another binary *.covmapping
file with long filenames in it. I tested this locally on a project with
some long filenames (FileCheck).

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

8 years ago[llvm-cov] Drop another redundant 'No.' suffix
Vedant Kumar [Mon, 19 Sep 2016 00:38:14 +0000 (00:38 +0000)]
[llvm-cov] Drop another redundant 'No.' suffix

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

8 years ago[utils] Delete the 'check-coverage-regressions' script
Vedant Kumar [Mon, 19 Sep 2016 00:38:11 +0000 (00:38 +0000)]
[utils] Delete the 'check-coverage-regressions' script

In practice, it's way too noisy.

It's also a maintenance burden, since we apparently can't add tests for
it without breaking some Windows setups (see: D22692).

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

8 years agoHandle Invoke during sample profiler annotation: make it inlinable.
Dehao Chen [Sun, 18 Sep 2016 23:11:37 +0000 (23:11 +0000)]
Handle Invoke during sample profiler annotation: make it inlinable.

Summary: Previously we reline on inst-combine to remove inlinable invoke instructions. This causes trouble because a few extra optimizations are schedule early that could introduce too much CFG change (e.g. simplifycfg removes too much control flow). This patch handles invoke instruction in-place during sample profile annotation, so that we do not rely on instcombine to remove those invoke instructions.

Reviewers: davidxl, dnovillo

Subscribers: llvm-commits

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

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

8 years agoExtend title underline
Xinliang David Li [Sun, 18 Sep 2016 22:10:19 +0000 (22:10 +0000)]
Extend title underline

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

8 years ago[AVX-512] Don't lower CVTPD2PS intrinsics to ISD::FP_ROUND with an X86 rounding mode...
Craig Topper [Sun, 18 Sep 2016 21:49:32 +0000 (21:49 +0000)]
[AVX-512] Don't lower CVTPD2PS intrinsics to ISD::FP_ROUND with an X86 rounding mode encoding in the second operand. This immediate should only be 0 or 1 and indicates if the truncation loses precision.

Also enhance an assert in SelectionDAG::getNode to flag this sort of problem in the future.

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

8 years ago[AVX-512] Stop lowering avx512_mask_sqrt intrinsics to ISD:FSQRT with a second operan...
Craig Topper [Sun, 18 Sep 2016 21:49:28 +0000 (21:49 +0000)]
[AVX-512] Stop lowering avx512_mask_sqrt intrinsics to ISD:FSQRT with a second operand containing an X86 specific rounding mode encoding that doesn't belong.

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

8 years ago[libFuzzer] add -print_coverage=1 flag to print coverage directly from libFuzzer
Kostya Serebryany [Sun, 18 Sep 2016 21:47:08 +0000 (21:47 +0000)]
[libFuzzer] add -print_coverage=1 flag to print coverage directly from libFuzzer

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

8 years agoFix covered-switch-default warning
Simon Pilgrim [Sun, 18 Sep 2016 21:08:35 +0000 (21:08 +0000)]
Fix covered-switch-default warning

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

8 years ago[CostModel][X86] Added scalar float op costs
Simon Pilgrim [Sun, 18 Sep 2016 21:01:20 +0000 (21:01 +0000)]
[CostModel][X86] Added scalar float op costs

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

8 years agoRename tests
Simon Pilgrim [Sun, 18 Sep 2016 20:25:41 +0000 (20:25 +0000)]
Rename tests

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

8 years ago[X86] Fix typo in comment. NFC
Craig Topper [Sun, 18 Sep 2016 18:59:38 +0000 (18:59 +0000)]
[X86] Fix typo in comment. NFC

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

8 years ago[AVX-512] Add memory load patterns for the legacy SSE scalar fp to integer conversion...
Craig Topper [Sun, 18 Sep 2016 18:59:36 +0000 (18:59 +0000)]
[AVX-512] Add memory load patterns for the legacy SSE scalar fp to integer conversion intrinsics to be consistent across all intruction sets.

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

8 years ago[AVX-512] Remove COPY_TO_REGCLASS from a few patterns that already had the correct...
Craig Topper [Sun, 18 Sep 2016 18:59:33 +0000 (18:59 +0000)]
[AVX-512] Remove COPY_TO_REGCLASS from a few patterns that already had the correct register class.

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

8 years agoFix built bot failure
Xinliang David Li [Sun, 18 Sep 2016 18:52:08 +0000 (18:52 +0000)]
Fix built bot failure

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

8 years ago[Profile] Implement select instruction instrumentation in IR PGO
Xinliang David Li [Sun, 18 Sep 2016 18:34:07 +0000 (18:34 +0000)]
[Profile] Implement select instruction instrumentation in IR PGO

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

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

8 years ago[Loop Vectorizer] Consecutive memory access - fixed and simplified
Elena Demikhovsky [Sun, 18 Sep 2016 13:56:08 +0000 (13:56 +0000)]
[Loop Vectorizer] Consecutive memory access - fixed and simplified

Amended consecutive memory access detection in Loop Vectorizer.
Load/Store were not handled properly without preceding GEP instruction.

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

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

8 years ago[X86][SSE] Improve recognition of uitofp conversions that can be performed as sitofp
Simon Pilgrim [Sun, 18 Sep 2016 12:45:23 +0000 (12:45 +0000)]
[X86][SSE] Improve recognition of uitofp conversions that can be performed as sitofp

With D24253 we can now use SelectionDAG::SignBitIsZero with vector operations.

This patch uses SelectionDAG::SignBitIsZero to recognise that a zero sign bit means that we can use a sitofp instead of a uitofp (which is not directly support on pre-AVX512 hardware).

While AVX512 does provide support for uitofp, the conversion to sitofp should not cause any regressions.

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

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

8 years ago[Loop vectorizer] Simplified GEP cloning. NFC.
Elena Demikhovsky [Sun, 18 Sep 2016 09:22:54 +0000 (09:22 +0000)]
[Loop vectorizer] Simplified GEP cloning. NFC.

Simplified GEP cloning in vectorizeMemoryInstruction().
Added an assertion that checks consecutive GEP, which should have only one loop-variant operand.

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

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

8 years agoChange the order of the splitted store from high - low to low - high.
Wei Mi [Sun, 18 Sep 2016 06:10:32 +0000 (06:10 +0000)]
Change the order of the splitted store from high - low to low - high.
It is a trivial change which could make the testcase easier to be reused
for the store splitting in CodeGenPrepare.

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

8 years ago[libFuzzer] use 'if guard' instead of 'if guard >= 0' with trace-pc; change the guard...
Kostya Serebryany [Sun, 18 Sep 2016 04:52:23 +0000 (04:52 +0000)]
[libFuzzer] use 'if guard' instead of 'if guard >= 0' with trace-pc; change the guard type to intptr_t; use separate array for 8-bit counters

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

8 years ago[llvm-objump] Simplify the code. NFCI.
Davide Italiano [Sun, 18 Sep 2016 04:39:15 +0000 (04:39 +0000)]
[llvm-objump] Simplify the code. NFCI.

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

8 years ago[lib/LTO] Try harder to reduce code duplication. NFCI.
Davide Italiano [Sat, 17 Sep 2016 22:32:42 +0000 (22:32 +0000)]
[lib/LTO] Try harder to reduce code duplication. NFCI.

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

8 years ago[X86][SSE] Added vector udiv combine tests
Simon Pilgrim [Sat, 17 Sep 2016 22:02:23 +0000 (22:02 +0000)]
[X86][SSE] Added vector udiv combine tests

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

8 years ago[X86][SSE] Added vector fcopysign combine tests
Simon Pilgrim [Sat, 17 Sep 2016 21:31:34 +0000 (21:31 +0000)]
[X86][SSE] Added vector fcopysign combine tests

Also demonstrating the poor lowering of fcopysign...

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

8 years ago[ThinLTO] Ensure anonymous globals renamed even at -O0
Teresa Johnson [Sat, 17 Sep 2016 20:40:16 +0000 (20:40 +0000)]
[ThinLTO] Ensure anonymous globals renamed even at -O0

Summary:
This fixes an issue when files are compiled with -flto=thin
at default -O0. We need to rename anonymous globals before attempting
to write the module summary because all values need names for
the summary. This was happening at -O1 and above, but not before
the early exit when constructing the pipeline for -O0.

Also add an internal -prepare-for-thinlto option to enable this
to be tested via opt.

Fixes PR30419.

Reviewers: mehdi_amini

Subscribers: probinson, llvm-commits, mehdi_amini

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

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

8 years ago[X86][SSE] Added vector mul combine tests
Simon Pilgrim [Sat, 17 Sep 2016 20:06:16 +0000 (20:06 +0000)]
[X86][SSE] Added vector mul combine tests

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

8 years ago[X86][SSE] Improve target shuffle mask extraction
Simon Pilgrim [Sat, 17 Sep 2016 18:50:54 +0000 (18:50 +0000)]
[X86][SSE] Improve target shuffle mask extraction

Add ability to extract vXi64 'vzext_movl' masks on 32-bit targets

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

8 years ago[X86][AVX] Test target shuffle combining on 32 and 64-bit targets
Simon Pilgrim [Sat, 17 Sep 2016 18:42:41 +0000 (18:42 +0000)]
[X86][AVX] Test target shuffle combining on 32 and 64-bit targets

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

8 years ago[X86][AVX2] Add target shuffle constant folding tests
Simon Pilgrim [Sat, 17 Sep 2016 17:42:15 +0000 (17:42 +0000)]
[X86][AVX2] Add target shuffle constant folding tests

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

8 years ago[X86][AVX] Add target shuffle constant folding tests
Simon Pilgrim [Sat, 17 Sep 2016 17:41:14 +0000 (17:41 +0000)]
[X86][AVX] Add target shuffle constant folding tests

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

8 years ago[X86][XOP] Add target shuffle constant folding tests
Simon Pilgrim [Sat, 17 Sep 2016 17:40:40 +0000 (17:40 +0000)]
[X86][XOP] Add target shuffle constant folding tests

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

8 years ago[X86][SSSE3] Add target shuffle constant folding tests
Simon Pilgrim [Sat, 17 Sep 2016 17:40:08 +0000 (17:40 +0000)]
[X86][SSSE3] Add target shuffle constant folding tests

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

8 years ago[Hexagon] segv while processing SUnit with nullNodePtr
Ron Lieberman [Sat, 17 Sep 2016 16:21:09 +0000 (16:21 +0000)]
[Hexagon] segv while processing SUnit with nullNodePtr

Added BoundaryNode check to isBestZeroLatency function.

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

8 years agoAMDGPU: Fix broken FrameIndex handling
Matt Arsenault [Sat, 17 Sep 2016 16:09:55 +0000 (16:09 +0000)]
AMDGPU: Fix broken FrameIndex handling

We were trying to avoid using a FrameIndex operand in non-pointer
operands in a convoluted way, and would break because of
using TargetFrameIndex. The TargetFrameIndex should only be used
in the case where it makes sense to fold it as part of the addressing
mode, otherwise it requires materialization like a normal constant.
This wasn't working reliably and failed in the added testcase, hitting
the assert when processing the frame index.

The TargetFrameIndex was coming from trying to produce an AssertZext
limiting the maximum stack size. I'm not sure this was correct to begin
with, because it is apparently possible to have a single workitem
dispatch that requires all 4G of private memory.

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

8 years agoAMDGPU: Rename spill operands to match real instruction
Matt Arsenault [Sat, 17 Sep 2016 15:52:37 +0000 (15:52 +0000)]
AMDGPU: Rename spill operands to match real instruction

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

8 years agoAMDGPU: Push bitcasts through build_vector
Matt Arsenault [Sat, 17 Sep 2016 15:44:16 +0000 (15:44 +0000)]
AMDGPU: Push bitcasts through build_vector

This reduces the number of copies and reg_sequences
when using fp constant vectors. This significantly
reduces the code size in local-stack-alloc-bug.ll

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

8 years ago[libFuzzer] properly reset the guards when reseting the coverage. Also try to fix...
Kostya Serebryany [Sat, 17 Sep 2016 06:01:55 +0000 (06:01 +0000)]
[libFuzzer] properly reset the guards when reseting the coverage. Also try to fix check-fuzzer on the bot

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

8 years agoDon't create a SymbolTable in Function when the LLVMContext discards value names...
Mehdi Amini [Sat, 17 Sep 2016 06:00:02 +0000 (06:00 +0000)]
Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC)

The ValueSymbolTable is used to detect name conflict and rename
instructions automatically. This is not needed when the value
names are automatically discarded by the LLVMContext.
No functional change intended, just saving a little bit of memory.

This is a recommit of r281806 after fixing the accessor to return
a pointer instead of a reference and updating all the call-sites.

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

8 years ago[MIR Parser] Fix Build!
Mehdi Amini [Sat, 17 Sep 2016 05:41:02 +0000 (05:41 +0000)]
[MIR Parser] Fix Build!

Last-second refactoring before push was bad idea...

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