OSDN Git Service

android-x86/external-llvm.git
8 years agoDwarfDebug: Simplify. NFC.
Peter Collingbourne [Wed, 1 Jun 2016 02:58:40 +0000 (02:58 +0000)]
DwarfDebug: Simplify. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271360 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[MC] Rename EmitFill to emitFill
Petr Hosek [Wed, 1 Jun 2016 01:59:58 +0000 (01:59 +0000)]
[MC] Rename EmitFill to emitFill

This is to match the overloaded variants as well as the new style.

Differential Revision: http://reviews.llvm.org/D20690

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271359 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoIR: Allow multiple global metadata attachments with the same type.
Peter Collingbourne [Wed, 1 Jun 2016 01:17:57 +0000 (01:17 +0000)]
IR: Allow multiple global metadata attachments with the same type.

This will be necessary to allow the global merge pass to attach
multiple debug info metadata nodes to global variables once we reverse
the edge from DIGlobalVariable to GlobalVariable.

Differential Revision: http://reviews.llvm.org/D20414

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271358 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReference gdb python type printer scripts from SmallString, SmallVector, ArrayRef...
David Blaikie [Wed, 1 Jun 2016 01:02:32 +0000 (01:02 +0000)]
Reference gdb python type printer scripts from SmallString, SmallVector, ArrayRef, and StringRef

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271357 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDAGCombiner: Fix broken size check in isAlias
Matt Arsenault [Wed, 1 Jun 2016 01:00:36 +0000 (01:00 +0000)]
DAGCombiner: Fix broken size check in isAlias

This should have been converting the size to bytes, but wasn't really.
These should probably all be using getStoreSize instead.

I haven't been able to come up with a meaningful testcase for this.
I can trigger it using combinations of struct loads and stores,
but can't observe a difference in non-broken testcases.

isAlias is only really used during store merging, so I'm not sure how
to get into the vector splitting situation the comment describes
since store merging is only done before type legalization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271356 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDebugInfoPDBTests: Update libdeps for r271346.
NAKAMURA Takumi [Wed, 1 Jun 2016 00:30:15 +0000 (00:30 +0000)]
DebugInfoPDBTests: Update libdeps for r271346.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271355 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[obj2yaml] One more attempt at fixing msan
Chris Bieneman [Wed, 1 Jun 2016 00:10:19 +0000 (00:10 +0000)]
[obj2yaml] One more attempt at fixing msan

Bot URL:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/11834/steps/check-llvm%20msan/logs/stdio

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271353 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agollvm-pdbdump-fuzzer: fix the build
Kostya Serebryany [Tue, 31 May 2016 23:39:31 +0000 (23:39 +0000)]
llvm-pdbdump-fuzzer: fix the build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271352 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Orc] Add conversion to/from RuntimeDyld::SymbolInfo for JITSymbol.
Lang Hames [Tue, 31 May 2016 23:14:26 +0000 (23:14 +0000)]
[Orc] Add conversion to/from RuntimeDyld::SymbolInfo for JITSymbol.

This tidies up some code that was manually constructing RuntimeDyld::SymbolInfo
instances from JITSymbols. It will save more mess in the future when
JITSymbol::getAddress is extended to return an Expected<TargetAddress> rather
than just a TargetAddress, since we'll be able to embed the error checking in
the conversion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271350 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd support for metadata attachments for global variables.
Peter Collingbourne [Tue, 31 May 2016 23:01:54 +0000 (23:01 +0000)]
Add support for metadata attachments for global variables.

This patch adds an IR, assembly and bitcode representation for metadata
attachments for globals. Future patches will port existing features to use
these new attachments.

Differential Revision: http://reviews.llvm.org/D20074

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271348 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Add unit tests for PDB MappedBlockStream and zero copy
Zachary Turner [Tue, 31 May 2016 22:41:52 +0000 (22:41 +0000)]
[pdb] Add unit tests for PDB MappedBlockStream and zero copy

Differential Revision: http://reviews.llvm.org/D20837
Reviewed By: ruiu

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271346 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoCodeGen: Refactor renameDisconnectedComponents() as a pass
Matthias Braun [Tue, 31 May 2016 22:38:06 +0000 (22:38 +0000)]
CodeGen: Refactor renameDisconnectedComponents() as a pass

Refactor LiveIntervals::renameDisconnectedComponents() to be a pass.
Also change the name to "RenameIndependentSubregs":

- renameDisconnectedComponents() worked on a MachineFunction at a time
  so it is a natural candidate for a machine function pass.

- The algorithm is testable with a .mir test now.

- This also fixes a problem where the lazy renaming as part of the
  MachineScheduler introduced IMPLICIT_DEF instructions after the number
  of a nodes in a region were counted leading to a mismatch.

Differential Revision: http://reviews.llvm.org/D20507

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271345 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoSpeculative build fix for codeview type dumper API change
Reid Kleckner [Tue, 31 May 2016 22:32:54 +0000 (22:32 +0000)]
Speculative build fix for codeview type dumper API change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271344 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86]: Add a pattern that uses GR16_ABCD rather than GR32_ABCD to avoid falsely marki...
Kevin B. Smith [Tue, 31 May 2016 22:00:12 +0000 (22:00 +0000)]
[X86]: Add a pattern that uses GR16_ABCD rather than GR32_ABCD to avoid falsely marking whole 32 bit register as live.
Differential Revision: http://reviews.llvm.org/D20649

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271341 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoARM: Improve/fix comment in recently added test.
Matthias Braun [Tue, 31 May 2016 21:59:59 +0000 (21:59 +0000)]
ARM: Improve/fix comment in recently added test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271340 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoARM: Do not attempt to modify register class of physregs.
Matthias Braun [Tue, 31 May 2016 21:39:12 +0000 (21:39 +0000)]
ARM: Do not attempt to modify register class of physregs.

Physregs have no associated register class, do not attempt to modify it
in Thumb2InstrInfo::storeRegToStackSlot()/loadFromStackSlot().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271339 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[obj2yaml] Trying to make msan happy
Chris Bieneman [Tue, 31 May 2016 21:00:08 +0000 (21:00 +0000)]
[obj2yaml] Trying to make msan happy

Failing bot:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/13302/steps/check-llvm%20msan/logs/stdio

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271334 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SLP] Pass in correct alignment when query memory access cost
Guozhi Wei [Tue, 31 May 2016 20:41:19 +0000 (20:41 +0000)]
[SLP] Pass in correct alignment when query memory access cost

This patch fixes bug https://llvm.org/bugs/show_bug.cgi?id=27897.

When query memory access cost, current SLP always passes in alignment value of 1 (unaligned), so it gets a very high cost of scalar memory access, and wrongly vectorize memory loads in the test case.

It can be fixed by simply giving correct alignment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271333 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoChange llvm-objdump, llvm-nm and llvm-size when reporting an object file error
Kevin Enderby [Tue, 31 May 2016 20:35:34 +0000 (20:35 +0000)]
Change llvm-objdump, llvm-nm and llvm-size when reporting an object file error
when the object is from a slice of a Mach-O Universal Binary use something like
"foo.o (for architecture i386)" as part of the error message when expected.

Also fixed places in these tools that were ignoring object file errors from
MachOUniversalBinary::getAsObjectFile() when the code moved on to see if
the slice was an archive.

To do this MachOUniversalBinary::getAsObjectFile() and
MachOUniversalBinary::getObjectForArch() were changed from returning
ErrorOr<...> to Expected<...> then that was threaded up to its users.

Converting these interfaces to Expected<> from ErrorOr<> does involve
touching a number of places. To contain the changes for now the use of
errorToErrorCode() is still used in two places yet to be fully converted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271332 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CMake] Update to requiring CMake 3.4.3
Chris Bieneman [Tue, 31 May 2016 20:21:32 +0000 (20:21 +0000)]
[CMake] Update to requiring CMake 3.4.3

Summary:
This is as per the discussions on developer lists:

http://lists.llvm.org/pipermail/llvm-dev/2016-April/098780.html
http://lists.llvm.org/pipermail/llvm-dev/2016-May/100058.html

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D20822

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271325 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CFLAA] Don't link GEP pointers to GEP indices.
George Burgess IV [Tue, 31 May 2016 19:55:05 +0000 (19:55 +0000)]
[CFLAA] Don't link GEP pointers to GEP indices.

Code like the following is considered broken, and doesn't need to be
supported by our AA magicks:

void getFoo(int *P) {
  int *PAlias = (int *)((char *)NULL + (uintptr_t)P);
}

This patch makes CFLAA drop support for code like this.

Patch by Jia Chen.

Differential Revision: http://reviews.llvm.org/D20775

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271322 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CodeGen] Promote FMINNAN/FMAXNAN like other binops.
Ahmed Bougacha [Tue, 31 May 2016 18:50:25 +0000 (18:50 +0000)]
[CodeGen] Promote FMINNAN/FMAXNAN like other binops.

We think it's OK to generate half fminnan because it's legal for the
transform-to type (f32; r245196). However, PromoteFloatRes was missing
the case; simply promote like the other binops, including minnum.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271317 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CodeGen] Don't mark FMINNUM/FMAXNUM Expand twice. NFC.
Ahmed Bougacha [Tue, 31 May 2016 18:50:21 +0000 (18:50 +0000)]
[CodeGen] Don't mark FMINNUM/FMAXNUM Expand twice. NFC.

They're already in the all_valuetypes() loop above.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271316 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Docs] CodeGen has supported vector icmp/fcmp for a long time.
Ahmed Bougacha [Tue, 31 May 2016 18:50:05 +0000 (18:50 +0000)]
[Docs] CodeGen has supported vector icmp/fcmp for a long time.

The IR support is already well-documented.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271315 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[codeview] Improve readability of type record assembly
Reid Kleckner [Tue, 31 May 2016 18:45:36 +0000 (18:45 +0000)]
[codeview] Improve readability of type record assembly

Adds the method MCStreamer::EmitBinaryData, which is usually an alias
for EmitBytes. In the MCAsmStreamer case, it is overridden to emit hex
dump output like this:
        .byte   0x0e, 0x00, 0x08, 0x10
        .byte   0x03, 0x00, 0x00, 0x00
        .byte   0x00, 0x00, 0x00, 0x00
        .byte   0x00, 0x10, 0x00, 0x00

Also, when verbose asm comments are enabled, this patch prints the dump
output for each comment before its record, like this:
        # ArgList (0x1000) {
        #   TypeLeafKind: LF_ARGLIST (0x1201)
        #   NumArgs: 0
        #   Arguments [
        #   ]
        # }
        .byte   0x06, 0x00, 0x01, 0x12
        .byte   0x00, 0x00, 0x00, 0x00

This should make debugging easier and testing more convenient.

Reviewers: aaboud

Subscribers: majnemer, zturner, amccarth, aaboud, llvm-commits

Differential Revision: http://reviews.llvm.org/D20711

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271313 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDelete AArch64II::MO_CONSTPOOL.
Rafael Espindola [Tue, 31 May 2016 18:31:14 +0000 (18:31 +0000)]
Delete AArch64II::MO_CONSTPOOL.

A constant pool holding the address of a variable in equivalent to
a got entry. It produces exactly the same instruction sequence as a
got use and unlike a got use this is not uniqued by the linker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271311 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[codeview] Add a CVTypeDumper::dump(ArrayRef<uint8_t>) overload
Reid Kleckner [Tue, 31 May 2016 18:15:23 +0000 (18:15 +0000)]
[codeview] Add a CVTypeDumper::dump(ArrayRef<uint8_t>) overload

This is a convenient wrapper when the type record is already laid out as
bytes in memory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271309 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PM] BDCE: Fix caching of analyses.
Davide Italiano [Tue, 31 May 2016 17:53:22 +0000 (17:53 +0000)]
[PM] BDCE: Fix caching of analyses.

Another chapter in the story. GlobalsAA should be preserved, as
 well as the CFG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271307 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[mips] Remove tests which should have been deleted.
Simon Dardis [Tue, 31 May 2016 17:52:29 +0000 (17:52 +0000)]
[mips] Remove tests which should have been deleted.

The two xfail tests for mis32r6 & mips64r6 were supposed
to be removed in r271301.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271306 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PM] ADCE: Fix caching of analyses.
Davide Italiano [Tue, 31 May 2016 17:39:39 +0000 (17:39 +0000)]
[PM] ADCE: Fix caching of analyses.

When this pass was originally ported, AA wasn't available for the
new PM. Now it is, so we can cache properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271303 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[mips] Enforce compact branch register restrictions
Simon Dardis [Tue, 31 May 2016 17:34:42 +0000 (17:34 +0000)]
[mips] Enforce compact branch register restrictions

Enforce compact branch register restrictions such as the use of the zero
register, both operands being the same register. Emit clear error in such
cases as the issue is subtle.

For bovc and bnvc, silently fixup such cases when emitting objects directly,
like LLVM started doing in rL269899.

Reviewers: vkalintiris, dsanders

Differential Review: http://reviews.llvm.org/D20475

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271301 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[obj2yaml][yaml2obj] Support for reading and dumping the MachO export trie
Chris Bieneman [Tue, 31 May 2016 17:26:36 +0000 (17:26 +0000)]
[obj2yaml][yaml2obj] Support for reading and dumping the MachO export trie

The MachO export trie is a serially encoded trie keyed by symbol name. This code parses the trie and preserves the structure so that it can be dumped again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271300 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix a crash in MergeFunctions related to ordering of weak/strong functions
Erik Eckstein [Tue, 31 May 2016 17:20:23 +0000 (17:20 +0000)]
Fix a crash in MergeFunctions related to ordering of weak/strong functions

The assumption, made in insert() that weak functions are always inserted after strong functions,
is only true in the first round of adding functions.
In subsequent rounds this is no longer guaranteed , because we might remove a strong function from the tree (because it's modified) and add it later,
where an equivalent weak function already exists in the tree.
This change removes the assert in insert() and explicitly enforces a weak->strong order.
This also removes the need of two separate loops in runOnModule().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271299 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[esan|cfrag] Create the skeleton of cfrag variable for the runtime
Qin Zhao [Tue, 31 May 2016 17:14:02 +0000 (17:14 +0000)]
[esan|cfrag] Create the skeleton of cfrag variable for the runtime

Summary:
Creates a global variable containing preliminary information
for the cache-fragmentation tool runtime.

Passes a pointer to the variable (null if no variable is created) to the
compilation unit init and exit routines in the runtime.

Reviewers: aizatsky, bruening

Subscribers: filcab, kubabrecka, bruening, kcc, vitalybuka, eugenis, llvm-commits, zhaoqin

Differential Revision: http://reviews.llvm.org/D20541

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271298 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAMDGPU: Remove unused address space
Matt Arsenault [Tue, 31 May 2016 16:57:45 +0000 (16:57 +0000)]
AMDGPU: Remove unused address space

Also return a single StringRef instead of building a string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271296 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd a use of shouldAssumeDSOLocal to ARM.
Rafael Espindola [Tue, 31 May 2016 15:31:55 +0000 (15:31 +0000)]
Add a use of shouldAssumeDSOLocal to ARM.

Now this code path knows about position independent executables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271290 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Hexagon] Disable expanding MUX instructions that define a subregister
Krzysztof Parzyszek [Tue, 31 May 2016 14:27:10 +0000 (14:27 +0000)]
[Hexagon] Disable expanding MUX instructions that define a subregister

The code in HexagonExpandCondsets.cpp does not handle those cases at the
moment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271281 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDo not modify a std::vector while looping it.
Yaron Keren [Tue, 31 May 2016 13:45:05 +0000 (13:45 +0000)]
Do not modify a std::vector while looping it.

Introduced in r271244, this is probably undefined behaviour and asserts when
compiled with Visual C++ debug mode.

On further note, the loop is quadratic with regard to the number of successors
since removeSuccessor is linear and could probably be modified to linear time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271278 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ARM] Add backend support for load/store intrinsics.
Ranjeet Singh [Tue, 31 May 2016 12:39:30 +0000 (12:39 +0000)]
[ARM] Add backend support for load/store intrinsics.

Added support to map intrinsics
__builtin_arm_{ldc,ldcl,ldc2,ldc2l,stc,stcl,stc2,stc2l}
to their ARM instructions.

Differential Revision: http://reviews.llvm.org/D20564

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271271 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE] Add load-folding patterns for (V)CVTDQ2PD (PR27291)
Simon Pilgrim [Tue, 31 May 2016 12:04:35 +0000 (12:04 +0000)]
[X86][SSE] Add load-folding patterns for (V)CVTDQ2PD (PR27291)

Added patterns for (V)CVTDQ2PD -> 2f64 loading from a 64-bit source.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271269 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[mips] bnec/beqc register constraint fix
Simon Dardis [Tue, 31 May 2016 09:54:55 +0000 (09:54 +0000)]
[mips] bnec/beqc register constraint fix

beqc and bnec cannot have $rs == $rt. Inhibit compact branch creation
if that would occur.

Reviewers: vkalintiris, dsanders

Differential Revision: http://reviews.llvm.org/D20624

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271260 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[AVX512] Fix intrinsic vcvtps2ph lowering.
Igor Breger [Tue, 31 May 2016 08:04:21 +0000 (08:04 +0000)]
[AVX512] Fix intrinsic vcvtps2ph lowering.

Differential Revision: http://reviews.llvm.org/D20788

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271255 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix intrinsic vbroadcast{i32|f32}x2 lowering.
Igor Breger [Tue, 31 May 2016 07:43:39 +0000 (07:43 +0000)]
Fix intrinsic vbroadcast{i32|f32}x2 lowering.

Differential Revision: http://reviews.llvm.org/D20780

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271254 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[AVX512] Remove gcc builtin name from masked load intrinsics so they can be custom...
Craig Topper [Tue, 31 May 2016 06:42:51 +0000 (06:42 +0000)]
[AVX512] Remove gcc builtin name from masked load intrinsics so they can be custom handled by clang to create generic masked load intrinsics instead of using the x86 specific ones.

The intrinsics will be removed in a future commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271252 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[AVX512] Remove masked store intrinsics. Clang now emits generic masked store intrins...
Craig Topper [Tue, 31 May 2016 01:50:02 +0000 (01:50 +0000)]
[AVX512] Remove masked store intrinsics. Clang now emits generic masked store intrinsics instead.

The intrinsics will be autoupgraded to the same generic masked stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271245 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoX86: permit using SjLj EH on x86 targets as an option
Saleem Abdulrasool [Tue, 31 May 2016 01:48:07 +0000 (01:48 +0000)]
X86: permit using SjLj EH on x86 targets as an option

This adds support to the backed to actually support SjLj EH as an exception
model.  This is *NOT* the default model, and requires explicitly opting into it
from the frontend.  GCC supports this model and for MinGW can still be enabled
via the `--using-sjlj-exceptions` options.

Addresses PR27749!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271244 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-pdbdump-fuzzer] Add a fuzzer for llvm-pdbdump
David Majnemer [Tue, 31 May 2016 01:24:40 +0000 (01:24 +0000)]
[llvm-pdbdump-fuzzer] Add a fuzzer for llvm-pdbdump

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271243 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[llvm-dwarfdump-fuzzer] Get this compiling again
David Majnemer [Tue, 31 May 2016 01:24:33 +0000 (01:24 +0000)]
[llvm-dwarfdump-fuzzer] Get this compiling again

Looks like the dwarfdump fuzzer has bitrotted, update it to take into
account updates to the libobject API.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271242 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Remove SSE/AVX unaligned store intrinsics as clang no longer uses them. Auto...
Craig Topper [Mon, 30 May 2016 23:15:56 +0000 (23:15 +0000)]
[X86] Remove SSE/AVX unaligned store intrinsics as clang no longer uses them. Auto upgrade to native unaligned store instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271236 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Use update_llc_test_checks.py to re-generate a test in preparation for an upcom...
Craig Topper [Mon, 30 May 2016 22:54:14 +0000 (22:54 +0000)]
[X86] Use update_llc_test_checks.py to re-generate a test in preparation for an upcoming commit. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271234 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Simplify and remove some unnecessary auto-upgrade code.
Craig Topper [Mon, 30 May 2016 22:54:12 +0000 (22:54 +0000)]
[X86] Simplify and remove some unnecessary auto-upgrade code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271233 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Reduce the number of string compares in the autoupgrade logic by checking more...
Craig Topper [Mon, 30 May 2016 22:54:05 +0000 (22:54 +0000)]
[X86] Reduce the number of string compares in the autoupgrade logic by checking more prefixes instead of complete matches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271232 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoFix a crash when producing COFF.
Rafael Espindola [Mon, 30 May 2016 20:18:53 +0000 (20:18 +0000)]
Fix a crash when producing COFF.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271229 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][XOP] Split off auto-upgraded xop intrinsics
Simon Pilgrim [Mon, 30 May 2016 19:50:56 +0000 (19:50 +0000)]
[X86][XOP] Split off auto-upgraded xop intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271228 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE] Renamed pmovxrm tests
Simon Pilgrim [Mon, 30 May 2016 19:14:37 +0000 (19:14 +0000)]
[X86][SSE] Renamed pmovxrm tests

These aren't intrinsics anymore - as discussed on D20686

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271226 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Kaleidoscope][BuildingAJIT] Finish off Chapter 1.
Lang Hames [Mon, 30 May 2016 19:03:26 +0000 (19:03 +0000)]
[Kaleidoscope][BuildingAJIT] Finish off Chapter 1.

* Various tidy-up and streamlining of existing discussion.
* Describes findSymbol and removeModule.

Chapter 1 is now rough but essentially complete in terms of content.

Feedback, patches etc. very welcome.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271225 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][AVX2] Regenerated AVX2 extension tests
Simon Pilgrim [Mon, 30 May 2016 18:49:57 +0000 (18:49 +0000)]
[X86][AVX2] Regenerated AVX2 extension tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271224 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE] Updated storeu fast-isel tests to match clang builtin tests
Simon Pilgrim [Mon, 30 May 2016 18:42:51 +0000 (18:42 +0000)]
[X86][SSE] Updated storeu fast-isel tests to match clang builtin tests

Since rL271214 the headers have no longer used the storeu intrinsic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271222 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86][SSE2] Updated _mm_store_pd1/_mm_store1_pd fast-isel tests to match D20617
Simon Pilgrim [Mon, 30 May 2016 18:18:44 +0000 (18:18 +0000)]
[X86][SSE2] Updated _mm_store_pd1/_mm_store1_pd fast-isel tests to match D20617

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271220 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Kaleidoscope][BuildingAJIT] Add stub Chapter 5 text.
Lang Hames [Mon, 30 May 2016 16:53:19 +0000 (16:53 +0000)]
[Kaleidoscope][BuildingAJIT] Add stub Chapter 5 text.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271213 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[BPF] Remove exit-on-error from tests (PR27768, PR27769)
Diana Picus [Mon, 30 May 2016 08:28:34 +0000 (08:28 +0000)]
[BPF] Remove exit-on-error from tests (PR27768, PR27769)

The exit-on-error flag is necessary to avoid some assertions/unreachables. We
can get past them by creating a few dummy nodes.

Fixes PR27768, PR27769.

Differential Revision: http://reviews.llvm.org/D20726

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271200 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[IndVars] Assert that the incoming IR is in LCSSA
Sanjoy Das [Mon, 30 May 2016 01:37:39 +0000 (01:37 +0000)]
[IndVars] Assert that the incoming IR is in LCSSA

Since we already assert that the outgoing IR is in LCSSA, it is easy to
get misled into thinking that -indvars broke LCSSA if the incoming IR is
non-LCSSA.  Checking this pre-condition will make such cases break in
more obvious ways.

Inspired by (but does _not_ fix) PR26682.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271196 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Kaleidoscope][BuildingAJIT] Don't build Chapter 5 on Windows for now.
Lang Hames [Mon, 30 May 2016 01:18:32 +0000 (01:18 +0000)]
[Kaleidoscope][BuildingAJIT] Don't build Chapter 5 on Windows for now.

The TCP setup code is currently *nix based and does not build on Windows.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271194 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Kaleidoscope][BuildingAJIT] Add code for Chapter 5 - remote JITing.
Lang Hames [Mon, 30 May 2016 00:09:26 +0000 (00:09 +0000)]
[Kaleidoscope][BuildingAJIT] Add code for Chapter 5 - remote JITing.

This chapter demonstrates lazily JITing from ASTs with the expressions being
executed on a remote machine via a TCP connection. It needs some polish, but is
substantially complete.

Currently x86-64 SysV ABI (Darwin and Linux) only, but other architectures
can be supported by changing the server code to use alternative ABI support
classes from llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271193 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMake it easier to process merges in a normal buildable directory tree by
Joerg Sonnenberger [Sun, 29 May 2016 22:09:54 +0000 (22:09 +0000)]
Make it easier to process merges in a normal buildable directory tree by
allowing the user to specify the base directory of the checkout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271192 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[IndVarSimplify] Extract the logic of `-indvars` out into a class; NFC
Sanjoy Das [Sun, 29 May 2016 21:42:00 +0000 (21:42 +0000)]
[IndVarSimplify] Extract the logic of `-indvars` out into a class; NFC

This will be used later to port IndVarSimplify to the new pass manager.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271190 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Orc] Fix a type in the OrcRemoteClientUtility.
Lang Hames [Sun, 29 May 2016 21:17:13 +0000 (21:17 +0000)]
[Orc] Fix a type in the OrcRemoteClientUtility.

This function failed to type-check as it was. No test case yet (we only have
regression tests for the remote-JIT code, and LLI don't use this function), but
an upcoming chapter of the Kaleidoscope Building A JIT tutorials will use
this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271189 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[libFuzzer] fix a use-after-free (!) in libFuzzer caused by r270905: that CL caused...
Kostya Serebryany [Sun, 29 May 2016 15:58:57 +0000 (15:58 +0000)]
[libFuzzer] fix a use-after-free (!) in libFuzzer caused by r270905: that CL caused a push_back in the main corpus invalidating the vector<> iterators in rare cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271186 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRemove some 'const' specifiers that do nothing but prevent moving the argument.
Benjamin Kramer [Sun, 29 May 2016 10:46:35 +0000 (10:46 +0000)]
Remove some 'const' specifiers that do nothing but prevent moving the argument.

Found by clang-tidy's misc-move-const-arg. While there drop some
obsolete c_str() calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271181 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ProfileData] Clean up string handling a bit.
Benjamin Kramer [Sun, 29 May 2016 10:31:00 +0000 (10:31 +0000)]
[ProfileData] Clean up string handling a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271180 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Remove the singleton `apply` function (re-apply r271155)
Sanjoy Das [Sun, 29 May 2016 07:53:21 +0000 (07:53 +0000)]
[SCEV] Remove the singleton `apply` function (re-apply r271155)

Polly has been updated in r271177 to not use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271178 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Remove some unnecessary declarations for old intrinsics from a test.
Craig Topper [Sun, 29 May 2016 06:37:39 +0000 (06:37 +0000)]
[X86] Remove some unnecessary declarations for old intrinsics from a test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271175 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[X86] Simplify some of the autoupgrade code. NFC
Craig Topper [Sun, 29 May 2016 06:37:33 +0000 (06:37 +0000)]
[X86] Simplify some of the autoupgrade code. NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271174 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDon't dereference a symbol iterator before checking for the end case
David Majnemer [Sun, 29 May 2016 06:18:08 +0000 (06:18 +0000)]
Don't dereference a symbol iterator before checking for the end case

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271173 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMake sure we don't add an empty string to the stringmap
David Majnemer [Sun, 29 May 2016 06:18:06 +0000 (06:18 +0000)]
Make sure we don't add an empty string to the stringmap

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271172 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CVRecord] Don't assume that the record has two bytes of data in it
David Majnemer [Sun, 29 May 2016 06:18:04 +0000 (06:18 +0000)]
[CVRecord] Don't assume that the record has two bytes of data in it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271171 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDon't let the readArray size calculation overflow
David Majnemer [Sun, 29 May 2016 06:18:01 +0000 (06:18 +0000)]
Don't let the readArray size calculation overflow

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271170 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[pdb] Make an abstract base class for PDBFile.
Zachary Turner [Sun, 29 May 2016 05:36:01 +0000 (05:36 +0000)]
[pdb] Make an abstract base class for PDBFile.

This will allow us to mock it out in a unit test to begin
writing unit tests for the various PDB and codeview classes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271168 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert "[SCEV] Remove unused function; NFC"
Sanjoy Das [Sun, 29 May 2016 04:08:50 +0000 (04:08 +0000)]
Revert "[SCEV] Remove unused function; NFC"

This reverts commit r271155.  The `apply` function is actually used by
Polly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271167 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[IR] Teach the ArrayRef<int> form of IRBuilder::CreateShuffleVector to use ConstantDa...
Craig Topper [Sun, 29 May 2016 02:39:20 +0000 (02:39 +0000)]
[IR] Teach the ArrayRef<int> form of IRBuilder::CreateShuffleVector to use ConstantDataVector.

This will be used in a follow up commit to simplify code in clang that creates a ConstantDataVector and calls the other form.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271164 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd RelaxELFRelocations to TargetOptions.h.
Rafael Espindola [Sun, 29 May 2016 01:57:20 +0000 (01:57 +0000)]
Add RelaxELFRelocations to TargetOptions.h.

It will be used in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271161 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMove RelaxELFRel out to llvm-mc.
Rafael Espindola [Sun, 29 May 2016 01:11:00 +0000 (01:11 +0000)]
Move RelaxELFRel out to llvm-mc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271160 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PM] Reassociate: cache analyses more aggressively.
Davide Italiano [Sun, 29 May 2016 00:41:17 +0000 (00:41 +0000)]
[PM] Reassociate: cache analyses more aggressively.

While here, add a FIXME for setPreserveCFG().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271159 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Remove \brief from comments; NFC
Sanjoy Das [Sun, 29 May 2016 00:38:29 +0000 (00:38 +0000)]
[SCEV] Remove \brief from comments; NFC

With autobrief, \brief is not required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271158 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Consolidate comments; NFC
Sanjoy Das [Sun, 29 May 2016 00:38:22 +0000 (00:38 +0000)]
[SCEV] Consolidate comments; NFC

Consolidate documentation by removing comments from the .cpp file where
the comments in the .cpp file were copy-pasted from the header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271157 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Rename functions to LLVM style; NFC
Sanjoy Das [Sun, 29 May 2016 00:38:00 +0000 (00:38 +0000)]
[SCEV] Rename functions to LLVM style; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271156 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Remove unused function; NFC
Sanjoy Das [Sun, 29 May 2016 00:37:45 +0000 (00:37 +0000)]
[SCEV] Remove unused function; NFC

Moreover, I've never seen globally scoped `static inline` functions
elsewhere in LLVM, so this pattern is unusual if not unidiomatic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271155 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Comment and whitesapce changes in header
Sanjoy Das [Sun, 29 May 2016 00:36:42 +0000 (00:36 +0000)]
[SCEV] Comment and whitesapce changes in header

 - Use doxygen-style comments
 - Don't repeat member names in comments
 - Add newlines between declarations

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271154 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[IndVars] Eliminate op.with.overflow when possible (re-apply)
Sanjoy Das [Sun, 29 May 2016 00:36:25 +0000 (00:36 +0000)]
[IndVars] Eliminate op.with.overflow when possible (re-apply)

Summary:
If we can prove that an op.with.overflow intrinsic does not overflow, we
can get rid of the intrinsic, and replace it with non-wrapping
arithmetic.

This was first checked in at r265913 but reverted in r265950 because it
exposed some issues around how SCEV handled post-inc add recurrences.
Those issues have now been fixed.

Reviewers: atrick, regehr

Subscribers: sanjoy, mcrosier, llvm-commits

Differential Revision: http://reviews.llvm.org/D18685

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271153 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] See through op.with.overflow intrinsics (re-apply)
Sanjoy Das [Sun, 29 May 2016 00:34:42 +0000 (00:34 +0000)]
[SCEV] See through op.with.overflow intrinsics (re-apply)

Summary:
This change teaches SCEV to see reduce `(extractvalue
0 (op.with.overflow X Y))` into `op X Y` (with a no-wrap tag if
possible).

This was first checked in at r265912 but reverted in r265950 because it
exposed some issues around how SCEV handled post-inc add recurrences.
Those issues have now been fixed.

Reviewers: atrick, regehr

Subscribers: mcrosier, mzolotukhin, llvm-commits

Differential Revision: http://reviews.llvm.org/D18684

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271152 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SCEV] Don't always add no-wrap flags to post-inc add recs
Sanjoy Das [Sun, 29 May 2016 00:32:17 +0000 (00:32 +0000)]
[SCEV] Don't always add no-wrap flags to post-inc add recs

Fixes PR27315.

The post-inc version of an add recurrence needs to "follow the same
rules" as a normal add or subtract expression.  Otherwise we miscompile
programs like

```
int main() {
  int a = 0;
  unsigned a_u = 0;
  volatile long last_value;
  do {
    a_u += 3;
    last_value = (long) ((int) a_u);
    if (will_add_overflow(a, 3)) {
      // Leave, and don't actually do the increment, so no UB.
      printf("last_value = %ld\n", last_value);
      exit(0);
    }
    a += 3;
  } while (a != 46);
  return 0;
}
```

This patch changes SCEV to put no-wrap flags on post-inc add recurrences
only when the poison from a potential overflow will go ahead to cause
undefined behavior.

To avoid regressing performance too much, I've assumed infinite loops
without side effects is undefined behavior to prove poison<->UB
equivalence in more cases.  This isn't ideal, but is not new to LLVM as
a whole, and far better than the situation I'm trying to fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271151 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ValueTracking] ICmp instructions propagate poison
Sanjoy Das [Sun, 29 May 2016 00:31:18 +0000 (00:31 +0000)]
[ValueTracking] ICmp instructions propagate poison

This is a stripped down version of D19211, leaving out the questionable
"branching in poison is UB" bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271150 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[PM] SCCP should preserve GlobalsAA even if the IR is mutated.
Davide Italiano [Sun, 29 May 2016 00:31:15 +0000 (00:31 +0000)]
[PM] SCCP should preserve GlobalsAA even if the IR is mutated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271149 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[COFFDumper] Validate that the next offset is not too large
David Majnemer [Sat, 28 May 2016 20:04:50 +0000 (20:04 +0000)]
[COFFDumper] Validate that the next offset is not too large

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271147 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[COFFDumper] Make sure there is sufficient padding left in the string table
David Majnemer [Sat, 28 May 2016 20:04:48 +0000 (20:04 +0000)]
[COFFDumper] Make sure there is sufficient padding left in the string table

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271146 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SymbolDumper] Validate the string table offset before using it
David Majnemer [Sat, 28 May 2016 20:04:46 +0000 (20:04 +0000)]
[SymbolDumper] Validate the string table offset before using it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271145 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[COFFDumper] Make sure there is sufficient padding left in the checksum
David Majnemer [Sat, 28 May 2016 19:45:58 +0000 (19:45 +0000)]
[COFFDumper] Make sure there is sufficient padding left in the checksum

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271143 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[SymbolDumper] Validate the string table offset before using it
David Majnemer [Sat, 28 May 2016 19:45:56 +0000 (19:45 +0000)]
[SymbolDumper] Validate the string table offset before using it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271142 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[CVSymbolVisitor] It's possible for an error to occur in begin()
David Majnemer [Sat, 28 May 2016 19:45:54 +0000 (19:45 +0000)]
[CVSymbolVisitor] It's possible for an error to occur in begin()

If the begin iterator fails, we cannot dereference it's contents.
Instead, we must immediately stop processing symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271141 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[Object] Return an error code instead of asserting
David Majnemer [Sat, 28 May 2016 19:45:51 +0000 (19:45 +0000)]
[Object] Return an error code instead of asserting

This makes it easier to report errors up the stack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271140 91177308-0d34-0410-b5e6-96231b3b80d8