OSDN Git Service
Peter Collingbourne [Sat, 16 Jan 2016 00:31:11 +0000 (00:31 +0000)]
Introduce sanstats tool and llvm::CreateSanitizerStatReport function.
This is part of a new statistics gathering feature for the sanitizers.
See clang/docs/SanitizerStats.rst for further info and docs.
Differential Revision: http://reviews.llvm.org/D16174
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257970
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 16 Jan 2016 00:20:03 +0000 (00:20 +0000)]
[WebAssembly] Add some more README.txt entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257969
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Sat, 16 Jan 2016 00:14:21 +0000 (00:14 +0000)]
CRLF -> LF. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257967
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Sat, 16 Jan 2016 00:09:09 +0000 (00:09 +0000)]
[codeview] Remove custom line info struct in favor of DebugLoc
The only functional change would be that we might emit multiple filename
segments on code like this:
void f() {
#include "p1/../t.h"
#include "p2/../t.h"
}
I believe these get separate DIFile metadata nodes, but will have the
same canonicalized absolute path. Previously by computing the path up
front and comparing it we would merge the line info segments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257966
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin B. Smith [Sat, 16 Jan 2016 00:08:36 +0000 (00:08 +0000)]
[X86]: Make param names in header and body match for isCalleePop.
Differential Revision: http://reviews.llvm.org/D16246
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257965
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Sat, 16 Jan 2016 00:04:36 +0000 (00:04 +0000)]
[libFuzzer] move some code from public interface header to a non-public header. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257963
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 23:59:13 +0000 (23:59 +0000)]
[WebAssembly] Don't create a needless .note.GNU-stack section
WebAssembly's stack will never be executable by default, so it isn't
necessary to declare .note.GNU-stack sections to request a non-executable
stack.
Differential Revision: http://reviews.llvm.org/D15969
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257962
91177308-0d34-0410-b5e6-
96231b3b80d8
Artem Belevich [Fri, 15 Jan 2016 23:57:53 +0000 (23:57 +0000)]
[NVPTX] Do not emit .hidden or .protected directives as they are not allowed by PTX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257961
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 23:47:19 +0000 (23:47 +0000)]
[WebAssembly] Re-enable a test.
Out-of-tree projects that don't support this can disable the test for
themselves rather than having it disabled in LLVM itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257960
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 23:19:06 +0000 (23:19 +0000)]
[Orc] Replace switch cases with a macro.
The cases of this switch are all perfectly regular (except for the first case).
A macro is more readable here.
Thanks to Dave Blaikie for the suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257951
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 15 Jan 2016 23:07:58 +0000 (23:07 +0000)]
[opaque pointer types] Remove an unnecessary extra explicit value type in Function
Now that this is up in GlobalValue, just use the value there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257949
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthias Braun [Fri, 15 Jan 2016 22:22:04 +0000 (22:22 +0000)]
ValueTracking: Put DataLayout reference into the Query structure, NFC.
It looks nicer and improves the compiletime of a typical
clang -O3 -emit-llvm run by ~0.6% for me.
Differential Revision: http://reviews.llvm.org/D16205
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257944
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 22:09:13 +0000 (22:09 +0000)]
[codeview] Handle multiple frame descriptions in readobj
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257943
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 22:07:35 +0000 (22:07 +0000)]
Remove a now-empty file left behind by r257940.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257942
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jan 2016 21:56:40 +0000 (21:56 +0000)]
[SelectionDAG] CSE nodes with differing SDNodeFlags
In the optimizer (GVN etc.) when eliminating redundant nodes with different
flags, the flags are ignored for the purposes of testing for congruence, and
then intersected for the purposes of producing a result that supports the union
of all the uses. This commit makes SelectionDAG's CSE do the same thing,
allowing it to CSE nodes in more cases. This fixes PR26063.
Differential Revision: http://reviews.llvm.org/D15957
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257940
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 21:35:24 +0000 (21:35 +0000)]
[Orc] Make FDRPCChannel final.
This class is in the LLI tool, and isn't subclassed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257937
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 15 Jan 2016 21:21:39 +0000 (21:21 +0000)]
PM: Fix an inverted condition in simplifyFunctionCFG
I mentioned the issue here in code review way back in September and
was sure we'd fixed it, but apparently we forgot:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-
20150921/301850.html
In any case, as soon as you try to use this pass in anything but the
most basic pipeline everything falls apart. Fix the condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257935
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Fri, 15 Jan 2016 21:16:19 +0000 (21:16 +0000)]
[WinEH] Rename CatchReturnInst::getParentPad, NFC
Summary:
Rename to getCatchSwitchParentPad, to make it more clear which ancestor
the "parent" in question is. Add a comment pointing out the key feature
that the returned pad indicates which funclet contains the successor
block.
Reviewers: rnk, andrew.w.kaylor, majnemer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16222
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257933
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 21:14:05 +0000 (21:14 +0000)]
[Orc] Remove some reinterpret casts in debugging output.
These casts were from function pointer to data pointer type, which some
compilers (including GCC) may warn about. In all cases where these casts were
used the original value was still available as a TargetAddress (uint64_t), so
we can just print a formatted version of that instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257932
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 20:24:11 +0000 (20:24 +0000)]
CXX_FAST_TLS calling convention: fix issue on ARM.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257930
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 20:13:28 +0000 (20:13 +0000)]
CXX_FAST_TLS calling convention: fix issue on AArch64.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257929
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Fri, 15 Jan 2016 19:37:14 +0000 (19:37 +0000)]
[Orc] Add a void cast to work around a GCC diagnostic bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257927
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 15 Jan 2016 19:35:42 +0000 (19:35 +0000)]
CXX_FAST_TLS calling convention: fix issue on X86-64.
When we have a single basic block, the explicit copy-back instructions should
be inserted right before the terminator. Before this fix, they were wrongly
placed at the beginning of the basic block.
I will commit fixes to other platforms as well.
PR26136
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257925
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 15 Jan 2016 19:22:41 +0000 (19:22 +0000)]
Fix -Wmismatched-tags warning/error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257924
91177308-0d34-0410-b5e6-
96231b3b80d8
Kyle Butt [Fri, 15 Jan 2016 19:20:06 +0000 (19:20 +0000)]
Codegen: [PPC] Silence false-positive initialization warning. NFC
Some compilers don't do exhaustive switch checking. For those compilers,
add an initialization to prevent un-initialized variable warnings from
firing. For compilers with exhaustive switch checking, we still get a
guarantee that the switch is exhaustive, and hence the initializations
are redundant, and a non-functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257923
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Fri, 15 Jan 2016 19:01:04 +0000 (19:01 +0000)]
[PGO] Commonize (more) index profile file and buffer writer.
The file and buffer writer code are mostly shared except for the
stream back-patching. This is because raw_string_ostream does not
support seek like interface. The result is that the data patching
code needs to be pushed to the caller which is not quite readable
(passing around offset, value etc). This also makes future enhancement
(which needs more patching) more difficult (and can make impl messy).
In this patch, two types of streams needed by the writer are now
unified with same set of interfaces under ProfOStream class. The patch
method is added so that common implementation becomes cleaner. It
also enables future enhancement. Should be NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257921
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 19:00:20 +0000 (19:00 +0000)]
Bring back "Assert that we have all use/users in the getters."
This reverts commit r257751, bringing back r256105.
The problem the assert found was fixed in r257915.
Original commit message:
Assert that we have all use/users in the getters.
An error that is pretty easy to make is to use the lazy bitcode reader
and then do something like
if (V.use_empty())
The problem is that uses in unmaterialized functions are not accounted
for.
This patch adds asserts that all uses are known.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257920
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:55:12 +0000 (18:55 +0000)]
Revert "[ARM] Add ARMv8-M security extension instructions to ARMv8-M Baseline/Mainline"
This reverts commit r257883.
Somehow this didn't make it into r257916.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257919
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 15 Jan 2016 18:51:51 +0000 (18:51 +0000)]
Reapply r257800 with fix
The fix uniques the bundle of getelementptr indices we are about to vectorize
since it's possible for the same index to be used by multiple instructions.
The original commit message is below.
[SLP] Vectorize the index computations of getelementptr instructions.
This patch seeds the SLP vectorizer with getelementptr indices. The primary
motivation in doing so is to vectorize gather-like idioms beginning with
consecutive loads (e.g., g[a[0] - b[0]] + g[a[1] - b[1]] + ...). While these
cases could be vectorized with a top-down phase, seeding the existing bottom-up
phase with the index computations avoids the complexity, compile-time, and
phase ordering issues associated with a full top-down pass. Only bundles of
single-index getelementptrs with non-constant differences are considered for
vectorization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257918
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:31:29 +0000 (18:31 +0000)]
# This is a combination of 2 commits.
# The first commit's message is:
Revert "[ARM] Add DSP build attribute and extension targeting"
This reverts commit
b11cc50c0b4a7c8cdb628abc50b7dc226ff583dc.
# This is the 2nd commit message:
Revert "[ARM] Add new system registers to ARMv8-M Baseline/Mainline"
This reverts commit
837d08454e3e5beb8581951ac26b22fa07df3cd5.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257916
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 18:23:46 +0000 (18:23 +0000)]
Don't try to check all uses if lazy loading.
This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set
in a few cases.
This should have no impact in ld64 since it doesn't use lazy loading
when merging modules and that is when it checks
LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257915
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:21:34 +0000 (18:21 +0000)]
Recommit r257912
Added forgotten ELFDumper.cpp to commit.
Initial commit message:
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257914
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:19:06 +0000 (18:19 +0000)]
Revert r257912 - forgot to commit one file.
Initial commit message:
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
----
Added : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table-so.aarch64
Modified : /llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table.c
Modified : /llvm/trunk/test/tools/llvm-readobj/dynamic.test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257913
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:13:59 +0000 (18:13 +0000)]
[llvm-readobj] Add support for TLSDESC_PLT and TLSDESC_GOT dynamic section tags to the llvm-readobj.
If module uses uses lazy TLSDESC relocations it should define DT_TLSDESC_PLT and DT_TLSDESC_GOT entries.
They were unknown for llvm-readobj before this patch.
Differential revision: http://reviews.llvm.org/D16224
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257912
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Fri, 15 Jan 2016 18:09:27 +0000 (18:09 +0000)]
[Support/ELF] - Added DT_TLSDESC_PLT and DT_TLSDESC_GOT constants.
Added 2 constants:
DT_TLSDESC_PLT = 0x6FFFFEF6, Location of PLT entry for TLS descriptor resolver calls.
DT_TLSDESC_GOT = 0x6FFFFEF7, Location of GOT entry used by TLS descriptor resolver PLT entry.
Constants were taken from "Thread-Local Storage Descriptors for IA32 and AMD64/EM64T Version 0.9.5" http://www.fsfla.org/~lxoliva/writeups/TLS/RFC-TLSDESC-x86.txt
Differential revision: http://reviews.llvm.org/D16185
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257911
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 18:06:25 +0000 (18:06 +0000)]
[codeview] Dump the file checksum substream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257910
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Fri, 15 Jan 2016 17:49:46 +0000 (17:49 +0000)]
[CMake] Need to install VersionFromVCS.cmake as part of LLVM's CMake modules
This is required to support clang --version detecting the clang repository information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257909
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 15 Jan 2016 17:04:45 +0000 (17:04 +0000)]
test-release.sh: Fix clang-tools-extra symlink for CMake build
The CMake and Autoconf builds want the symlink set up differently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257905
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 16:40:20 +0000 (16:40 +0000)]
Add a test showing when ld64 can hide linkonce_odr symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257903
91177308-0d34-0410-b5e6-
96231b3b80d8
James Y Knight [Fri, 15 Jan 2016 16:33:06 +0000 (16:33 +0000)]
Stop increasing alignment of externally-visible globals on ELF
platforms.
With ELF, the alignment of a global variable in a shared library will
get copied into an executables linked against it, if the executable even
accesss the variable. So, it's not possible to implicitly increase
alignment based on access patterns, or you'll break existing binaries.
This happened to affect libc++'s std::cout symbol, for example. See
thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311
(This is a re-commit of r257719, without the bug reported in
PR26144. I've tweaked the code to not assert-fail in
enforceKnownAlignment when computeKnownBits doesn't recurse far enough
to find the underlying Alloca/GlobalObject value.)
Differential Revision: http://reviews.llvm.org/D16145
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257902
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Jan 2016 16:16:46 +0000 (16:16 +0000)]
Make sure this test is actually executed.
Before it was always unsupported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257899
91177308-0d34-0410-b5e6-
96231b3b80d8
Silviu Baranga [Fri, 15 Jan 2016 15:52:05 +0000 (15:52 +0000)]
Re-commit r257064, after it was reverted in r257340.
This contains a fix for the issue that caused the revert:
we no longer assume that we can insert instructions after the
instruction that produces the base pointer. We previously
assumed that this would be ok, because the instruction produces
a value and therefore is not a terminator. This is false for invoke
instructions. We will now insert these new instruction directly
at the location of the users.
Original commit message:
[InstCombine] Look through PHIs, GEPs, IntToPtrs and PtrToInts to expose more constants when comparing GEPs
Summary:
When comparing two GEP instructions which have the same base pointer
and one of them has a constant index, it is possible to only compare
indices, transforming it to a compare with a constant. This removes
one use for the GEP instruction with the constant index, can reduce
register pressure and can sometimes lead to removing the comparisson
entirely.
InstCombine was already doing this when comparing two GEPs if the base
pointers were the same. However, in the case where we have complex
pointer arithmetic (GEPs applied to GEPs, PHIs of GEPs, conversions to
or from integers, etc) the value of the original base pointer will be
hidden to the optimizer and this transformation will be disabled.
This change detects when the two sides of the comparison can be
expressed as GEPs with the same base pointer, even if they don't
appear as such in the IR. The transformation will convert all the
pointer arithmetic to arithmetic done on indices and all the relevant
uses of GEPs to GEPs with a common base pointer. The GEP comparison
will be converted to a comparison done on indices.
Reviewers: majnemer, jmolloy
Subscribers: hfinkel, jevinskie, jmolloy, aadg, llvm-commits
Differential Revision: http://reviews.llvm.org/D15146
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257897
91177308-0d34-0410-b5e6-
96231b3b80d8
Artur Pilipenko [Fri, 15 Jan 2016 15:27:46 +0000 (15:27 +0000)]
Change isSafeToLoadUnconditionally arguments order. Separated from reviews.llvm.org/D10920.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257894
91177308-0d34-0410-b5e6-
96231b3b80d8
Joseph Tremoulet [Fri, 15 Jan 2016 15:08:36 +0000 (15:08 +0000)]
[InstructionsTest] delete via unique_ptr (NFC)
Summary:
Simplify the memory management of mock IR in test AlterInvokeBundles.
Reviewers: dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16211
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257892
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 15 Jan 2016 14:08:31 +0000 (14:08 +0000)]
[Hexagon] Generate CONST64 when optimizing for size in copy-to-combine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257891
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Fri, 15 Jan 2016 13:55:57 +0000 (13:55 +0000)]
[Hexagon] Handle DBG_VALUE instructions in copy-to-combine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257890
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Fri, 15 Jan 2016 13:10:46 +0000 (13:10 +0000)]
Revert "[SLP] Vectorize the index computations of getelementptr instructions."
This reverts commit r257800.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257888
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 15 Jan 2016 10:36:01 +0000 (10:36 +0000)]
[CodeGenPrepare] Try and appease sanitizers
dupRetToEnableTailCallOpts(BB) can invalidate BB. It must run *after* we iterate across BB!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257886
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:28:25 +0000 (10:28 +0000)]
[ARM] Add DSP build attribute and extension targeting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257885
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:28:03 +0000 (10:28 +0000)]
[ARM] Add new system registers to ARMv8-M Baseline/Mainline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257884
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:27:14 +0000 (10:27 +0000)]
[ARM] Add ARMv8-M security extension instructions to ARMv8-M Baseline/Mainline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257883
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:26:51 +0000 (10:26 +0000)]
[ARM] Add ARMv8-A semaphore/atomic instructions to ARMv8-M Baseline/Mainline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257882
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:26:17 +0000 (10:26 +0000)]
[ARM] Add B.W and CBZ instructions to ARMv8-M Baseline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257881
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:25:35 +0000 (10:25 +0000)]
[ARM] Add SDIV/UDIV instructions to ARMv8-M Baseline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257880
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:25:14 +0000 (10:25 +0000)]
[ARM] Add MOVW/MOVT instructions to ARMv8-M Baseline/Mainline
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257879
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:24:39 +0000 (10:24 +0000)]
[ARM] Add ARMv8-M Baseline/Mainline LLVM targeting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257878
91177308-0d34-0410-b5e6-
96231b3b80d8
Bradley Smith [Fri, 15 Jan 2016 10:23:46 +0000 (10:23 +0000)]
[ARM] Split out ARMv8-A semaphores and atomics and ARMv7 clrex as separate features
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257877
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Fri, 15 Jan 2016 09:52:50 +0000 (09:52 +0000)]
[X86][SSE] Added more exhaustive merge consecutive load tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257876
91177308-0d34-0410-b5e6-
96231b3b80d8
James Molloy [Fri, 15 Jan 2016 09:20:19 +0000 (09:20 +0000)]
[InstCombine] Rewrite bswap/bitreverse handling completely.
There are several requirements that ended up with this design;
1. Matching bitreversals is too heavyweight for InstCombine and doesn't really need to be done so early.
2. Bitreversals and byteswaps are very related in their matching logic.
3. We want to implement support for matching more advanced bswap/bitreverse patterns like partial bswaps/bitreverses.
4. Bswaps are best matched early in InstCombine.
The result of these is that a new utility function is created in Transforms/Utils/Local.h that can be configured to search for bswaps, bitreverses or both. InstCombine uses it to find only bswaps, CGP uses it to find only bitreversals.
We can then extend the matching logic in one place only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257875
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Paulsson [Fri, 15 Jan 2016 07:12:09 +0000 (07:12 +0000)]
[SystemZ] Fix bad instruction name
SLGBR -> SLBGR
Reviewed by Ulrich Weigand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257874
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 15 Jan 2016 06:24:05 +0000 (06:24 +0000)]
[libFuzzer] do mutations based on memcmp/strcmp interceptors under a separate flag (-use_memcmp, default=1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257873
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Wilkins [Fri, 15 Jan 2016 03:33:35 +0000 (03:33 +0000)]
[docs] Document LLVM_{BUILD,LINK}_LLVM_DYLIB
Summary:
Document the LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB
CMake options, move BUILD_SHARED_LIBS out of frequently-used,
and add a note/warning to BUILD_SHARED_LIBS.
Reviewers: beanz, delcypher, mjacob
Subscribers: mjacob, llvm-commits
Differential Revision: http://reviews.llvm.org/D16208
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257864
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 15 Jan 2016 02:24:12 +0000 (02:24 +0000)]
Delete MCRelocationInfo::createExprForRelocation.
This method has no callers.
Also remove X86ELFRelocationInfo.cpp and X86MachORelocationInfo.cpp
which only existed to provide an implementation of that method.
Ok'd by Rafael and Jim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257859
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 15 Jan 2016 02:14:46 +0000 (02:14 +0000)]
lli: use llvm::utostr() instead of std::to_string().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257857
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 15 Jan 2016 02:13:04 +0000 (02:13 +0000)]
[autoconf] Install VersionFromVCS.cmake, too. clang/CMakeLists.txt requires it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257856
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Fri, 15 Jan 2016 02:12:38 +0000 (02:12 +0000)]
Once again revert debug info verifier changes
Yet another wave of buildbot failures (though fewer this time).
I'm only reverting the Verifier changes, as the test cases
will be fine without them as well, and touching them as often
just introduces unnecessary churn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257855
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Fri, 15 Jan 2016 00:46:17 +0000 (00:46 +0000)]
Reapply r257105 "[Verifier] Check that debug values have proper size"
I originally reapplied this in 257550, but had to revert again due to bot
breakage. The only change in this version is to allow either the TypeSize
or the TypeAllocSize of the variable to be the one represented in debug info
(hopefully in the future we can figure out how to encode the difference).
Additionally, several bot failures following r257550, were due to
optimizer bugs now fixed in r257787 and r257795.
r257550 commit message was:
```
The follow extra changes were made to test cases:
Manually making the variable be the actual type instead of a pointer
to avoid pointer-size differences in generic code:
LLVM :: DebugInfo/Generic/2010-03-24-MemberFn.ll
LLVM :: DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll
LLVM :: DebugInfo/Generic/2010-05-03-DisableFramePtr.ll
LLVM :: DebugInfo/Generic/varargs.ll
Delete sizing information from debug info for the same reason
(but the presence of the pointer was important to the test case):
LLVM :: DebugInfo/Generic/restrict.ll
LLVM :: DebugInfo/Generic/tu-composite.ll
LLVM :: Linker/type-unique-type-array-a.ll
LLVM :: Linker/type-unique-simple2.ll
Fixing an incorrect DW_OP_deref
LLVM :: DebugInfo/Generic/2010-05-03-OriginDIE.ll
Fixing a missing DW_OP_deref
LLVM :: DebugInfo/Generic/incorrect-variable-debugloc.ll
Additionally, clang should no longer complain during bootstrap should no
longer happen after r257534.
The original commit message was:
``
Summary:
Teach the Verifier to make sure that the storage size given to llvm.dbg.declare
or the value size given to llvm.dbg.value agree with what is declared in
DebugInfo. This is implicitly assumed in a number of passes (e.g. in SROA).
Additionally this catches a number of common mistakes, such as passing a
pointer when a value was intended or vice versa.
One complication comes from stack coloring which modifies the original IR when
it merges allocas in order to make sure that if AA falls back to the IR it gets
the correct result. However, given this new invariant, indiscriminately
replacing one alloca by a different (differently sized one) is no longer valid.
Fix this by just undefing out any use of the alloca in a dbg.declare in this
case.
Additionally, I had to fix a number of test cases. Of particular note:
- I regenerated dbg-changes-codegen-branch-folding.ll from the given source as
it was affected by the bug fixed in r256077
- two-cus-from-same-file.ll was changed to avoid having a variable-typed debug
variable as that would depend on the target, even though this test is
supposed to be generic
- I had to manually declared size/align for reference type. See also the
discussion for D14275/r253186.
- fpstack-debuginstr-kill.ll required changing `double` to `long double`
- most others were just a question of adding OP_deref
``
```
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257850
91177308-0d34-0410-b5e6-
96231b3b80d8
Amaury Sechet [Fri, 15 Jan 2016 00:23:34 +0000 (00:23 +0000)]
LLVMRunStaticConstructors can be called before object is finalized, #24028
Summary: Since you cannot call finalizeObject manually through the C-API and other functions from the C-API automatically call it, LLVMRunStaticConstructors should also call it or otherwise you cannot call it without first calling a workaround function (or call any other function from the C-API which implicitly finalizes the object).
Reviewers: dnovillo, spatel, bkramer, deadalnix, joker.eph, echristo, lhames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16188
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257849
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Fri, 15 Jan 2016 00:17:37 +0000 (00:17 +0000)]
[libFuzzer] use custom stol; also introduce __libfuzzer_is_present so that users can check for its presence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257848
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Fri, 15 Jan 2016 00:13:39 +0000 (00:13 +0000)]
[docs] Restructure description of records created by Statepoints
The previous text was hard to understand even for me and I wrote it. Hopefully the new structure makes it a bit more clear what's going on. If anyone has word smithing suggestion or clarification questions, please let me know.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257847
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Fri, 15 Jan 2016 00:11:21 +0000 (00:11 +0000)]
[codeview] Translate file table offsets to filenames and print them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257846
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Fri, 15 Jan 2016 00:08:10 +0000 (00:08 +0000)]
rangify; NFCI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257845
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Fri, 15 Jan 2016 00:06:58 +0000 (00:06 +0000)]
Fix AArch64ConditionOptimizer
Summary:
This pass may modify the Cmp operands. However, the flag reg may be used by both the branch and CSEL.
Modifying CMP will have side effect on CSEL.
Reviewers: t.p.northover
Subscribers: llvm-commits, aemerson, rengolin
Differential Revision: http://reviews.llvm.org/D16147
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257844
91177308-0d34-0410-b5e6-
96231b3b80d8
Philip Reames [Thu, 14 Jan 2016 23:58:18 +0000 (23:58 +0000)]
[docs] Update Statepoint docs to clarify format for recent changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257843
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 14 Jan 2016 23:33:43 +0000 (23:33 +0000)]
Orc: Simplify some things with NSDMIs and some braced init.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257840
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Thu, 14 Jan 2016 23:23:04 +0000 (23:23 +0000)]
remove duplicate documentation comments (already in the header file) ; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257835
91177308-0d34-0410-b5e6-
96231b3b80d8
Easwaran Raman [Thu, 14 Jan 2016 23:16:29 +0000 (23:16 +0000)]
Refactor threshold computation for inline cost analysis
Differential Revision: http://reviews.llvm.org/D15401
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257832
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Thu, 14 Jan 2016 22:44:29 +0000 (22:44 +0000)]
[CMake] Add support for populating LLVM_REPOSITORY from CMake.
Autoconf does this in the GetRepositoryPath script, CMake's VersionFromVCS does grab the SVN_REVISION, but doesn't populate the repository URL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257826
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 22:42:02 +0000 (22:42 +0000)]
[Verifier] Check parentage of GVs in dbg metadata
Summary:
Before this the Verifier didn't complain if the GlobalVariable
referenced from a DIGlobalVariable was not in fact in the correct
module (it would crash while writing bitcode though). Fix this by
always checking parantage of GlobalValues while walking constant
expressions and changing the DIGlobalVariable visitor to also
visit the constant it contains.
Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D16059
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257825
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Aizatsky [Thu, 14 Jan 2016 22:34:11 +0000 (22:34 +0000)]
[sancov] html report
Differential Revision: http://reviews.llvm.org/D16161
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257824
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 22:20:56 +0000 (22:20 +0000)]
[Verifier] Verify that a GlobalValue is only used in this Module
Summary:
We already have the inverse verification that we only use globals
that are defined in this module. This essentially catches the
same mistake, but when verifying the module that contains the
definition.
Reviewers: rafael
Differential Revision: http://reviews.llvm.org/D15272
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257823
91177308-0d34-0410-b5e6-
96231b3b80d8
Xinliang David Li [Thu, 14 Jan 2016 22:10:49 +0000 (22:10 +0000)]
[PGO] Move profile summary interface/impl into InstrProf.[*] /NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257819
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 14 Jan 2016 22:02:03 +0000 (22:02 +0000)]
[Orc] Add support for EH-frame registration to the Orc Remote Target utility
classes.
OrcRemoteTargetClient::RCMemoryManager will now register EH frames with the
server automatically. This allows remote-execution of code that uses exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257816
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:59:22 +0000 (21:59 +0000)]
[Hexagon] Use S2_lsr_i_r instead of S2_extractu to obtain upper halfword
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257815
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 21:50:05 +0000 (21:50 +0000)]
[codeview] Dump function callees and add more labels to inlinee info
I kept forgetting which number is the line delta and which is the code
delta.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257813
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:45:43 +0000 (21:45 +0000)]
[Hexagon] Handle HVX registers in bit simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257811
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Jan 2016 21:17:04 +0000 (21:17 +0000)]
[Packetizer] Code cleanup, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257805
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 14 Jan 2016 21:06:47 +0000 (21:06 +0000)]
Update to use new name alignTo().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257804
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Jan 2016 21:03:06 +0000 (21:03 +0000)]
Handle offsets larger than 32 bits.
David Majnemer noticed that it was not obvious what the behavior would
be if B.Offset - A.Offset could not fit in an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257803
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Simpson [Thu, 14 Jan 2016 20:46:27 +0000 (20:46 +0000)]
[SLP] Vectorize the index computations of getelementptr instructions.
This patch seeds the SLP vectorizer with getelementptr indices. The primary
motivation in doing so is to vectorize gather-like idioms beginning with
consecutive loads (e.g., g[a[0] - b[0]] + g[a[1] - b[1]] + ...). While these
cases could be vectorized with a top-down phase, seeding the existing bottom-up
phase with the index computations avoids the complexity, compile-time, and
phase ordering issues associated with a full top-down pass. Only bundles of
single-index getelementptrs with non-constant differences are considered for
vectorization.
Differential Revision: http://reviews.llvm.org/D14829
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257800
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Thu, 14 Jan 2016 20:43:11 +0000 (20:43 +0000)]
[Support] Rename RoundUpToAlignment -> alignTo.
Rounding up an integer m to a nearest multiple of n where n is a power
of 2 is used very often if you are writing code to emit binary files.
RoundUpToAlignment is a small function to do that. But we found that the
function has a small but annoying issue; the name is a bit too long.
Because it is used quite often, that hurts readability.
This patch is to rename the function. The original name is kept as a
forwarder, so that submitting this patch won't immediately break Clang
and other LLVM projects. Once I update all occurrences of RoundUpToAlignment,
I'll remove the old name entirely.
http://reviews.llvm.org/D16162
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257799
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Jan 2016 20:28:25 +0000 (20:28 +0000)]
Assert that a cmp function defines a total order.
Thanks to David Blaikie for noticing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257796
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 20:06:34 +0000 (20:06 +0000)]
[SROA] Also insert a bit piece expression if only one piece is needed
Summary: If SROA creates only one piece (e.g. because the other is not needed),
it still needs to create a bit_piece expression if that bit piece is smaller
than the original size of the alloca.
Reviewers: aprantl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16187
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257795
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Thu, 14 Jan 2016 19:45:36 +0000 (19:45 +0000)]
[CodeGen] Don't assume fp_to_fp16 produces i16 when legalizing it.
Since r230276, we support an improved legalization for f64->f16,
which goes through a temporary f32, improving codegen when
f32->f16 is legal but not f64->f16. This requires unsafe-fp-math.
However, that legalization assumed that the second step, producing
a pseudo-softened f16, had type i16. That's not true on targets
with illegal i16, such as ARM.
Use the initial f64->f16 result type instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257794
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:40:27 +0000 (19:40 +0000)]
Include TypeIndex. Again, the "check" target is not enough to catch this currently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257793
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:25:04 +0000 (19:25 +0000)]
Rename WinCodeViewLineTables to CodeViewDebug, similar to DwarfDebug
Soon it will be responsible for more than line tables.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D16199
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257792
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 14 Jan 2016 19:21:14 +0000 (19:21 +0000)]
Exclude test-suite from CMake builds in test-release.sh
It's broken. In 3.7 there wasn't a CMake build for test-suite at all,
so we're not losing something we had before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257791
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 14 Jan 2016 19:20:17 +0000 (19:20 +0000)]
[codeview] Dump CodeView inlinee lines subsection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257790
91177308-0d34-0410-b5e6-
96231b3b80d8
Keno Fischer [Thu, 14 Jan 2016 19:12:27 +0000 (19:12 +0000)]
[Utils] Fix incorrect dbg.declare store conversion
Summary: The dbg.declare -> dbg.value conversion did not check which operand of
the store instruction the alloca was passed to. As a result code that stored the
address of an alloca, rather than storing to the alloca, would still trigger
the conversion routine, leading to the insertion of an incorrect dbg.value
intrinsic.
Reviewers: aprantl
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D16169
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257787
91177308-0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 14 Jan 2016 18:31:07 +0000 (18:31 +0000)]
dsymutil: Provide better warnings when clang modules cannot be found.
rdar://problem/
22823264
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257784
91177308-0d34-0410-b5e6-
96231b3b80d8