OSDN Git Service
Renato Golin [Tue, 18 Oct 2016 09:30:18 +0000 (09:30 +0000)]
Revert "Resubmit "Add support for advanced number formatting.""
This reverts commits 284436 and 284437 because they still break AArch64 bots:
Value of: format_number(-10, IntegerStyle::Integer, 1)
Actual: "-0"
Expected: "-10"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284462
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 18 Oct 2016 09:29:13 +0000 (09:29 +0000)]
[X86][SSE] Added extra (mul x, (1 << c)) -> x << c style vector tests
vXi64 will benefit more from lowering to shifts than multiplies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284461
91177308-0d34-0410-b5e6-
96231b3b80d8
Javed Absar [Tue, 18 Oct 2016 09:08:54 +0000 (09:08 +0000)]
[ARM] Assign cost of scaling for Cortex-R52
This patch assigns cost of the scaling used in addressing for Cortex-R52.
On Cortex-R52 a negated register offset takes longer than a non-negated
register offset, in a register-offset addressing mode.
Differential Revision: http://reviews.llvm.org/D25670
Reviewer: jmolloy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284460
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 18 Oct 2016 07:42:15 +0000 (07:42 +0000)]
[X86][SSE] Add lowering to cvttpd2dq/cvttps2dq for sitofp v2f64/2f32 to 2i32
As discussed on PR28461 we currently miss the chance to lower "fptosi <2 x double> %arg to <2 x i32>" to cvttpd2dq due to its use of illegal types.
This patch adds support for fptosi to 2i32 from both 2f64 and 2f32.
It also recognises that cvttpd2dq zeroes the upper 64-bits of the xmm result (similar to D23797) - we still don't do this for the cvttpd2dq/cvttps2dq intrinsics - this can be done in a future patch.
Differential Revision: https://reviews.llvm.org/D23808
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284459
91177308-0d34-0410-b5e6-
96231b3b80d8
Dean Michael Berris [Tue, 18 Oct 2016 05:54:15 +0000 (05:54 +0000)]
[XRay] Support for for tail calls for ARM no-Thumb
This patch adds simplified support for tail calls on ARM with XRay instrumentation.
Known issue: compiled with generic flags: `-O3 -g -fxray-instrument -Wall
-std=c++14 -ffunction-sections -fdata-sections` (this list doesn't include my
specific flags like --target=armv7-linux-gnueabihf etc.), the following program
#include <cstdio>
#include <cassert>
#include <xray/xray_interface.h>
[[clang::xray_always_instrument]] void __attribute__ ((noinline)) fC() {
std::printf("In fC()\n");
}
[[clang::xray_always_instrument]] void __attribute__ ((noinline)) fB() {
std::printf("In fB()\n");
fC();
}
[[clang::xray_always_instrument]] void __attribute__ ((noinline)) fA() {
std::printf("In fA()\n");
fB();
}
// Avoid infinite recursion in case the logging function is instrumented (so calls logging
// function again).
[[clang::xray_never_instrument]] void simplyPrint(int32_t functionId, XRayEntryType xret)
{
printf("XRay: functionId=%d type=%d.\n", int(functionId), int(xret));
}
int main(int argc, char* argv[]) {
__xray_set_handler(simplyPrint);
printf("Patching...\n");
__xray_patch();
fA();
printf("Unpatching...\n");
__xray_unpatch();
fA();
return 0;
}
gives the following output:
Patching...
XRay: functionId=3 type=0.
In fA()
XRay: functionId=3 type=1.
XRay: functionId=2 type=0.
In fB()
XRay: functionId=2 type=1.
XRay: functionId=1 type=0.
XRay: functionId=1 type=1.
In fC()
Unpatching...
In fA()
In fB()
In fC()
So for function fC() the exit sled seems to be called too much before function
exit: before printing In fC().
Debugging shows that the above happens because printf from fC is also called as
a tail call. So first the exit sled of fC is executed, and only then printf is
jumped into. So it seems we can't do anything about this with the current
approach (i.e. within the simplification described in
https://reviews.llvm.org/D23988 ).
Differential Revision: https://reviews.llvm.org/D25030
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284456
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 18 Oct 2016 05:44:04 +0000 (05:44 +0000)]
[AVX-512] Add test case to check shuffle decoding for masked vpermilps for r284450.
This is harder to do for vpermilpd as shuffle combining turns the constant vector into an immediate since all vpermilpd's inputs with constant vector can also be encoded with the immediate form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284455
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 18 Oct 2016 05:17:23 +0000 (05:17 +0000)]
Object: Add a missing return in ObjectFile::createObjectFile
When Error was threaded through these APIs back in r265606 the
"return" was missed here, which triggers a warning if/when I add
LLVM_NODISCARD to the Error type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284454
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 18 Oct 2016 04:48:33 +0000 (04:48 +0000)]
[X86] Fix DecodeVPERMVMask to handle cases where the constant pool entry has a different type than the shuffle itself.
This is especially important for 32-bit targets with 64-bit shuffle elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284453
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 18 Oct 2016 04:17:44 +0000 (04:17 +0000)]
Improve tablegen gen-subtarget diagnostics for missing machine models.
-debug-only=subtarget-emitter prints a lot of machine model diagnostics.
This prunes the output so that the "No machine model for XXX on processor YYY"
only appears when there is definitely no machine model for that opcode.
Previously it was printing that error even if the opcode was covered by
a more general scheduling class.
<rdar://problem/
15919845> [TableGen][CodeGenSchedule] Debug output does not help spotting the missing scheduling classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284452
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 18 Oct 2016 04:00:32 +0000 (04:00 +0000)]
[AVX-512] Fix DecodeVPERMV3Mask to handle cases where the constant pool entry has a different type than the shuffle itself.
Summary: This is especially important for 32-bit targets with 64-bit shuffle elements.This is similar to how PSHUFB and VPERMIL handle the same problem.
Reviewers: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25666
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284451
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 18 Oct 2016 03:36:52 +0000 (03:36 +0000)]
[AVX-512] Add support for decoding shuffle mask from constant pool for masked VPERMILPS/PD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284450
91177308-0d34-0410-b5e6-
96231b3b80d8
Mandeep Singh Grang [Tue, 18 Oct 2016 00:11:19 +0000 (00:11 +0000)]
Fix differences in codegen between Linux and Windows toolchains
Summary:
There are differences in codegen between Linux and Windows due to:
1. Using std::sort which uses quicksort which is a non-stable sort.
2. Iterating over Set data structure where the iteration order is
non deterministic.
Reviewers: arsenm, grosbach, junbuml, zinob, MatzeB
Subscribers: MatzeB, wdng
Differential Revision: https://reviews.llvm.org/D25695
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284441
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 17 Oct 2016 23:08:47 +0000 (23:08 +0000)]
Rename HexStyle -> HexFormatStyle, and remove a constexpr.
This should fix the remaining broken builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284437
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 17 Oct 2016 22:49:24 +0000 (22:49 +0000)]
Resubmit "Add support for advanced number formatting."
This resubmits commits 284425 and r284428, which were reverted
in r284429 due to some infinite recursion caused by an incorrect
selection of function overloads. Reproduced the failure on Linux
using GCC 4.8.4, and confirmed that with the new patch the tests
path on GCC as well as MSVC. So hopefully this fixes everything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284436
91177308-0d34-0410-b5e6-
96231b3b80d8
Konstantin Zhuravlyov [Mon, 17 Oct 2016 22:40:15 +0000 (22:40 +0000)]
[AMDGPU] Mark .note section SHF_ALLOC so lld creates a segment for it
Differential Revision: https://reviews.llvm.org/D25694
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284435
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Mon, 17 Oct 2016 22:24:36 +0000 (22:24 +0000)]
[ADT] Move CachedHashString to its own header in ADT, and rename to CachedHashStringRef.
Summary:
Reclaiming the name 'CachedHashString' will let us add a type with that
name that owns its value.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25644
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284434
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Mon, 17 Oct 2016 22:24:32 +0000 (22:24 +0000)]
[ADT] Add an initializer_list constructor to {Small,}DenseSet.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25629
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284433
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Mon, 17 Oct 2016 22:24:28 +0000 (22:24 +0000)]
[ADT] Add SmallDenseSet.
Summary: This matches SmallDenseMap.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25628
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284432
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 17 Oct 2016 22:09:25 +0000 (22:09 +0000)]
Next set of additional error checks for invalid Mach-O files for the
load commands that use the MachO::sub_framework_command,
MachO::sub_umbrella_command, MachO::sub_library_command
and MachO::sub_client_command types but are not used in llvm
libObject code but used in llvm tool code.
This includes the LC_SUB_FRAMEWORK, LC_SUB_UMBRELLA,
LC_SUB_LIBRARY and LC_SUB_CLIENT load commands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284431
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 17 Oct 2016 21:25:41 +0000 (21:25 +0000)]
Revert formatting changes.
This reverts r288425 and r284428 as they are causing test crashes
on some systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284429
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 17 Oct 2016 21:14:27 +0000 (21:14 +0000)]
Try to fix build after invalid pointer conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284428
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 21:08:39 +0000 (21:08 +0000)]
remove FIXME comment (fixed with r284424); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284427
91177308-0d34-0410-b5e6-
96231b3b80d8
Zachary Turner [Mon, 17 Oct 2016 20:57:45 +0000 (20:57 +0000)]
[Support] Add support for "advanced" number formatting.
raw_ostream has not afforded a lot of flexibility in terms of
how to format numbers when outputting. Wrap this all up into
a set of low level helper functions that can be used to output
numbers with arbitrary precision, alignment, format, etc and
then update raw_ostream to use these functions.
This will be useful for upcoming improvements to llvm's string
formatting libraries, but are still useful independently.
Differential Revision: https://reviews.llvm.org/D25497
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284425
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 20:41:39 +0000 (20:41 +0000)]
[DAG] use isConstOrConstSplat in ComputeNumSignBits to optimize SRA
The scalar version of this pattern was noted in:
https://reviews.llvm.org/D25485
and fixed with:
https://reviews.llvm.org/rL284395
More refactoring of the constant/splat helpers is needed and will happen in follow-up patches.
Differential Revision: https://reviews.llvm.org/D25685
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284424
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 20:26:46 +0000 (20:26 +0000)]
[DAG] make isConstOrConstSplat and isConstOrConstSplatFP more accessible; NFC
As noted in:
https://reviews.llvm.org/D25685
This is the next-to-smallest step needed to enable the ComputeNumSignBits fix in that patch.
In a minor attempt to keep some structure, we're pulling the FP helper over along with its
integer sibling, but clearly we can and should do more refactoring of the similar helper
functions in DAGCombiner and SelectionDAG to simplify and not duplicate functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284421
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Mon, 17 Oct 2016 20:05:35 +0000 (20:05 +0000)]
[opt] Strip coverage if debug info is not present.
If -coverage is passed, but -g is not, clang populates the PassManager
pipeline with StripSymbols(debugOnly = true).
The stripSymbol pass therefore scans the list of named metadata,
drops !llvm.dbg.cu, but leaves !llvm.gcov and !0 (the compileUnit MD)
around. The verifier runs, and finds out that there's a CU not listed
in !llvm.dbg.cu (as it was previously dropped) -> crash.
When we strip debug info, so, check if there's coverage data,
and strip it as well, in order to avoid pending metadata left around.
Differential Revision: https://reviews.llvm.org/D25689
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284418
91177308-0d34-0410-b5e6-
96231b3b80d8
Dehao Chen [Mon, 17 Oct 2016 19:28:44 +0000 (19:28 +0000)]
Ignore debug info when making optimization decisions in SimplifyCFG.
Summary: Debug info should *not* affect code generation. This patch properly handles debug info to make sure the generated code are the same with or without debug info.
Reviewers: davidxl, mzolotukhin, jmolloy
Subscribers: aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D25286
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284415
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 17 Oct 2016 19:25:42 +0000 (19:25 +0000)]
Delete dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284414
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Mon, 17 Oct 2016 19:23:19 +0000 (19:23 +0000)]
[doc] use double `` to prevent html output of merging double dash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284412
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael LeMay [Mon, 17 Oct 2016 19:09:19 +0000 (19:09 +0000)]
Test commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284411
91177308-0d34-0410-b5e6-
96231b3b80d8
Walter Erquinigo [Mon, 17 Oct 2016 18:56:18 +0000 (18:56 +0000)]
Handle relocations to thumb functions when dynamic linking COFF modules
Summary:
This adds the necessary logic to support relocations to thumb functions in the COFF dynamic linker.
The jumps to function addresses are mostly blx, which requires the ISA selection bit when jumping to a thumb function.
Note: I'm determining if the relocation requires the ISA bit when creating the relocation entries and not when resolving the relocation. I have to do that because I need the ObjectFile and the actual Symbol, which are available only when creating the entries. It would require a gross refactor if I do it otherwise, but I'm okay with doing it if you think it's better.
Reviewers: peter.smith, compnerd
Subscribers: rengolin, sas
Differential Revision: https://reviews.llvm.org/D25151
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284410
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 17 Oct 2016 18:51:02 +0000 (18:51 +0000)]
Return a StringRef instead of a Comdat*.
This is a small step in making this interface compatible with an
bitcode symbol table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284408
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 17 Oct 2016 18:36:53 +0000 (18:36 +0000)]
GlobalISel: support wider range of load/store sizes in AArch64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284406
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 17 Oct 2016 16:56:19 +0000 (16:56 +0000)]
AMDGPU/SI: LowerParameter() should be computing align based on memory type
Reviewers: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D25203
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284398
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 17 Oct 2016 16:21:45 +0000 (16:21 +0000)]
AMDGPU/SI: Fix LowerParameter() for i16 arguments
Summary:
If we are loading an i16 value from a 32-bit memory location, then
we need to be able to truncate the loaded value to i16.
Reviewers: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D25198
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284397
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 15:58:28 +0000 (15:58 +0000)]
[DAG] optimize away an arithmetic-right-shift of a 0 or -1 value
This came up as part of:
https://reviews.llvm.org/D25485
Note that the vector case is missed because ComputeNumSignBits() is deficient for vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284395
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 15:44:59 +0000 (15:44 +0000)]
[x86] add tests to show missing DAG folds for arithmetic-shift-right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284394
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 17 Oct 2016 15:38:41 +0000 (15:38 +0000)]
[x86] auto-generate checks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284393
91177308-0d34-0410-b5e6-
96231b3b80d8
Teresa Johnson [Mon, 17 Oct 2016 14:56:53 +0000 (14:56 +0000)]
Rename interface for querying physical hardware concurrency
Based on post-commit review for D25585/r284180, rename
hardware_physical_concurrency to heavyweight_hardware_concurrency,
to better reflect what type of tasks it should be used for and
to enable other systems to map this to something other than the
number of physical cores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284390
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Mon, 17 Oct 2016 14:28:12 +0000 (14:28 +0000)]
[Object/ELF] - Check Header->e_shoff value earlier and do not crash.
Patch checks that section pointer is aligned properly.
This should be done before getStringTable() call.
Differential revision: https://reviews.llvm.org/D25462
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284387
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 17 Oct 2016 13:57:16 +0000 (13:57 +0000)]
[Support] remove_dots: Remove windows test.
Windows doesn't have roots, so I think this test doesn't make sense
there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284386
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 17 Oct 2016 13:28:21 +0000 (13:28 +0000)]
[Support] remove_dots: Remove .. from absolute paths.
/../foo is still a proper path after removing the dotdot. This should
now finally match https://9p.io/sys/doc/lexnames.html [Cleaning names].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284384
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Mon, 17 Oct 2016 12:54:07 +0000 (12:54 +0000)]
[SDAG] Use ABI type alignment for constant pools when optimizing for size
SelectionDAG::getConstantPool will automatically determine an appropriate alignment if one is not specified. It does this by querying the type's preferred alignment. This can end up creating quite a lot of padding when the preferred alignment for vectors is 128.
In optimize-for-size mode, it makes sense to instead query the ABI type alignment which is often smaller and causes less padding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284381
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Mon, 17 Oct 2016 12:29:00 +0000 (12:29 +0000)]
[docs] Reduce the number of places 'minimum requirements' is mentioned to one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284380
91177308-0d34-0410-b5e6-
96231b3b80d8
Oliver Stannard [Mon, 17 Oct 2016 12:00:24 +0000 (12:00 +0000)]
[SimplifyCFG] Don't lower complex ConstantExprs to lookup tables
Not all ConstantExprs can be represented by a global variable, for example most
pointer arithmetic other than addition of a constant, so we can't convert these
values from switch statements to lookup tables.
Differential Revision: https://reviews.llvm.org/D25550
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284379
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Mon, 17 Oct 2016 11:56:26 +0000 (11:56 +0000)]
[SCEV] Consider delinearization pattern with extension with identity factor
Summary: The delinearization algorithm did not consider terms which had an extension without a multiply factor, i.e. a identify factor. We lose cases where size is char type where there will no multiply factor.
Reviewers: sanjoy, grosser
Subscribers: mzolotukhin, Eugene.Zelenko, llvm-commits, mssimpso, sanjoy, grosser
Differential Revision: https://reviews.llvm.org/D16492
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284378
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrea Di Biagio [Mon, 17 Oct 2016 11:32:26 +0000 (11:32 +0000)]
[CodeGenPrepare] When moving a zext near to its associated load, do not retain the original debug location.
CodeGenPrepare knows how to move a zext of a load into the same basic block
where the load lives. The goal is to help ISel match a zero-extending load
instead of two separated instructions.
CGP attempts to move a zext computation even if it lives in a basic block that
does not post-dominate the load's basic block. That means, the hoisted zext may
be speculated. Preserving the zext location would hurt the debugging experience
and the quality of sample pgo.
With this patch, when moving a zext near to its associated load, CGP no longer
propagates the zext's debug location. Instead, CGP conservatively reuses the
same debug location for the load and the zext.
An alternative approach would be to assign an artificial line-0 location to the
zext. However we don't want to over-use the 'line-0' for this particular case
because it would have a size cost in the line-table section for no additional
benefit.
Differential Revision: https://reviews.llvm.org/D25611
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284377
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Mon, 17 Oct 2016 10:58:02 +0000 (10:58 +0000)]
Recommit r284371 "[Object/ELF] - Check that e_shnum is null when e_shoff is."
With fix: hex edited the precompiled inputs from another testcases to pass new checks.
Original commit message:
[Object/ELF] - Check that e_shnum is null when e_shoff is.
Spec says (http://www.sco.com/developers/gabi/1998-04-29/ch4.eheader.html) :
e_shnum
This member holds the number of entries in the section header table. Thus the product of e_shentsize and e_shnum gives the section header table's size in bytes. If a file has no section header table, e_shnum holds the value zero.
Revealed using "id_000037,sig_11,src_000015,op_havoc,rep_8" from PR30540
That was the reason of crash in lld on incorrect input file.
Binary reduced using afl-min.
Differential revision: https://reviews.llvm.org/D25090
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284374
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Mon, 17 Oct 2016 10:20:47 +0000 (10:20 +0000)]
Revert r284371 "[Object/ELF] - Check that e_shnum is null when e_shoff is."
It broke build bot:
http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/908/steps/test-stage1-compiler/logs/stdio
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284373
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Mon, 17 Oct 2016 10:06:44 +0000 (10:06 +0000)]
[Object/ELF] - Check that e_shnum is null when e_shoff is.
Spec says (http://www.sco.com/developers/gabi/1998-04-29/ch4.eheader.html) :
e_shnum
This member holds the number of entries in the section header table. Thus the product of e_shentsize and e_shnum gives the section header table's size in bytes. If a file has no section header table, e_shnum holds the value zero.
Revealed using "id_000037,sig_11,src_000015,op_havoc,rep_8" from PR30540
That was the reason of crash in lld on incorrect input file.
Binary reduced using afl-min.
Differential revision: https://reviews.llvm.org/D25090
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284371
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Mon, 17 Oct 2016 09:30:06 +0000 (09:30 +0000)]
[Object/ELF] - Do not crash on invalid section index.
If object has wrong (large) string table index and
also incorrect large value for amount of sections in total,
then section index passes the check:
if (Index >= getNumSections())
return object_error::invalid_section_index;
But result pointer then is far after end of file data, what
result in a crash.
Differential revision: https://reviews.llvm.org/D25081
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284369
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 17 Oct 2016 07:37:11 +0000 (07:37 +0000)]
Support: Drop LLVM_ATTRIBUTE_UNUSED_RESULT
Uses of this have all been updated to use LLVM_NODISCARD, which
matches the C++17 [[nodiscard]] semantics rather than those of GCC's
__attribute__((warn_unused_result)).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284367
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 17 Oct 2016 06:41:18 +0000 (06:41 +0000)]
[X86] Fix shuffle decoding assertions to print the right number of required operands. Update the checks themselves to be >= to the same number instead of > one less than the required number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284365
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 17 Oct 2016 06:35:23 +0000 (06:35 +0000)]
ADT: Use LLVM_NODISCARD instead of LLVM_ATTRIBUTE_UNUSED_RESULT for StringRef
Instead of annotating (most of) the StringRef API, we can just
annotate the type directly. This is less code and it will warn in more
cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284364
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 17 Oct 2016 04:26:47 +0000 (04:26 +0000)]
[AVX-512] Add shuffle combining support for vpermi2var shuffles derived from existing support for vpermt2var.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284357
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 17 Oct 2016 04:26:44 +0000 (04:26 +0000)]
[AVX-512] Add vpermi2var test cases to shuffle combining test case. Combining will be added in a future commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284356
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 16 Oct 2016 23:29:51 +0000 (23:29 +0000)]
[AVX-512] Add support for turning a 256-bit load that goes to both halfs of an insert_subvector into a subvector broadcast.
Differential Revision: https://reviews.llvm.org/D25650
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284353
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 22:09:24 +0000 (22:09 +0000)]
unittests: Explicitly ignore some return values in crash tests
Ideally these would actually check that the results are reasonable,
but given that we're looping over so many different kinds of path that
isn't really practical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284350
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 22:01:22 +0000 (22:01 +0000)]
Support: Return void from Scanner::scan_ns_uri_char, no one uses the result
Simplify this a little bit since the result is never used. It can be
added back easily enough if that changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284348
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 21:18:26 +0000 (21:18 +0000)]
MachineModuleInfo: Prefer the LLVM_NODISCARD spelling
Update a function annotated with LLVM_ATTRIBUTE_UNUSED_RESULT to use
LLVM_NODISCARD instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284346
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 21:17:29 +0000 (21:17 +0000)]
SCEV: Prefer the LLVM_NODISCARD spelling
Update functions annotated with LLVM_ATTRIBUTE_UNUSED_RESULT to use
LLVM_NODISCARD instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284345
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 20:56:20 +0000 (20:56 +0000)]
Support: Prefer the LLVM_NODISCARD spelling
Update functions annotated with LLVM_ATTRIBUTE_UNUSED_RESULT to use
LLVM_NODISCARD instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284344
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 20:42:34 +0000 (20:42 +0000)]
ADT: Prefer the LLVM_NODISCARD spelling
Update functions annotated with LLVM_ATTRIBUTE_UNUSED_RESULT to use
LLVM_NODISCARD instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284343
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sun, 16 Oct 2016 20:30:40 +0000 (20:30 +0000)]
ADT: Use LLVM_NODISCARD instead of LLVM_ATTRIBUTE_UNUSED_RESULT for ArrayRef
Instead of annotating (most of) the ArrayRef API, we can just annotate
the type directly. This is less code and it will warn in more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284342
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 16 Oct 2016 17:49:09 +0000 (17:49 +0000)]
PR30711: Fix incorrect profiling of 'long long' in FoldingSet, then use it to
fix TBAA violation in profiling of pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284336
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 16 Oct 2016 04:54:35 +0000 (04:54 +0000)]
[AVX-512] Fix the operand order for vpermi2var_qi intrinsics to match the other vpermi2var intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284329
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 16 Oct 2016 04:54:31 +0000 (04:54 +0000)]
[AVX-512] Correct execution domain for VPERMT2PS and VPERMI2PS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284328
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 16 Oct 2016 04:54:26 +0000 (04:54 +0000)]
[AVX-512] Move (v4i64 (X86SubVBroadcast (v2i64))) alternate patterns under a HasVLX predicate. Similar for floating point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284327
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sun, 16 Oct 2016 01:09:39 +0000 (01:09 +0000)]
[ArmFastISel] Kill dead code. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284320
91177308-0d34-0410-b5e6-
96231b3b80d8
Konstantin Zhuravlyov [Sat, 15 Oct 2016 22:01:18 +0000 (22:01 +0000)]
[MachineMemOperand] Move synchronization scope and atomic orderings from SDNode to MachineMemOperand, and remove redundant getAtomic* member functions from SelectionDAG.
Differential Revision: https://reviews.llvm.org/D24577
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284312
91177308-0d34-0410-b5e6-
96231b3b80d8
Davide Italiano [Sat, 15 Oct 2016 21:35:23 +0000 (21:35 +0000)]
[GVN/PRE] Hoist global values outside of loops.
In theory this could be generalized to move anything where
we prove the operands are available, but that would require
rewriting PRE. As NewGVN will hopefully come soon, and we're
trying to rewrite PRE in terms of NewGVN+MemorySSA, it's probably
not worth spending too much time on it. Fix provided by
Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284311
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 15 Oct 2016 19:29:26 +0000 (19:29 +0000)]
[X86][SSE] Added some basic examples of knownbits failing for vector types
computeKnownBits only returns the common bits of each vector element instead of only the elements that are actually used
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284308
91177308-0d34-0410-b5e6-
96231b3b80d8
Li Huang [Sat, 15 Oct 2016 19:00:04 +0000 (19:00 +0000)]
Test commit. (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284307
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Sat, 15 Oct 2016 18:56:38 +0000 (18:56 +0000)]
[X86] Regenerate known bits test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284306
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 15 Oct 2016 16:26:07 +0000 (16:26 +0000)]
[AVX-512] Add shuffle comments for vbroadcast instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284305
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 15 Oct 2016 16:26:02 +0000 (16:26 +0000)]
[AVX-512] Rename VPBROADCASTI32X2 and VPBROADCASTF32X2 instruction classes to match the mnemonic which does not include a 'P'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284304
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 15 Oct 2016 13:15:05 +0000 (13:15 +0000)]
[SimplifyCFG] Use the error checking provided by getPrevNode.
BasicBlock::size is O(insts), making this loop O(blocks*insts), which
can be really slow on generated code. getPrevNode already checks if
we're at the beginning of the block and returns nullptr if so, just use
that instead. No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284303
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 15 Oct 2016 04:00:07 +0000 (04:00 +0000)]
[libFuzzer] swap bytes in integers when handling CMP traces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284301
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 15 Oct 2016 01:00:24 +0000 (01:00 +0000)]
[libFuzzer] better algorithm for -minimize_crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284299
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 15 Oct 2016 00:58:14 +0000 (00:58 +0000)]
AMDGPU/SI: Handle s_getreg hazard in GCNHazardRecognizer
Reviewers: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye
Differential Revision: https://reviews.llvm.org/D25526
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284298
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 15 Oct 2016 00:22:06 +0000 (00:22 +0000)]
ADT: Use LLVM_NODISCARD instead of LLVM_ATTRIBUTE_UNUSED_RESULT for APInt
Instead of annotating (most of) the APInt API, we can just annotate
the type directly. This is less code and it will warn in more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284297
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeny Astigeevich [Fri, 14 Oct 2016 23:00:36 +0000 (23:00 +0000)]
[NFC] Loop Versioning for LICM code clean up
- Removed unused class members.
- Made class internal data private.
- Made class scoped data function scoped where it's possible.
- Replace naked new/delete with unique_ptr.
- Made resources guaranteed to be freed.
Differential Revision: https://reviews.llvm.org/D25464
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284290
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 14 Oct 2016 22:18:18 +0000 (22:18 +0000)]
GlobalISel: rename legalizer components to match others.
The previous names were both misleading (the MachineLegalizer actually
contained the info tables) and inconsistent with the selector & translator (in
having a "Machine") prefix. This should make everything sensible again.
The only functional change is the name of a couple of command-line options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284287
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 14 Oct 2016 22:04:17 +0000 (22:04 +0000)]
Support: Add LLVM_NODISCARD with C++17's [[nodiscard]] semantics
This is essentially a more powerful version of our current
LLVM_ATTRIBUTE_UNUSED_RESULT, in that it can also be applied to types
and generate warnings whenever an object of that type is returned by
value and the value is discarded.
I'll replace uses of LLVM_ATTRIBUTE_UNUSED_RESULT and remove that
macro in follow up commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284286
91177308-0d34-0410-b5e6-
96231b3b80d8
Mehdi Amini [Fri, 14 Oct 2016 21:32:35 +0000 (21:32 +0000)]
hardware_physical_concurrency() should return 1 when LLVM is built with LLVM_ENABLE_THREADS=OFF
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284283
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 14 Oct 2016 21:25:29 +0000 (21:25 +0000)]
PowerPC: specify full triple to avoid different Darwin asm syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284281
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 14 Oct 2016 20:52:43 +0000 (20:52 +0000)]
[ARM] add tests for PR30660
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284280
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 14 Oct 2016 20:51:41 +0000 (20:51 +0000)]
[PowerPC] add tests for PR30661
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284279
91177308-0d34-0410-b5e6-
96231b3b80d8
Guozhi Wei [Fri, 14 Oct 2016 20:41:50 +0000 (20:41 +0000)]
[PPC] Shorter sequence to load 64bit constant with same hi/lo words
This is a patch to implement pr30640.
When a 64bit constant has the same hi/lo words, we can use rldimi to copy the low word into high word of the same register.
This optimization caused failure of test case bperm.ll because of not optimal heuristic in function SelectAndParts64. It chooses AND or ROTATE to extract bit groups from a register, and OR them together. This optimization lowers the cost of loading 64bit constant mask used in AND method, and causes different code sequence. But actually ROTATE method is better in this test case. The reason is in ROTATE method the final OR operation can be avoided since rldimi can insert the rotated bits into target register directly. So this patch also enhances SelectAndParts64 to prefer ROTATE method when the two methods have same cost and there are multiple bit groups need to be ORed together.
Differential Revision: https://reviews.llvm.org/D25521
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284276
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 14 Oct 2016 20:26:40 +0000 (20:26 +0000)]
[libFuzzer] remove subdir fuzzer-test-suite as it is now superseded with https://github.com/google/fuzzer-test-suite
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284275
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 14 Oct 2016 20:20:33 +0000 (20:20 +0000)]
[libFuzzer] add -trace_cmp=1 (guiding mutations based on the observed CMP instructions). This is a reincarnation of the previously deleted -use_traces, but using a different approach for collecting traces. Still a toy, but at least it scales well. Also fix -merge in trace-pc-guard mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284273
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 14 Oct 2016 19:48:34 +0000 (19:48 +0000)]
vim: add `norecurse` attribute
Add missing attribute to the keyword set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284270
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Fri, 14 Oct 2016 19:48:31 +0000 (19:48 +0000)]
vim: add `comdat` keyword
The attribute may be applied to a function. Highlight it as a keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284269
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 14 Oct 2016 19:46:31 +0000 (19:46 +0000)]
[DAG] avoid creating illegal node when transforming negated shifted sign bit
Eli noted this potential bug in the post-commit thread for:
https://reviews.llvm.org/rL284239
...but I'm not sure how to trigger it, so there's no test case yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284268
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 14 Oct 2016 19:14:29 +0000 (19:14 +0000)]
AMDGPU/SI: Use new SimplifyDemandedBits helper for multi-use operations
Summary:
We are using this helper for our 24-bit arithmetic combines, so we are now able to eliminate multi-use operations that mask the high-bits of 24-bit inputs (e.g. and x, 0xffffff)
Reviewers: arsenm, nhaehnle
Subscribers: tony-tye, arsenm, kzhuravl, wdng, nhaehnle, llvm-commits, yaxunl
Differential Revision: https://reviews.llvm.org/D24672
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284267
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 14 Oct 2016 19:14:26 +0000 (19:14 +0000)]
TargetLowering: Add SimplifyDemandedBits() helper to TargetLoweringOpt
Summary:
The main purpose of this new helper is to enable simplifying operations that
have multiple uses. SimplifyDemandedBits does not handle multiple uses
currently, and this new function makes it possible to optimize:
and v1, v0, 0xffffff
mul24 v2, v1, v1 ; Multiply ignoring high 8-bits.
To:
mul24 v2, v0, v0
Where before this would not be optimized, because v1 has multiple uses.
Reviewers: bogner, arsenm
Subscribers: nhaehnle, wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D24964
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284266
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 14 Oct 2016 19:06:25 +0000 (19:06 +0000)]
The real fix for post-r284255 failures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284264
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 14 Oct 2016 18:36:42 +0000 (18:36 +0000)]
Workaround to eliminate check-llvm failures after r284255
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284262
91177308-0d34-0410-b5e6-
96231b3b80d8
David L Kreitzer [Fri, 14 Oct 2016 18:20:41 +0000 (18:20 +0000)]
Add a pass to optimize patterns of vectorized interleaved memory accesses for
X86. The pass optimizes as a unit the entire wide load + shuffles pattern
produced by interleaved vectorization. This initial patch optimizes one pattern
(64-bit elements interleaved by a factor of 4). Future patches will generalize
to additional patterns.
Patch by Farhana Aleen
Differential revision: http://reviews.llvm.org/D24681
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284260
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 14 Oct 2016 18:10:39 +0000 (18:10 +0000)]
AMDGPU/SI: Don't allow unaligned scratch access
Summary: The hardware doesn't support this.
Reviewers: arsenm
Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye
Differential Revision: https://reviews.llvm.org/D25523
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284257
91177308-0d34-0410-b5e6-
96231b3b80d8