OSDN Git Service
David Blaikie [Fri, 28 Jul 2017 03:06:25 +0000 (03:06 +0000)]
DebugInfo: Consider a CU containing only local imported entities to be 'empty'
This can come up in ThinLTO & wastes space & makes degenerate IR.
As per the added FIXME, ultimately, local imported entities should hang
off the function and that way the imported entity list on the CU can be
tested for emptiness like all the other CU lists.
(function-attached local imported entities are probably also the best
path forward for fixing how imported entities are handled both in
cross-module use (currently, while ThinLTO preserves the imported
entities, they would not get used at the imported inlined location -
only in the abstract origin that appears in the partial CU created by
the import (which isn't emitted under Fission due to cross-CU
limitations there)) and to reduce the number of points where imported
entities are emitted (they're currently emitted into every inlined
instance, concrete instance, and abstract origin - they should only go
in teh abstract origin if there is one, otherwise in the concrete
instance - but this requires lots of delayed handling and wiring up,
same as abstract variables & subprograms))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309354
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Fri, 28 Jul 2017 02:57:43 +0000 (02:57 +0000)]
[JumpThreading] Add an option to dump LazyValueInfo after the run.
Differential Revision: https://reviews.llvm.org/D35973
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309353
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 28 Jul 2017 01:36:32 +0000 (01:36 +0000)]
ARMFrameLowering: Only set ExtraCSSpill for actually unused registers.
The code assumed that unclobbered/unspilled callee saved registers are
unused in the function. This is not true for callee saved registers that are
also used to pass parameters such as swiftself.
rdar://
33401922
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309350
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 28 Jul 2017 01:05:55 +0000 (01:05 +0000)]
[lit] Port googletest lit tests to Windows
Summary:
The technique of directly calling subprocess.Popen on a python script
doesn't work on Windows. The executable path of the command must refer
to a valid win32 executable.
Instead, rename all the python scripts masquerading as gtest executables
to have .py extensions, so we can easily detect then and call the python
executable for them. Do this on Linux as well as Windows for
consistency.
The test suite directory names also come out in lower-case on Windows.
We can consider removing that in a later patch. This change just updates
the FileCheck lines to match on Windows.
Fixes PR33933
Reviewers: modocache, mgorny
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35909
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309347
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 28 Jul 2017 01:03:10 +0000 (01:03 +0000)]
Changing the default MaxNumPromotions from 2 to 3.
Summary: In performance tuning, we see performance benefits when enlarge the maximum num promotion targets to 3. This is safe as soon as we have total percentage threshold properly setup (https://reviews.llvm.org/D35962)
Reviewers: davidxl, tejohnson
Reviewed By: tejohnson
Subscribers: llvm-commits, sanjoy
Differential Revision: https://reviews.llvm.org/D35966
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309346
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 28 Jul 2017 01:02:54 +0000 (01:02 +0000)]
Separate the ICP total threshold and remaining threshold.
Summary: In the current implementation, isPromotionProfitable only checks if the call count to a direct target is no less than a certain percentage threshold of the remaining call counts that have not been promoted. This causes code size problems when the target count is small but greater than a large portion of remaining counts. E.g. target1 takes 99.9%, while target2 takes 0.1%. Both targets will be promoted and inlined, makes the function size too large, which potentially prevents it from further inlining into its callers. This patch adds another percentage threshold against the total indirect call count. If the target count needs to be no less than both thresholds in order to be promoted speculatively.
Reviewers: davidxl, tejohnson
Reviewed By: tejohnson
Subscribers: sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D35962
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309345
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Fri, 28 Jul 2017 01:02:34 +0000 (01:02 +0000)]
Increase the ImportHotMultiplier to 10.0
Summary: The original 3.0 hot mupltiplier is too small, and would prevent hot callsites from being inline. This patch increases the hot multilier to 10.0
Reviewers: davidxl, tejohnson
Reviewed By: tejohnson
Subscribers: llvm-commits, sanjoy
Differential Revision: https://reviews.llvm.org/D35969
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309344
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 28 Jul 2017 00:58:35 +0000 (00:58 +0000)]
[X86] Fix latent bug in sibcall eligibility logic
The X86 tail call eligibility logic was correct when it was written, but
the addition of inalloca and argument copy elision broke its
assumptions. It was assuming that fixed stack objects were immutable.
Currently, we aim to emit a tail call if no arguments have to be
re-arranged in memory. This code would trace the outgoing argument
values back to check if they are loads from an incoming stack object.
If the stack argument is immutable, then we won't need to store it back
to the stack when we tail call.
Fortunately, stack objects track their mutability, so we can just make
the obvious check to fix the bug.
This was http://crbug.com/749826
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309343
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 28 Jul 2017 00:09:29 +0000 (00:09 +0000)]
[sanitizer-coverage] rename sanitizer-coverage-create-pc-table into sanitizer-coverage-pc-table and add plumbing for a clang flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309337
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 27 Jul 2017 23:52:06 +0000 (23:52 +0000)]
Remove unused function from AArch64 backend (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309336
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 27 Jul 2017 23:36:49 +0000 (23:36 +0000)]
[sanitizer-coverage] add a feature sanitizer-coverage-create-pc-table=1 (works with trace-pc-guard and inline-8bit-counters) that adds a static table of instrumented PCs to be used at run-time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309335
91177308-0d34-0410-b5e6-
96231b3b80d8
Jessica Paquette [Thu, 27 Jul 2017 23:24:43 +0000 (23:24 +0000)]
[MachineOutliner] Cleanup: move findCandidates out of suffix tree
Doing some cleanup in preparation for some functional changes.
This commit moves findCandidates out of the suffix tree and into the
MachineOutliner class. This is much easier to follow, and removes
the burden of candidate choice from the suffix tree.
It also adds a couple FIXMEs and simplifies building outlined function
names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309334
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 27 Jul 2017 23:13:18 +0000 (23:13 +0000)]
[llvm-pdbutil] Clean up ExitOnError usage to add ": " to our errors
The banner parameter is supposed to end in a separator, like ": ".
Otherwise, we get ugly errors like:
Error while reading publics streamNative error: blah blah
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309332
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 27 Jul 2017 23:13:05 +0000 (23:13 +0000)]
[PDB] Initialize the std::array<ulittle32_t> used for the gsi bitmap
With ASan, we would write about 512 bytes of malloc fill value to the
PDB, with some random bits ORed in here and there. Dumping the PDB would
always fail reliably.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309331
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Thu, 27 Jul 2017 22:20:44 +0000 (22:20 +0000)]
[ConstantFolder] Don't try to fold gep when the idx is a vector.
The code in ConstantFoldGetElementPtr() assumes integers, and
therefore it crashes trying to get the integer bidwith of a vector
type (in this case <4 x i32>. I just changed the code to prevent
the folding in case of vectors and I didn't bother to generalize
as this doesn't seem to me something that really happens in
practice, but I'm willing to change the patch if you think
it's worth it.
This is hard to trigger from -instsimplify or -instcombine
only as the second instruction is dead, so the test uses loop-unroll.
Differential Revision: https://reviews.llvm.org/D35956
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309330
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 27 Jul 2017 21:28:59 +0000 (21:28 +0000)]
[X86] Don't lie about legality to TLI's demanded bits.
Like r309323, X86 had a typo where it passed the wrong flags to TLO.
Found by inspection; I haven't been able to tickle this into having
observable behavior. I don't think it does, given that X86 doesn't have
custom demanded bits logic, and the generic logic doesn't have a lot of
exposure to illegal constructs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309325
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 27 Jul 2017 21:27:58 +0000 (21:27 +0000)]
[AArch64] Remove outdated comment. NFC.
There hasn't been a ternary since r231987.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309324
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 27 Jul 2017 21:27:25 +0000 (21:27 +0000)]
[AArch64] Fix legality info passed to demanded bits for TBI opt.
The (seldom-used) TBI-aware optimization had a typo lying dormant since
it was first introduced, in r252573: when asking for demanded bits, it
told TLI that it was running after legalize, where the opposite was
true.
This is an important piece of information, that the demanded bits
analysis uses to make assumptions about the node. r301019 added such an
assumption, which was broken by the TBI combine.
Instead, pass the correct flags to TLO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309323
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Thu, 27 Jul 2017 21:13:25 +0000 (21:13 +0000)]
[OCaml] Fix undefined reference to LLVMDumpType() with NDEBUG
Account for the possibility of LLVMDumpType() not being available with
NDEBUG in the OCaml bindings. If it is not built into LLVM, make
the dump function raise an exception.
Since rL293359, the dump functions are built only if either NDEBUG is
not defined, or LLVM_ENABLE_DUMP is defined. As a result, if the dump
functions are not built in LLVM, the dynamic OCaml libraries fail to
load due to undefined LLVMDumpType symbol.
Differential Revision: https://reviews.llvm.org/D35899
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309321
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Thu, 27 Jul 2017 21:13:19 +0000 (21:13 +0000)]
[OCaml] Respect CMAKE_C_FLAGS for OCaml C files
Pass the values of CMAKE_C_FLAGS and CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}
as -ccopt to ocamlc. This enforces the specific flags used for the LLVM
build to be used for OCaml bindings as well, notably -O and -march
flags.
This also solves the issue of the user being unable to force specific
flags for OCaml bindings builds. Gentoo needs this to enforce -DNDEBUG
consistently between the LLVM build and the split OCaml bindings build.
Differential Revision: https://reviews.llvm.org/D35898
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309320
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Thu, 27 Jul 2017 19:58:12 +0000 (19:58 +0000)]
Add test to reject merging of empty manifest.
Reviewers: ruiu, rnk
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35954
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309317
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Thu, 27 Jul 2017 19:56:44 +0000 (19:56 +0000)]
[ARM] Add use-misched feature, to enable the MachineScheduler.
Summary:
This change makes it easier to experiment with the MachineScheduler in
the ARM backend and also makes it very explicit which CPUs use the
MachineScheduler (currently only swift and cyclone).
Reviewers: MatzeB, t.p.northover, javed.absar
Reviewed By: MatzeB
Subscribers: aemerson, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D35935
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309316
91177308-0d34-0410-b5e6-
96231b3b80d8
Dinar Temirbulatov [Thu, 27 Jul 2017 19:47:35 +0000 (19:47 +0000)]
Change prefix in vector-shuffle-combining-avx.patch to reduce test size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309315
91177308-0d34-0410-b5e6-
96231b3b80d8
whitequark [Thu, 27 Jul 2017 19:36:13 +0000 (19:36 +0000)]
[MergeFunctions] Remove alias support.
The alias support was dead code since 2011. It was last touched
in r124182, where it was reintroduced after being removed
in r110434, and since then it was gated behind a HasGlobalAliases
flag that was permanently stuck as `false`.
It is also broken. I'm not sure if it bitrotted or was just broken
in the first place because it appears to have never been tested,
but the following IR results in a crash:
define internal i32 @a(i32 %a, i32 %b) unnamed_addr {
%c = add i32 %a, %b
%d = xor i32 %a, %c
ret i32 %c
}
define internal i32 @b(i32 %a, i32 %b) unnamed_addr {
%c = add i32 %a, %b
%d = xor i32 %a, %c
ret i32 %c
}
It seems safe to remove buggy untested code that no one cared about
for seven years.
Differential Revision: https://reviews.llvm.org/D34802
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309313
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 27 Jul 2017 19:27:10 +0000 (19:27 +0000)]
[lit] Fix TestRunner unit test on Windows
Summary:
Normally Python converts all newline characters, Windows or Unix,
to Unix newlines when opening a file. However, lit opens files in
binary mode, which does not perform this conversion. As a result,
trailing Windows newlines are not stripped from test input, which
caused a failure in the TestRunner unit test:
```
FAIL: test_custom (__main__.TestIntegratedTestKeywordParser)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\bgesiak\src\llvm\llvm\utils\lit\tests\unit\TestRunner.py", line 109, in test_custom
self.assertItemsEqual(value, ['a', 'b', 'c'])
AssertionError: Element counts were not equal:
First has 1, Second has 0: 'c\r'
First has 0, Second has 1: 'c'
```
Fix the discrepancy in behavior across the two platforms by
manually stripping Windows newlines before yielding each line in
the test file.
Reviewers: echristo, beanz, ddunbar, delcypher, rnk
Reviewed By: rnk
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D27746
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309312
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 27 Jul 2017 19:18:35 +0000 (19:18 +0000)]
Un-revert "Teach the CMake build system to run lit's test suite. These can be run"
Summary:
Depends on https://reviews.llvm.org/D35879.
This reverts rL257268, which in turn was a revert of rL257221.
https://reviews.llvm.org/D35879 marks the tests in the lit test suite
that fail on Windows as XFAIL, which should allow these tests to pass
on Windows-based buildbots.
Reviewers: delcypher, beanz, mgorny, jroelofs, rnk
Reviewed By: mgorny
Subscribers: rnk, ddunbar, george.karpenkov, llvm-commits
Differential Revision: https://reviews.llvm.org/D35880
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309310
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Thu, 27 Jul 2017 18:38:09 +0000 (18:38 +0000)]
[FunctionImport] Prefer isa<> to dyn_cast<> as the value is not used.
This change makes GCC7 happy again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309305
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Yamauchi [Thu, 27 Jul 2017 18:27:11 +0000 (18:27 +0000)]
[InstCombine] Simplify pointer difference subtractions (GEP-GEP) where GEPs have other uses and one non-constant index
Summary:
Pointer difference simplifications currently happen only if input GEPs don't have other uses or their indexes are all constants, to avoid duplicating indexing arithmetic.
This patch enables cases with exactly one non-constant index among input GEPs to happen where there is no duplicated arithmetic or code size increase even if input GEPs have other uses.
For example, this patch allows "(&A[42][i]-&A[42][0])" --> "i", which didn't happen previously, if the input GEP(s) have other uses.
Reviewers: sanjoy, bkramer
Reviewed By: sanjoy
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D35499
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309304
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 27 Jul 2017 18:25:59 +0000 (18:25 +0000)]
[PDB] Write public symbol records and the publics hash table
Summary:
MSVC link.exe records all external symbol names in the publics stream.
It provides similar functionality to an ELF .symtab.
Reviewers: zturner, ruiu
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D35871
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309303
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 18:15:54 +0000 (18:15 +0000)]
[SelectionDAG] Improve DAGTypeLegalizer::convertMask assertion (PR33960)
Improve DAGTypeLegalizer::convertMask's isSETCCorConvertedSETCC assertion to properly check for any mixture of SETCC or BUILD_VECTOR of constants, or a logical mask op of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309302
91177308-0d34-0410-b5e6-
96231b3b80d8
Dinar Temirbulatov [Thu, 27 Jul 2017 17:47:01 +0000 (17:47 +0000)]
[X86] SET0 to use XMM registers where possible PR26018 PR32862
Differential Revision: https://reviews.llvm.org/D35839
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309298
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Thu, 27 Jul 2017 17:45:02 +0000 (17:45 +0000)]
Relax the matching in these tests
Looks like the template arguments are displayed differently depending on the
host compiler(?). E.g.:
InnerAnalysisManagerProxy<CGSCCAnalysisManager
InnerAnalysisManagerProxy<llvm::AnalysisManager<llvm::LazyCallGraph::SCC, ...
Fix fallout after r309294
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309297
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Thu, 27 Jul 2017 16:54:15 +0000 (16:54 +0000)]
[ICP] Migrate to OptimizationRemarkEmitter
This is a module pass so for the old PM, we can't use ORE, the function
analysis pass. Instead ORE is created on the fly.
A few notes:
- isPromotionLegal is folded in the caller since we want to emit the Function
in the remark but we can only do that if the symbol table look-up succeeded.
- There was good test coverage for remarks in this pass.
- promoteIndirectCall uses ORE conditionally since it's also used from
SampleProfile which does not use ORE yet.
Fixes PR33792.
Differential Revision: https://reviews.llvm.org/D35929
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309294
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Thu, 27 Jul 2017 16:54:13 +0000 (16:54 +0000)]
[OptRemark] Allow streaming of 64-bit integers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309293
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 27 Jul 2017 16:50:40 +0000 (16:50 +0000)]
[lit] Fix order of checks in shtest-shell.py test
Summary:
An expectation in `utils/lit/tests/Inputs/shtest-shell/redirects.txt`
expects that first a string printed to stdout is seen, and then a
string printed to stderr. Add `flush()` calls to ensure that stdout is
printed before stderr, as expected.
Reviewers: rnk, mgorny, jroelofs
Reviewed By: rnk
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35947
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309292
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Neilson [Thu, 27 Jul 2017 16:49:39 +0000 (16:49 +0000)]
All libcalls should be considered to be GC-leaf functions.
Summary:
It is possible for some passes to materialize a call to a libcall (ex: ldexp, exp2, etc),
but these passes will not mark the call as a gc-leaf-function. All libcalls are
actually gc-leaf-functions, so we change llvm::callsGCLeafFunction() to tell us that
available libcalls are equivalent to gc-leaf-function calls.
Reviewers: sanjoy, anna, reames
Reviewed By: anna
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35840
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309291
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Thu, 27 Jul 2017 16:27:56 +0000 (16:27 +0000)]
[TargetParser] Use enum classes for various ARM kind enums.
Summary:
Using c++11 enum classes ensures that only valid enum values are used
for ArchKind, ProfileKind, VersionKind and ISAKind. This removes the
need for checks that the provided values map to a proper enum value,
allows us to get rid of AK_LAST and prevents comparing values from
different enums. It also removes a bunch of static_cast
from unsigned to enum values and vice versa, at the cost of introducing
static casts to access AArch64ARCHNames and ARMARCHNames by ArchKind.
FPUKind and ArchExtKind are the only remaining old-style enum in
TargetParser.h. I think it's beneficial to keep ArchExtKind as old-style
enum, but FPUKind can be converted too, but this patch is quite big, so
could do this in a follow-up patch. I could also split this patch up a
bit, if people would prefer that.
Reviewers: rengolin, javed.absar, chandlerc, rovka
Reviewed By: rovka
Subscribers: aemerson, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D35882
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309287
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Bataev [Thu, 27 Jul 2017 15:48:44 +0000 (15:48 +0000)]
[SLP] Outline code for the check that instruction users are part of
vectorization tree, NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309284
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 15:42:21 +0000 (15:42 +0000)]
[SelectionDAG] Avoid repeated calls to getNumOperands in for loop. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309283
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 27 Jul 2017 15:28:10 +0000 (15:28 +0000)]
Fix assert from r309278
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309281
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 27 Jul 2017 15:24:20 +0000 (15:24 +0000)]
remove redundant check
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309280
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 27 Jul 2017 15:09:06 +0000 (15:09 +0000)]
ThinLTO: Don't import aliases of any kind (even linkonce_odr)
Summary:
Until a more advanced version of importing can be implemented for
aliases (one that imports an alias as an available_externally definition
of the aliasee), skip the narrow subset of cases that was possible but
came at a cost: aliases of linkonce_odr functions could be imported
because the linkonce_odr function could be safely duplicated from the
source module. This came/comes at the cost of not being able to 'home'
imported linkonce functions (they had to be emitted linkonce_odr in all
the destination modules (even if they weren't used by an alias) rather
than as available_externally - causing extra object size).
Tangentially, this also was the only reason ThinLTO would emit multiple
CUs in to the resulting DWARF - which happens to be a problem for
Fission (there's a fix for this in GDB but not released yet, etc).
(actually it's not the only reason - but I'm sending a patch to fix the
other reason shortly)
There's no reason to believe this particularly narrow alias importing
was especially/meaningfully important, only that it was /possible/ to
implement in this way. When a more general solution is done, it should
still satisfy the DWARF concerns above, since the import will still be
available_externally, and thus not create extra CUs.
Since now all aliases are treated the same, I removed/simplified some
test cases since they were testing corner cases where there are no
longer any corners.
Reviewers: tejohnson, mehdi_amini
Differential Revision: https://reviews.llvm.org/D35875
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309278
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 15:08:53 +0000 (15:08 +0000)]
[SelectionDAG] Tidyup mask creation. NFCI.
Assign all concat elements to UNDEF and then just replace the first element, instead of copying everything individually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309277
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Thu, 27 Jul 2017 14:37:17 +0000 (14:37 +0000)]
[ARM] Mark labels in skipAlignedDPRCS2Spills as fallthrough (NFC).
The comment at the top of the switch statement indicates that the
fall-through behavior is intentional. By using LLVM_FALLTHROUGH,
-Wimplicit-fallthrough are silenced, which is enabled by default in GCC
7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309272
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew V. Tischenko [Thu, 27 Jul 2017 13:12:08 +0000 (13:12 +0000)]
Added cost of ZEROALL and ZEROUPPER instrs in btver2 cpu.
Differential Revision https://reviews.llvm.org/D35834
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309269
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeny Astigeevich [Thu, 27 Jul 2017 12:49:27 +0000 (12:49 +0000)]
[InlineCost, NFC] Change CallAnalyzer::isGEPFree to use TTI::getUserCost instead of TTI::getGEPCost
Currently CallAnalyzer::isGEPFree uses TTI::getGEPCost to check if GEP is free.
TTI::getGEPCost cannot handle cases when GEPs participate in Def-Use dependencies
(see https://reviews.llvm.org/D31186 for example).
There is TTI::getUserCost which can calculate the cost more accurately by
taking dependencies into account.
Differential Revision: https://reviews.llvm.org/D33685
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309268
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 27 Jul 2017 12:47:31 +0000 (12:47 +0000)]
[globalisel][tablegen] Ensure MatchTable's are compile-time constants with constexpr. NFC.
This should prevent any re-occurence of the problem where the table was
initialized at run-time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309267
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 12:32:45 +0000 (12:32 +0000)]
[X86][AVX] Regenerate shuffle tests with broadcast comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309266
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Thu, 27 Jul 2017 11:03:45 +0000 (11:03 +0000)]
Re-commit: r309094 [globalisel][tablegen] Fuse the generated tables together.
Summary:
Now that we have control flow in place, fuse the per-rule tables into a
single table. This is a compile-time saving at this point. However, this will
also enable the optimization of a table so that similar instructions can be
tested together, reducing the time spent on the matching the code.
This is NFC in terms of externally visible behaviour but some internals have
changed slightly. State.MIs is no longer reset between each rule that is
attempted because it's not necessary to do so. As a consequence of this the
restriction on the order that instructions are added to State.MIs has been
relaxed to only affect recorded instructions that require new elements to be
added to the vector. GIM_RecordInsn can now write to any element from 1 to
State.MIs.size() instead of just State.MIs.size().
The compile-time regressions from the last commit were caused by the ARM target
including a non-const variable (zero_reg) in the table and therefore generating
an initializer for it. That variable is now const.
Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar
Reviewed By: rovka
Subscribers: kristof.beyls, igorb, llvm-commits
Differential Revision: https://reviews.llvm.org/D35681
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309264
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 10:36:09 +0000 (10:36 +0000)]
[X86] Adding test cases for LEA factorization (PR32755 / D35014)
Differential Revision: https://reviews.llvm.org/D35886
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309262
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 27 Jul 2017 10:29:04 +0000 (10:29 +0000)]
[X86] Tidyup MaskedLoad/Store mask creation. NFCI.
Assign all concat elements to zero and then just replace the first element, instead of setting them all to null and copying everything in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309261
91177308-0d34-0410-b5e6-
96231b3b80d8
Mohammed Agabaria [Thu, 27 Jul 2017 10:28:16 +0000 (10:28 +0000)]
[TTI] fixing a bug in the isLegalMaskedScatter API
isLegalMaskedScatter called the Gather version which is a bug.
use test case is provided within the patch of AVX2 gathers at: https://reviews.llvm.org/D35772
Differential Revision: https://reviews.llvm.org/D35786
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309260
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Inoue [Thu, 27 Jul 2017 08:14:48 +0000 (08:14 +0000)]
[PowerPC] enable optimizeCompareInstr for branch with static branch hint
In optimizeCompareInstr, a compare instruction is eliminated by using a record form instruction if possible.
If the branch instruction that uses the result of the compare has a static branch hint, the optimization does not happen.
This patch makes this optimization happen regardless of the branch hint by splitting branch hint and branch condition before checking the predicate to identify the possible optimizations.
Differential Revision: https://reviews.llvm.org/D35801
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309255
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Thu, 27 Jul 2017 06:02:05 +0000 (06:02 +0000)]
Revert "Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started""
This change is failing tests on Windows bots due to permissions.
This reverts commit r309249.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309251
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Thu, 27 Jul 2017 04:35:30 +0000 (04:35 +0000)]
Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started"
As discussed on llvm-dev I've implemented the first basic steps towards
llvm-objcopy/llvm-objtool (name pending).
This change adds the ability to copy (without modification) 64-bit
little endian ELF executables that have SHT_PROGBITS, SHT_NOBITS,
SHT_NULL and SHT_STRTAB sections.
Patch by Jake Ehrlich
Differential Revision: https://reviews.llvm.org/D33964
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309249
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 27 Jul 2017 03:26:52 +0000 (03:26 +0000)]
[X86] Improve the unknown stepping support for Intel CPUs in getHostCPUName
This patch improves our guessing of unknown Intel CPUs to support Goldmont and skylake-avx512.
Differential Revision: https://reviews.llvm.org/D35161
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309246
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Nandakumar [Thu, 27 Jul 2017 02:15:34 +0000 (02:15 +0000)]
[GISel]: Missed passing in a parameter to addUsesFromArgs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309243
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Thu, 27 Jul 2017 01:16:19 +0000 (01:16 +0000)]
Remove check for i686.
libxml2 is supported for 32 bit, so our build system should be checking
the target rather than native os when choosing shared libs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309242
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Thu, 27 Jul 2017 01:11:53 +0000 (01:11 +0000)]
Re-enable libxml2 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309241
91177308-0d34-0410-b5e6-
96231b3b80d8
Spyridoula Gravani [Thu, 27 Jul 2017 00:59:33 +0000 (00:59 +0000)]
[DWARF] Minor code style modification, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309240
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 27 Jul 2017 00:06:53 +0000 (00:06 +0000)]
DebugInfo: Ensure imported entities at the top level of an inlined function don't cause degenerate concrete definitions
Local imported entities at the top level of a subprogram were being
handled differently from those in nested scopes - that different
handling would cause pseudo concrete out-of-line definitions to be
created (but without any of their attributes, nor an abstract_origin) in
the case where there was no real concrete definition.
These local imported entities also only appeared in the concrete
definition where those imported entities in nested scopes appear in all
cases (abstract, concrete, and inlined). This change at least makes top
level case handle the same as the others - though there's a FIXME to
improve this to /only/ emit them into the abstract origin (though this
requires more plumbing - like the abstract subprogram and variable
handling that must defer population until the end of the unit to
discover if there is an abstract origin, or only a standalone concrete
definition).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309237
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 26 Jul 2017 23:56:29 +0000 (23:56 +0000)]
[Hexagon] Fix expensive checks build bot broken in r309230.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309236
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 26 Jul 2017 23:49:18 +0000 (23:49 +0000)]
[CMake] Disable -Werror for CMake checks
-Werror may cause some of the CMake checks to fail, so we disable
it even if it's enabled for the build itself.
Differential Revision: https://reviews.llvm.org/D35924
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309235
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 26 Jul 2017 23:45:28 +0000 (23:45 +0000)]
[Hexagon] Partially revert r309230 which caused some build bots failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309233
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 26 Jul 2017 23:20:35 +0000 (23:20 +0000)]
[Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309230
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 23:15:44 +0000 (23:15 +0000)]
See if disabling libxml tests will pass the i686 bot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309229
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 22:57:32 +0000 (22:57 +0000)]
[lit] Fix race between shtest-shell and max-failures tests
Previously these tests would use the same Output directory leading to
flaky non-deterministic failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309227
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 22:21:25 +0000 (22:21 +0000)]
[lit] Fix shtest-shell and max-failures lit tests on Windows
Rewrite the write-to-stderr.sh and write-to-stdout-and-stderr.sh shell
scripts as python scripts and call python on them.
Fixes PR33940
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309200
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 22:11:30 +0000 (22:11 +0000)]
[lit] Fix shtest-output-printing.py on Windows by matching either / or \\
Fixes PR33938
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309198
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 22:00:38 +0000 (22:00 +0000)]
[lit] Fix discovery.py on Windows by matching backslashes when necessary
Fixes PR33932
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309194
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Yamauchi [Wed, 26 Jul 2017 21:54:43 +0000 (21:54 +0000)]
Fix a comment (test commit).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309192
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 21:48:41 +0000 (21:48 +0000)]
[lit] Un-XFAIL selecting.py test on Windows
This passes locally for me, which fails the overall lit test suite. I
can't debug a passing test, but I will try to help debug the test when
we get some failing logs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309190
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Wed, 26 Jul 2017 21:29:15 +0000 (21:29 +0000)]
[AMDGPU] Optimize SI_IF lowering for simple if regions
Currently SI_IF results in a s_and_saveexec_b64 followed by s_xor_b64.
The xor is used to extract only the changed bits. In case of a simple
if region where the only use of that value is in the SI_END_CF to
restore the old exec mask, we can omit the xor and perform an or of
the exec mask with the original exec value saved by the
s_and_saveexec_b64.
Differential Revision: https://reviews.llvm.org/D35861
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309185
91177308-0d34-0410-b5e6-
96231b3b80d8
Evandro Menezes [Wed, 26 Jul 2017 21:28:20 +0000 (21:28 +0000)]
[ARM] Minor cosmetic edits (NFC)
Change the order of a case and the description for Exynos Mx processors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309184
91177308-0d34-0410-b5e6-
96231b3b80d8
Evandro Menezes [Wed, 26 Jul 2017 21:28:15 +0000 (21:28 +0000)]
[AArch64] Adjust the cost model for Exynos M1 and M2
Add the information for the scalar reciprocal square root approximation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309183
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 21:20:24 +0000 (21:20 +0000)]
Close if statement in config-ix.cmake while checking for i686 arch.
Reapply "Set a different var for checking I686, because LLVM_NATIVE_ARCH is"
This reverts commit
e7400d7cbc2b7539de3aa7a20adc8f4ee0cb7bef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309181
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 21:11:07 +0000 (21:11 +0000)]
Revert "Set a different var for checking I686, because LLVM_NATIVE_ARCH is"
This reverts commit
38a6db6397364ee91b04afea2cdcb1b5b4d252bf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309179
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Ding [Wed, 26 Jul 2017 21:07:28 +0000 (21:07 +0000)]
AMDGPU : Widen extending scalar loads to 32-bits.
Differential Revision: http://reviews.llvm.org/D35146
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309178
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 21:03:55 +0000 (21:03 +0000)]
Set a different var for checking I686, because LLVM_NATIVE_ARCH is
overwritten.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309177
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Wed, 26 Jul 2017 21:01:57 +0000 (21:01 +0000)]
[gold] Relax this tests a little more.
Thanks to Peter for the report!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309176
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Wed, 26 Jul 2017 20:40:33 +0000 (20:40 +0000)]
[gold] Relax tests to account for difference in layout across versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309174
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 26 Jul 2017 20:39:42 +0000 (20:39 +0000)]
AMDGPU: Fix using SMRD instructions for argument loads in functions
These are not actually uniform values except in kernels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309172
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Kuderski [Wed, 26 Jul 2017 20:26:13 +0000 (20:26 +0000)]
[Dominators] Fix typos. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309170
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 20:22:26 +0000 (20:22 +0000)]
Disable libxml on i686, because it is a 32 bit architecture and
libxml2.so is for 64 bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309169
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 26 Jul 2017 20:00:53 +0000 (20:00 +0000)]
AMDGPU/GlobalISel: Mark 32-bit G_OR as legal
Reviewers: arsenm
Reviewed By: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, igorb, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D35127
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309165
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Nandakumar [Wed, 26 Jul 2017 19:58:03 +0000 (19:58 +0000)]
[GISel]: Avoid zero length array when building Instrs that don't have
uses.
Also splitting the buildSources part allows more overloads such as
adding MachineOperands directly in the arguments for buildInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309163
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Wed, 26 Jul 2017 19:15:29 +0000 (19:15 +0000)]
Change CallLoweringInfo::CS to be an ImmutableCallSite instead of a pointer. NFCI.
This was a use-after-free waiting to happen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309159
91177308-0d34-0410-b5e6-
96231b3b80d8
Adam Nemet [Wed, 26 Jul 2017 19:03:18 +0000 (19:03 +0000)]
Migrate SimplifyLibCalls to new OptimizationRemarkEmitter
Summary:
This changes SimplifyLibCalls to use the new OptimizationRemarkEmitter
API.
In fact, as SimplifyLibCalls is only ever called via InstCombine,
(as far as I can tell) the OptimizationRemarkEmitter is added there,
and then passed through to SimplifyLibCalls later.
I have avoided changing any remark text.
This closes PR33787
Patch by Sam Elliott!
Reviewers: anemet, davide
Reviewed By: anemet
Subscribers: davide, mehdi_amini, eraman, fhahn, llvm-commits
Differential Revision: https://reviews.llvm.org/D35608
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309158
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew V. Tischenko [Wed, 26 Jul 2017 18:55:14 +0000 (18:55 +0000)]
This patch returns proper value to indicate the case when instruction throughput can't be calculated.
Differential revision https://reviews.llvm.org/D35831
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309156
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 26 Jul 2017 18:48:32 +0000 (18:48 +0000)]
Do a better job at emitting prefrabricated skeleton CUs.
This is a better fix than r308708 for the problem introduced in
r304020. It restores the skeleton CU testcases modified by that commit
to their original form and most importantly ensures that
frontend-generated skeleton CUs (such as used to point to Clang
modules) come after the regular CUs. This broke for DICompileUnit
nodes that don't have any immediate children because they are now
constructed lazily instead of the order in which they are listed in
!llvm.dbg.cu. After this commit we still don't guarantee that order,
but we do guarantee that empty skeletons come last.
Shipping versions of LLDB are very sensitive to the ordering of
CUs. I'll track a fix for LLDB to be more permissive separately.
This fixes a test failure in the LLDB testsuite.
rdar://problem/
33357252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309154
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 18:33:21 +0000 (18:33 +0000)]
Unlink nodes instead of copying, to avoid memory problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309151
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Kuderski [Wed, 26 Jul 2017 18:27:39 +0000 (18:27 +0000)]
[Dominators] Change Roots type to SmallVector
Summary: We can use the template parameter `IsPostDom` to pick an appropriate SmallVector size to store DomTree roots for dominators and postdominators. Before, the code would always allocate memory with `std::vector`.
Reviewers: dberlin, davide, sanjoy, grosser
Reviewed By: grosser
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35636
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309148
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Kuderski [Wed, 26 Jul 2017 18:07:40 +0000 (18:07 +0000)]
[Dominators] Move root-finding out of DomTreeBase and simplify it
Summary:
This patch moves root-finding logic from DominatorTreeBase to GenericDomTreeConstruction.h.
It makes the behavior simpler and more consistent by always adding a virtual root to PostDominatorTrees.
Reviewers: dberlin, davide, grosser, sanjoy
Reviewed By: dberlin
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D35597
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309146
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Jul 2017 18:04:18 +0000 (18:04 +0000)]
Un-XFAIL some internal lit tests on Windows, they pass for me locally
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309144
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Beckmann [Wed, 26 Jul 2017 17:47:44 +0000 (17:47 +0000)]
Diffing against a file that is itself used in the test seems to be a bad
idea, because it might get locked down and rendered unopenable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309142
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 26 Jul 2017 17:27:27 +0000 (17:27 +0000)]
Simplify. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309141
91177308-0d34-0410-b5e6-
96231b3b80d8
George Karpenkov [Wed, 26 Jul 2017 17:19:36 +0000 (17:19 +0000)]
Fix LIT test breakage
Differential Revision: https://reviews.llvm.org/D35867
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309140
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 26 Jul 2017 16:47:00 +0000 (16:47 +0000)]
[X86][AVX512] Regenerated and cleaned up extension tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309139
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 26 Jul 2017 16:45:57 +0000 (16:45 +0000)]
[X86] Regenerate setcc tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309138
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 26 Jul 2017 16:41:18 +0000 (16:41 +0000)]
[X86][AVX512] Regenerate shuffle tests with broadcast comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309137
91177308-0d34-0410-b5e6-
96231b3b80d8