OSDN Git Service
Craig Topper [Sat, 5 Nov 2016 04:00:31 +0000 (04:00 +0000)]
[X86] Remove broken support for autoupgrading llvm.x86.fma4.* intrinsics to llvm.x86.fma.*.
It currently fires an assert if you even try. Looking back, I don't think it ever worked because it only changed the name of the function object, but not the intrinsic ID stored in it. Given that, I think it can be removed since no one has noticed or complained in the past 4 years.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286031
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 4 Nov 2016 23:22:19 +0000 (23:22 +0000)]
Append a (uint32_t)pad into arm_thread_state64_t. Implicit pad isn't appended on i686.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286027
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 4 Nov 2016 22:29:34 +0000 (22:29 +0000)]
[ExecutionEngine] Document the insane ownership contract for
ExecutionEngine::removeModule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286026
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 4 Nov 2016 21:55:23 +0000 (21:55 +0000)]
cmake: When using LLVM_DISTRIBUTION_COMPONENTS, adjust LLVMExports accordingly
This Makes sure we only export targets that we're distributing, since
cmake will fail to import the file otherwise due to missing targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286024
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 4 Nov 2016 20:41:03 +0000 (20:41 +0000)]
[Hexagon] Account for <def,read-undef> when validating moves for predication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286009
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Fri, 4 Nov 2016 19:17:32 +0000 (19:17 +0000)]
Fix 24560: assembler does not share constant pool for same constants
Summary: This patch returns the same label if the CP entry with the same value has been created.
Reviewers: eli.friedman, rengolin, jmolloy
Subscribers: majnemer, jmolloy, llvm-commits
Differential Revision: https://reviews.llvm.org/D25804
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286006
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 4 Nov 2016 18:50:45 +0000 (18:50 +0000)]
llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1).
It depends on host's pow(3), and mingw's pow doesn't raise any errors, just returns +INF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286005
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Fri, 4 Nov 2016 17:57:34 +0000 (17:57 +0000)]
[docs] Add initial Global ISel documentation.
This reflects the current state of Global ISel. As progress is
made, we'll document our design decisions in it.
Comments very welcome!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286002
91177308-0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Fri, 4 Nov 2016 15:15:19 +0000 (15:15 +0000)]
[X86] Broadcast from memory intructions aren't unfoldable
Broadcast from memory instructions should be treated as moves. They can't be unfolded.
Fixes pr30693.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285998
91177308-0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Fri, 4 Nov 2016 14:53:22 +0000 (14:53 +0000)]
Add bugpoint-reduced reproducer for pr30693
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285997
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 4 Nov 2016 13:06:34 +0000 (13:06 +0000)]
Revert "AMDGPU: Add VI i16 support"
This reverts commit r285939 and r285948. These broke some conformance tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285995
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 4 Nov 2016 08:31:14 +0000 (08:31 +0000)]
Comment rewording in MachineScheduler.cpp.
Author: A Trick
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285991
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 4 Nov 2016 07:16:33 +0000 (07:16 +0000)]
Add a missing return to the move assignment operator for
SequenceNumberManager.
Sadly, we don't have any unittests for this class because it is
a private class. Since it seems to have a nice isolated and testable
interface, it'd be great to extract it to a detail namespace and write
unit tests for it as then we could catch issues. I'll probably pester
Lang about that or some alternative refactoring.
This was noticed by PVS-Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285990
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 4 Nov 2016 07:10:24 +0000 (07:10 +0000)]
Remove dead code trying to handle when the amount of data read is
insufficient to populate the expected struct. Prior to this we already
bailed out of the routine when this situation comes up, so none of this
code had any effect.
If someone wants to bring it back to handle these cases, fixing the
earlier conditions and adding the necessary test cases that actually
exercises it, they can always revert this and go from there.
Both of these were noticed by PVS-Studio due to the identical (dead)
condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285989
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 4 Nov 2016 06:59:50 +0000 (06:59 +0000)]
Only log the visit of a return instruction if we in fact found a return
instruction.
This avoids dereferencing null in the debug logging if the instruction
was not in fact a return instruction. This potential bug was found by
PVS-Studio.
This actually fixes the last of the "dereferenced a pointer before
checking it for null" reports in the recent PVS-Studio run. However,
there are quite a few reports of this nature that I did not do anything
to fix because they are pretty glaring false positives. They usually
took the form of quite clear correlated checks or a check made in
a separate function. I've even added asserts anywhere this correlation
wasn't pretty obvious and fundamental to the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285988
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Fri, 4 Nov 2016 06:54:00 +0000 (06:54 +0000)]
Hoist check for TLI above all of the attempts to use it (including one
of which that is hidden inside a separate function call) and helpfully
before building expensive transaction infrastructure. This will avoid
crashing when running CGP in a generic mode if we ever managed to hit
this case.
Note that I spent some time looking at alternatives. CGP is actually
used without a TM or TLI in order to do some target-independent testing.
Further, all of the neighboring optimization techniques actually have
some paths that are effective even in the absence of TLI so this seemed
the correct scope at which to check and bypass logic. It still isn't
clear that long-term support for missing TM/TLI is the right
cost/benefit tradeoff for CGP -- we seem to get relatively little for it
and the code is just littered with checks (and assumptions which
I suspect are still missing some checks).
This at least fixes the potential bug in this code spotted by
PVS-Studio, so we've got that going for us. ;]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285987
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 4 Nov 2016 03:00:52 +0000 (03:00 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285978
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Thu, 3 Nov 2016 23:55:36 +0000 (23:55 +0000)]
X86: Move a non-null assert to before the pointer is dereferenced
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285975
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gesiak [Thu, 3 Nov 2016 23:41:49 +0000 (23:41 +0000)]
[lit] Remove TODO
Summary:
Instead of keeping track of TODOs for lit in a file checked into source
control, use LLVM's bug tracker. The TODOs have been migrated to the
following bugs:
* https://llvm.org/bugs/show_bug.cgi?id=30666
* https://llvm.org/bugs/show_bug.cgi?id=30667
* https://llvm.org/bugs/show_bug.cgi?id=30668
* https://llvm.org/bugs/show_bug.cgi?id=30669
* https://llvm.org/bugs/show_bug.cgi?id=30670
* https://llvm.org/bugs/show_bug.cgi?id=30671
Reviewers: ddunbar, beanz, echristo, delcypher
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D25496
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285973
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 3 Nov 2016 23:33:46 +0000 (23:33 +0000)]
Sink all of the code relying on the MachO MachineModuleInfo to live
behind the test that the MachineModuleInfo analysis was
actually available and can be used.
While the MachO bits may well be reasonable to assume in the darwin
assembly printer, the analysis isn't constructively guaranteed anywhere
I could find so it seems safest to avoid crashing here.
This issue was found with PVS-Studio. Pretty sure the Clang Static
Anaylzer flags similar issues but we've probably never pointed it at
this code effectively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285972
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 3 Nov 2016 22:01:47 +0000 (22:01 +0000)]
[Support] Fix a segfault in llvm::Expected.
This fixes a mismatch between the declared error_type and the type used with
the placement new that initializes the field.
Patch by Yichao Yu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285970
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Thu, 3 Nov 2016 21:49:08 +0000 (21:49 +0000)]
[Cortex-M0] Atomic lowering
Summary: ARMv6m supports dmb etc fench instructions but not ldrex/strex etc. So for some atomic load/store, LLVM should inline instructions instead of lowering to __sync_ calls.
Reviewers: rengolin, efriedma, t.p.northover, jmolloy
Subscribers: efriedma, aemerson, llvm-commits
Differential Revision: https://reviews.llvm.org/D26120
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285969
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Thu, 3 Nov 2016 20:51:28 +0000 (20:51 +0000)]
Add support for the ARM_THREAD_STATE64 and
in llvm-objdump for Mach-O files add the printing of the
ARM_THREAD_STATE64 in the same format as
otool-classic(1) on darwin.
To do this the 64-bit ARM general tread state
needed to be defined in include/llvm/Support/MachO.h .
rdar://
28985800
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285967
91177308-0d34-0410-b5e6-
96231b3b80d8
Tony Jiang [Thu, 3 Nov 2016 20:32:21 +0000 (20:32 +0000)]
NFC - Test commit.
Delete an empty line at the end of README.txt file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285964
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 20:16:53 +0000 (20:16 +0000)]
Don't error in the ELFFile constructor.
All error checking now happens when the information is needed. The
only thing left is the minimum size of the buffer and that can be just
a precondition. I will add an ErrorOr create method in a followup
commit.
Also don't store a pointer to the Header, since it is just a trivial
cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285961
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 3 Nov 2016 19:42:02 +0000 (19:42 +0000)]
Add DWARF debug info support for C++11 inline namespaces.
This implements the DWARF 5 DW_AT_export_symbols feature:
http://dwarfstd.org/ShowIssue.php?issue=141212.1
<rdar://problem/
18616046>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285959
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Thu, 3 Nov 2016 19:31:18 +0000 (19:31 +0000)]
[libFuzzer] fix -error_exitcode=N, now with a test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285958
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael LeMay [Thu, 3 Nov 2016 19:14:46 +0000 (19:14 +0000)]
[ADT] IntervalMap: fix setStart and setStop
Summary:
These functions currently require that the new closed interval has a length of
at least 2. They also currently permit empty half-open intervals. This patch
defines nonEmpty in each traits structure and uses it to correct the
implementations of setStart and setStop.
Reviewers: stoklund, chandlerc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26064
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285957
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 19:07:15 +0000 (19:07 +0000)]
Remove the last use of report_fatal_error from ELF.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285955
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Thu, 3 Nov 2016 18:28:04 +0000 (18:28 +0000)]
PDB: Fix some APIs to avoid use-after-frees
The buffer is already owned by the PDBFile for all of these APIs, so
don't pass it in separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285953
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 18:05:33 +0000 (18:05 +0000)]
Add error handling to getEntry.
Issue found by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285951
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 3 Nov 2016 17:56:46 +0000 (17:56 +0000)]
AMDGPU/SI: Re add VIInstructions.td to unbreak bots
This file is unused as of r285939, but we need to keep it around
for bots that don't do full rebuilds. We should be able to delete this
again in a few days.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285948
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 3 Nov 2016 17:42:02 +0000 (17:42 +0000)]
Remove a redundant condition found by PVS-Studio.
Filed http://llvm.org/PR30897 to teach Clang to warn on this kind of
stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285945
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 17:37:28 +0000 (17:37 +0000)]
Replace another report_fatal_error with an ErrorOr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285944
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 17:28:33 +0000 (17:28 +0000)]
Replace a report_fatal_error with an ErrorOr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285942
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 17:18:31 +0000 (17:18 +0000)]
Delete dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285940
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 3 Nov 2016 17:13:50 +0000 (17:13 +0000)]
AMDGPU: Add VI i16 support
Patch By: Wei Ding
Differential Revision: https://reviews.llvm.org/D18049
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 3 Nov 2016 17:11:11 +0000 (17:11 +0000)]
Delete some dead code and add a missing "0x" prefix to a hex string in
llvm-readobj.
Another bug caught by PVS-Studio.
It'd be nice to actually have a test for this, but I found it by
inspection from PVS-Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285937
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 3 Nov 2016 17:01:38 +0000 (17:01 +0000)]
Delete a dead store found by PVS-Studio.
Quite sad we still aren't really using aggressive dead code warnings
from Clang that we could potentially use to catch this and so many other
things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285936
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 16:58:27 +0000 (16:58 +0000)]
Delete dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285935
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 16:51:44 +0000 (16:51 +0000)]
Add lower level versions of some functions.
This adds versions of getSectionIndex, getSection and getSymbol that
instead of a Elf_Shdr take the content of that section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285932
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Thu, 3 Nov 2016 16:43:10 +0000 (16:43 +0000)]
Make this test Windows-only (try to placate buildbots).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285931
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 3 Nov 2016 16:39:25 +0000 (16:39 +0000)]
Fix a bug found by inspection by PVS-Studio.
This condition is trivially always true prior to the change. The comment
at the call site makes it clear that we expect *all* of these to be '=',
'S', or 'I' so fix the code.
We have a bug I will update to track the fact that Clang doesn't warn on
this: http://llvm.org/PR13101
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285930
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 16:24:35 +0000 (16:24 +0000)]
Move function out of line. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285929
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 16:10:39 +0000 (16:10 +0000)]
Inline function into only use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285928
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Thu, 3 Nov 2016 15:56:06 +0000 (15:56 +0000)]
vim: special case the CHECK prefix
A large number of tests in the LLVM tree use the default (CHECK) prefix
to indicate checked expressions via FileCheck. Highlight it as a
special comment. Although this wont get all the instances of the
checked patters, it is strictly better than the current state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285927
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 14:53:25 +0000 (14:53 +0000)]
Return existing error code.
Should fix the -Werror bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285921
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 14:41:17 +0000 (14:41 +0000)]
Move a free function out of ELFFile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285920
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Timofeev [Thu, 3 Nov 2016 14:37:13 +0000 (14:37 +0000)]
[AMDGPU][CodeGen] To improve CGEMM performance: combine LDS reads.
hange explores the fact that LDS reads may be reordered even if access
the same location.
Prior the change, algorithm immediately stops as soon as any memory
access encountered between loads that are expected to be merged
together. Although, Read-After-Read conflict cannot affect execution
correctness.
Improves hcBLAS CGEMM manually loop-unrolled kernels performance by 44%.
Also improvement expected on any massive sequences of reads from LDS.
Differential Revision: https://reviews.llvm.org/D25944
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285919
91177308-0d34-0410-b5e6-
96231b3b80d8
Zvi Rackover [Thu, 3 Nov 2016 14:25:24 +0000 (14:25 +0000)]
Refactor creation of X86ISD::SETCC nodes to a helper function. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285917
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Thu, 3 Nov 2016 14:25:04 +0000 (14:25 +0000)]
DAGCombiner: fix use-after-free when merging consecutive stores
Summary:
Have MergeConsecutiveStores explicitly return information about the stores
that were merged, so that we can safely determine whether the starting
node has been freed.
Reviewers: chandlerc, bogner, niravd
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25601
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285916
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 14:24:53 +0000 (14:24 +0000)]
Split out a getSectionIndex.
That code is currently duplicated in lld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285915
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 3 Nov 2016 14:08:01 +0000 (14:08 +0000)]
Revert "[Thumb] Teach ISel how to lower compares of AND bitmasks efficiently"
This reverts commit r285893. It caused (probably) http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15-full-sh/builds/83 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285912
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 13:58:15 +0000 (13:58 +0000)]
replace a report_fatal_error with a ErrorOr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285910
91177308-0d34-0410-b5e6-
96231b3b80d8
John Brawn [Thu, 3 Nov 2016 13:55:04 +0000 (13:55 +0000)]
[CMake] Make CMAKE_INSTALL_RPATH work again
r285714 made it so that when CMAKE_INSTALL_RPATH is set _install_rpath is not
set, but that means INSTALL_RPATH gets set to an empty string which isn't what
we want. Fix this by setting INSTALL_RPATH only when _install_rpath is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285908
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 13:43:30 +0000 (13:43 +0000)]
Replace a report_fatal_error with an ErrorOr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285905
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 13:22:51 +0000 (13:22 +0000)]
Split getStringTableForSymtab.
For use in cases where we already have the section table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285903
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 12:23:41 +0000 (12:23 +0000)]
Split getSHNDXTable in two.
Some clients already have the section table available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285898
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Thu, 3 Nov 2016 10:18:20 +0000 (10:18 +0000)]
[Thumb] Teach ISel how to lower compares of AND bitmasks efficiently
This recommits r281323, which was backed out for two reasons. One, a selfhost failure, and two, it apparently caused Chromium failures. Actually, the latter was a red herring. The log has expired from the former, but I suspect that was a red herring too (actually caused by another problematic patch of mine). Therefore reapplying, and will watch the bots like a hawk.
For the common pattern (CMPZ (AND x, #bitmask), #0), we can do some more efficient instruction selection if the bitmask is one consecutive sequence of set bits (32 - clz(bm) - ctz(bm) == popcount(bm)).
1) If the bitmask touches the LSB, then we can remove all the upper bits and set the flags by doing one LSLS.
2) If the bitmask touches the MSB, then we can remove all the lower bits and set the flags with one LSRS.
3) If the bitmask has popcount == 1 (only one set bit), we can shift that bit into the sign bit with one LSLS and change the condition query from NE/EQ to MI/PL (we could also implement this by shifting into the carry bit and branching on BCC/BCS).
4) Otherwise, we can emit a sequence of LSLS+LSRS to remove the upper and lower zero bits of the mask.
1-3 require only one 16-bit instruction and can elide the CMP. 4 requires two 16-bit instructions but can elide the CMP and doesn't require materializing a complex immediate, so is also a win.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285893
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Thu, 3 Nov 2016 08:41:46 +0000 (08:41 +0000)]
[tools/obj2yaml] - Update after LLVM change r285886
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285887
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Thu, 3 Nov 2016 08:40:55 +0000 (08:40 +0000)]
[Object/ELF] - Make getSymbol() return Error.
That is consistent with other methods around
and helps to handle error on a caller side.
Differential revision: https://reviews.llvm.org/D26247
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285886
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Hahnfeld [Thu, 3 Nov 2016 06:58:16 +0000 (06:58 +0000)]
[CMake] Disable rpath for UnitTests
This was broken since rL285714.
Differential Revision: https://reviews.llvm.org/D26246
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285881
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 3 Nov 2016 06:04:28 +0000 (06:04 +0000)]
[AVX-512] Use 'vnot' instead of 'not' in patterns involving vXi1 vectors.
This fixes selection of KANDN instructions and allows us to remove an extra set of patterns for KNOT and KXNOR.
Reviewers: delena, igorb
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26134
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285878
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 3 Nov 2016 03:23:55 +0000 (03:23 +0000)]
Expandload and Compressstore intrinsics
2 new intrinsics covering AVX-512 compress/expand functionality.
This implementation includes syntax, DAG builder, operation lowering and tests.
Does not include: handling of illegal data types, codegen prepare pass and the cost model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285876
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 3 Nov 2016 02:24:59 +0000 (02:24 +0000)]
Split getSection in two.
This will allow avoiding repeated error checking in a few cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285874
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Thu, 3 Nov 2016 01:07:16 +0000 (01:07 +0000)]
[ThinLTO] Handle distributed backend case when doing renaming
Summary:
The recent change I made to consult the summary when deciding whether to
rename (to handle inline asm) in r285513 broke the distributed build
case. In a distributed backend we will only have a portion of the
combined index, specifically for imported modules we only have the
summaries for any imported definitions. When renaming on import we were
asserting because no summary entry was found for a local reference being
linked in (def wasn't imported).
We only need to consult the summary for a renaming decision for the
exporting module. For imports, we would have prevented importing any
references to NoRename values already.
Reviewers: mehdi_amini
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26250
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285871
91177308-0d34-0410-b5e6-
96231b3b80d8
Greg Bedwell [Wed, 2 Nov 2016 23:17:05 +0000 (23:17 +0000)]
Revert "[InstCombine] allow splat vector folds in adjustMinMax()"
This reverts commit r285732.
This change introduced a new assertion failure in the following
testcase at -O2:
typedef short __v8hi __attribute__((__vector_size__(16)));
__v8hi foo(__v8hi &V1, __v8hi &V2, unsigned mask) {
__v8hi Result = V1;
if (mask & 0x80)
Result[0] = V2[0];
return Result;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285866
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 21:39:02 +0000 (21:39 +0000)]
Simplify some typedefs. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285863
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian McCarthy [Wed, 2 Nov 2016 21:30:35 +0000 (21:30 +0000)]
Emit S_COMPILE3 record once per TU rather than once per function
This has some ripple effects in several tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285862
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 2 Nov 2016 21:08:39 +0000 (21:08 +0000)]
Add the rest of the additional error checks for invalid Mach-O files when
the offsets and sizes of an element of the Mach-O file overlaps with
another element in the Mach-O file.
Some other tests for malformed Mach-O files now run into these
checks so their tests were also adjusted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285860
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Wed, 2 Nov 2016 21:05:42 +0000 (21:05 +0000)]
[RuntimeDyld] Move an X86 only test to the correct directory.
This is an attempt to placate the bots after r285841.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285859
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 2 Nov 2016 20:48:11 +0000 (20:48 +0000)]
DCE math library calls with a constant operand.
On platforms which use -fmath-errno, math libcalls without any uses
require some extra checks to figure out if they are actually dead.
Fixes https://llvm.org/bugs/show_bug.cgi?id=30464 .
Differential Revision: https://reviews.llvm.org/D25970
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285857
91177308-0d34-0410-b5e6-
96231b3b80d8
Vedant Kumar [Wed, 2 Nov 2016 19:44:13 +0000 (19:44 +0000)]
[llvm-cov] Turn line numbers in html reports into clickable links
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285853
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Wed, 2 Nov 2016 17:59:54 +0000 (17:59 +0000)]
[Hexagon] Remove registers coalesced in expand-condsets from live intervals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285846
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Tamazov [Wed, 2 Nov 2016 17:45:58 +0000 (17:45 +0000)]
[AMDGPU][mc] Improve test of special asm symbols.
Test simplified. Coverage extended.
Differential Revision: https://reviews.llvm.org/D26198
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285844
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Wed, 2 Nov 2016 17:32:19 +0000 (17:32 +0000)]
[lli/COFF] Set the correct alignment for common symbols
Otherwise we set it always to zero, which is not correct,
and we assert inside alignTo (Assertion failed:
Align != 0u && "Align can't be 0.").
Differential Revision: https://reviews.llvm.org/D26173
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285841
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 2 Nov 2016 17:24:54 +0000 (17:24 +0000)]
AMDGPU: Cleanup some xfailed tests
Some of these are already fixed or tested somewhere else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285840
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Wed, 2 Nov 2016 17:10:55 +0000 (17:10 +0000)]
Fix build due to missing definition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285837
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Wed, 2 Nov 2016 17:05:19 +0000 (17:05 +0000)]
Add CodeViewRecordIO for reading and writing.
Using a pattern similar to that of YamlIO, this allows
us to have a single codepath for translating codeview
records to and from serialized byte streams. The
current patch only hooks this up to the reading of
CodeView type records. A subsequent patch will hook
it up for writing of CodeView type records, and then a
third patch will hook up the reading and writing of
CodeView symbols.
Differential Revision: https://reviews.llvm.org/D26040
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285836
91177308-0d34-0410-b5e6-
96231b3b80d8
Nicolai Haehnle [Wed, 2 Nov 2016 17:03:11 +0000 (17:03 +0000)]
AMDGPU: Allow additional implicit operands on MOVRELS instructions
Summary:
The post-RA scheduler occasionally uses additional implicit operands when
the vector implicit operand as a whole is killed, but some subregisters
are still live because they are directly referenced later. Unfortunately,
this seems incredibly subtle to reproduce.
Fixes piglit spec/glsl-110/execution/variable-indexing/vs-temp-array-mat2-index-wr.shader_test
and others.
Reviewers: arsenm, tstellarAMD
Subscribers: kzhuravl, wdng, yaxunl, tony-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D25656
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285835
91177308-0d34-0410-b5e6-
96231b3b80d8
Malcolm Parsons [Wed, 2 Nov 2016 16:43:50 +0000 (16:43 +0000)]
Fix Clang-tidy readability-redundant-string-cstr warnings
Reviewers: beanz, lattner, jlebar
Subscribers: jholewinski, llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D26235
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285832
91177308-0d34-0410-b5e6-
96231b3b80d8
Nirav Dave [Wed, 2 Nov 2016 16:22:51 +0000 (16:22 +0000)]
[ARM][MC] Cleanup ARM Target Assembly Parser
Summary:
Correctly parse end-of-statement tokens and handle preprocessor
end-of-line comments in ARM assembly processor.
Reviewers: rnk, majnemer
Subscribers: aemerson, rengolin, llvm-commits
Differential Revision: https://reviews.llvm.org/D26152
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285830
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 2 Nov 2016 16:20:37 +0000 (16:20 +0000)]
Improve and cleanup comments in DwarfExpression.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285829
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 2 Nov 2016 16:18:29 +0000 (16:18 +0000)]
BranchRelaxation: Fix computing indirect branch block size
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285828
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 2 Nov 2016 16:12:20 +0000 (16:12 +0000)]
Simplify control flow in the the DWARF expression compiler
by refactoring common code into a DwarfExpressionCursor wrapper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285827
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Wed, 2 Nov 2016 16:12:16 +0000 (16:12 +0000)]
Emit DW_OP_piece also if the previous value was a constant.
This fixes a bug in the DWARF backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285826
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 2 Nov 2016 15:41:15 +0000 (15:41 +0000)]
Use !operator to test if APInt is zero/non-zero. NFCI.
Avoids APInt construction and slower comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285822
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 15:33:59 +0000 (15:33 +0000)]
Simplify typedefs. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285819
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 15:23:32 +0000 (15:23 +0000)]
Inline a version of getSectionStringTable into the only use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285817
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 15:15:59 +0000 (15:15 +0000)]
Compute the section table lazily.
As a consequence this move a bunch of error checking out of the constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285815
91177308-0d34-0410-b5e6-
96231b3b80d8
Vasileios Kalintiris [Wed, 2 Nov 2016 15:11:27 +0000 (15:11 +0000)]
[mips] Always run the MipsOptimizePICCall pass.
Summary:
Remove this pass from addMachineSSAOptimization() and register it unconditionally in through addPreRegAlloc(). This pass is required for generating correct PIC calls.
Reviewers: sdardis
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26036
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285814
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Wed, 2 Nov 2016 15:00:31 +0000 (15:00 +0000)]
Create the virtual register for the global base in the intersection of
GPRC and GPRC_NOR0 (or the 64bit equivalent) and not just the latter.
GPRC_NOR0 contains ZERO as alternative meaning of r0 and is therefore
not a true subclass of GPRC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285813
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 14:52:50 +0000 (14:52 +0000)]
Inline getSectionStringTableIndex() into only caller. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285812
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 14:10:57 +0000 (14:10 +0000)]
Avoid a report_fatal_error in sections().
Have it return a ErrorOr<Range> and delete section_begin and
section_end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285807
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 2 Nov 2016 13:58:57 +0000 (13:58 +0000)]
Removing a switch statement that contains a default label, but no case labels. Silences an MSVC warning; NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285806
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 13:07:38 +0000 (13:07 +0000)]
getNumSections should return a uintX_t. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285804
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 2 Nov 2016 12:49:55 +0000 (12:49 +0000)]
Simplify getSection. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285803
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Wed, 2 Nov 2016 12:45:28 +0000 (12:45 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285802
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Wed, 2 Nov 2016 11:32:28 +0000 (11:32 +0000)]
[SystemZ] Fix compiler warnings introduced by r285574
SystemZAsmParser::parseOperand returns a bool, not an enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285800
91177308-0d34-0410-b5e6-
96231b3b80d8
Kirill Bobyrev [Wed, 2 Nov 2016 10:00:40 +0000 (10:00 +0000)]
[llvm] FIx if-clause -Wmisleading-indentation issue.
While bootstrapping Clang with recent `gcc 6.2.0` I found a bug related to misleading indentation.
I believe, a pair of `{}` was forgotten, especially given the above similar piece of code:
```
if (!RDef || !HII->isPredicable(*RDef)) {
Done = coalesceRegisters(RD, RegisterRef(S1));
if (Done) {
UpdRegs.insert(RD.Reg);
UpdRegs.insert(S1.getReg());
}
}
```
Reviewers: kparzysz
Differential Revision: https://reviews.llvm.org/D26204
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285794
91177308-0d34-0410-b5e6-
96231b3b80d8