OSDN Git Service
Amaury Sechet [Tue, 16 Feb 2016 00:23:52 +0000 (00:23 +0000)]
Deprecate LLVMGetDataLayout and replace it by LLVMGetDataLayoutStr
Summary: The name is confusing as it matche another method on the module.
Reviewers: joker.eph, Wallbraker, echristo
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D17283
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260920
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Tue, 16 Feb 2016 00:22:02 +0000 (00:22 +0000)]
Kill LLVMAddTargetData
Summary: It's red, it's dead.
Reviewers: joker.eph, Wallbraker, echristo
Subscribers: llvm-commits, axw
Differential Revision: http://reviews.llvm.org/D17282
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260919
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 16 Feb 2016 00:17:56 +0000 (00:17 +0000)]
MITests: Update libdeps. llvm/Target/TargetOptions.h depends on MC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260918
91177308-0d34-0410-b5e6-
96231b3b80d8
Zia Ansari [Mon, 15 Feb 2016 23:44:13 +0000 (23:44 +0000)]
Implemented stack symbol table ordering/packing optimization to improve data locality and code size from SP/FP offset encoding.
Differential Revision: http://reviews.llvm.org/D15393
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260917
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Mon, 15 Feb 2016 23:40:06 +0000 (23:40 +0000)]
Rename LLVMSetDataLayout's argument to match what they stand for
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260916
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 22:09:38 +0000 (22:09 +0000)]
unittests/MI: Add Core library reference
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260915
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 21:38:42 +0000 (21:38 +0000)]
SmallPtrSet: Avoid initializing Array in the small case.
This patch avoids the initial memset at the cost of making iterators
slightly more complex. This should be beneficial as most SmallPtrSets
hold no or only a few elements, while iterating over them is less
common.
Differential Revision: http://reviews.llvm.org/D16672
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260913
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 20:06:22 +0000 (20:06 +0000)]
APInt: Slightly simplify countLeadingZerosSlowCase()
We always clear the unused bits in the most signifant word so there is
no need to mask them out in countLeadingZerosSlowCase().
Differential Revision: http://reviews.llvm.org/D16621
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260911
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 20:06:19 +0000 (20:06 +0000)]
APInt: Further simplify APInt::EqualSlowCase as suggested by Duncan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260910
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Mon, 15 Feb 2016 19:32:54 +0000 (19:32 +0000)]
[X86] Remove now-dead variable and redundant assert. NFC.
The variable was made dead in NDEBUG by r260901, but the assert
was redundant anyway: get rid of both.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260908
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 19:30:11 +0000 (19:30 +0000)]
Fix typo in LiveIntervalTest
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260907
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 19:25:36 +0000 (19:25 +0000)]
LiveIntervalAnalysis: Support moving of subregister defs in handleMove
This is an updated version which fixes a bug that happened with
uses tied to an earlyclobber operand which end at an unusual slotindex.
If two definitions write to independent subregisters then they can be
put in any order. LiveIntervalAnalysis::handleMove() did not support
this previously because it looks like moving a definition of a vreg past
another one.
This is a modified version of a patch proposed (two years ago) by
Vincent Lejeune! This version does not touch the read-undef flags and is
extended for the case of moving a subregister def behind all uses - this
can happen for subregister defs that are completely unused.
Differential Revision: http://reviews.llvm.org/D9067
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260906
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 19:25:34 +0000 (19:25 +0000)]
Add unittest for LiveIntervalAnalysis::handleMove()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260905
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Mon, 15 Feb 2016 19:25:31 +0000 (19:25 +0000)]
MachineVerifier: Add parameter to choose if MachineFunction::verify() aborts
The abort on error behaviour is unpractical for debugger and unittest
usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260904
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 15 Feb 2016 18:47:55 +0000 (18:47 +0000)]
[NFC] Fixing naming convention, lowercase start of function name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260903
91177308-0d34-0410-b5e6-
96231b3b80d8
Colin LeMahieu [Mon, 15 Feb 2016 18:42:07 +0000 (18:42 +0000)]
[Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to simplify handling and allow flags on the expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260902
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Mon, 15 Feb 2016 18:07:29 +0000 (18:07 +0000)]
[CodeGen] Document and use getConstant's splat-building feature. NFC.
Differential Revision: http://reviews.llvm.org/D17229
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260901
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 17:57:40 +0000 (17:57 +0000)]
[X86][SSE2] Regenerated sse2 tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260900
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Mon, 15 Feb 2016 16:43:15 +0000 (16:43 +0000)]
[ScheduleDAGInstrs] isUnsafeMemoryObject() removed
This function was basically useless, since volatile memacesses or MIs with
unmodelled sideffects become global memory objects, and the other little
checks are also done elsewhere.
Reviewed by Andy Trick
http://reviews.llvm.org/D16881
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260899
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Mon, 15 Feb 2016 16:15:02 +0000 (16:15 +0000)]
[Hexagon] Missed testcase update in r260895
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260897
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Egerton [Mon, 15 Feb 2016 16:11:51 +0000 (16:11 +0000)]
[mips] Implemented the .hword directive.
Summary:
In order to pass the tests, this required marking R_MIPS_16 relocations
as needing to point to the symbol and not the section.
Reviewers: vkalintiris, dsanders
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D17200
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260896
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Mon, 15 Feb 2016 16:01:01 +0000 (16:01 +0000)]
[Hexagon] Use zero-extending loads for anyext
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260895
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Mon, 15 Feb 2016 15:38:17 +0000 (15:38 +0000)]
[LV] Add support for insertelt/extractelt processing during type truncation
Summary:
While shrinking types according to the required bits, we can
encounter insert/extract element instructions. This will cause us to
reach an llvm_unreachable statement.
This change adds support for truncating insert/extract element
operations, and adds a regression test.
Reviewers: jmolloy
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D17078
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260893
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Gareev [Mon, 15 Feb 2016 14:48:50 +0000 (14:48 +0000)]
Tweak the LICM code to reuse the first sub-loop instead of creating a new one
LICM starts with an *empty* AST, and then merges in each sub-loop. While the
add code is appropriate for sub-loop 2 and up, it's utterly unnecessary for
sub-loop 1. If the AST starts off empty, we can just clone/move the contents
of the subloop into the containing AST.
Reviewed-by: Philip Reames <listmail@philipreames.com>
Differential Revision: http://reviews.llvm.org/D16753
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260892
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 14:09:35 +0000 (14:09 +0000)]
[X86] More thorough partial-register division checks
For when grep counts are just not enough...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260891
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 14:04:05 +0000 (14:04 +0000)]
[X86] Regenerated 64/128 bit multiply tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260890
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 13:50:48 +0000 (13:50 +0000)]
[X86][SSE] More thorough testing of all-ones vectors re-materialization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260889
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 13:41:41 +0000 (13:41 +0000)]
[X86][SSE] Regenerated uint2fp special case tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260888
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 15 Feb 2016 13:19:13 +0000 (13:19 +0000)]
Make llvm/test/tools/llvm-symbolizer/pdb/pdb.test Py3-compatible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260887
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 15 Feb 2016 12:32:16 +0000 (12:32 +0000)]
[X86][SSE] Regenerated fast isel intrinsics tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260885
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Egerton [Mon, 15 Feb 2016 10:04:38 +0000 (10:04 +0000)]
Reverted r260879 as it caused test failures in lld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260880
91177308-0d34-0410-b5e6-
96231b3b80d8
Scott Egerton [Mon, 15 Feb 2016 09:34:15 +0000 (09:34 +0000)]
[mips] Removed the SHF_ALLOC flag from the .pdr section.
Summary:
This section is used for debug information and has no need to be
in memory at runtime. With this patch, LLVM now emits the same flags as
the GNU assembler. This patch also fixes an error when compiling
the Linux kernel, The error is that there are relocations within the
.pdr section in a VDSO.
Reviewers: vkalintiris, dsanders
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D17199
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260879
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Breger [Mon, 15 Feb 2016 08:25:28 +0000 (08:25 +0000)]
AVX512: Change store size of kmask. Store size of v8i1, v4i1 , v2i1 and i1 are changed to 16 bits.
If KMOVB not supported (require AVX512DQ) only KMOVW can be used so store size should be 2 bytes.
Differential Revision: http://reviews.llvm.org/D17138
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260878
91177308-0d34-0410-b5e6-
96231b3b80d8
Junmo Park [Mon, 15 Feb 2016 04:30:37 +0000 (04:30 +0000)]
Minor code cleanups. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260875
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Sun, 14 Feb 2016 20:16:22 +0000 (20:16 +0000)]
Fix some typos in the llvm doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260855
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sun, 14 Feb 2016 18:11:52 +0000 (18:11 +0000)]
[X86][AVX] Fixed copy+paste typo in shuffle test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260852
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Sun, 14 Feb 2016 10:06:34 +0000 (10:06 +0000)]
Use report_fatal_error more consistently in the C API echo test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260849
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Sun, 14 Feb 2016 09:30:42 +0000 (09:30 +0000)]
Get constant cloning out of CloneValue so it can be used when creating globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260848
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Sun, 14 Feb 2016 09:14:30 +0000 (09:14 +0000)]
Move clone_params around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260846
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Sun, 14 Feb 2016 08:58:49 +0000 (08:58 +0000)]
Fix star alignment in Core.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260845
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 14 Feb 2016 05:22:01 +0000 (05:22 +0000)]
[TableGen] Remove constant string argument from a method that's only called once. We can just hardcode the string inside. There already other things that make the method not reusable. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260840
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 13 Feb 2016 23:46:24 +0000 (23:46 +0000)]
[PM/AA] Wire BasicAA's new pass manager class up to the pass registry.
This ensures that all of the various pieces are working. The next patch
will wire up commandline-driven alias analysis chain building and allow
BasicAA to work with the AAManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260838
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 13 Feb 2016 23:32:00 +0000 (23:32 +0000)]
[PM/AA] Actually wire the AAManager I built for the new pass manager
into the new pass manager and fix the latent bugs there.
This lets everything live together nicely, but it isn't really useful
yet. I never finished wiring the AA layer up for the new pass manager,
and so subsequent patches will change this to do that wiring and get AA
stuff more fully integrated into the new pass manager. Turns out this is
necessary even to get functionattrs ported over. =]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260836
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Sat, 13 Feb 2016 22:58:43 +0000 (22:58 +0000)]
Support: Fix incremental build when re-configuring targets
r180893 added an indirect include of llvm/Config/Targets.def to
llvm/Support/CodeGen.h, which in turn is included by things like
llvm/IR/Module.h. After a full build of LLVM and Clang, ninja had to
rebuild 1274 files after reconfiguring.
This commit strips CodeGen.h back down to just a pile of enums and moves
the expensive includes over to CodeGenCWrappers.h (which is only
included in two places). This gets ninja down to 88 files if you
reconfigure with, e.g., -DLLVM_TARGETS_TO_BUILD=X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260835
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 13 Feb 2016 21:54:04 +0000 (21:54 +0000)]
[X86][AVX] Lower shuffles as repeated lane shuffles then lane-crossing shuffles
This patch attempts to represent a shuffle as a repeating shuffle (recognisable by is128BitLaneRepeatedShuffleMask) with the source input(s) in their original lanes, followed by a single permutation of the 128-bit lanes to their final destinations.
On AVX2 we can additionally attempt to match using 64-bit sub-lane permutation. AVX2 can also now match a similar 'broadcasted' repeating shuffle.
This patch has several benefits:
* Avoids prematurely matching with lowerVectorShuffleByMerging128BitLanes which can require both inputs to have their input lanes permuted before shuffling.
* Can replace PERMPS/PERMD instructions - although these are useful for cross-lane unary shuffling, they require their shuffle mask to be pre-loaded (and increase register pressure).
* Matching the repeating shuffle makes use of a lot of existing shuffle lowering.
There is an outstanding minor AVX1 regression (combine_unneeded_subvector1 in vector-shuffle-combining.ll) of a previously 128-bit shuffle + subvector splat being converted to a subvector splat + (2 instruction) 256-bit shuffle, I intend to fix this in a followup patch for review.
Differential Revision: http://reviews.llvm.org/D16537
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260834
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 13 Feb 2016 21:35:37 +0000 (21:35 +0000)]
Remove Proc feature flags for X86 processors that are used to inherit features from one processor to another. This exposed extra features to the -mattr command line that we shouldn't. Replace with just inherited listconcats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260832
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 13 Feb 2016 17:58:14 +0000 (17:58 +0000)]
[TableGen] Fix comment about 64-bit type I missed when I removed the underlying type in r260808.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260830
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 17:56:51 +0000 (17:56 +0000)]
[libFuzzer] remove std::vector operations from hot paths, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260829
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Sat, 13 Feb 2016 17:26:29 +0000 (17:26 +0000)]
[x86-64] allow mfence even with -mno-sse (PR23203)
As shown in:
https://llvm.org/bugs/show_bug.cgi?id=23203
...we currently die because lowering believes that mfence is allowed without SSE2 on x86-64,
but the instruction def doesn't know that.
I don't know if allowing mfence without SSE is right, but if not, at least now it's consistently wrong. :)
Differential Revision: http://reviews.llvm.org/D17219
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260828
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 13 Feb 2016 17:23:27 +0000 (17:23 +0000)]
[APInt] No need for a copy when taking min/max of an APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260827
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 13 Feb 2016 16:54:14 +0000 (16:54 +0000)]
[ConstantFolding] Reduce APInt and APFloat copying.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260826
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 13 Feb 2016 16:39:39 +0000 (16:39 +0000)]
[AggressiveAntiDepBreaker] Skip some unnecessary BitVector copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260825
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 13 Feb 2016 16:01:12 +0000 (16:01 +0000)]
Use ArrayRef to hide SmallVector details, kill a useless vector copy along the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260824
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Sat, 13 Feb 2016 14:06:01 +0000 (14:06 +0000)]
[Hexagon] Replace use of "std::map::emplace" with "insert"
Gcc 4.7.2-4 does not seem to have "emplace" in its implementation of map.
This should fix the build failure on polly-amd64-linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260816
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sat, 13 Feb 2016 08:47:51 +0000 (08:47 +0000)]
[attrs] Move the norecurse deduction to operate on the node set rather
than the SCC object, and have it scan the instruction stream directly
rather than relying on call records.
This makes the behavior of this routine consistent between libc routines
and LLVM intrinsics for libc routines. We can go and start teaching it
about those being norecurse, but we should behave the same for the
intrinsic and the libc routine rather than differently. I chatted with
James Molloy and the inconsistency doesn't seem intentional and likely
is due to intrinsic calls not being modelled in the call graph analyses.
This also fixes a bug where we would deduce norecurse on optnone
functions, when generally we try to handle optnone functions as-if they
were replaceable and thus unanalyzable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260813
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 13 Feb 2016 07:29:49 +0000 (07:29 +0000)]
HexagonFrameLowering.cpp: Appease msc18 to give an explicit constructor SlotInfo() instead of member initializers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260812
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 06:24:18 +0000 (06:24 +0000)]
[libFuzzer] don't require seed in fuzzer::Mutate, instead use the global Fuzzer object for fuzzer::Mutate. This makes custom mutators fast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260810
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 13 Feb 2016 06:03:32 +0000 (06:03 +0000)]
[TableGen] Use range-based for loops. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260809
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 13 Feb 2016 06:03:29 +0000 (06:03 +0000)]
No need to make the subtarget feature bit enum a uint64_t. This was a leftover from when the feature bit enum contained masks instead of bit indices.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260808
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Sat, 13 Feb 2016 04:35:31 +0000 (04:35 +0000)]
LiveIntervalAnalysis: Remove LiveVariables requirement
This requirement was a huge hack to keep LiveVariables alive because it
was optionally used by TwoAddressInstructionPass and PHIElimination.
However we have AnalysisUsage::addUsedIfAvailable() which we can use in
those passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260806
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 04:18:53 +0000 (04:18 +0000)]
AMDGPU: Prepare for reducing private element size.
Tests for the new scalarize all private access options will be
included with a future commit.
The only functional change is to make the split/scalarize behavior
for private access of > 4 element vectors to be consistent
with the flat/global handling. This makes the spilling worse
in the two changed tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260804
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 03:59:26 +0000 (03:59 +0000)]
[libFuzzer] remove the C++-ish variant of FuzzerDriver from the interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260801
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 03:46:26 +0000 (03:46 +0000)]
[libFuzzer] simplify CTOR of MutationDispatcher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260800
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 03:37:24 +0000 (03:37 +0000)]
[libFuzzer] get rid of MutationDispatcher::Impl (simplify the code; NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260799
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 03:25:16 +0000 (03:25 +0000)]
[libFuzzer] get rid of UserSuppliedFuzzer; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260798
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 03:00:53 +0000 (03:00 +0000)]
[libFuzzer] simplify the code around Random. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260797
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 02:39:30 +0000 (02:39 +0000)]
[libFuzzer] remove UserSuppliedFuzzer from the interface (it was a bad idea).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260796
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 13 Feb 2016 02:29:38 +0000 (02:29 +0000)]
[libFuzzer] provide a plain C interface for custom mutators (experimental)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260794
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 13 Feb 2016 02:09:49 +0000 (02:09 +0000)]
AMDGPU/SI: Add llvm.amdgcn.mov.dpp intrinsic
This intrinsic will be used to expose dpp functionality to higher-level
languages. It will map to the dpp version of v_mov_b32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260792
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Sat, 13 Feb 2016 02:04:29 +0000 (02:04 +0000)]
[Cloning] Clone every Function's Debug Info
Summary:
Export the CloneDebugInfoMetadata utility, which clones all debug info
associated with a function into the first module. Also use this function
in CloneModule on each function we clone (the CloneFunction entrypoint
already does this).
Without this, cloning a module will lead to DI quality regressions,
especially since r252219 reversed the Function <-> DISubprogram edge
(before we could get lucky and have this edge preserved if the
DISubprogram itself was, e.g. due to location metadata).
This was verified to fix missing debug information in julia and
a unittest to verify the new behavior is included.
Patch by Yichao Yu! Thanks!
Reviewers: loladiro, pcc
Differential Revision: http://reviews.llvm.org/D17165
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260791
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 01:56:21 +0000 (01:56 +0000)]
Add AMDGPU related triple vendors/OSes
As support expands to more runtimes, we'll need to
distinguish between more than just HSA and unknown.
This also lets us stop using unknown everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260790
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sat, 13 Feb 2016 01:52:47 +0000 (01:52 +0000)]
[llvm-size] Remove variable used only once.
The use of auto and the name were very weird anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260789
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sat, 13 Feb 2016 01:38:16 +0000 (01:38 +0000)]
[llvm-size] Make error handling uniform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260786
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 01:24:08 +0000 (01:24 +0000)]
AMDGPU: Cleanup includes and random macros
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260784
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 01:19:56 +0000 (01:19 +0000)]
AMDGPU: Add intrinsics for sin/cos
These provide direct access to the hardware instruction without
the unit version required like llvm.sin/llvm.cos lowering requires.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260782
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 01:03:00 +0000 (01:03 +0000)]
AMDGPU: Rename intrinsic to better match instruction name
Also fixes missing f32 test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260780
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 13 Feb 2016 00:51:31 +0000 (00:51 +0000)]
AMDGPU/SI: Add instruction defs for VOP1 DPP instructions
Reviewers: nhaustov, cfang, arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D17159
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260774
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 13 Feb 2016 00:36:10 +0000 (00:36 +0000)]
AMDGPU: Fix broken condition causing warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260773
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 13 Feb 2016 00:29:57 +0000 (00:29 +0000)]
AMDGPU/SI: Organize intrinsics by subtarget
Reviewers: arsenm
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D17210
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260771
91177308-0d34-0410-b5e6-
96231b3b80d8
Pirama Arumuga Nainar [Sat, 13 Feb 2016 00:08:05 +0000 (00:08 +0000)]
Don't combine fp_round (fp_round x) if f80 to f16 is generated
Summary:
This patch skips DAG combine of fp_round (fp_round x) if it results in
an fp_round from f80 to f16.
fp_round from f80 to f16 always generates an expensive (and as yet,
unimplemented) libcall to __truncxfhf2. This prevents selection of
native f16 conversion instructions from f32 or f64. Moreover, the first
(value-preserving) fp_round from f80 to either f32 or f64 may become a
NOP in platforms like x86.
Reviewers: ab
Subscribers: srhines, llvm-commits
Differential Revision: http://reviews.llvm.org/D17221
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260769
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Fri, 12 Feb 2016 23:51:06 +0000 (23:51 +0000)]
Fix Windows buildbot breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260766
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 12 Feb 2016 23:45:29 +0000 (23:45 +0000)]
AMDGPU/SI: Detect uniform branches and emit s_cbranch instructions
Reviewers: arsenm
Subscribers: mareko, MatzeB, qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D16603
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260765
91177308-0d34-0410-b5e6-
96231b3b80d8
Yunzhong Gao [Fri, 12 Feb 2016 23:37:57 +0000 (23:37 +0000)]
Disable the vzeroupper insertion pass on PS4.
Differential Revision: http://reviews.llvm.org/D16837
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260764
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 12 Feb 2016 23:36:05 +0000 (23:36 +0000)]
cmake: Simplify the iOS.cmake toolchain
- Remove a comment that was clearly copy pasted from Android.cmake and
isn't relevant.
- Remove the toolchain's sensitivity to the environment. It's less
error prone to just allow users to set CMAKE_OSX_SYSROOT if they
want to use a custom SDK.
- Stop explicitly setting -mios-version-min to the default value. It
just adds needless complexity.
This makes building the native tablegen work for me even when SDKROOT
is set in the environment (or passed in as -DCMAKE_OSX_SYSROOT).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260763
91177308-0d34-0410-b5e6-
96231b3b80d8
Derek Schuff [Fri, 12 Feb 2016 22:56:03 +0000 (22:56 +0000)]
[WebAssembly] Report more meaningful error messages for some unsupported
ops.
Computed gotos and RETURNADDR may never be supported; we can do
FRAMEADDR in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260759
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 12 Feb 2016 22:53:35 +0000 (22:53 +0000)]
[Hexagon] Optimize stack slot spills
Replace spills to memory with spills to registers, if possible. This
applies mostly to predicate registers (both scalar and vector), since
they are very limited in number. A spill of a predicate register may
happen even if there is a general-purpose register available. In cases
like this the stack spill/reload may be eliminated completely.
This optimization will consider all stack objects, regardless of where
they came from and try to match the live range of the stack slot with
a dead range of a register from an appropriate register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260758
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 12 Feb 2016 22:27:44 +0000 (22:27 +0000)]
[llvm-pdbdump] Start to decode some streams
We can decode a little bit of the first stream now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260754
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 12 Feb 2016 22:26:44 +0000 (22:26 +0000)]
[Hexagon] Mark HVX registers as volatile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260753
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 12 Feb 2016 22:07:54 +0000 (22:07 +0000)]
fix test to use FileCheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260751
91177308-0d34-0410-b5e6-
96231b3b80d8
Derek Schuff [Fri, 12 Feb 2016 22:05:08 +0000 (22:05 +0000)]
[WebAssembly] Update test expectations after r260737
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260750
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 12 Feb 2016 21:56:41 +0000 (21:56 +0000)]
[Hexagon] Recognize more cases in copyPhysReg and stack slot load/store
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260748
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 12 Feb 2016 21:48:30 +0000 (21:48 +0000)]
[codeview] Describe local variables in registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260746
91177308-0d34-0410-b5e6-
96231b3b80d8
Rong Xu [Fri, 12 Feb 2016 21:36:17 +0000 (21:36 +0000)]
[PGO] Add another interface for annotateValueSite
Add another interface to function annotateValueSite() which directly uses the
VauleData array.
Differential Revision: http://reviews.llvm.org/D17108
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260741
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 12 Feb 2016 21:30:18 +0000 (21:30 +0000)]
[WebAssembly] Fix byval for empty types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260740
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 12 Feb 2016 21:27:33 +0000 (21:27 +0000)]
[AArch64] Enable post-RA MI scheduler for Kryo.
This should have landed in r260686.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260739
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 12 Feb 2016 21:19:25 +0000 (21:19 +0000)]
[WebAssembly] Fix insertion of a BLOCK in a loop header that also ends a BLOCK.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260737
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Fri, 12 Feb 2016 21:10:16 +0000 (21:10 +0000)]
[WinEH] Prevent EH state numbering from skipping nested cleanup pads that never return
Differential Revision: http://reviews.llvm.org/D17208
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 12 Feb 2016 21:03:23 +0000 (21:03 +0000)]
[LIR] Allow merging of memsets in negatively strided loops.
Last part of PR25166.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260732
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 12 Feb 2016 21:01:37 +0000 (21:01 +0000)]
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260731
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Fri, 12 Feb 2016 21:01:36 +0000 (21:01 +0000)]
[SimplifyCFG] Don't fold conditional branches that contain calls to convergent functions.
Summary:
Performing this optimization duplicates the call to the convergent
function and adds new control-flow dependencies, which is a no-no.
Reviewers: jingyue
Subscribers: broune, hfinkel, tra, resistor, joker.eph, arsenm, llvm-commits, mzolotukhin
Differential Revision: http://reviews.llvm.org/D17128
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260730
91177308-0d34-0410-b5e6-
96231b3b80d8