OSDN Git Service
Chad Rosier [Thu, 14 Sep 2017 14:48:59 +0000 (14:48 +0000)]
Add newline to end of test file. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313263
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandar Beserminji [Thu, 14 Sep 2017 14:34:04 +0000 (14:34 +0000)]
Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313262
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 14 Sep 2017 14:09:11 +0000 (14:09 +0000)]
[InstSimplify] clean up div/rem handling; NFCI
The idea to make an 'isDivZero' helper was suggested for the signed case in D37713:
https://reviews.llvm.org/D37713
This clean-up makes it clear that D37713 is just filling the gap for signed div/rem,
removes unnecessary code, and allows us to remove a bit of duplicated code from the
planned improvement in D37713.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313261
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 13:00:27 +0000 (13:00 +0000)]
[X86] Regenerate test. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313259
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 12:41:19 +0000 (12:41 +0000)]
Regenerate test (broadcast comment). NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313258
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Sep 2017 12:06:40 +0000 (12:06 +0000)]
[Hexagon] Make getMemAccessSize return size in bytes
It used to return the actual field value from the instruction descriptor.
There is no reason for that, that value is not interesting in any way and
the specifics of its encoding in the descriptor should not be exposed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313257
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayman Musa [Thu, 14 Sep 2017 12:06:38 +0000 (12:06 +0000)]
[X86] When applying the shuffle-to-zero-extend transformation on floating point, bitcast to integer first.
Fix issue described in PR34577.
Differential Revision: https://reviews.llvm.org/D37803
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313256
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 14 Sep 2017 11:33:42 +0000 (11:33 +0000)]
[dwarfdump] Add DWARF verifiers for address ranges
This patch started as an attempt to rebase Greg's differential (D32821).
The result is both quite similar and different at the same time. It adds
the following checks:
- Verify that all address ranges in a DIE are valid.
- Verify that no ranges within the DIE overlap.
- Verify that no ranges overlap with the ranges of a sibling.
- Verify that children are completely contained in its (direct)
parent's address range. (unless both are subprograms)
Differential revision: https://reviews.llvm.org/D37696
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313255
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Dardis [Thu, 14 Sep 2017 10:58:00 +0000 (10:58 +0000)]
[mips] Pick the right variant of DINS upfront and enable target instruction verification
This patch complements D16810 "[mips] Make isel select the correct DEXT variant
up front.". Now ISel picks the right variant of DINS, so now there is no need
to replace DINS with the appropriate variant during
MipsMCCodeEmitter::encodeInstruction().
This patch also enables target specific instruction verification for ins, dins,
dinsm, dinsu, ext, dext, dextm, dextu. These instructions have constraints that
are checked when generating MipsISD::Ins and MipsISD::Ext nodes, but these
constraints are not checked during instruction selection. Adding machine
verification should catch outstanding cases.
Finally, correct a bug that instruction verification uncovered, where the
position operand of a DINSU generated during lowering was being silently
and accidently corrected to the correct value.
Reviewers: slthakur
Differential Revision: https://reviews.llvm.org/D34809
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313254
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 14 Sep 2017 10:49:15 +0000 (10:49 +0000)]
Revert "[dwarfdump] Add DWARF verifiers for address ranges"
This reverts commit r313250.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313253
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 10:38:30 +0000 (10:38 +0000)]
[DAGCombine] (shl (or x, c1), c2) -> (or (shl x, c2), c1 << c2)
We already have a combine for this pattern when the input to shl is add, so we just need to enable the transformation when the input is or.
Original patch by @tstellar
Differential Revision: https://reviews.llvm.org/D19325
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313251
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Thu, 14 Sep 2017 10:38:18 +0000 (10:38 +0000)]
[dwarfdump] Add DWARF verifiers for address ranges
This patch started as an attempt to rebase Greg's differential (D32821).
The result is both quite similar and different at the same time. It adds
the following checks:
- Verify that all address ranges in a DIE are valid.
- Verify that no ranges within the DIE overlap.
- Verify that no ranges overlap with the ranges of a sibling.
- Verify that children are completely contained in its (direct)
parent's address range. (unless both are subprograms)
Differential revision: https://reviews.llvm.org/D37696
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313250
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 10:30:54 +0000 (10:30 +0000)]
Fix line endings. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313247
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 10:30:22 +0000 (10:30 +0000)]
Fix line endings. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313246
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Thu, 14 Sep 2017 10:28:01 +0000 (10:28 +0000)]
[SelectionDAG] ComputeNumSignBits - cleanup ROTL/ROTR wrapping to match DAGCombine etc.
Use RotAmt.urem(VTBits) instead of AND(RotAmt, VTBits - 1)
TBH I don't expect non-power-of-2 types to be created, but it makes the logic clearer and matches what we do in other rotation combines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313245
91177308-0d34-0410-b5e6-
96231b3b80d8
Dean Michael Berris [Thu, 14 Sep 2017 09:58:25 +0000 (09:58 +0000)]
[XRay][DebugInfo] Update the test to use a specific target
Follow-up to D37791.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 14 Sep 2017 08:33:57 +0000 (08:33 +0000)]
[PM/CGSCC] Teach the CGSCC pass manager components to gracefully handle
invalidated SCCs even when we do not have an updated SCC to redirect
towards.
This comes up in a fairly subtle and surprising circumstance: we need to
have a connected but internal node in the call graph which later becomes
a disconnected island, and then gets deleted. All of this needs to
happen mid-CGSCC walk. Because it is disconnected, we have no way of
computing a new "current" SCC when it gets deleted. Instead, we need to
explicitly check for a deleted "current" SCC and bail out of the current
CGSCC step. This will bubble all the way up to the post-order walk and
then resume correctly.
I've included minimal tests for this bug. The specific behavior
matches something we've seen in the wild with the new PM combined with
ThinLTO and sample PGO, but I've not yet confirmed whether this is the
only issue there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313242
91177308-0d34-0410-b5e6-
96231b3b80d8
Dean Michael Berris [Thu, 14 Sep 2017 07:54:54 +0000 (07:54 +0000)]
[XRay][DebugInfo] Remove -debug-compile from test invocation of llc
This breaks bootstrap builds, and is actually unnecessary. Tested
locally and it seems we can remove -debug-comile just fine.
Follow-up to D37791.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313238
91177308-0d34-0410-b5e6-
96231b3b80d8
Alon Kom [Thu, 14 Sep 2017 07:40:02 +0000 (07:40 +0000)]
[LV] Fix maximum legal VF calculation
This patch fixes pr34283, which exposed that the computation of
maximum legal width for vectorization was wrong, because it relied
on MaxInterleaveFactor to obtain the maximum stride used in the loop,
however not all strided accesses in the loop have an interleave-group
associated with them.
Instead of recording the maximum stride in the loop, which can be over
conservative (e.g. if the access with the maximum stride is not involved
in the dependence limitation), this patch tracks the actual maximum legal
width imposed by accesses that are involved in dependencies.
Differential Revision: https://reviews.llvm.org/D37507
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313237
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Thu, 14 Sep 2017 07:32:52 +0000 (07:32 +0000)]
Recommit r313234 "[llvm-readobj] - Refactor printGroupSections methods."
With fix in formatting for GNU style output.
Original commit message:
This refactors GNUStyle<ELFT>::printGroupSections and
LLVMStyle<ELFT>::printGroupSections to split out all
duplicated code.
After the change these methods just prints the data provided
by introduced getGroups in a corresponding LLVM/GNU format.
Differential revision: https://reviews.llvm.org/D37621
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313236
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Thu, 14 Sep 2017 07:26:14 +0000 (07:26 +0000)]
Revert r313234 "[llvm-readobj] - Refactor printGroupSections methods."
It broke BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313235
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Thu, 14 Sep 2017 07:17:04 +0000 (07:17 +0000)]
[llvm-readobj] - Refactor printGroupSections methods.
This refactors GNUStyle<ELFT>::printGroupSections and
LLVMStyle<ELFT>::printGroupSections to split out all
duplicated code.
After the change these methods just prints the data provided
by introduced getGroups in a corresponding LLVM/GNU format.
Differential revision: https://reviews.llvm.org/D37621
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313234
91177308-0d34-0410-b5e6-
96231b3b80d8
Dean Michael Berris [Thu, 14 Sep 2017 07:08:23 +0000 (07:08 +0000)]
[XRay][CodeGen] Use the current function symbol as the associated symbol for the instrumentation map
Summary:
XRay had been assuming that the previous section is the "text" section
of the function when lowering the instrumentation map. Unfortunately
this is not a safe assumption, because we may be coming from lowering
debug type information for the function being lowered.
This fixes an issue with combining -gsplit-dwarf, -generate-type-units,
-debug-compile and -fxray-instrument for sole member functions. When the
split dwarf section is stripped, we're left with references from the
xray_instr_map to the debug section. The change now uses the function's
symbol instead of the previous section's start symbol.
We found the bug while attempting to strip the split debug sections off
an XRay-instrumented object file, which had a peculiar edge-case for
single-function classes where the single function is being lowered.
Because XRay had assocaited the instrumentation map for a function to
the debug types section instead of the function's section, the objcopy
call will fail due to the misplaced reference from the xray_instr_map
section.
Reviewers: pcc, dblaikie, echristo
Subscribers: llvm-commits, aprantl
Differential Revision: https://reviews.llvm.org/D37791
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313233
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Thu, 14 Sep 2017 06:50:05 +0000 (06:50 +0000)]
[mips] Recognise the triple used by Debian for MIPS n32 ABI
Triples like mips64-linux-gnuabin32 are documented in this article:
https://wiki.debian.org/Multiarch/Tuples
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313231
91177308-0d34-0410-b5e6-
96231b3b80d8
Vitaly Buka [Thu, 14 Sep 2017 05:40:33 +0000 (05:40 +0000)]
Revert "Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader."
Patch introduced uninitialized value.
This reverts commit r313195.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313230
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Thu, 14 Sep 2017 05:02:59 +0000 (05:02 +0000)]
Reland r313157, "ThinLTO: Correctly follow aliasee references when dead stripping." which was reverted in r313222.
This reland includes a fix for the LowerTypeTests pass so that it
looks past aliases when determining which type identifiers are live.
Differential Revision: https://reviews.llvm.org/D37842
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313229
91177308-0d34-0410-b5e6-
96231b3b80d8
Dinar Temirbulatov [Thu, 14 Sep 2017 04:28:35 +0000 (04:28 +0000)]
[SLPVectorizer] Prefer auto over explicit type for VL0, NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313228
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 14 Sep 2017 00:40:14 +0000 (00:40 +0000)]
Revert r313157 "ThinLTO: Correctly follow aliasee references when dead stripping."
This broke Chromium's CFI build; see crbug.com/765004.
> We were previously handling aliases during dead stripping by adding
> the aliased global's "original name" GUID to the worklist. This will
> lead to incorrect behaviour if the global has local linkage because
> the original name GUID will not correspond to the global's GUID in
> the summary.
>
> Because an alias is just another name for the global that it
> references, there is no need to mark the referenced global as used,
> or to follow references from any other copies of the global. So all
> we need to do is to follow references from the aliasee's summary
> instead of the alias.
>
> Differential Revision: https://reviews.llvm.org/D37789
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313222
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Yamauchi [Thu, 14 Sep 2017 00:20:25 +0000 (00:20 +0000)]
Add optional profile counts to block frequency dump.
Summary:
Print profile counts as the third value in addition to the existing 'float' and
the 'int' values in the textual block frequency dump, if available.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37835
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313220
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 14 Sep 2017 00:03:23 +0000 (00:03 +0000)]
Move llvm/test/CodeGen/X86/clear-liverange-spillreg.mir to SystemZ. It was in wrong place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313218
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 13 Sep 2017 23:47:01 +0000 (23:47 +0000)]
AMDGPU: Don't spill SP reg like a normal CSR
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313217
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Sep 2017 23:30:01 +0000 (23:30 +0000)]
[codeview] Fold FIXME into comment, there's nothing to do. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313214
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 13 Sep 2017 23:23:09 +0000 (23:23 +0000)]
Revert r312719 "[MachineCombiner] Update instruction depths incrementally for large BBs."
This caused PR34596.
> [MachineCombiner] Update instruction depths incrementally for large BBs.
>
> Summary:
> For large basic blocks with lots of combinable instructions, the
> MachineTraceMetrics computations in MachineCombiner can dominate the compile
> time, as computing the trace information is quadratic in the number of
> instructions in a BB and it's relevant successors/predecessors.
>
> In most cases, knowing the instruction depth should be enough to make
> combination decisions. As we already iterate over all instructions in a basic
> block, the instruction depth can be computed incrementally. This reduces the
> cost of machine-combine drastically in cases where lots of instructions
> are combined. The major drawback is that AFAIK, computing the critical path
> length cannot be done incrementally. Therefore we only compute
> instruction depths incrementally, for basic blocks with more
> instructions than inc_threshold. The -machine-combiner-inc-threshold
> option can be used to set the threshold and allows for easier
> experimenting and checking if using incremental updates for all basic
> blocks has any impact on the performance.
>
> Reviewers: sanjoy, Gerolf, MatzeB, efriedma, fhahn
>
> Reviewed By: fhahn
>
> Subscribers: kiranchandramohan, javed.absar, efriedma, llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D36619
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313213
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 13 Sep 2017 23:16:13 +0000 (23:16 +0000)]
Use MemoryBufferRef. (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313212
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 13 Sep 2017 23:07:24 +0000 (23:07 +0000)]
Factor out duplicate code from llvm-dwarfdump (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313211
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 13 Sep 2017 22:30:43 +0000 (22:30 +0000)]
Update testcase that was XFAILed on Darwin for llvm-dwarfdump change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313209
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Wed, 13 Sep 2017 22:20:47 +0000 (22:20 +0000)]
Allow target to decide when to cluster loads/stores in misched
MachineScheduler when clustering loads or stores checks if base
pointers point to the same memory. This check is done through
comparison of base registers of two memory instructions. This
works fine when instructions have separate offset operand. If
they require a full calculated pointer such instructions can
never be clustered according to such logic.
Changed shouldClusterMemOps to accept base registers as well and
let it decide what to do about it.
Differential Revision: https://reviews.llvm.org/D37698
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313208
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 13 Sep 2017 22:09:01 +0000 (22:09 +0000)]
llvm-dwarfdump: automatically dump both regular and .dwo variant of sections
Since users typically don't really care about the .dwo / non.dwo
distinction, this patch makes it so dwarfdump --debug-<info,...> dumps
.debug_info and (if available) also .debug_info.dwo. This simplifies
the command line interface (I've removed all dwo-specific dump
options) and makes the tool friendlier to use.
Differential Revision: https://reviews.llvm.org/D37771
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313207
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 13 Sep 2017 21:55:52 +0000 (21:55 +0000)]
AMDGPU: Handle coldcc in more places
Missed in r312936
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313205
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Sep 2017 21:54:20 +0000 (21:54 +0000)]
[codeview] VLAs and unsized arrays should use a size of zero
Previously we used a size of '1' for VLAs because we weren't sure what
MSVC did. However, MSVC does support declaring an array without a size,
for which it emits an array type with a size of zero. Clang emits the
same DI metadata for VLAs and arrays without bound, so we would describe
arrays without bound as having one element. This lead to Microsoft
debuggers only printing a single element.
Emitting a size of zero appears to cause these debuggers to search the
symbol information to find a definition of the variable with accurate
array bounds.
Fixes http://crbug.com/763580
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313203
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Wed, 13 Sep 2017 21:49:36 +0000 (21:49 +0000)]
Update the early_inline test to explicitly add attribute for all functions. (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313202
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 13 Sep 2017 21:48:00 +0000 (21:48 +0000)]
[ARM] Add more CPUs to host detection
This returns "cortex-a73" for second-generation Kryo; not precisely
correct, but close enough.
Differential Revision: https://reviews.llvm.org/D37724
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313200
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Wed, 13 Sep 2017 21:47:13 +0000 (21:47 +0000)]
Add a comment for the test. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313199
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 13 Sep 2017 21:43:53 +0000 (21:43 +0000)]
[Transforms] 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@313198
91177308-0d34-0410-b5e6-
96231b3b80d8
Wei Mi [Wed, 13 Sep 2017 21:41:30 +0000 (21:41 +0000)]
[RegAlloc] Keep a copy of live interval for the spilled vregs in HoistSpillHelper.
This is to fix PR34502. After rL311401, the live range of spilled vreg will be
cleared. HoistSpill need to use the live range of the original vreg before splitting
to know the moving range of the spills. The patch saves a copy of live interval for
the spilled vreg inside of HoistSpillHelper.
Differential Revision: https://reviews.llvm.org/D37578
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313197
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Wed, 13 Sep 2017 21:40:59 +0000 (21:40 +0000)]
[Bitcode] Add a compatibility test for 5.0.0 bitcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313196
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Wed, 13 Sep 2017 21:22:55 +0000 (21:22 +0000)]
Invoke GetInlineCost for legality check before inline functions in SampleProfileLoader.
Summary: SampleProfileLoader inlines hot functions if it is inlined in the profiled binary. However, the inline needs to be guarded by legality check, otherwise it could lead to correctness issues.
Reviewers: eraman, davidxl
Reviewed By: eraman
Subscribers: sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D37779
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313195
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Zelenko [Wed, 13 Sep 2017 21:15:20 +0000 (21:15 +0000)]
[CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313194
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 13 Sep 2017 21:01:49 +0000 (21:01 +0000)]
Fix a crash in llvm-nm for a bad Mach-O file that has an N_SECT type symbol and a zero n_sect value.
The code in llvm-nm for Mach-O files to determine the section type for an
N_SECT type symbol it will call getSymbolSection() and check for the error,
but in the case the n_sect value is zero it will return section_end() (aka nullptr).
And the code was using that and crashing instead of just returning a ’s’ for a
section or printing (?,?) as it would if getSymbolSection() returned an error.
rdar://
33136604
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313193
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian McCarthy [Wed, 13 Sep 2017 20:53:55 +0000 (20:53 +0000)]
Mark static member functions as static in CodeViewDebug
Summary:
To improve CodeView quality for static member functions, we need to make the
static explicit. In addition to a small change in LLVM's CodeViewDebug to
return the appropriate MethodKind, this requires a small change in Clang to
note the staticness in the debug info metadata.
Subscribers: aprantl, hiraditya
Differential Revision: https://reviews.llvm.org/D37715
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313192
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Wed, 13 Sep 2017 20:49:25 +0000 (20:49 +0000)]
Revert "Determine up front which projects are enabled."
This was intended to be a generic CMake solution to a problem
shared across several projects. It turns out it doesn't interact
very well certain CMake configurations, and furthermore the
"problem" is actually not a problem, as the problematic code
is never executed to begin with. So this really isn't solving
anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313191
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Wed, 13 Sep 2017 20:16:02 +0000 (20:16 +0000)]
[Inliner] Add another way to compute full inline cost.
Summary:
Full inline cost is computed when -inline-cost-full is true or ORE is
non-null. This patch adds another way to compute full inline cost by
adding a field to InlineParams. This will be used by SampleProfileLoader
to check legality of inlining a callee that it wants to inline.
Reviewers: danielcdh, haicheng
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37819
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313185
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Thomas [Wed, 13 Sep 2017 19:35:45 +0000 (19:35 +0000)]
[LV] Avoid computing the register usage for default VF. NFC
These are changes to reduce redundant computations when calculating a
feasible vectorization factor:
1. early return when target has no vector registers
2. don't compute register usage for the default VF.
Suggested during review for D37702.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313176
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjoy Das [Wed, 13 Sep 2017 18:49:22 +0000 (18:49 +0000)]
Fix a misleading phrase in the LangRef
Reviewers: hfinkel, dberlin
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D37432
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313170
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Zuckerman [Wed, 13 Sep 2017 18:28:09 +0000 (18:28 +0000)]
Refactoring the stride 4 code in the X86interleavedaccess NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313166
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 13 Sep 2017 18:22:59 +0000 (18:22 +0000)]
llvm-dwarfdump: support dumping UUIDs of Mach-O binaries.
This is a feature supported by Darwin dwarfdump. UUIDs are used to
associate executables with their .dSYM bundles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313165
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Wed, 13 Sep 2017 18:02:11 +0000 (18:02 +0000)]
[CFG] Fix typo in docblock: blocsk/blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313164
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Wed, 13 Sep 2017 18:00:22 +0000 (18:00 +0000)]
[unittests] Fix up test after rL313156
Bot: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/42421
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313163
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 13 Sep 2017 17:39:39 +0000 (17:39 +0000)]
[InstSimplify] regenerate checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313161
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Wed, 13 Sep 2017 17:36:16 +0000 (17:36 +0000)]
[mips] Add unitests to check parsing MIPS triples. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313160
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Yamauchi [Wed, 13 Sep 2017 17:20:38 +0000 (17:20 +0000)]
Add options to dump PGO counts in text.
Summary:
Added text options to -pgo-view-counts and -pgo-view-raw-counts that dump block frequency and branch probability info in text.
This is useful when the graph is very large and complex (the dot command crashes, lines/edges too close to tell apart, hard to navigate without textual search) or simply when text is preferred.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37776
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313159
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Wed, 13 Sep 2017 17:10:24 +0000 (17:10 +0000)]
[ThinLTO] AliasSummary should not have any references
Summary: References should only be on the aliasee.
Reviewers: pcc
Subscribers: llvm-commits, inglorion
Differential Revision: https://reviews.llvm.org/D37814
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313158
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Wed, 13 Sep 2017 17:09:20 +0000 (17:09 +0000)]
ThinLTO: Correctly follow aliasee references when dead stripping.
We were previously handling aliases during dead stripping by adding
the aliased global's "original name" GUID to the worklist. This will
lead to incorrect behaviour if the global has local linkage because
the original name GUID will not correspond to the global's GUID in
the summary.
Because an alias is just another name for the global that it
references, there is no need to mark the referenced global as used,
or to follow references from any other copies of the global. So all
we need to do is to follow references from the aliasee's summary
instead of the alias.
Differential Revision: https://reviews.llvm.org/D37789
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313157
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Wed, 13 Sep 2017 17:03:37 +0000 (17:03 +0000)]
Convenience/safety fix for llvm::sys::Execute(And|No)Wait
Summary:
Change the type of the Redirects parameter of llvm::sys::ExecuteAndWait,
ExecuteNoWait and other APIs that wrap them from `const StringRef **` to
`ArrayRef<Optional<StringRef>>`, which is safer and simplifies the use of these
APIs (no more local StringRef variables just to get a pointer to).
Corresponding clang changes will be posted as a separate patch.
Reviewers: bkramer
Reviewed By: bkramer
Subscribers: vsk, llvm-commits
Differential Revision: https://reviews.llvm.org/D37563
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313155
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Wed, 13 Sep 2017 15:35:35 +0000 (15:35 +0000)]
Fix bot failures by requiring x86 target in new test
The test added in r313151 requires a target triple since it is
running through code generation. Fix bot failures by requiring
an x86 target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313153
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Wed, 13 Sep 2017 15:16:38 +0000 (15:16 +0000)]
[ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link
Summary:
SamplePGO indirect call profiles record the target as the original GUID
for statics. The importer had special handling to map to the normal GUID
in that case. The dead global analysis needs the same treatment or
inconsistencies arise, resulting in linker unsats due to some dead
symbols being exported and kept, leaving in references to other dead
symbols that are removed.
This can happen when a SamplePGO profile collected by one binary is used
for a different binary, so the indirect call profiles may not accurately
reflect live targets.
Reviewers: danielcdh
Subscribers: mehdi_amini, inglorion, llvm-commits, eraman
Differential Revision: https://reviews.llvm.org/D37783
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313151
91177308-0d34-0410-b5e6-
96231b3b80d8
Petar Jovanovic [Wed, 13 Sep 2017 14:09:13 +0000 (14:09 +0000)]
[mips] correct operand range for DINSM instruction
This patch corrects the definition of the DINSM instruction.
Specification for DINSM instruction for Mips64 says that size operand should
be 2 <= size <= 64, but it is defined as uimm5_inssize_plus1 which gives
range of 1 .. 32.
Patch by Aleksandar Beserminji.
Differential Revision: https://reviews.llvm.org/D37683
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313149
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikael Holmen [Wed, 13 Sep 2017 14:07:47 +0000 (14:07 +0000)]
[MachineScheduler] Put SchedRegion in an anonymous namespace.
Summary: It pollutes the global namespace otherwise.
Patch by: Bevin Hansson
Reviewers: jonpa
Reviewed By: jonpa
Subscribers: MatzeB, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D37555
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313148
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefan Pintilie [Wed, 13 Sep 2017 14:05:27 +0000 (14:05 +0000)]
[Power9] Add missing instructions: extswsli, popcntb
Added the following P9 instructions: extswsli, extswsli., popcntb
Differential Revision: https://reviews.llvm.org/D37342
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313147
91177308-0d34-0410-b5e6-
96231b3b80d8
Francis Ricci [Wed, 13 Sep 2017 13:57:45 +0000 (13:57 +0000)]
[llvm-objdump] Fix memory leaks in macho dump
Summary: Detected by LeakSanitizer for Darwin
Reviewers: enderby, rafael
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37750
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313146
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Wed, 13 Sep 2017 13:43:01 +0000 (13:43 +0000)]
[MachO] Prevent heap overflow when load command extends past EOF
This patch fixes a heap-buffer-overflow when a malformed Mach-O has a
load command who's size extends past the end of the binary.
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3225
Differential revision: https://reviews.llvm.org/D37439
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313145
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Wed, 13 Sep 2017 12:39:18 +0000 (12:39 +0000)]
[X86][Skylake] Replacing -mcpu=skx by -mattr in a codegen test. NFC.
NFC.
Replacing -mcpu=skx by -mattr in the run command of the codegen test: avx512-gather-scatter-intrin.ll.
Reviewers: delena
Revision: https://reviews.llvm.org/D37799
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313144
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 13 Sep 2017 11:21:38 +0000 (11:21 +0000)]
[X86][FMA4] Test FMA4 commutation with repeated ops as well as FMA3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313143
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 13 Sep 2017 11:12:56 +0000 (11:12 +0000)]
[X86][FMA] Added *213 fma instructions to scheduling tests
Annoyingly the 132/231 variants are pretty tricky to create when you need to due to weak FMA commutation patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313142
91177308-0d34-0410-b5e6-
96231b3b80d8
Javed Absar [Wed, 13 Sep 2017 10:31:10 +0000 (10:31 +0000)]
[MiSched|TableGen] : Tidy up and modernise. NFC.
Replacing with range-based loop and substituting 'using'.
Reviewed by: @MatzeB
Differential Revision: https://reviews.llvm.org/D37748
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313140
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Wed, 13 Sep 2017 09:43:05 +0000 (09:43 +0000)]
[dwarfdump] Rename Brief to Verbose in DIDumpOptions
This patches renames "brief" to "verbose" in de DIDumpOptions and
inverts the logic to match the new behavior where brief is the default.
Changing the default value uncovered some bugs related to the
DIDumpOptions not being propagated and have been fixed as well.
Differential revision: https://reviews.llvm.org/D37745
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313139
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Wed, 13 Sep 2017 09:28:25 +0000 (09:28 +0000)]
[X86][Skylake][KNL] Updating code gen regression test to use the KNL and SKYLAKE prefixes. NFC.
NFC.
Updating the code gen regression test bmi2-schedule.ll to use the KNL and SKYLAKE prefixes for the run commands that use the knl and Skylake mcpu options.
The fix is in preparation for a large patch of adding all SKL scheduling information.
Reviewers: delena, zvi, RKSimon
Revision: https://reviews.llvm.org/D37796
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313138
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Wed, 13 Sep 2017 09:28:18 +0000 (09:28 +0000)]
[X86][Skylake][KNL] Updating code gen regression test to use the KNL and SKYLAKE prefixes. NFC.
NFC.
Updating the code gen regression test bmi2-schedule.ll to use the KNL and SKYLAKE prefixes for the run commands that use the knl and Skylake mcpu options.
The fix is in preparation for a large patch of adding all SKL scheduling information.
Reviewers: delena, zvi
Revision: https://reviews.llvm.org/D37796
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313137
91177308-0d34-0410-b5e6-
96231b3b80d8
Gadi Haber [Wed, 13 Sep 2017 09:27:39 +0000 (09:27 +0000)]
NFC.
Updating codegen test bmi2-schedule.ll to use the SKYLAKE and KNL prefix as preparatipn for an upcoming patch to add all SKL scheduling information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313136
91177308-0d34-0410-b5e6-
96231b3b80d8
Igor Breger [Wed, 13 Sep 2017 09:05:23 +0000 (09:05 +0000)]
[GlobalISel][X86] support G_FPEXT operation.
Summary: Support G_FPEXT operation. Selection done via TableGen'erated code.
Reviewers: zvi, guyblank, aymanmus, m_zuckerman
Reviewed By: zvi
Subscribers: rovka, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D34816
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313135
91177308-0d34-0410-b5e6-
96231b3b80d8
Uriel Korach [Wed, 13 Sep 2017 09:02:36 +0000 (09:02 +0000)]
[X86] [PATCH] [intrinsics] Lowering X86 ABS intrinsics to IR. (llvm)
This patch, together with a matching clang patch (https://reviews.llvm.org/D37694), implements the lowering of X86 ABS intrinsics to IR.
differential revision: https://reviews.llvm.org/D37693.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313134
91177308-0d34-0410-b5e6-
96231b3b80d8
Mohammed Agabaria [Wed, 13 Sep 2017 09:00:27 +0000 (09:00 +0000)]
[X86] Adding X86 Processor Families
Adding x86 Processor families to initialize several uArch properties (based on the family)
This patch shows how gather cost can be initialized based on the proc. family
Differential Revision: https://reviews.llvm.org/D35348
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313132
91177308-0d34-0410-b5e6-
96231b3b80d8
Uriel Korach [Wed, 13 Sep 2017 08:33:55 +0000 (08:33 +0000)]
[X86] Add explicit mc-encoding checks to X86/viabs.ll. NFC.
Add explicit mc-encoding checks showing that the AVX512VL ABS intrinsics are actually mapped to EVEX encoding.
This is a pre-commit for a soon to come patch which will lower x86 target specific ABS intrinsics to IR.
Differential Revision: https://reviews.llvm.org/D37688
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313131
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 13 Sep 2017 07:53:21 +0000 (07:53 +0000)]
[X86] Make sure we emit a SUBREG_TO_REG after the MOV32ri when creating a BEXTR64rr instruction from a shift/and pair.
Fixes PR34589.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313126
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Wed, 13 Sep 2017 06:40:26 +0000 (06:40 +0000)]
[X86 CodeGen] Optimization of ZeroExtendLoad for v2i8 vector
Load with zero-extend and sign-extend from v2i8 to v2i32 is "Legal" since SSE4.1 and may be performed using PMOVZXBD , PMOVSXBD instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313121
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayal Zaks [Wed, 13 Sep 2017 06:28:37 +0000 (06:28 +0000)]
[LV] Fix PR34523 - avoid generating redundant selects
When converting a PHI into a series of 'select' instructions to combine the
incoming values together according their edge masks, initialize the first
value to the incoming value In0 of the first predecessor, instead of
generating a redundant assignment 'select(Cond[0], In0, In0)'. The latter
fails when the Cond[0] mask is null, representing a full mask, which can
happen only when there's a single incoming value.
No functional changes intended nor expected other than surviving null Cond[0]'s.
This fix follows D35725, which introduced using null to represent full masks.
Differential Revision: https://reviews.llvm.org/D37619
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313119
91177308-0d34-0410-b5e6-
96231b3b80d8
Aditya Kumar [Wed, 13 Sep 2017 05:28:03 +0000 (05:28 +0000)]
[GVNHoist] Factor out reachability to search for anticipable instructions quickly
Factor out the reachability such that multiple queries to find reachability of values are fast. This is based on finding
the ANTIC points
in the CFG which do not change during hoisting. The ANTIC points are basically the dominance-frontiers in the inverse
graph. So we introduce a data structure (CHI nodes)
to keep track of values flowing out of a basic block. We only do this for values with multiple occurrences in the
function as they are the potential hoistable candidates.
This patch allows us to hoist instructions to a basic block with >2 successors, as well as deal with infinite loops in a
trivial way.
Relevant test cases are added to show the functionality as well as regression fixes from PR32821.
Regression from previous GVNHoist:
We do not hoist fully redundant expressions because fully redundant expressions are already handled by NewGVN
Differential Revision: https://reviews.llvm.org/D35918
Reviewers: dberlin, sebpop, gberry,
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313116
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 13 Sep 2017 03:04:50 +0000 (03:04 +0000)]
[llvm-objcopy] Add e_machine validity check for reserved section indexes
As discussed on llvm-commits it was decided it would be best to check
e_machine before declaring that a reserved section index is valid. The
only special e_machine value that matters here is EM_HEXAGON. This
change adds a special check for EM_HEXAGON.
Patch by Jake Ehrlich
Differential Revision: https://reviews.llvm.org/D37767
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313114
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 13 Sep 2017 02:29:59 +0000 (02:29 +0000)]
[X86] Use isUInt<32> to simplify some code. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313112
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Sep 2017 01:50:27 +0000 (01:50 +0000)]
Fix dwarfdump cmdline test on Windows
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313110
91177308-0d34-0410-b5e6-
96231b3b80d8
Leslie Zhai [Wed, 13 Sep 2017 01:49:49 +0000 (01:49 +0000)]
[ARC] Prepare the implementation of relocation for LLD
Reviewers: ruiu, kparzysz, petecoup, rafael
Reviewed By: kparzysz
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D37556
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313109
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 13 Sep 2017 01:43:25 +0000 (01:43 +0000)]
[InstCombine] Add a flag to disable LowerDbgDeclare
Summary:
This should improve optimized debug info for address-taken variables at
the cost of inaccurate debug info in some situations.
We patched this into clang and deployed this change to Chromium
developers, and this significantly improved debuggability of optimized
code. The long-term solution to PR34136 seems more and more like it's
going to take a while, so I would like to commit this change under a
flag so that it can be used as a stop-gap measure.
This flag should really help so for C++ aggregates like std::string and
std::vector, which are typically address-taken, even after inlining, and
cannot be SROA-ed.
Reviewers: aprantl, dblaikie, probinson, dberlin
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D36596
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313108
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 13 Sep 2017 01:18:06 +0000 (01:18 +0000)]
[Fuchsia] Magenta -> Zircon
Fuchsia's lowest API layer has been renamed from Magenta to Zircon.
In LLVM proper, this is only mentioned in comments.
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D37763
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313105
91177308-0d34-0410-b5e6-
96231b3b80d8
Derek Schuff [Wed, 13 Sep 2017 00:29:06 +0000 (00:29 +0000)]
[WebAssembly] Add sign extend instructions from atomics proposal
Select them from ISD::SIGN_EXTEND_INREG
Differential Revision: https://reviews.llvm.org/D37603
remove spurious change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313101
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Tue, 12 Sep 2017 23:40:19 +0000 (23:40 +0000)]
Add Linux target triple to hopefully fix Mac bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313093
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Tue, 12 Sep 2017 23:32:34 +0000 (23:32 +0000)]
Determine up front which projects are enabled.
Some projects need to add conditional dependencies on other projects.
compiler-rt is already doing this, and I attempted to add this to
debuginfo-tests when I ran into the ordering problem, that you can't
conditionally add a dependency unless that dependency's CMakeLists.txt
has already been run (which would allow you to say if (TARGET foo).
The solution to this seems to be to determine very early on the entire
set of projects which is enabled. This is complicated by the fact that
there are multiple ways to enable projects, and different tree layouts
(e.g. mono-repo, out of -tree, external, etc). This patch attempts to
centralize all of this into one place, and then updates compiler-rt to
demonstrate as a proof of concept how this can simplify code.
Differential Revision: https://reviews.llvm.org/D37637
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313091
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 12 Sep 2017 23:28:11 +0000 (23:28 +0000)]
[SimplifyCFG] update test comments; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313090
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 12 Sep 2017 23:24:05 +0000 (23:24 +0000)]
[x86] eliminate unnecessary vector compare for AVX masked store
The masked store instruction only cares about the sign-bit of each mask element,
so the compare s<0 isn't needed.
As noted in PR11210:
https://bugs.llvm.org/show_bug.cgi?id=11210
...fixing this should allow us to eliminate x86-specific masked store intrinsics in IR.
(Although more testing will be needed to confirm that.)
I filed a bug to track improvements for AVX512:
https://bugs.llvm.org/show_bug.cgi?id=34584
Differential Revision: https://reviews.llvm.org/D37446
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313089
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Tue, 12 Sep 2017 22:32:53 +0000 (22:32 +0000)]
Clean up the --help output of llvm-dwarfdump by hiding irrelevant options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313085
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Tue, 12 Sep 2017 21:55:55 +0000 (21:55 +0000)]
Refactor the code to pass down ACT to SampleProfileLoader correctly.
Summary: This change passes down ACT to SampleProfileLoader for the new PM. Also remove the default value for SampleProfileLoader class as it is not used.
Reviewers: eraman, davidxl
Reviewed By: eraman
Subscribers: sanjoy, llvm-commits
Differential Revision: https://reviews.llvm.org/D37773
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313080
91177308-0d34-0410-b5e6-
96231b3b80d8