OSDN Git Service
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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