OSDN Git Service

android-x86/external-llvm.git
8 years agoAMDGPU: Cleanup subtarget handling.
Matt Arsenault [Fri, 24 Jun 2016 06:30:11 +0000 (06:30 +0000)]
AMDGPU: Cleanup subtarget handling.

Split AMDGPUSubtarget into amdgcn/r600 specific subclasses.
This removes most of the static_casting of the basic codegen
classes everywhere, and tries to restrict the features
visible on the wrong target.

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

8 years agoUse the same underlying type for bitfields
David Majnemer [Fri, 24 Jun 2016 04:05:25 +0000 (04:05 +0000)]
Use the same underlying type for bitfields

MSVC allocates fresh storage for consecutive bitfields with different
underlying types.

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

8 years agoSwitch more loops to be range-based
David Majnemer [Fri, 24 Jun 2016 04:05:21 +0000 (04:05 +0000)]
Switch more loops to be range-based

This makes the code a little more concise, no functional change is
intended.

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

8 years ago[X86] Combine two nearby calls to isSingleInputShuffleVector. NFC
Craig Topper [Fri, 24 Jun 2016 03:06:11 +0000 (03:06 +0000)]
[X86] Combine two nearby calls to isSingleInputShuffleVector. NFC

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

8 years ago[llvm-cov] Fix two warnings
Vedant Kumar [Fri, 24 Jun 2016 02:33:01 +0000 (02:33 +0000)]
[llvm-cov] Fix two warnings

They were using output streams inconsistently. One also had a grammar
bug.

I noticed these while trying to pare down D18278.

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

8 years agoTemporary hack to clean a file from buildbots.
George Burgess IV [Fri, 24 Jun 2016 02:19:11 +0000 (02:19 +0000)]
Temporary hack to clean a file from buildbots.

Some buildbots are complaining about a .s file under test/ that was
inadvertently created by a test earlier today, and is still hanging
around. I'll undo this change in ~1hr (or whenever the bots are done
getting rid of said file).

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

8 years agoTeaching SimplifyCFG to recognize the Or-Mask trick that InstCombine uses to
Chuang-Yu Cheng [Fri, 24 Jun 2016 01:59:00 +0000 (01:59 +0000)]
Teaching SimplifyCFG to recognize the Or-Mask trick that InstCombine uses to
reduce the number of comparisons.

Specifically, InstCombine can turn:
  (i == 5334 || i == 5335)
into:
  ((i | 1) == 5335)

SimplifyCFG was already able to detect the pattern:
  (i == 5334 || i == 5335)
to:
  ((i & -2) == 5334)

This patch supersedes D21315 and resolves PR27555
(https://llvm.org/bugs/show_bug.cgi?id=27555).

Thanks to David and Chandler for the suggestions!

Author: Thomas Jablin (tjablin)
Reviewers: majnemer chandlerc halfdan cycheng

http://reviews.llvm.org/D21397

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

8 years agoBitcodeWriter: Remove redundant (and incorrect) check for whether to emit module...
Peter Collingbourne [Fri, 24 Jun 2016 01:58:02 +0000 (01:58 +0000)]
BitcodeWriter: Remove redundant (and incorrect) check for whether to emit module summary.

The function name Module::empty() is slightly misleading in that it
only tests for the presence of functions in the module. However we
still want to emit the module summary if the module contains only
global variables or aliases. The presence of such entities can be
determined simply by checking the summary directly, as we are doing
below.

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

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

8 years agoAttempt to fix MSVC breakage caused by r273636.
George Burgess IV [Fri, 24 Jun 2016 01:41:29 +0000 (01:41 +0000)]
Attempt to fix MSVC breakage caused by r273636.

Apparently earlier versions of MSVC don't have constexpr bitset ctors.

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

8 years ago[CFLAA] Propagate StratifiedAttrs in interproc. analysis.
George Burgess IV [Fri, 24 Jun 2016 01:00:03 +0000 (01:00 +0000)]
[CFLAA] Propagate StratifiedAttrs in interproc. analysis.

This patch also has a refactor that kills StratifiedAttr, and leaves us
with StratifiedAttrs, because having both was mildly redundant.

This patch makes us correctly handle stratified attributes when doing
interprocedural analysis. It also adds another attribute, AttrCaller,
which acts like AttrUnknown. We can filter out AttrCaller values when
during interprocedural analysis, since the caller should have
information about what arguments it's passing to its callee.

Patch by Jia Chen.

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

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

8 years ago[llvm-cov] Use getOptions() instead of Options in SourceCoverageView, NFC
Vedant Kumar [Fri, 24 Jun 2016 00:41:26 +0000 (00:41 +0000)]
[llvm-cov] Use getOptions() instead of Options in SourceCoverageView, NFC

A lot of this code is going to move into the text-based coverage
renderer, and won't be able to use Options directly. Use the getter.

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

8 years ago[llvm-cov] Add SourceNames to SourceCoverageViews, NFC
Vedant Kumar [Fri, 24 Jun 2016 00:34:51 +0000 (00:34 +0000)]
[llvm-cov] Add SourceNames to SourceCoverageViews, NFC

A SourceName can be a file or a function. It makes sense to attach this
information to a SourceCoverageView, seeing as views (1) already point
to the text corresponding to the relevant source code and (2) are
already used to render that text along with the SourceNames.

This is a nice cleanup which is independent of the upcoming html patch.

While we're at it, document the fields in SourceCoverageView.

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

8 years ago[llvm-cov] Rename SourceCoverageView::LineCoverageInfo to LineCoverageStats, NFC
Vedant Kumar [Fri, 24 Jun 2016 00:34:48 +0000 (00:34 +0000)]
[llvm-cov] Rename SourceCoverageView::LineCoverageInfo to LineCoverageStats, NFC

Pull LineCoverageInfo out of SourceCoverageView and rename it so that it
doesn't conflict with another class of the same name in
CoverageSummaryInfo.h.

This cuts down on the amount of code we have to move into a `protected`
section of SourceCoverageView for the upcoming html patch. It also makes
the code a bit clearer: having two LineCoverageInfo's is strange.

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

8 years ago[ARM] Use aapcs_vfp for ___truncdfhf2 on v7k.
Ahmed Bougacha [Fri, 24 Jun 2016 00:08:01 +0000 (00:08 +0000)]
[ARM] Use aapcs_vfp for ___truncdfhf2 on v7k.

r215348 overrode the f16 libcalls to be soft-float, but
v7k uses the default (hard-float) calling convention.

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

8 years ago[AArch64] Model the cost of vector by element FP multiplies on Exynos M1. (NFC)
Evandro Menezes [Thu, 23 Jun 2016 23:43:23 +0000 (23:43 +0000)]
[AArch64] Model the cost of vector by element FP multiplies on Exynos M1. (NFC)

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

8 years agoSupport/ELF: Add R_AMDGPU_GOTPCREL relocation
Tom Stellard [Thu, 23 Jun 2016 23:11:29 +0000 (23:11 +0000)]
Support/ELF: Add R_AMDGPU_GOTPCREL relocation

Summary:
We will start generating this in a future patch.

Reviewers: arsenm, kzhuravl, rafael, ruiu, tony-tye

Subscribers: arsenm, llvm-commits, kzhuravl

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

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

8 years ago[MachOYAML] Use a temporary to avoid gcc strict-aliasing warning
Chris Bieneman [Thu, 23 Jun 2016 23:01:47 +0000 (23:01 +0000)]
[MachOYAML] Use a temporary to avoid gcc strict-aliasing warning

GCC complains about this with -Wstrict-aliasing. Using a temporary here should prevent the warning.

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

8 years ago[codeview] Add classes and unions to the Local/Global UDTs lists
Hans Wennborg [Thu, 23 Jun 2016 22:57:25 +0000 (22:57 +0000)]
[codeview] Add classes and unions to the Local/Global UDTs lists

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

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

8 years ago[LCG] Make the name of an SCC include more of the functions in it.
Chandler Carruth [Thu, 23 Jun 2016 22:51:14 +0000 (22:51 +0000)]
[LCG] Make the name of an SCC include more of the functions in it.

This makes it much easier to debug issues when the logging contains the
name of the SCC. It requires to create a temporary string, but for
logging and debugging uses that seems fine. I've added logic to try to
output all the function names with an elipsis if there are too many.
This was helpful fro me in debugging issues with the new pass manager.

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

8 years ago[yaml2macho] Removing asserts in favor of explicit yaml parse error
Chris Bieneman [Thu, 23 Jun 2016 22:36:31 +0000 (22:36 +0000)]
[yaml2macho] Removing asserts in favor of explicit yaml parse error

32-bit Mach headers don't have reserved fields. When generating the
mapping for 32-bit headers leaving off the reserved field will result in
parse errors if the field is present in the yaml.

Added a CHECK-NOT line to ensure that mach_header.yaml isn't adding a
reserved field, and a test to ensure that the parser error gets hit with
32-bit headers.

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

8 years ago[CMake] Add LLVM runtimes directory
Chris Bieneman [Thu, 23 Jun 2016 22:07:21 +0000 (22:07 +0000)]
[CMake] Add LLVM runtimes directory

Summary:
There are a few LLVM projects that produce runtime libraries. Ideally
runtime libraries should be built differently than other projects,
specifically they should be built using the just-built toolchain.

There is support for building compiler-rt in this way from the clang
build. Moving this logic into the LLVM build is interesting because it
provides a simpler way to extend the just-built toolchain to include
LLD and the LLVM object file tools.

Once this functionality is better fleshed out and tested we’ll want to
encapsulate it in a module that can be used for clang standalone
builds, and we’ll want to make it the default way to build compiler-rt.

With this patch applied there is no immediate change in the build.
Moving compiler-rt out from llvm/projects into llvm/runtimes enables
the functionality.

This code has a few improvements over the method provided by
LLVM_BUILD_EXTERNAL_COMPILER_RT. Specifically the sub-ninja command is
always invoked, so changes to compiler-rt source files will get built
properly, so this patch can be used for iterative development with
just-built tools.

This first patch only works with compiler-rt. Support for other
runtime projects will be coming in follow-up patches.

Reviewers: chandlerc, bogner

Subscribers: kubabrecka, llvm-commits

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

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

8 years agoMachineScheduler: Followup to debug message changes
Matthias Braun [Thu, 23 Jun 2016 21:43:28 +0000 (21:43 +0000)]
MachineScheduler: Followup to debug message changes

Do not dump intermediate state of the pending queue anymore now that we
always dump the final state before picking.

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

8 years agoCodegen: [X86] preservere memory refs for folded umul_lohi
Kyle Butt [Thu, 23 Jun 2016 21:40:35 +0000 (21:40 +0000)]
Codegen: [X86] preservere memory refs for folded umul_lohi

Memory references were not being propagated for this folded load. This
prevented optimizations like LICM from hoisting the load.

Added test to verify that this allows LICM to proceed.

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

8 years agoCodegen: LICM Remove check for exactly 1 register def.
Kyle Butt [Thu, 23 Jun 2016 21:38:49 +0000 (21:38 +0000)]
Codegen: LICM Remove check for exactly 1 register def.

When considering whether to split an instruction with a memory operand
into an explicit load and a register-based instruction, we currently
check that the resulting instruction has exactly 1 def. This prevents 2
important LICM optimizations: compares with memory operands, and double
indirect calls. All the tests and the test-suite pass without the check.
My guess as to original intent is to limit the additional register pressure
created by the new instruction, but given that we only split out a single
register, it is already limited.

The licm-dominance test now checks actual memory loads for hoisting instead of
undef, and it tests compares.
hoist-invariant-load.ll now checks for 2 hoists, the intended hoist, and a bonus
from calling a got-relative function in a loop.

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

8 years agoMachineScheduler: Improve debug messages
Matthias Braun [Thu, 23 Jun 2016 21:27:38 +0000 (21:27 +0000)]
MachineScheduler: Improve debug messages

Consistenly display available and pending queues immediately before the
scheduling choice is done.

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

8 years agoUses shouldAssumeDSOLocal.
Rafael Espindola [Thu, 23 Jun 2016 21:18:59 +0000 (21:18 +0000)]
Uses shouldAssumeDSOLocal.

With that SystemZ knows to avoid a GOT for PIE.

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

8 years agoAttempt #2 to unbreak bots broken by r273596.
George Burgess IV [Thu, 23 Jun 2016 20:59:13 +0000 (20:59 +0000)]
Attempt #2 to unbreak bots broken by r273596.

Some of the bots running GCC 4.7 seem to be having trouble with lambdas
that explicitly capture `this`. Relevant-looking bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53137

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

8 years agoRefactor to use shouldAssumeDSOLocal. NFC.
Rafael Espindola [Thu, 23 Jun 2016 20:50:42 +0000 (20:50 +0000)]
Refactor to use shouldAssumeDSOLocal. NFC.

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

8 years ago[libfuzzer] moving is_ascii handler inside mutation dispatcher.
Mike Aizatsky [Thu, 23 Jun 2016 20:44:48 +0000 (20:44 +0000)]
[libfuzzer] moving is_ascii handler inside mutation dispatcher.

Summary: It also fixes a bug, when first random might not be ascii.

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

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

8 years agoConvert test to FileCheck.
Rafael Espindola [Thu, 23 Jun 2016 20:37:49 +0000 (20:37 +0000)]
Convert test to FileCheck.

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

8 years agoInstCombine rule to fold trunc when value available
Anna Thomas [Thu, 23 Jun 2016 20:22:22 +0000 (20:22 +0000)]
InstCombine rule to fold trunc when value available

Summary:
This instcombine rule folds away trunc operations that have value available from a prior load or store.
This kind of code can be generated as a result of GVN widening the load or from source code as well.

Reviewers: reames, majnemer, sanjoy

Subscribers: llvm-commits

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

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

8 years agoAMDGPU: Add option to disable spilling SGPRs to VGPRs.
Matt Arsenault [Thu, 23 Jun 2016 20:00:34 +0000 (20:00 +0000)]
AMDGPU: Add option to disable spilling SGPRs to VGPRs.

This can help debug spilling problems.

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

8 years agoAttempt to fix breakage caused by r273596.
George Burgess IV [Thu, 23 Jun 2016 19:16:04 +0000 (19:16 +0000)]
Attempt to fix breakage caused by r273596.

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

8 years agoDefault to using the Unicode version of Win32 APIs instead of the ANSI version. This...
Aaron Ballman [Thu, 23 Jun 2016 19:02:09 +0000 (19:02 +0000)]
Default to using the Unicode version of Win32 APIs instead of the ANSI version. This helps to catch instances where a developer accidentally forgets to explicitly specify which version of the API to use and accidentally winds up failing to support non-ASCII characters properly.

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

8 years ago[CFLAA] Use better interprocedural function summaries.
George Burgess IV [Thu, 23 Jun 2016 18:55:23 +0000 (18:55 +0000)]
[CFLAA] Use better interprocedural function summaries.

Previously, we just unified any arguments that seemed to be related to
each other. With this patch, we now respect dereference levels, etc.
which should make us substantially more accurate. Proper handling of
StratifiedAttrs will be done in a later patch.

Patch by Jia Chen.

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

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

8 years agoRefactor duplicated code. NFC.
Rafael Espindola [Thu, 23 Jun 2016 18:43:06 +0000 (18:43 +0000)]
Refactor duplicated code. NFC.

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

8 years ago[codeview] Fix letter casing in FileCheck regexes
Hans Wennborg [Thu, 23 Jun 2016 18:23:28 +0000 (18:23 +0000)]
[codeview] Fix letter casing in FileCheck regexes

We print those hex numbers with uppercase letters.

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

8 years ago[X86] Extract HiPE prologue constants into metadata
Michael Kuperstein [Thu, 23 Jun 2016 18:17:25 +0000 (18:17 +0000)]
[X86] Extract HiPE prologue constants into metadata

X86FrameLowering::adjustForHiPEPrologue() contains a hard-coded offset
into an Erlang Runtime System-internal data structure (the PCB). As the
layout of this data structure is prone to change, this poses problems
for maintaining compatibility.

To address this problem, the compiler can produce this information as
module-level named metadata. For example (where P_NSP_LIMIT is the
offending offset):

!hipe.literals = !{ !2, !3, !4 }
!2 = !{ !"P_NSP_LIMIT", i32 152 }
!3 = !{ !"X86_LEAF_WORDS", i32 24 }
!4 = !{ !"AMD64_LEAF_WORDS", i32 24 }

Patch by Magnus Lang

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

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

8 years agoTypo.
Vassil Vassilev [Thu, 23 Jun 2016 18:13:46 +0000 (18:13 +0000)]
Typo.

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

8 years agoFix the wasm build by including EndianStream.h
Reid Kleckner [Thu, 23 Jun 2016 18:12:31 +0000 (18:12 +0000)]
Fix the wasm build by including EndianStream.h

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

8 years agoPrevent generation of temp file in test from r273585.
Nirav Dave [Thu, 23 Jun 2016 18:06:35 +0000 (18:06 +0000)]
Prevent generation of temp file in test from r273585.

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

8 years ago[SCEV] Don't unnecessarily namespace; NFC
Sanjoy Das [Thu, 23 Jun 2016 18:03:32 +0000 (18:03 +0000)]
[SCEV] Don't unnecessarily namespace; NFC

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

8 years ago[IRCE] Use getTerminator instead of rbegin; NFC
Sanjoy Das [Thu, 23 Jun 2016 18:03:26 +0000 (18:03 +0000)]
[IRCE] Use getTerminator instead of rbegin; NFC

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

8 years agoPreserve DebugInfo when replacing values in DAGCombiner
Nirav Dave [Thu, 23 Jun 2016 17:52:57 +0000 (17:52 +0000)]
Preserve DebugInfo when replacing values in DAGCombiner

Recommiting after correcting over-eager Debug Value transfer fixing PR28270.

[DAG] Previously debug values would transfer debuginfo for the selected
start node for a replacement which allows for debug to be dropped.

Push debug value transfer to occur with node/value replacement in
SelectionDAG, remove now extraneous transfers of debug values.

This refixes PR9817 which was being incompletely checked in the
testsuite.

Reviewers: jyknight

Subscribers: dblaikie, llvm-commits

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

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

8 years ago[ValueTracking] simplify logic in ComputeNumSignBits (NFCI)
Sanjay Patel [Thu, 23 Jun 2016 17:41:59 +0000 (17:41 +0000)]
[ValueTracking] simplify logic in ComputeNumSignBits (NFCI)

This was noted in http://reviews.llvm.org/D21610 . The previous code
predated the use of APInt ( http://reviews.llvm.org/rL47654 ), so it
had to account for the fixed width of uint64_t.

Now that we're using the variable width APInt, we can remove some
complexity.

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

8 years ago[TableGen] Use StringRef::compare instead of != and <. NFC.
Ahmed Bougacha [Thu, 23 Jun 2016 17:09:49 +0000 (17:09 +0000)]
[TableGen] Use StringRef::compare instead of != and <. NFC.

The previous code would always do 1 or 2 prefix compares;
explicitly only do one.

This speeds up debug -gen-asm-matcher by ~10% (e.g. X86: 40s -> 35s).

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

8 years ago[ARM] Lower (select_cc k k (select_cc ~k ~k x)) into (SSAT l_k x)
Pablo Barrio [Thu, 23 Jun 2016 16:53:49 +0000 (16:53 +0000)]
[ARM] Lower (select_cc k k (select_cc ~k ~k x)) into (SSAT l_k x)

Summary:
SSAT saturates an integer, making sure that its value lies within
an interval [-k, k]. Since the constant is given to SSAT as the
number of bytes set to one, k + 1 must be a power of 2, otherwise
the optimization is not possible. Also, the select_cc must use <
and > respectively so that they define an interval.

Reviewers: mcrosier, jmolloy, rengolin

Subscribers: aemerson, rengolin, llvm-commits

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

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

8 years agoUpgrade other old memset/memcpy signatures in tests causing buildbot failures with...
Artur Pilipenko [Thu, 23 Jun 2016 16:34:52 +0000 (16:34 +0000)]
Upgrade other old memset/memcpy signatures in tests causing buildbot failures with rL273568.

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

8 years ago[codeview] Emit retained types
Hans Wennborg [Thu, 23 Jun 2016 16:33:53 +0000 (16:33 +0000)]
[codeview] Emit retained types

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

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

8 years agoChange the email address for commit access requests to my llvm address.
Chris Lattner [Thu, 23 Jun 2016 16:29:22 +0000 (16:29 +0000)]
Change the email address for commit access requests to my llvm address.

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

8 years agoNFC, add an "end namespace" comment for consistency
Vedant Kumar [Thu, 23 Jun 2016 16:27:08 +0000 (16:27 +0000)]
NFC, add an "end namespace" comment for consistency

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

8 years agoRevert r273567 "[SystemZ] Let z13 also support FeatureMiscellaneousExtensions."
Hans Wennborg [Thu, 23 Jun 2016 16:13:26 +0000 (16:13 +0000)]
Revert r273567 "[SystemZ] Let z13 also support FeatureMiscellaneousExtensions."

It broke test/CodeGen/SystemZ/vec-extract-02.ll

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

8 years agoRevert r273568 "Remangle intrinsics names when types are renamed"
Hans Wennborg [Thu, 23 Jun 2016 16:13:23 +0000 (16:13 +0000)]
Revert r273568 "Remangle intrinsics names when types are renamed"

It broke 2008-07-15-Bswap.ll and 2009-09-01-PostRAProlog.ll

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

8 years agoFix an old memset signature in 2009-09-01-PostRAProlog.ll test causing a buildbot...
Artur Pilipenko [Thu, 23 Jun 2016 16:07:10 +0000 (16:07 +0000)]
Fix an old memset signature in 2009-09-01-PostRAProlog.ll test causing a buildbot failure

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

8 years ago[docs] Bump minimum version of CMake in its own doc
Renato Golin [Thu, 23 Jun 2016 15:28:00 +0000 (15:28 +0000)]
[docs] Bump minimum version of CMake in its own doc

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

8 years agoRemangle intrinsics names when types are renamed
Artur Pilipenko [Thu, 23 Jun 2016 15:25:09 +0000 (15:25 +0000)]
Remangle intrinsics names when types are renamed

This is a fix for the problem mentioned in "LTO and intrinsics mangling" llvm-dev mail thread:
http://lists.llvm.org/pipermail/llvm-dev/2016-April/098387.html

Reviewers: mehdi_amini, reames

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

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

8 years ago[SystemZ] Let z13 also support FeatureMiscellaneousExtensions.
Jonas Paulsson [Thu, 23 Jun 2016 15:12:06 +0000 (15:12 +0000)]
[SystemZ] Let z13 also support FeatureMiscellaneousExtensions.

This processor feature had been left out by mistake from the z13
ProcessorModel.

Reviewed by Ulrich Weigand.

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

8 years agoRevert "[misched] Extend scheduler to handle unsupported features"
Simon Dardis [Thu, 23 Jun 2016 14:54:47 +0000 (14:54 +0000)]
Revert "[misched] Extend scheduler to handle unsupported features"

This reverts commit r273551.

Patch contained a wrong check for isUnsupported.

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

8 years agoExplicitly specify the ANSI version of these Win32 APIs. While these are seemingly...
Aaron Ballman [Thu, 23 Jun 2016 14:45:54 +0000 (14:45 +0000)]
Explicitly specify the ANSI version of these Win32 APIs. While these are seemingly unrelated changes, they are all NFC because we currently default to the ANSI versions of the APIs when building for Windows. This simply makes the ANSI usage explicit.

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

8 years ago[LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad.
Michael Zolotukhin [Thu, 23 Jun 2016 14:31:31 +0000 (14:31 +0000)]
[LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad.

When simplifying a load we need to make sure that the type of the
simplified value matches the type of the instruction we're processing.
In theory, we can handle casts here as we deal with constant data, but
since it's not implemented at the moment, we at least need to bail out.

This fixes PR28262.

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

8 years ago[AMDGPU] Enable absolute expression initializer for amd_kernel_code_t fields.
Valery Pykhtin [Thu, 23 Jun 2016 14:13:06 +0000 (14:13 +0000)]
[AMDGPU] Enable absolute expression initializer for amd_kernel_code_t fields.

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

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

8 years ago[X86][AVX512] Added AVX512F vector sign extend tests
Simon Pilgrim [Thu, 23 Jun 2016 14:01:45 +0000 (14:01 +0000)]
[X86][AVX512] Added AVX512F vector sign extend tests

Now that Elena has confirmed that PR26474 has been fixed

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

8 years agoAllow DeadStoreElimination to track combinations of partial later wrties
Hal Finkel [Thu, 23 Jun 2016 13:46:39 +0000 (13:46 +0000)]
Allow DeadStoreElimination to track combinations of partial later wrties

DeadStoreElimination can currently remove a small store rendered unnecessary by
a later larger one, but could not remove a larger store rendered unnecessary by
a series of later smaller ones. This adds that capability.

It works by keeping a map, which is used as an effective interval map, for each
store later overwritten only partially, and filling in that interval map as
more such stores are discovered. No additional walking or aliasing queries are
used. In the map forms an interval covering the the entire earlier store, then
it is dead and can be removed. The map is used as an interval map by storing a
mapping between the ending offset and the beginning offset of each interval.

I discovered this problem when investigating a performance issue with code like
this on PowerPC:

  #include <complex>
  using namespace std;

  complex<float> bar(complex<float> C);
  complex<float> foo(complex<float> C) {
    return bar(C)*C;
  }

which produces this:

  define void @_Z4testSt7complexIfE(%"struct.std::complex"* noalias nocapture sret %agg.result, i64 %c.coerce) {
  entry:
    %ref.tmp = alloca i64, align 8
    %tmpcast = bitcast i64* %ref.tmp to %"struct.std::complex"*
    %c.sroa.0.0.extract.shift = lshr i64 %c.coerce, 32
    %c.sroa.0.0.extract.trunc = trunc i64 %c.sroa.0.0.extract.shift to i32
    %0 = bitcast i32 %c.sroa.0.0.extract.trunc to float
    %c.sroa.2.0.extract.trunc = trunc i64 %c.coerce to i32
    %1 = bitcast i32 %c.sroa.2.0.extract.trunc to float
    call void @_Z3barSt7complexIfE(%"struct.std::complex"* nonnull sret %tmpcast, i64 %c.coerce)
    %2 = bitcast %"struct.std::complex"* %agg.result to i64*
    %3 = load i64, i64* %ref.tmp, align 8
    store i64 %3, i64* %2, align 4 ; <--- ***** THIS SHOULD NOT BE HERE ****
    %_M_value.realp.i.i = getelementptr inbounds %"struct.std::complex", %"struct.std::complex"* %agg.result, i64 0, i32 0, i32 0
    %4 = lshr i64 %3, 32
    %5 = trunc i64 %4 to i32
    %6 = bitcast i32 %5 to float
    %_M_value.imagp.i.i = getelementptr inbounds %"struct.std::complex", %"struct.std::complex"* %agg.result, i64 0, i32 0, i32 1
    %7 = trunc i64 %3 to i32
    %8 = bitcast i32 %7 to float
    %mul_ad.i.i = fmul fast float %6, %1
    %mul_bc.i.i = fmul fast float %8, %0
    %mul_i.i.i = fadd fast float %mul_ad.i.i, %mul_bc.i.i
    %mul_ac.i.i = fmul fast float %6, %0
    %mul_bd.i.i = fmul fast float %8, %1
    %mul_r.i.i = fsub fast float %mul_ac.i.i, %mul_bd.i.i
    store float %mul_r.i.i, float* %_M_value.realp.i.i, align 4
    store float %mul_i.i.i, float* %_M_value.imagp.i.i, align 4
    ret void
  }

the problem here is not just that the i64 store is unnecessary, but also that
it blocks further backend optimizations of the other uses of that i64 value in
the backend.

In the future, we might want to add a special case for handling smaller
accesses (e.g. using a bit vector) if the map mechanism turns out to be
noticeably inefficient. A sorted vector is also a possible replacement for the
map for small numbers of tracked intervals.

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

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

8 years ago[mips] Don't derive the default ABI from the CPU in the backend.
Daniel Sanders [Thu, 23 Jun 2016 12:42:53 +0000 (12:42 +0000)]
[mips] Don't derive the default ABI from the CPU in the backend.

Summary:
The backend has no reason to behave like a driver and should generally do
as it's told (and error out if it can't) instead of trying to figure out
what the API user meant. The default ABI is still derived from the arch
component as a concession to backwards compatibility.

API-users that previously passed an explicit CPU and a triple that was
inconsistent with the CPU (e.g. mips-linux-gnu and mips64r2) may get a
different ABI to what they got before. However, it's expected that there
are no such users on the basis that CodeGen has been asserting that the
triple is consistent with the selected ABI for several releases. API-users
that were consistent or passed '' or 'generic' as the CPU will see no
difference.

Reviewers: sdardis, rafael

Subscribers: rafael, dsanders, sdardis, llvm-commits

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

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

8 years ago[ARM] Use member initializers in ARMSubtarget. NFCI
Diana Picus [Thu, 23 Jun 2016 12:04:33 +0000 (12:04 +0000)]
[ARM] Use member initializers in ARMSubtarget. NFCI

Move most of the initializations in ARMSubtarget::initializeEnvironment to
member initializers.

Change suggested by Matthias Braun (see http://reviews.llvm.org/D21432).

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

8 years ago[mips][ias] Integers are not registers.
Daniel Sanders [Thu, 23 Jun 2016 10:54:09 +0000 (10:54 +0000)]
[mips][ias] Integers are not registers.

Summary:
When parseAnyRegister() encounters a symbol alias, it parses integers and adds
a corresponding expression to the operand list. This is clearly wrong since the
only operands that parseAnyRegister() should be accepting are registers.

It's not clear why this code was added and there are no test cases that cover
it. I think it might be leftover from when searchSymbolAlias() was more widely
used.

Reviewers: sdardis

Subscribers: dsanders, sdardis, llvm-commits

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

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

8 years ago[llc] Remove exit-on-error flag (PR27759)
Diana Picus [Thu, 23 Jun 2016 09:49:56 +0000 (09:49 +0000)]
[llc] Remove exit-on-error flag (PR27759)

This flag was introduced in r269655 with the new diagnostic handler for llc. Its
purpose was to keep the old behavior for some of the tests that didn't recover
well after an error. Those tests have been fixed, so now it's safe to remove the
flag entirely.

Fixes PR27759.

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

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

8 years ago[misched] Extend scheduler to handle unsupported features
Simon Dardis [Thu, 23 Jun 2016 09:22:11 +0000 (09:22 +0000)]
[misched] Extend scheduler to handle unsupported features

Currently isComplete = 1 requires that every instruction must
be described, declared unsupported or marked as having no
scheduling information for a processor.

For some backends such as MIPS, this requirement entails
long regex lists of instructions that are unsupported.

This patch teaches Tablegen to skip over instructions that
are associated with unsupported feature when checking if the
scheduling model is complete.

Patch by: Daniel Sanders

Contributions by: Simon Dardis

Reviewers: MatzeB

Differential Reviewer: http://reviews.llvm.org/D20522

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

8 years ago[AMDGPU] Remove exit-on-error in test (PR27761)
Diana Picus [Thu, 23 Jun 2016 09:19:16 +0000 (09:19 +0000)]
[AMDGPU] Remove exit-on-error in test (PR27761)

The exit-on-error flag was necessary in order to avoid an assertion when
handling DYNAMIC_STACKALLOC nodes in SelectionDAGLegalize.

We can avoid the assertion by creating some dummy nodes. This enables us to
remove the exit-on-error flag on the first 2 run lines (SI), but on the third
run line (R600) we would run into another assertion when trying to reserve
indirect registers. This patch also replaces that assertion with an early exit
from the function.

Fixes PR27761.

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

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

8 years ago[mips] Fix dext/dins definitions
Simon Dardis [Thu, 23 Jun 2016 09:06:20 +0000 (09:06 +0000)]
[mips] Fix dext/dins definitions

dext and dins, along with their 'm' and 'u' variants are defined in mips64r2,
not mips64.

Reviewers: dsanders, vkalintiris

Differential Review: http://reviews.llvm.org/D21608

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

8 years ago[IfConversion] Bugfix: Don't use undef flag while adding use operands.
Jonas Paulsson [Thu, 23 Jun 2016 08:13:20 +0000 (08:13 +0000)]
[IfConversion] Bugfix: Don't use undef flag while adding use operands.

IfConversion used to always add the undef flag when adding a use operand
on a newly predicated instruction. This would be an operand for the register
being conditionally redefined. Due to the undef flag, the liveness of this
register prior to the predicated instruction would get lost.

This patch changes this so that such use operands are added only when the
register is live, without the undef flag.

Reviewed by Quentin Colombet.
http://reviews.llvm.org/D209077

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

8 years ago[ARM] Do not test for CPUs, use SubtargetFeatures (Part 1). NFCI
Diana Picus [Thu, 23 Jun 2016 07:47:35 +0000 (07:47 +0000)]
[ARM] Do not test for CPUs, use SubtargetFeatures (Part 1). NFCI

This is a cleanup commit similar to r271555, but for ARM.

The end goal is to get rid of the isSwift / isCortexXY / isWhatever methods.

Since the ARM backend seems to have quite a lot of calls to these methods, I
intend to submit 5-6 subtarget features at a time, instead of one big lump.

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

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

8 years ago[AVX512] Remove masked unpack intrinsics and autoupgrade to vectorshuffle and selects.
Craig Topper [Thu, 23 Jun 2016 07:37:33 +0000 (07:37 +0000)]
[AVX512] Remove masked unpack intrinsics and autoupgrade to vectorshuffle and selects.

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

8 years ago[X86] Add assert to ensure only 128-bit vector types are used. 256 or 512-bit would...
Craig Topper [Thu, 23 Jun 2016 07:37:26 +0000 (07:37 +0000)]
[X86] Add assert to ensure only 128-bit vector types are used. 256 or 512-bit would require lane handling which is missing.

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

8 years ago[modules] Good ol' JIT is gone.
Vassil Vassilev [Thu, 23 Jun 2016 07:33:03 +0000 (07:33 +0000)]
[modules] Good ol' JIT is gone.

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

8 years agoAdd missing include. Should fix modules builds.
Vassil Vassilev [Thu, 23 Jun 2016 07:30:12 +0000 (07:30 +0000)]
Add missing include. Should fix modules builds.

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

8 years ago[LLVM][MIPS] Introduce 64 bit atomic check in CheckAtomic.cmake
Sagar Thakur [Thu, 23 Jun 2016 06:39:35 +0000 (06:39 +0000)]
[LLVM][MIPS] Introduce 64 bit atomic check in CheckAtomic.cmake

Patch by Nitesh Jain.

Summary: On some target like MIPS32 we need to explicitly link atomic library for 64 bit atomic operations. This module then can be used in LLDB (http://reviews.llvm.org/D20464) or Libcxx (http://reviews.llvm.org/D16613) for explicitly link to atomic library.

Reviewers: chandlerc, beanz
Differential: reviews.llvm.org/D20896

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

8 years agoFix doubly included header
Matt Arsenault [Thu, 23 Jun 2016 02:34:51 +0000 (02:34 +0000)]
Fix doubly included header

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

8 years ago[libFuzzer] Add standard license info and comment header to AFLDriverTest.cpp
Vitaly Buka [Thu, 23 Jun 2016 02:19:36 +0000 (02:19 +0000)]
[libFuzzer] Add standard license info and comment header to AFLDriverTest.cpp

Summary: Add license info and brief description of file to AFLDriverTest.cpp.

Reviewers: kcc, aizatsky

Subscribers: llvm-commits

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

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

8 years agoUse C++ comments for large block comment.
Eric Christopher [Thu, 23 Jun 2016 01:33:38 +0000 (01:33 +0000)]
Use C++ comments for large block comment.

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

8 years agoAMDGPU: readlane/writelane do not read exec
Matt Arsenault [Thu, 23 Jun 2016 01:26:16 +0000 (01:26 +0000)]
AMDGPU: readlane/writelane do not read exec

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

8 years agoFix unused variable warning by folding the temporary into the debug statement.
Eric Christopher [Thu, 23 Jun 2016 00:42:00 +0000 (00:42 +0000)]
Fix unused variable warning by folding the temporary into the debug statement.

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

8 years ago[SCCP] Don't assume all Constants are ConstantInt
David Majnemer [Thu, 23 Jun 2016 00:14:29 +0000 (00:14 +0000)]
[SCCP] Don't assume all Constants are ConstantInt

This fixes PR28269.

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

8 years ago[ADT] Add a range variant of std::transform
David Majnemer [Thu, 23 Jun 2016 00:14:26 +0000 (00:14 +0000)]
[ADT] Add a range variant of std::transform

This will be used in a followup change in clang.

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

8 years ago[IRObjectFile] Try to be defensive, add a break.
Davide Italiano [Thu, 23 Jun 2016 00:07:31 +0000 (00:07 +0000)]
[IRObjectFile] Try to be defensive, add a break.

Suggested by Sean Silva.

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

8 years agoRevert r273456, "Preserve DebugInfo when replacing values in DAGCombiner" as it cause...
Peter Collingbourne [Thu, 23 Jun 2016 00:06:17 +0000 (00:06 +0000)]
Revert r273456, "Preserve DebugInfo when replacing values in DAGCombiner" as it caused pr28270.

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

8 years ago[llvm-cov] Fix a buggy lit test
Vedant Kumar [Wed, 22 Jun 2016 23:58:03 +0000 (23:58 +0000)]
[llvm-cov] Fix a buggy lit test

There is no check prefix for "WHOLE-FILE": this particular line was
supposed to use the "ALL" prefix.

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

8 years ago[codeview] Add EFLAGS to the list of CodeView register numbers
Reid Kleckner [Wed, 22 Jun 2016 23:50:19 +0000 (23:50 +0000)]
[codeview] Add EFLAGS to the list of CodeView register numbers

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

8 years agoAMDGPU: Fix liveness when expanding m0 loop
Matt Arsenault [Wed, 22 Jun 2016 23:40:57 +0000 (23:40 +0000)]
AMDGPU: Fix liveness when expanding m0 loop

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

8 years ago[RS4GC] Use StringRef; NFC
Sanjoy Das [Wed, 22 Jun 2016 23:32:46 +0000 (23:32 +0000)]
[RS4GC] Use StringRef; NFC

Spotted during random inspection.

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

8 years agoChange that to include MCMachObjectWriter.h
Reid Kleckner [Wed, 22 Jun 2016 23:30:43 +0000 (23:30 +0000)]
Change that to include MCMachObjectWriter.h

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

8 years agoAdd one more missing MCObjectWriter.h include
Reid Kleckner [Wed, 22 Jun 2016 23:28:12 +0000 (23:28 +0000)]
Add one more missing MCObjectWriter.h include

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

8 years agoFix instance of -Wdelete-incomplete
Reid Kleckner [Wed, 22 Jun 2016 23:25:26 +0000 (23:25 +0000)]
Fix instance of -Wdelete-incomplete

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

8 years agoPrune some includes from headers and sink some inline functions
Reid Kleckner [Wed, 22 Jun 2016 23:23:08 +0000 (23:23 +0000)]
Prune some includes from headers and sink some inline functions

MCSymbol.h shouldn't pull in MCAssembler.h, just MCFragment.h.
MCLinkerOptimizationHint.h shouldn't need MCMachObjectWriter.h.  The
rest is fixing the fallout.

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

8 years ago[PM]: LoopAccessInfo simple refactoring
Xinliang David Li [Wed, 22 Jun 2016 23:20:59 +0000 (23:20 +0000)]
[PM]: LoopAccessInfo simple refactoring

To make definition of mov ctors easier.
Differential Revision: http://reviews.llvm.org/D21563

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

8 years ago[pdb] Treat a stream size of ~0U as 0
Reid Kleckner [Wed, 22 Jun 2016 22:42:24 +0000 (22:42 +0000)]
[pdb] Treat a stream size of ~0U as 0

My PDBs always have this size for stream 11. Not sure why.

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

8 years ago[MachO] Finish moving fat header swap functions to MachO.h
Chris Bieneman [Wed, 22 Jun 2016 22:19:08 +0000 (22:19 +0000)]
[MachO] Finish moving fat header swap functions to MachO.h

This is a follow-up to r273479. At the time I wrote r273479 I didn't connect the dots that the functions I was adding had to exist somewhere. Turns out, they do. This finishes moving the functions to MachO.h.

Existing MachO fat header tests like test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 execute this code.

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

8 years ago[ImplicitNullChecks] Hoist trivial depdendencies if possible
Sanjoy Das [Wed, 22 Jun 2016 22:16:51 +0000 (22:16 +0000)]
[ImplicitNullChecks] Hoist trivial depdendencies if possible

When trying to convert a loading instruction into a FAULTING_LOAD, we
sometimes face code like this:

  if %R10 is not null:
    %R9<def> = MOV32ri Immediate
    %R9<def, tied> = AND32rm %R9, 0x20(%R10)
  else:
    goto TRAP

In these cases we would like to use the AND32rm instruction as the
faulting operation by hoisting the "depedency" def-ing %R9 also above
the control flow, transforming the program into:

  %R9<def> = MOV32ri Immediate
  %R9<def, tied> = FAULTING_LOAD_OP(AND32rm %R9, 0x20(%R10), FailPath: TRAP)

This change teaches ImplicitNullChecks to do the above, when safe.

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

8 years agoUse shouldAssumeDSOLocal.
Rafael Espindola [Wed, 22 Jun 2016 22:09:17 +0000 (22:09 +0000)]
Use shouldAssumeDSOLocal.

With this it handle -fPIE.

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

8 years agoExtract a few variables to make 'if' smaller. NFC.
Rafael Espindola [Wed, 22 Jun 2016 21:56:34 +0000 (21:56 +0000)]
Extract a few variables to make 'if' smaller. NFC.

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